西门子SIEMENS 中央处理器CPU,6ES7314-1AG14-0AB0
使用UC/CC指令时,FC/FB不能有任命接口参数,FB也不能有背景数据块。在STEP7中,使用UC/CC调用FC/FB是不区分的,一视同仁。在PORTAL中,还要激活“通过寄存器传递参数“并且要取消使用块优化访问方式。
于是,分别在STEP 7和PORTAL中进行了测试。
在STEP 7中测试,FC/FB都能使用UC指令正常调用 ,如下图
图4
在PORTAL中测试,UC指令调用FC时,PORTAL会自动转换成CALL指令,但是FB就会报错,并且在FB的属性中也找不到“通过寄存器传递参数“这个选项。如下图:
图5
图5.1
这就奇怪了,资料上明明写了激活“通过寄存器传递参数“并且要取消使用块优化访问,难道还有哪里设置不对。在无意间,打开了FC5的属性,奇迹发生了,这个功能居然有参数选项,别的块为什么会没有呢?于是仔细的对比了一翻,发现了端倪。原来有参数选项的块,编程语言是用的STL,其它没有参数选项的块,用的是LAD编程语言。
为了证实这一点,于是做了如下测试:
1. FC/FB编程语言都是LAD,结果
-FC/FB的属性中没有参数选项
-UC调用FC会自动转换为CALL指令调用
-UC调用FB会出错
-CC调用指令同上