这里无条件调用了sfc51,为什么这样输入,我也试着这样输程序但总显示红色,红色表示错误不是吗
图片说明:
最佳答案
转载:
在实际中发现UC调用FC时可以传递地址,语句的格式是: UC FCx{addr1,addr2,...,addrn}; 这种使用方法只能在STL文本状态下使用,在非文本模式下无法书写,但是可以显示,在非文本下显示的格式是:
UC FCx
addr1
addr2
.
.
.
addrn
有了UC调用FC的传递地址格式,我们还要知道地址和我们FC的参数对应方法: 输入参数 --> 返回参数 --> 输出参数 --> 输入输出参数 .
有了上面的方法,我们可以使用UC来调用带参数的FC了,我们还是以上面的程序为例,在OB1中使用UC调用"FC_DEMO" ,
. //其他程序代码
UC "FC_DEMO" {P#DBX 0.0,P#L 20.0,P#M 0.0};
. //其他程序代码
编译后,在非文本模式下看OB1的代码,
. //其他程序代码
UC "FC_DEMO"
P#DBX 0.0
P#L 20.0
P#M 0.0
. //其他程序代码
我们把程序下载到PLC去执行,他的效果和使用CALL指令的效果是一样的。
提问者对于答案的评价:
谢谢,还能在详细解释一下下面的地址是如何对应的吗,P#DBX0.0等的指针的含义,如果调用SFC51,他们是和SFC51当中的参数一一对应的吗
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc240271.html