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.
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.
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.
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.
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.
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.
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
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.
-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
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
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
Three actions are in the MAIN
AXES: contains the FB of each axis en FBD language
EROR: Contians the FBs necessary for error handling
PROG: space for sequencing, safety or anything else application specific
Structure varibales of inputs and outputs in MAIN for better comprenhension.
Add all variables for a second axis and add commented varibales for extra axes.