请教一段fc块调用的代码
郑志武
发布于2012-11-16 15:51
2
0
标签:
在一个fb块中,调用一段fc块,其中的代码如下:
fb:
al14.3
jnbm00b
call
bld1
=l15.0
l#in1
tld16
ucfc202
p#m203.0
p#l16.0
bld2
endcall
m00b:nop0
fc:
l#in1
lar1
l#in0
tpqb[ar1,p#1.0]
我的问题是:
1、块调用的形参表达方式,是指针的吗?为什么不直接用(注:fc202的形参in0:byte;in1:dint):
ucfc202
in0:mb203
in1:#in1
2、调用fc块的形参输送,与fc块的内容有无关系?
问题补充:
附图增加了fb、fc的参数传递的类型。
从fc的程序中很容易看出,#in1是作为指针在用(类型为dint),#in0是作为整数数值在用。
在fb的程序中,#in1的类型是dint,装载给ld16,后赋给fc的#in1,也可以理解为用于指针。
但fc的#in0是int的类型,不可能用于指针,因此它的参数传递用p#m203.0表达,我有点理解不了
而且p#m203.0,p#l16.0在用于梯形图中,语法通过不了。
图片说明: 1,fc202 2,fb200 3,fb200 4,fc202
佳答案
那里的程序,fb200好像有问题。
ucfc202
p#m203.0
p#l16.0
块调用不是形参表达方式,是指针,有时用指针方便。可以不用指针,看起来更容易读。
fc202
in0:mb203
in1:#in1
调用fc块的形参输送,与fc块的内容有关系。
p#m203.0,p#l16.0在用于梯形图中,语法通过不了是指针地址中的数据种类不对。