S7 200中如何 重复执行 读参数和写参数。
因为每次只能执行一个读写参数指令,而且可能在一个扫描周期内还完不成。
问题补充:
DONE位好像不行,我试过了,用DONE的位去启动另外一个READ_PM时,第一个READ_PM的返回值为NAN。
最佳答案
使用Done位是正确的。但是要注意:
1、每一个功能块的Done位要分别定义。
2、Done位是在调用后才置零,完成后置一。如果你用步序写应该隔开一条(单独用一条判断Done)
3、确保每次只调用一个功能块。
提问者对于答案的评价:
2楼和3楼的方案都是用DONE位,我开始时用DONE位直接启动下一条参数读写指令,但是调试运行时发现,done位置1启动后面参数读写指令后,前面一条读写指令会在下一扫描周期内又启动,所以不会成功。用2楼的方式理论上是可以得,但我没这么做。我觉得还是在主程序里做一个状态位好。每个参数设置一条启动状态位,第一条指令启动并完成后,用其DONE位启动下一条指令并在下一条指令启动程序中关闭其余读写指令的启动状态位,以此类推。这样永远只有一条指令在执行。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc359317.html