SFC21 清零问题

通过SFC21 FILL数据块清零,
比如DB1有100个字节:
   SET   
      L     0
      T     #TEMP6   ///临时变量,数据类型DINT
      SET   
      CALL  "FILL"                ///SFC21
       BVAL   :=#TEMP6
       RET_VAL:=#TEMP1  ///返回值,临时变量,数据类型INT
       BLK    :=P#DB1.DBX0.0 BYTE 100
 
但是如DB1有200个字节:P#DB1.DBX0.0 BYTE 200, RET_VAL:=#TEMP1  报错-31965。
哪位能给讲讲。
谢谢!

最佳答案

-31965转换为16进制为8323,表示写入参数时发生范围长度错误,可能你定义的db1块的长度还是原来的100个字节,而不是新的200个字节,改成200字节后应该没有问题。也就是DB1块里面需要定义50个dint 类型的数据。
另外,你赋值是以字节来赋,而#temp6是dint类型,因此,在处理时需要注意数据块里面数据的类型,否则会出现一些问题。

提问者对于答案的评价:
怪不得,谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午9:47
下一篇 2018年12月1日 下午9:47

相关推荐