1

I'm working on an AGV controlled by a Beckhoff PLC. I would like to perform "safe" Online-change, i.e. only allow online change when the program is in a safe, known state (maybe use a flag bEnableOnlineChange).

https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/2528041355.html&id=

"Damage to property and persons due to unexpected behavior of the machine or system", that's what I absolutely want to avoid

Is there a way to Enable/Disable Online change from the PLC program ?

I know there are pragmas like {attribute 'call_after_online_change_slot' := ''} and implicit functions FB_Init/FB_ReInit/FB_Exit to execute code but it is not exactly what I'm looking for.

All in all, I want my program to check that I'm in a stable state (no agv movement) to authorize the online change. Then after the online change with the pragma call_after_online_change put my agv in error so that a rearmament is necessary.

Thanks for any help !

fadam
  • 11
  • 3
  • This should be up to the engineer (imho). If you need to look at a flag if it is okay to do the online change or not, then first log in to check the variable state and then perform the change. They state that the changes may have undesired consequences because "Make sure that the new program code results in the desired behavior of the controlled system." which basically says that if you upload wrong code to the controller while it is operating, it is your responsibility. It doesn't mean that the PLC will do random dangerous behavior due to a possible bug with the online change mechanism. – ziga Jul 22 '23 at 10:00
  • Just out of curiosity, if the AGV is to be stopped at the time of the update anyway, is there any strong advantage to perform online changes? Or would you actually be fine entirely disabling online changes? – Fred Jul 22 '23 at 12:14
  • It is possible but it will be complicated to implement, you need to use two twincat technologies, one is `ADS` to read the status of the variable online and the next tecnology needs to be the `Beckhoff Automation Interface` to control when to perform the download, i do not recommend that, in theory changes online are possible and not dangerous, what you should not perform is an instance change (changing an user data type or adding inputs or outputs to FBs or FCs – DonMiguelSanchez Jul 23 '23 at 05:10
  • @ziga , I think you are right. The developpers have to be carefull and sure of his code. – fadam Jul 24 '23 at 07:00
  • @Fred, it's for the case whan the agv is blocked in its grafcet loop but it's not really stop. – fadam Jul 24 '23 at 07:00
  • 1
    @DonMiguelSanchez, It's seem to be tricky to implement and not the good solution but thanks for solution. – fadam Jul 24 '23 at 07:06

0 Answers0