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,它将完美运行。 iCountStep0 都是有符号字。

有什么想法吗?

编辑

手册中的相关引用:

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;