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