介绍
使用以下程序代码可确定参数类型(BLOCK_FC, BLOCK_FB, TIMER or COUNTER)的编号。n
例1 :FB 块
FB1 变量声明中定义了“ Timer” 类型的变量“ Time_1” ,在 FB2 中调用 FB1,将定时器“T5”传递给变量“ Time_1”。如图 01 所示程序代码中数值 5 表示“T5”。n
图.01n
例 2 FC
FC1 变量声明中定义了“ Timer” 类型的变量“ Time_1” ,在 FC2 中调用 FC1,将定时器“T8”传递给变量“ Time_1”。如图 02 所示程序代码中数值 8 表示“T8”。n
图. 02n
在使用多重实例时,需要在图 01 所示程序中增加以下代码:n
TAR2 //多重实例偏移地址
LAR1 P##Time_1
+AR1 //多重实例偏移地址与当前地址相加
L W[AR1,P#0.0]
T MW00n
“BLOCK_DB”类型参数在调用 FC 时不可以直接传送给 FC 。如果在调用功能时试图使用此参数类型,将产生如下的错误消息:n
“非法的参数传输<参数名>”
“BLOCK_DB”类型参数仅在 FB 被调用(从一个 FB 或 FC 中)时可被传送。n
“BLOCK_DB”类型参数不可以在 FC 被调用(从一个 FB 或 FC 中)时可被传送。相关详细信息可参考 STEP7 在线帮助中“合法的传输参数类型”。n
然而,如果希望将 BLOCK_DB 参数类型传送给 FC, DB 块的编号可以通过基本数据类型(例如 WORD)传送。n
在下面的例子中,FB100 拥有一个“BLOCK_DB” 的输入参数类型。为了在调用 FC101 时将参数传送给它,“BLOCK_DB”中的 DB 块编号被传送给 WORD 临时变量(DB_No)。当 FC 被调用,数据块序号以一个 WORD 参数类型替代 BLOCK_DB 参数类型。n
图. 03
如果 FB 的接口参数能被定义成 WORD 参数类型来传送 DB 块编号,当 FC 被调用时,此参数可以被直接传送给 FC。
图. 04
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc333450.html