Hello, I would like to understand how to properly handle the following situation: I have an axis (indradrive) which should be stopped when a light curtain is interrupted. The curtain safety signal is properly connected to the safety signal MS (mode selection) of the drive and is also connected to the PLC. When the curtain is interrupted the MS signal goes to FALSE and the drive will go in STO status. To avoid a drive error, the PLC must react stopping and disabling the drive. A function called in AxisExtension.OnCall check this condition and set ParImm.QuickStop := TRUE and ParImm.Activate := FALSE when the barrier is interrupted. I've used this code two years ago and it worked. The same situation, today seems to work in a different way. Setting/forcing the two values manually seems to work as I expect, but, if the curtain is interrupted when an axis command is executing, the drive is not disabled, thus it raises an error after one second (max transition time exceeded). After some trial an error I've found a working solution cancelling the command setting Execute := FALSE. This of course, stops the command before the axis reaches the final position and the come must verify this condition and issue the commnad again if necessary. Also, I'm not sure which OutImm bit check to be sure the axis is enabled, when the curtain is free and the axis is Activated again (OutImm.DriveEnabled does not seem the right bit). Is there a proper way to handle a situation like this? P.S. when I had the same situation in the past, using QuickStop lead had the side effect to cancel the command, now the command is not cancelled. In the past, I had no problem with drive safety errors, now I have. I'm pretty sure something is handled differently in Rexroth Axis between the two versions. (Old Indradrive MPM (native/NC) 2.0.10.0, New Indradrive MPB (native) 2.0.13.0)
... View more