广州正菱|三菱
当前位置:首页 >> 技术支持 >> FB编译出错FX1S 使用 GX WORKS2 1.77F版,用ST编程
FB编译出错FX1S 使用 GX WORKS2 1.77F版,用ST编程  时间:2013/9/3 6:55:00
FX1S 使用 GX WORKS2 1.77F版,用ST编程。
FB1程序:CC:=AA+BB;
FB1标签定义:
VAR_INPOT AA Word[Signed]
VAR_INPOT BB Word[Signed]
VAR CC Word[Signed]


POU_01程序:VAR1:=FB1_1(AA:= 15 ,BB:=16 );
POU_01标签定义:
VAR VAR1 Word[Signed]
VAR FB_1 FB1
FB1登录后,编译显示“使用了未定义的标签AA”
标签都定义了,创建了这么简单的FB程序还报错?错误在哪里?
(FB1创建、登录正常)
Re:续:FB编译出错FX1S 使用 GX WORKS2 1.77F版,用ST编程  时间:2013/9/3 22:43:00
我是想把它定义为函数,改为如下程序后,编译通过,可是调用FUN1,最后VAR1=0,为什么?
建立FUN1数据时,返回值类型为: Word[Signed]

FUN1: VAR_INPOT AA Word[Signed]
VAR_INPOT BB Word[Signed]
VAR CC Word[Signed]
POU_01程序:VAR1:=FUN1(AA:= 15 ,BB:=16 );
POU_01标签定义:
VAR VAR1 Word[Signed]
编译,在线仿真时VAR1=0,难道函数FUN不能有返回值,可以GX WORKS2自带的函数可以有返回值。定义成函数错在哪里?
Re:Re:续:FB编译出错FX1S 使用 GX WORKS2 1.77F版,用ST编程  时间:2013/9/4 1:07:00
CC的类型应该设置为VAR_OUTPUT。
FB1登录后,应该写FB1_1(AA:= 15 ,BB:= 16 ,CC:= VAR1 );

Re:Re:Re:续:FB编译出错FX1S 使用 GX WORKS2 1.77F版,用ST编程  时间:2013/9/4 5:55:00
用函数的话,函数中写FUN1:=AA+BB;
POU_01程序写VAR1:=FUN1( 15 ,16 );

Re:Re:Re:Re:续:FB编译出错FX1S 使用 GX WORKS2 1.77F版,用ST编程  时间:2013/9/4 8:19:00
你好,FUN1中程序为
IF MX THEN
FUN1:=AA+BB;
ELSE
FUN1:=AA-BB;
END_IF;
POU1中程序为:
VAR1:=15;VAR2:=51;
VAR3:=FUN1( VAR1 , VAR2 ,M0 );
运行正常,那么请问如何定义才能和 GX WORKS2中的函数形式一致,即把参数M0作为第一个参数,格式为FUN1(?BOOL_MX?, ?INT_AA? , ?INT_BB?);。(目前的格式为FUN1( ?INT_AA? , ?INT_BB? , ?BOOL_MX? );)
Re:Re:Re:Re:Re:续:FB编译出错FX1S 使用 GX WORKS2 1.77F版,用ST编程  时间:2013/9/4 13:07:00
在函数的局部标签中,把MX建在第一行即可形成 FUN1(?BOOL_MX?, ?INT_AA? , ?INT_BB?);的格式。

相关问题
相关下载