Jog Galils in SECI - ISISComputingGroup/ibex_developers_manual GitHub Wiki
The move is undertaken as a state machine, and as such the text below attempts to explain the behaviours.
Double line breaks are used to help see the different sets of instructions more easily.
Letters in double-quotes are commands sent to the Galil.
The condition is explained on the left of the --> and the state on the right-hand side.
Items in code highlights
in the "Condition for next state and Next State" column are code items that happen when those conditions are met.
An external stop will interrupt the state machine and go to the Stop state.
State Name | Actions in State | Condition for next state and Next State |
---|---|---|
Idle | Send Setup Params | |
Send Setup Params | Set motor position to encoder position Send motor parameters |
Begin motion speed zero |
Begin motion speed zero | "JG" at minimum of Axis Setup Speed (from the setup information) and the Present Motion Speed (from the control on the VI - defaults to zero and is populated to +/- the Axis Setup Speed) "SH" If this is a servo motor "CP = -1" "BG" |
Set Jog Speed |
Set Jog Speed | If state hasn't been changed by an external factor (e.g. a stop) OR Present Motion Speed has changed, then "JG" at the minimum of the Axis Setup Speed and the Present Motion Speed | If any of the stop scenarios have been met OR a move is not in progress --> Stop, otherwise --> Jog Speed |
Stop | "ST" | Wait Until Stop |
Wait Until Stop | Move in progress = True --> Wait Until Stop Move in progress = False --> Power Off |
|
Power Off | If De-energise = True, "MO" Send Motor Params Init |
End |
End | Send Setup Params |