SCL 调用FC105编译出错

已锁定

XINMULAN

  • 帖子

    1
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2010-05-10

普通 普通 如何晋级?

SCL 调用FC105编译出错

1879

2

2011-04-10 11:54:43


FUNCTION_BLOCK FB2

VAR_INPUT // Input Parameters
PIW_IN :INT;
HI_LIM_IN :REAL :=100.0;
LO_LIM_IN :REAL :=0.0;
BIPOLAY_IN :BOOL :=FALSE;
END_VAR

VAR_IN_OUT
// I/O Parameters
END_VAR

VAR_OUTPUT // Output Parameters
SCALED_VAL :REAL;
SCALED_FILTED :REAL;
ERR :BOOL;
END_VAR


VAR_TEMP // Temporary Variables
RET_VAL_105 :WORD;
LOOP_COUNT :INT;
MAX_DATA :REAL;
MIN_DATA :REAL;
TOTAL :REAL;
TOTAL_FILTERD :REAL;
END_VAR

VAR // Static Variables
DATA_STORE :ARRAY[0..9] OF REAL;
END_VAR

// Statement Section //调用FC105
RET_VAL_105 :=SCALE(IN := PIW_IN // 模拟量输入值: INT
,HI_LIM :=HI_LIM_IN // 工程量上限值: REAL
,LO_LIM :=LO_LIM_IN // 工程量下限值
,BIPOLAR :=BIPOLAR_IN // 双极性参数
,OUT :=SCALED_VAL
);

IF RET_VAL_105 <>0 THEN ERR :=TRUE; //判断返回值
ELSE ERR :=FALSE;
END_IF;
MAX_DATA :=DATA_STORE[0]; //初始化DATA_STORE数组
MIN_DATA :=DATA_STORE[0];
TOTAL :=0.0;
TOTAL_FILTERD :=0.0;

FOR LOOP_COUNT :=0 TO 8 BY 1 DO //把监测得到的值加入数组中
DATA_STORE[LOOP_COUNT] :=DATA_STORE[LOOP_COUNT +1];
END_FOR;
DATA_STORE[9] :=SCALED_VAL; //加入新检测值

//查找出数组中最大的和最小值
FOR LOOP_COUNT :=0 TO 9 BY 1 DO
IF MAX_DATA < DATA_STORE[LOOP_COUNT] THEN MAX_DATA :=DATA_STORE[LOOP_COUNT]; //查找最大值
END_IF;

IF MAX_DATA > DATA_STORE[LOOP_COUNT] THEN MIN_DATA :=DATA_STORE[LOOP_COUNT]; //查找最小值
END_IF;
END_FOR;
//计算滤波后累计和
TOTAL_FILTERD :=TOTAL -MIN_DATA -MAX_DATA;
//计算出滤波后的平均值
SCALED_FILTED :=TOTAL_FILTERD /8.0;
END_FUNCTION_BLOCK


编译的时候提示 E:L 00040 C 00021 Non-existent identifier
这个时候错误指向在 ,OUT :=SCALED_VAL这一句
但是我在前面已经声明了 SCALED_VAL :REAL; 并且我在工程中已经加入了FC105。
我初学SCL。还望见谅。
SCL 调用FC105编译出错 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。