如何同时将多个不连续的类似DB1.DBX0.0,DB4.DBX1.2…中的值送给外部数字输出地址

如何同时将多个不连续的类似DB1.DBX0.0,DB4.DBX1.2...中的值送给外部数字输出地址,如何读取外部地址中的值送给类似DB1.DBX0.0,DB4.DBX1.2中
现在的发送指令类似于 A DB1.DBX0.0,
= Q 16.0;A DB4.DBX1.2,= Q 16.1...(8条A和=),读取指令是 A I 21.0,= DB9.DBX4.2,这样对吗?

问题补充:
同时在多个网络用到A DB1.DBX0.0,A DB4.DBX1.2...这样做,会不会使得数据都堆积到了A指令以后的累加器当中,如果使用L DB1.DBX0.0, T Q 16.0代替A DB1.DBX0.0, = Q 16.0,A和=指令与L和T指令在这里有什么区别吗?A以后数据去哪了,L以后数据去哪了?

最佳答案

由于地址不连续,不适合集中传送。
你写的这样比较合适。

补充你新的问题:
A指令等位指令执行的结果是影响 RLO。=指令,你可以理解为把RLO的结果赋值给线圈。
而L指令是将值装载进累加器,L指令是不允许装载位的,所以L DB1.DBX0.0是不被允许的。
同一时刻,也只存在一个RLO和累加器1,它们的值被改变,但没有额外存储,所以不存在堆积的问题。
注意的是,L指令的含义是:“在将 累加器1 的原有内容保存到 累加器 2 中,并将 累加器 1 复位到“ 0 ”后, L  < 地址 > 会将被寻址的字节、字或双字装载到 累加器 1 中。”

提问者对于答案的评价:
谢谢!我同时写了8条A和=,这8条指令负责传递DB中的一位到外部输出地址,他们会同时执行的吗?

最佳答案作者回复:
程序是从上往下执行。由于程序执行结束才将输出过程映像区输出到模块,对于外部输出而言,相当于同时输出。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc177919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月24日 下午4:15
下一篇 2017年6月24日

相关推荐