FUNCTION FC11 : INT
VAR_INPUT
barcode1:STRING[5];
barcode2:STRING[5];
END_VAR
VAR_temp
x1:INT;
x2:INT;
END_VAR
BEGIN
x1:=STRING_TO_INT(barcode1);//编译不成功处
x2:=STRING_TO_INT(barcode2);
IF x1<>0 AND x2<>0 AND x1<>x2 THEN
CASE x1 of
92:
FC11:=8;
07:
FC11:=1;
62:
FC11:=2;
ELSE
FC11:=0;
END_CASE;
END_IF;
END_FUNCTION
E:illegal parament assignment 编译错误。
请问怎么处理,谢谢大家。用SCL
最佳答案
FC或FB的I/O区域中复杂数据类型变量实际上是一个指针,所以要用临时变量转一下
改成下面这样就可以了
FUNCTION FC11 : INT
VAR_INPUT
barcode1:STRING[5];
barcode2:STRING[5];
END_VAR
VAR_temp
x1:INT;
x2:INT;
bt1:STRING[5];
bt2:STRING[5];
END_VAR
BEGIN
bt1 := barcode1;
bt2 := barcode2;
x1:=STRING_TO_INT(bt1);//编译不成功处
x2:=STRING_TO_INT(bt2);
IF x1<>0 AND x2<>0 AND x1<>x2 THEN
CASE x1 of
92:
FC11:=8;
07:
FC11:=1;
62:
FC11:=2;
ELSE
FC11:=0;
END_CASE;
END_IF;
END_FUNCTION
提问者对于答案的评价:
谢谢,编译通过了。但还有些不太明白的地方?
1.FC中的输入定义为复杂数据类型的话,不能在块中直接使用。请问什么为复杂数据类型?
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc235241.html