解释一段SCL程序

FUNCTION FC100 : VOID
VAR_IN_OUT
    N_out : INT;
    out : POINTER;
END_VAR
VAR_TEMP
    ret : INT;
END_VAR
BEGIN
    // ...
    ret := SFC79(N := N_out, SA := out);
    // ...
END_FUNCTION

FUNCTION_BLOCK FB100
VAR
    ii : INT;
    aa : ARRAY[1..1000] OF REAL;
END_VAR

BEGIN
    // ...
    FC100( N_out := ii, out := aa);
    // ...
END_FUNCTION_BLOCK


最好给解释一下每行的意思,及作用,有什么逻辑关系。谢谢,

最佳答案

这两段分别定义了一个功能FC100和一个功能块FB100。
FUNCTION FC*
。。。
END_FUNCTION
是定义功能的模板,FC100:VOID表示该功能没有返回值。以VAR为开始的部分是说明程序中要用到的变量。IN_OUT是输入输出变量,TEMP是临时变量。每种变量的说明都是以END_VAR结束。从BEGIN开始,中间的部分就是程序命令行,直到END_FUNCITON结束。//开始的是注释。你这段代码中调用了系统功能SFC79,括号里的是SFC79的参数(3个)。
FUNCTION_BLOCK FB*
。。。
END_FUNCTION_BLOCK
是定义功能块的模板。VAR后面没有参数表示说明的是静态变量,aa是一个1000个实数元素的数组。BEGIN开始的程序命令行调用了刚才定义的功能FC100,括号里是FC100的管脚参数(2个)。

提问者对于答案的评价:
十分感谢,很详细

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午1:53
下一篇 2020年11月1日 下午1:53

相关推荐