SFC问题更新

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

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

相关推荐