关于关键字的定义问题。

已锁定

霜影子

  • 帖子

    1
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2014-03-07

普通 普通 如何晋级?

关于关键字的定义问题。

620

2

2015-03-14 19:16:48

展开查看
引用自找答案,问题ID:124900

我根据帮助手册上的将以下代码输入进去,可是编译的时候提示出现了三个错误,
错误提示1, LIMIT := 7;identifier already exits
错误提示2, sortbuffer : ARRAY [0..LIMIT] OF INT//INVAILID CONSTANT
错误提示3,calcbuffer : ARRAY [0..LIMIT] OF //INVAILID CONSTANT

我在想是不是因为LIMIT是关键字,因为当我把LIMIT改成LIMITE之后,就不再提示错误了。程序如下:

CONST
LIMIT := 7;//为什么一直提示这个是已经定义过的呢,是因为LIMIT是关键字吗?可是我是按照说明手册上的敲的代码呀?
END_CONST

VAR_IN_OUT
sortbuffer : ARRAY [0..LIMIT] OF INT;//这个为什么一直提示非法的常数呢?
END_VAR

VAR_OUTPUT
calcbuffer : ARRAY [0..LIMIT] OF //这个为什么一直提示非法的常数呢?
STRUCT
squareroot:INT;
square :INT;
END_STRUCT;
END_VAR

VAR_TEMP
swap : BOOL;
index,aux : INT;
valr,resultr: REAL;
END_VAR


BEGIN
(******************************************************************************************************************
part1 sorting:According to the "bubble sort" method:Swap pairs of values until the measured value buffer is sorted.
*********************************************************************************************************************)
REPEAT
swap:=FALSE;
FOR index:=LIMIT TO 1 BY -1 DO
IF sortbuffer[index-1]>sortbuffer[index]
THEN aux:=sortbuffer[index];
sortbuffer[index] :=sortbuffer[index-1];
sortbuffer[index-1]:=aux;
swap :=true;
END_IF;
END_FOR;
UNTIL NOT swap
END_REPEAT;
(******************************************************************************************
Part2 calculation:square root with standard function SQRT and squating with SQUARE function
******************************************************************************************)
FOR index:= 0 TO LIMIT BY 1 DO
valr :=INT_TO_REAL(sortbuffer[index]);
resultr:=SQRT(valr);
calcbuffer[index].squareroot:=REAL_TO_INT(resultr);
calcbuffer[index].square:=SQUARE(sortbuffer[index]);
END_FOR;
END_FUNCTION_BLOCK

提问者:霜影子


zhangli0 回答道:

scl中不允许动态定义数组,数组只能直接使用常数定义。
limit是关键字。为了测试你可以随便在后面加上几个字符。


不要迷信书,书也有错误的时候,一切以实际为准。

还有3人在找答案上回答了该问题,查看全部>
我在帮助手册上,看到了这样子的一段程序。
CONST
LIMIT:=7;
END_CONST
还有,我在西门子编程S7-300/400PLC编程-语句表和结构化控制语言描述(第三版)书中也看到了,这样子的定义方法:
VAR_INPUT
MAX:INT;
IN:INT;
MIN:INT;
END_VAR
但是当我将这两段定义的程序输入SCL编程环境中,一直提示Identifier already exists.
编程环境下字体也是显示蓝色的,但是我在保留字符中没看到LIMIT,MAX,MIN这三个是关键字啊,类似的关键字在帮助手册中,我也没找到。
请问这是怎么回事呢?
关于关键字的定义问题。 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

DCS/SIMATIC PCS7

共有4374条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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