L0
T#TMP_FillValue
ASs='html_titleimg_p' STyle='text-align:CEnter;'>57d380a2fb2e9814f7148874b55c5ed0
CALL"FILL"
BVAL:=#FillValue
RET_VAL:=#RetVal
BLK:="DB_ouTPut".Data//P#DB14.DBX0.0
这是原程序,没有给出字节的数量。BYTE
我见过有给字节数量的。现在没给该是什么意思?
最佳答案
SFCFILL的功能你应该了解了,
关于ANY参数类型,你可以参考下STEP7的帮助,ANY意味着任何合乎规则的类型。
ANY一般的以P#DB100.DBX0.0BYTE100.
这种经典格式赋实参。
但也可以是DB100.DBW100啊,也可以是MD100.它们就相当于P#DB100.DBX100.0WORD1和P#M100.0DRWID1嘛,因为DBW100就是一个字,MD100就是一个双字。
当然也是是复杂数据类型啊。比如你的问题中的"DB_output".Data这个data它就是个复杂数据类型啊,它可以是数组,也可以是UDT,也可以数STRUCT等等。
在调用SFC21时,操作系统会自动分析它,并把它拆分成P#DBxxx.Dbxx.ybytexxx的,
比如你的"DB_output".Data中DATA在DB-OUTPUT数据块中的偏移地址是100,DATA这个复杂数据类型是100个BOOL位的数组
那么"DB_output".Data
就相对与P#DBxxx.DBX100.0Bool100.
至于多少BYTE是有你"DB_output"数据块中的Data的数据类型包含了多少BYTE决定的,CPU会自动分析它的。
说了这么多希望你明白了。
提问者对于答案的评价:
谢谢
专家置评
已阅,最佳答案正确。