我在GX Works 2(学习绳索)中遇到了一个奇怪的问题......
我正在尝试创建一个具有几种不同状态的简单状态机。但我确实想为每个状态使用变量名称,但无法使其工作。
Step0
是一个代表0
的变量常量,这是我的代码:
CASE iCount OF
Step0:
Test := "Step 0";
1:
Test := "Step 1";
2:
Test := "Step 2";
3:
iCount := -1;
ELSE
Test := "Default case";
END_CASE;
iCount := iCount + 1;
我在第一行的Parse error
上得到一个简单的Step0
。如果我用Step0
替换0
,它可以完美无缺地运行。 iCount
和Step0
都是签名字。
有什么想法吗?
手册中的相关引用:
可以在CASE中使用的数据类型 条件语句可以指定为的条件数据类型 在CASE条件语句中是整数 type(INT)和double precision integer type(DINT)。设备这个词 可以指定单词类型或双字类型标签。
我认为这意味着我可以使用WORD数据类型(是一个INT)。
答案 0 :(得分:1)
作为选择器,尝试使用枚举类型而不是变量:
TYPE
STEP: (STEP_0, STEP_1, STEP_2, STEP_3);
END_TYPE
CASE iCount OF
STEP_0:
Test := "Step 0";
STEP_1:
Test := "Step 1";
STEP_2:
Test := "Step 2";
STEP_3:
iCount := -1;
ELSE
Test := "Default case";
END_CASE;
iCount := iCount + 1;