用”Control VAR”预置变量的错误结果

问题:
当用编程设备功能"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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论