恭喜,你发布的帖子
发布于 2016-03-29 12:31:34
17楼
我再引用一下我上面的发言,回复@迷失中原。
<特别是通讯程序。通讯线路周期,通讯程序处理周期,程序扫描周期,中断周期,以上,四个周期基本不可能同步。当某个值你现在读一次,等片刻再读一次,两个值已经是不一样的了。你不留意的话,正好那个值正在被扫描改写了高位字节,低位还没来得及写,然后就被中断读去了。就这样错误的数据格式出现了。但是这个瞬间很难才撞在一起。你基本监视不到的。>
因为我在用td200的时候就已经被这个问题坑过了。我不断的使用不同的测试程序区找这个问题点,(真的是问题点啊,可不是范围喔。程序事实证明,紧紧相邻的两个mov指令从同一个地址传出来的数竟然可以不一样的)。要不你回答我,屏写数据到plc是在哪个时刻?不要以为我这点文字是随便写写的。可以很深很深地解释你的问题。
自那以后。我就特别的留意两个事件之间的同步性。包括通讯口内外的同步。程序功能块内外的同步。中断和主扫描之间的同步。高速程序和低速程序的同步。高速计数器和扫描的同步。modbus_msg指令群和扫描的同步。很多很多同步。
有一个笑话。(大意)他走路被钉子扎脚了,愤怒地把钉子扔到对面马路。结果回家的时候就被这个钉子又扎了。
我们走的路不长,但是重复走的地方很多,钉子不妥善处理,绝对你会又再踩一遍。
请填写推广理由:
分享
只看
楼主