L 0
T #TMP_FillValue
CALL "FILL"
BVAL :=#FillValue
RET_VAL:=#RetVal
BLK:="DB_output".Data //P#DB14.DBX0.0
这是原程序,没有给出字节的数量。BYTE
我见过有给字节数量的。现在没给该是什么意思?
最佳答案
SFC FILL的功能你应该了解了,
关于ANY参数类型,你可以参考下STEP7的帮助,ANY意味着任何合乎规则的类型。
ANY 一般的以P#DB100.DBX0.0 BYTE100.
这种经典格式赋实参。
但也可以是DB100.DBW100啊,也可以是MD100.它们就相当于P#DB100.DBX100.0 WORD 1和P#M100.0 DRWID 1嘛,因为DBW100就是一个字,MD100就是一个双字。
当然也是是复杂数据类型啊。比如你的问题中的"DB_output".Data 这个data 它就是个复杂数据类型啊,它可以是数组,也可以是UDT,也可以数STRUCT等等。
在调用SFC21时,操作系统会自动分析它,并把它 拆分成P#DBxxx.Dbx x.y byte xxx的,
比如你的"DB_output".Data 中DATA在DB-OUTPUT数据块中的偏移地址是100,DATA这个复杂数据类型是100个BOOL位的数组
那么"DB_output".Data
就相对与P#DBxxx.DBX100.0 Bool 100.
至于多少BYTE是有你"DB_output"数据块中的Data 的数据类型包含了多少BYTE决定的,CPU会自动分析它的。
说了这么多希望你明白了。
提问者对于答案的评价:
谢谢
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc229482.html