目前手头有个项目关系到数据传递的问题,三菱PLC用DSFR,或则DSFL传递指令可以实现功能,但西门子的移位指令用法好像不一样,用MOVE指令容易出现数据传递错误。
要求如下:
三菱的PLC实现的功能是,有5个等距离工位,每当输送带前进一个工位编码器计数值到达,输送带停止,停止的下降沿触发数据传递,1工位玻璃数据传递到2工位,2工位传到3工位,3工位到4工位,4工位到5工位,三菱的DSFR指令可以完美解决,但是西门子用MOVE指令容易出问题,请高手指点下如何进行字传送,比如触发一次就讲数据1工位MW2的数据依次传递,由MW2----MW4---MW6----MW8---MW10,同时MW2自动清空,等待填充条件。
最佳答案
用块拷贝功能块SFC20实现你的要求最简单,你要做的就是把MW2-MW8区域(8个字节)的数据拷贝到MW4-MW10区域,然后清零MW2:
CALL SFC 20
SRCBLK :=P#M 2.0 BYTE 8
RET_VAL:=MW20
DSTBLK :=P#M 100.0 BYTE 8//因为源和目的区域有重叠,可以用另一个临时区域缓存一下
CALL SFC 20
SRCBLK :=P#M 100.0 BYTE 8
RET_VAL:=MW20
DSTBLK :=P#M 4.0 BYTE 8
L 0
T MW 2
提问者对于答案的评价:
谢谢,还是用FIFO比较好
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc212752.html