问题:
当用编程设备功能"Control VAR"对变量进行预先设置时,如果变量大于一个字节,可能会发生一个周期的错误结果。
解答:
当指定大于一个字节或一个字的变量时,必须确保用"Control VAR"将变量传送到PLC内存不是以一个闭运算进行。
控制功能的传送是一个字节一个字节完成。如果控制了一个字,那么首次是传送高字节,然后再是低字节。
控制值之间的差别在于低字节,因为这是后来所更新的,虽然高字节已经有了新值。根据传送步骤和波特率,一个字的传送次数不同。
所有CPU和PG类型都是属于该类型的传送(AS 511 协议)。
下列示例用于说明该点:
MW 24 的内容是十六进制 0000 ,将变为十六进制 2356 。
内存字中的内存字节的位置与"Forcing VAR"中显示的一致。
MW n | MB n | MB n+1 |
如果MW 24通过"Forcing VAR"功能发生了改变,那么MB 25首先被传送到自动设备,然后是MB 24。这导致在一个OB1周期长度内MW24 (MB24)的错误内容。
MW 24的内容是十六进制0000 ,将变为十六进制2356。
步 | 执行 | MW24内容 |
1 - PLC 周期 n-1 | 0000 十六进制 | |
2 - 强制 VAR 写入 MB 25 | MB 25 := 56 hex | - |
3 - PLC 周期 n | 0056 十六进制 | |
4 - 强制 VAR 写入 MB 24 | MB 24 := 23 hex | - |
5 - PLC 周期 n+1 | 2356 十六进制 |
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc340605.html