PLC和电机控制器之间的时间敏感握手

时间:2015-02-20 16:32:07

标签: vb.net handshake plc

我正在尝试在我的PLC(使用梯形逻辑)和电机控制器(使用VB)之间设置握手。我正在使用隐式通信,这意味着PLC有一些输出寄存器可以写入电机控制器作为输入寄存器。同样,控制器有一些输出寄存器可用于回写,PLC将这些作为输入。重要的是要注意,两个设备都不能改变它看作输入的寄存器。

这个事实很重要,因为通常我会让PLC通过设置一个等于1的寄存器来发送命令,然后一旦电机控制器完成该命令,它就会将同一个寄存器设置回零并且该过程可以重复。但由于电机控制器无法将相同的寄存器设置为零,因此它必须使用不同的寄存器向PLC发送信号。在我的PLC代码中,当“确认”寄存器打开时,我将“命令”寄存器恢复为零,但是根据PLC代码的位置,它可能在检查“确认”寄存器之前再次发出命令。目前,当我发出移动电机的命令时,它将移动3或6次。

当使用两个独立的寄存器时,有没有办法解决握手的常用方法?

1 个答案:

答案 0 :(得分:0)

不要将命令作为开/关发送,而是作为唯一的增加版本号发送。接收器仅对每个新号码起作用一次。例如,重置为零一天。我在集装箱起重机控制中一遍又一遍地使用这个“协议”。如果接收器已经看到某个版本,它会将该数字反映回确认。由于整个事情反映了撕毁门票和给(编号)票回来的事务,我称之为“Ticked and Slip protocol”。它在几台起重机上完美运行了15年(以及未同步设备之间的许多其他通信)。