Commit Graph

57 Commits

Author SHA1 Message Date
aaronlong
741d03da8d Test suite and examples for tc_mca_std_lib solution 2020-02-19 14:54:14 +00:00
Paul Barron
51464ddd87 Fix whitespace damage 2020-02-12 12:12:10 +01:00
Paul Barron
8433721ea4 Add check in MAIN.RESTOR_POSITIONS
Add check when resetting bRestoreOnStartup flag to only reset
if the UPS is OK. Otherwise during a power loss it is set and then reset before
getting to the end of the PLC cycle.
This was a result of moving some code that was previously in MAIN to an ACT
and the RETURN command does not work the same. I believe it only returns
from the current act and not the whole code. Originally it was supposed to
prevent the rest of the code from executing in the event of a power failure but
this is no longer the case.
2020-02-12 11:56:26 +01:00
Torsten Bögershausen
06fff58f08 MAIN.TcPOU: Save with TC version 3.1.4024.0 2020-02-10 10:58:35 +01:00
Torsten Bögershausen
b522fe177e fix whitespace damage 2020-02-10 10:44:25 +01:00
Simon-Cooper
1079229ffb ALLOW LOCAL SIMULATIONS TO BYBASS UPS CHECK
Add CHECK_UPS action to house monitoring of the UPS global status
Modify RESTORE_POSITIONS state machine to remove numerical enumeration
usage
Add device identity functionblock to check whether local simulation or
CX
Add POSITION RECOVERY action to check device type and determine whether
to run
position restore and ups checking
Add solution/_Config/ folder to gitignore to remove NC and IO
2020-02-07 10:17:46 +00:00
Paul Barron
04c7827a7a Merge 'tc_generic_struct/integration' into mbp-77/191217-RemoveMode2
Conflicts:
	solution/solution.tsproj
	solution/tc_project_app/GVLs/GVL_APP.TcGVL
	solution/tc_project_app/POUs/MAIN.TcPOU
	solution/tc_project_app/tc_project_app.plcproj
2019-12-18 10:48:04 +01:00
Paul Barron
b61bf93b52 Remove hardware and rebuild
Change axisNum to 2
2019-12-17 14:54:20 +01:00
Paul Barron
1c9d8f3b6b Remove mode 2 from position restore
It was decided in a code review that mode 2 wasn't doing exactly as we wanted
and that it probably wasn't required, at least for now.
Changes to logic so that the position restore is only done after a power cycle and
not a download, reset cold or reset origin.
2019-12-17 14:46:55 +01:00
Paul Barron
e36d4bcab3 Change comment 2019-12-17 10:37:24 +01:00
Paul Barron
5743a13513 Remove mode 2 from iRestoreCode
Issues found regarding overiding of .config params in the axis struct.
Also doubts about whether it would actually be used.
2019-12-17 10:27:25 +01:00
Paul Barron
f1063b56d7 Change names of MAIN.STARTUP and MAIN.SHUTDOWN
Change to MAIN.RESTORE_POSITIONS and MAIN.STORE_PERSISTENT
Bug fix: add check in MAIN.RESTORE_POSITIONS to check whether
an axis was moving at shutdown.
Variable name changes to acommodate moving the persistent variables
from MAIN to a DUT in the generic structure.
2019-12-13 13:41:25 +01:00
Paul Barron
f2d73d013f Fix whitespace damage
No code changes
2019-12-11 15:24:00 +01:00
Paul Barron
a9d5e51ac0 Added saving of position values throughout the normal PLC cycle
Added a check in MAIN.SHUTDOWN that makes sure the restore  has been
done first before starting to save values again.
Probably should change the name from MAIN.SHUTDOWN to MAIN.SAVEVALUES or something.
2019-12-11 15:17:59 +01:00
Paul Barron
10ef1a594d Remove MAIN.SHUTDOWN from ordinary PLC cycle
This created a problem in that MAIN.STARTUP wasn't working correctly
because it takes a couple of cycles to complete and MAIN.SHUTDOWN
was overriding the values stored after a power loss. Thus the restore won't work
for a user cold reset. It can be catered for by adding it back into the ordinary PLC
cycle but only executing if bPositionRestoreDone is set.
2019-12-11 15:02:11 +01:00
Paul Barron
df44dd3b82 Bug fix: add additional check in MAIN.SHUTDOWN
gvl.axes[i].Axis.Status.Moving doesn't seem to work if the axis isn't enabled.
Therefore added a check to see whether gvl.axes[i].Axis.NcToPlc.ActVelo <> 0.
If it's non-zero then don't restore the encoder value on restart.
MAIN.SHUTDOWN also added to the normal operation cycle, this is to allow restart
after a "Reset Cold" command in Visual Studio, otherwise the only time position is
restored is an actual lose of power. It might be also useful when a user restarts
the PLC program manually.
Also modified a few comments in MAIN.STARTUP.
2019-12-11 14:28:54 +01:00
Paul Barron
83f1b66c9b Fix white space damage 2019-12-11 13:57:26 +01:00
Paul Barron
480f4098bb Moved the cycle through of the read parameter fbs inside if statement
Motivation: after the position restore code has executed successfully
there is no point running any of the code again and wasting PLC cycles.
Thus the first step in the MAIN.STARTUP is a check whether the code has
been completed or not. If it is has completed successfully ignore everything else.
2019-12-11 13:54:19 +01:00
Paul Barron
534a318269 Remove timer tmrRetry from MAIN.STARTUP
No longer required in the restore position state machine code.
If the read parameter function block isn't successful it will go back
a set in the case statement and try again.
The read parameter function block, fbReadEncRefSys, reads the type of axis
either inc or abs.
2019-12-11 13:35:50 +01:00
Paul Barron
090fbd03eb Lots of changes in MAIN.STARTUP
Changes to the way the code checks whether the enc type is valid.
Added a parameter to the axis struct for setting a homing value other than 0.
2019-12-10 16:48:34 +01:00
Paul Barron
ac37748fbe Add comments to MAIN.STARTUP
Slight tidy of code but no structural changes.
2019-12-10 13:27:05 +01:00
Paul Barron
dbd145ed68 Add DUT RestorePosition in tc_mca_std_lib
Also adjusted code in MAIN.STARTUP to adapt to the new type variable
instead of the int previously.
2019-12-10 12:49:37 +01:00
Paul Barron
f7906d265a Readability change, make case statements easier to read
No code changes
2019-12-10 11:39:00 +01:00
Paul Barron
c8775e5ae5 Create bOutput 2,3,6,7 for switches in MAIN.TcPOU
modified:   solution/solution.tsproj
	modified:   solution/tc_project_app/POUs/MAIN.TcPOU
2019-12-09 13:29:28 +01:00
Paul Barron
d36efd414d Create bOutput5 for axis 2 switches 2019-12-09 13:25:06 +01:00
Paul Barron
a9dea34c41 Capitalise variable names of eStartUp
No code changes
2019-12-09 12:25:01 +01:00
Paul Barron
f98fa633a5 Fix whitespace damage in MAIN.TcPOU 2019-12-09 12:04:08 +01:00
Paul Barron
0772b525ab Update MAIN.TcPOU for TwinCAT version
Open MAIN.TcPOU in TwinCAT, add one line, delete it, save it.
TwinCAT updates the TwinCAT version number to 3.1.4024.0.
No code changes.
2019-12-09 11:59:42 +01:00
Torsten Bögershausen
4ca1f6e110 Normalize all line endings to LF in the repo
Change the CRLF strategie:
All (nearly all) files have LF in the repo, and CRLF in the working tree.
When we started, all files had been commited "as is".
Now it is more and more disturbing that Git shows "^M" in git diff
when a line was added or chenged.
To avoid this, store all files in the repo with LF.

To normalzie existing repos for a crate, run:

Step 1)
(unless you have done that already)
git remote add tc_generic_structure https://bitbucket.org/europeanspallationsource/tc_generic_structure.git

Step 2)
git fetch tc_generic_structure

Step 3)
(master below may be integration)
git merge tc_generic_structure/master  -X renormalize
2019-12-04 16:30:58 +01:00
Paul Barron
56e8fb1c9b Change iStartup case to eStartup
Change int to enum for better readability
2019-12-04 15:09:05 +01:00
Paul Barron
fe65683e7c White space fix 2019-12-04 14:50:58 +01:00
Paul Barron
5d0116f27c Add comment plus variable name consistency fix 2019-12-04 14:44:49 +01:00
Paul Barron
1fd4d9bad6 Fix white-space danage 2019-12-04 14:09:59 +01:00
Paul Barron
3374ed36ae Merge 'tc_generic_struct/integration' into mbp-77/191204-SaveValuesOnPowerOff
Conflicts:
	solution/tc_project_app/POUs/MAIN.TcPOU
	solution/tc_project_app/tc_mca_std_lib
2019-12-04 13:42:31 +01:00
Torsten Bögershausen
bef8078e99 Fix whitespace damage
Fix the whitespaces using check_fix_white_space.py
modified:   solution/tc_project_app/GVLs/GVL_APP.TcGVL
modified:   solution/tc_project_app/POUs/MAIN.TcPOU
2019-11-29 09:47:11 +01:00
Dominic Oram
1d3a7d6c59 Updated version 2019-10-11 23:18:38 +01:00
Federico Rojas
80380cbcd1 Add action call of action STARTUP( ) to MAIN 2019-08-12 15:55:16 +02:00
Paul Barron
ea525c4f49 Add a STARTUP and SHUTDOWN action to MAIN
SHUTDOWN saves the current act pos of all axes and a bit to indicate
whether the axes is moving. STARTUP checks all axes to see if they are
incremental and not moving at previous shutdown and opt-in for value
restore. If all are true then position is restored.
UPS reference library from Beckhoff also added for the saving of values
at shutdown. Might need to be modified as this one is specific for the
particular CPU.
2019-08-09 15:08:12 +02:00
Federico Rojas
05927a40a6 Change all references and links from GVL.axisNum to GVL_APP.axisNum 2019-08-01 13:03:33 +02:00
Federico Rojas
175bdae2de Add missing FB for ErrorHandling FB_NC_Error 2019-07-16 13:29:44 +02:00
Federico Rojas
81b2a6c326 Delete bResetDone and bHome, change VISU location to tc_mca_std_lib
Delete bResetDone from MainVisu and ST_AxisStatus
Delete bHome from ST_AxisControl
Move all VISU folder from tc_generic_struct to tc_mca_std_lib
2019-07-16 11:32:47 +02:00
Federico Rojas
72ff5a7449 Merge with mbp-94/error-handling 2019-07-10 10:44:37 +02:00
Federico Rojas
d04cf0ed4b Change the fbErrorList to the new fbErrorSystem in MAIN
Update the FB's in ERROR()
2019-06-28 14:46:57 +02:00
Simon-Cooper
8e59e35241 Single gear in and gear out support
-Add visualisation elements for support of single gear in
-Add visualisation elements for support of gear out
-Change AXES() action call to use GVL.iAxis as index of FOR loop
2019-06-04 11:46:53 +01:00
Simon-Cooper
9f952987de Visualisation added
Add PLC visualisation first pass
Functionality tested
GUI scales with axes

Issues identified due to base code solution:
A lot of outputs not linked
Execute not cleared by default in code, it is not possible to send repeated commands as if the eCommand is held then the mc_Fb.Execute:=false is never set
Reset not cleared by default in code (if errors again will just auto-reset)
Doesn't clear stop (however this may be a good thing)
Jog velocity input not utilised in mode 0 current set in code, we would need MC_JOGMODE_CONTINUOUS
2019-05-14 16:28:46 +01:00
Federico Rojas
702d8fed92 Implement comments of ISIS on 2019-04-09
Changes to make it work in any setup instead of the ESS test crates.
for further details check the commit of tc_mca_std_lib
2019-04-25 11:38:40 +02:00
Federico Rojas
e5ba869ae8 Homing sequence to a enconder index signal 2019-03-29 14:02:34 +01:00
Federico Rojas
c1930b89fd Some Homing sequences implmentation
Limit switch and direct homing are implemneted, the same with homing to a home snesor
Missing referencing to encoder index or external signal.
2019-03-27 11:57:24 +01:00
Federico Rojas
6dbf29a0c4 New solution structure to fit the array of gvl paramaters structure
AXES()creates the FB and associates the stAxisStruct structure of the gvl
MAIN has new varibales to fit the gvl array
New FB and new Strucutres under DUT Still developing in the tc_mca_std_lib
2019-03-20 15:37:31 +01:00
Federico Rojas
ca715d5810 Comment not used error FB 2018-10-31 11:41:34 +01:00