恭喜,你发布的帖子
发布于 2023-07-05 23:30:51
64楼
每个从站之间,每个从站内部各个任务之间,可以空一个扫描周期。如下图
各个设备FB的代码,在同一个扫描周期之内,是有先后执行顺序的。
在当前扫描周期内,当某个设备的通信执行权发生转移的时候。
如果下一个设备的代码是位于它后面,那么下一个设备需要主动空出当前周期,等到下一周期再开始通信。
如果下一个设备的代码是位于它前面,那么下一个设备就不需要这样做。因为下一个设备的通信,必定是只能开始于下一扫描周期。
这需要每个获得执行权的设备,知道自己与上一个执行设备,在扫描周期中的前后位置。怎么才能知道呢?
设备代码的扫描顺序,是由它们被调用的位置次序决定的。
在调用的地方,为每个设备自动依次分配12345的先后序号并传入实例内部。
当前设备把自己的扫描序号,与上一个执行设备的扫描序号对比一下,就清楚彼此的前后顺序了。
因此,上一个获得485执行权的设备的扫描序号,是个公共变量。
请填写推广理由:
分享
只看
楼主