恭喜,你发布的帖子
发布于 2016-09-02 17:39:02
40楼
楼主你基本不懂通讯周期和扫描周期。
这个问题我在没有开售22x plc的时候就已经通过自己撞墙碰壁理解到了。
plc扫描是一种周期,屏对plc寄存器的更新又是另外一种过程另外一种周期。这话实在是太简单了。太好理解了。你有感应到吗?
拿plc主动通讯来说,对外写一个数据需要n个扫描周期,发送完成的时刻点需要中断资源来唤醒plc对这个事件进行反应。在任何扫描到某个地方都有可能发生中断。在看看通讯线的另外一头那个啥,假设都是plc吧。被人家这么一写数据,数据什么时刻点更新了?
请楼主回答。
请楼主回答。
请楼主回答。
就连主动plc都不晓得自己什么时候可以发送完毕,你一个从站什么能耐可以知道数据什么时候让人家写完啊?
生活经验告诉我:我老婆晚上大概10点洗衣服,我要是可以在这个时间之前洗澡换衣服了,那么这衣服就可以一起洗了。要是我错过了这个时间换衣服,我到了12点(一天结束了)的时候问老婆,你为什么还不洗衣服啊?老婆却说我洗衣机都在脱水了,你说我洗衣服了没有?但是我却明明指着我的臭衣服说你看,我的衣服还放在这里,你哪有洗衣服啊。
我老婆到底洗衣服了没有?
请楼主回答。
请楼主回答。
请楼主回答。
很简单的道理,为什么plc的输出点输入点要经过输入输出映像区缓冲输出,目的就是防止同一个plc扫描周期里面出现两种不同逻辑的现象,也就是楼主你言之凿凿的现象。
不单是通讯有这个现象。1毫秒的计时器当前值有这个现象,高速计数器当前值有这个现象,22x plc任何用户寄存器都可以在一个扫描周期里面任意变化。
你程序在多个地方使用了一个这样的寄存器,而这个寄存器就是由一个不确定时序的通讯过程确定的,而你梦然完全毫不知情,没做任何缓冲措施,技术不精,做不出东西怪西风大?
我这回帖,对于楼主来说,值10000.7元。那7毛钱是电费和宽带通讯费。
我觉得由于通信引起的问题还是很有可能的,有可能是通信的数据直接刷新了内存值,楼主你可以检查下 有没有关于V204.0的通信 还有有没有中断程序来干扰
请填写推广理由:
分享
只看
楼主