通过SFC21FILL数据块清零,
比如DB1有100个字节:
SET
L0
T#TEMP6///临时变量,数据类型DINT
SET
CALL"FILL"///SFC21
BVAL:=#TEMP6
RET_VAL:=#TEMP1///返回值,临时变量,数据类型INT
BLK:=P#DB1.DBX0.0BYTE100
但是如DB1有200个字节:P#DB1.DBX0.0BYTE200,RET_VAL:=#TEMP1报错-31965。
哪位能给讲讲。
谢谢!
ASs='html_titleimg_p' STyle='text-align:CEnter;'>
最佳答案
-31965转换为16进制为8323,表示写入参数时发生范围长度错误,可能你定义的db1块的长度还是原来的100个字节,而不是新的200个字节,改成200字节后应该没有问题。也就是DB1块里面需要定义50个dint类型的数据。
另外,你赋值是以字节来赋,而#temp6是dint类型,因此,在处理时需要注意数据块里面数据的类型,否则会出现一些问题。
提问者对于答案的评价:
怪不得,谢谢