发布于 2013-07-16 13:17:49
2楼
1. 你的FUNCTION 内的程序应该放在END_FUNCTION之间
2. 数组没有定义数组名
3. TEMP变量是不能赋初值的
4. 程序开始没用BEGIN
5.很多没有结尾,像END_FOR等等
6.不能用(),改成[ ]
这里是修改后的SCL:
FUNCTION FC8 : VOID
VAR_TEMP
LIMMIT:INT;
index:int;
var1:BYTE ;
var2:BYTE ;
END_VAR
BEGIN
FOR index:= 0 TO 100 BY 1 DO
IF LIMMIT=WORD_TO_INT(mw100)
THEN
DB2.DBD34:= DB4.DBD[4*index];
DB2.DBD54:= DB11.DBW[index*2];
END_IF;
END_FOR;
END_FUNCTION
DATA_BLOCK DB2
//
// Block Comment ...
//
STRUCT
xxx: ARRAY [0..58] OF BYTE;
END_STRUCT
BEGIN
END_DATA_BLOCK
DATA_BLOCK DB4
//
// Block Comment ...
//
STRUCT
yyy: ARRAY [0..6000] OF BYTE;
END_STRUCT
BEGIN
END_DATA_BLOCK
DATA_BLOCK DB11
//
// Block Comment ...
//
STRUCT
zzz:ARRAY [0..3000] OF WORD;
END_STRUCT
BEGIN
END_DATA_BLOCK
Keep calm and carry on!!!