VAR_Constant 在 FXCPU / GXWorks2 中的 Case 结构中
VAR_Constant in Case structure in FXCPU / GXWorks2
我在 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;
我在第一行的 Step0
上得到了一个简单的 Parse error
。如果我将 Step0
替换为 0
,它将完美运行。 iCount
和 Step0
都是有符号字。
有什么想法吗?
编辑
手册中的相关引用:
Data types that can be used in of CASE
conditional statement The data types that can be specified as the
in the CASE conditional statement are the integer
type (INT) and double precision integer type (DINT). The word devices
and word type or double word type labels can be specified.
我认为这意味着我实际上可以使用 WORD 数据类型(是 INT)。
作为选择器,尝试使用枚举类型而不是变量:
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;
我在 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;
我在第一行的 Step0
上得到了一个简单的 Parse error
。如果我将 Step0
替换为 0
,它将完美运行。 iCount
和 Step0
都是有符号字。
有什么想法吗?
编辑
手册中的相关引用:
Data types that can be used in of CASE conditional statement The data types that can be specified as the in the CASE conditional statement are the integer type (INT) and double precision integer type (DINT). The word devices and word type or double word type labels can be specified.
我认为这意味着我实际上可以使用 WORD 数据类型(是 INT)。
作为选择器,尝试使用枚举类型而不是变量:
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;