SFC引脚含义

CALL   "FILL"                      SFC21  初始化存储区
BVAL  :=#FillValue                //    什么意思?
RET_VAL:=#RetVal              //返回值吧?     返回什么呢?
BLK:="DB_XX"               P#DB14.DBX0.0       //块?
注释内容是我的疑问。另外,SFC是如何初始化的?能给个例子最好了。
求点资料吧,SFC引脚功能的,各个SFC名称的资料已找到。
谢谢!!!

问题补充:
L 0
T #FillValue

CALL   "FILL"                      SFC21  初始化存储区
BVAL  :=#FillValue                //    
RET_VAL:=#RetVal              //返回值,只返回故障值,没有故障不返回值, 是吗?
BLK:="DB_XX"               P#DB14.DBX0.0       //没写多少个字节,就表示DB14的所有字节,是吗?

这段程序是将DB14内的数据置0,是吗?


感谢你们的指点。

最佳答案

1:按下,F1出来的帮助文件就是最好的资料。
2:CALL   "FILL"                      
BVAL  :=#FillValue                //   
RET_VAL:=#RetVal              //    
BLK:= P#DB14.DBX0.0    BYTE 100
FillValue 应该是个临时变量,类型是ANY。
你程序中应该有对此区域进行分析的语句。
BLK类型也是ANY,P#DB14.DBX0.0 BYTE100代表着 存取区域是DB14.DBX0.0开始的100个字节的存储区。

个人建议你 好好看看STEP7的帮助 ,说明的已经很详细了。    
最后,在看看 STEP7里的 POINTER 和ANY类型的 说明,打开STEP7软件,然后 搜索POINTER 就行。可以看看POINTER 和ANY类型的结构。

SFC21是用一个存取的值,赋值给 另外一个存取区,指令执行情况有一个返回值,返回值,含义在SFC21帮助里面说明的很清楚了。 
参考 论里的文章
http://www.ad.siemens.com.cn/club/bbs/wap/ReadPost.aspx?aid=871122
根据你的情况 的确是清零某个存储区域。
但是可以将任何值或者存储区域的值填充到BLK所指向的存储区里,你的问题中就是 DB14的一个存储区域里。
另外BLK 怎么可能是"DB_XX"               P#DB14.DBX0.0‘’ ?,这叫什么格式?要么是P#DB14.DBX0.0 BYTE/WORD/REAL/DWORD 100,之类的格式,要不是DB14.XXX。XXX可以是 任何类型,也可以是UDT。

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

专家置评

已阅,最佳答案正确。

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

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

相关推荐