Hi,
In the generic app we have an root/OffDelayTimer
autoInTrigger
= 1 , inTrigger value automatically resets to 0
autoInTrigger
= 0 , you have to write a 1 and 0,
ptPresetTimeValue_ms
= define delay time, this time should be higher is the refresh rate of the inTrigger
What you can do is link root/OffDelayTimer/qOutput
to an estop channel via linking (linking.json) located inside your configuration package.
For example, I put it in a random group, make sure SystemMode is in All:
{
"Name": "MotionPlayer",
"SystemMode": "All",
"Links": [
{
"Source": {
"Path": "root/MotionPlayer/output"
},
"Destination": {
"Path": "root/Control/jointAutoTrajectory"
}
},
{
"Source": {
"Path": "root/OffDelayTimer/qOutput"
},
"Destination": {
"Path": "root/Logic/:busToState/estop_buttons_channel1",
"Index": 7
}
}
]
},
For the Estop be aware Index 0 and 1 are reserved for the physical e-stop
So what you can do: set autoInTrigger = 1
, and put inTrigger
inside the loop with refresh rate below ptPresetTimeValue_ms
.
So now when connection is lost, you don't write inTrigger
, sets a 0 to estopchannel, resulting in a ESTOP, this will stop the motion when disconnecting.