为了证实这一点,于是做了如下测试:
1. FC/FB编程语言都是LAD,结果
-FC/FB的属性中没有参数选项
-UC调用FC会自动转换为CALL指令调用
-UC调用FB会出错
-CC调用指令同上
图6
2. FC/FB编程语言都是STL,结果
-FC/FB的属性中有参数选项,取消块优化访问方式后,才能激活“通过寄存器传递参数“
-UC正常调用FC
-UC正常调用FB
-CC指令同上
图7
其它编程语言SCL/FBD/GRAPH测试结果与LAD相同,这里不再描述。
最后结论:
在STEP7中,无论使用哪程序编程语言,只要不带有接口参数的FC/FB,都可以使用UC/CC指令调用
在PORTAL中,被调用的FC在不激活“通过寄存器传递参数“选项时,使用UC/CC指令,块会自动转换为CALL指令。FB块会出错。
PORTAL中用UC/CC指令调用 FC/FB块,编程语言必须是STL,且不能带用接口参数,在FC/FB的块属性中,要取消块优化访问方式,激活“通过寄存器传递参数“选项后,才能使用UC/CC指令。