关于S7300数据传递的编程思路

目前手头有个项目关系到数据传递的问题,三菱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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月16日 上午11:28
下一篇 2017年11月16日 上午11:28

相关推荐