发布于 2006-12-07 00:30:43
0楼
应该是与程序同步更新的,如果集中更新的话,下面的代码肯定不能正常工作
LD M0.0
FOR VW0, 0, 10
// 循环体(或空)
NEXT
正如 yanxiao 所说,集中更新之前的值存放在哪里、以及何时更新都是问题
对于
ld sm0.0
movw 1,vw0
movw 2,vw0
这样的代码,按现代的编译器来说,开启智能优化后,第一条写指令肯定会被去掉,但PLC应该是解释执行的,所以还会有两次写操作,但第一次写操作是无法在上位机中监控到的,因为 PLC 的通讯在扫描周期中占有固定的位置而不可能插在用户程序中间,等PLC将vw0发送到上位机时,用户程序执行完毕,VW0 中必然是最后一次写入的值,除非能钻进 V 内存去看,否则是监控不到第一次写操作的。
按些说法,我们在两次与操作中加入一延时,上位机应该也监控不到第一次写操作(这一点我未能测试)
生命存在的方式只有两种:腐烂或燃烧