如何在方法中定义枚举器?

How can define enumerator in Methods?

method 中定义 enum 时出现问题。

我正在尝试这样做:

VAR
    enumA:(A,B,C);
END_VAR

当我在 TwinCAT3 Shell (TcXaeShell) 中使用它时,编译器会做出反应。

如有任何帮助,我们将不胜感激。

您只能在方法中使用全局枚举。这是本地枚举的限制之一。

https://alltwincat.com/2021/11/16/local-enumerations/

你应该先在DUT中定义变量类型为枚举

TYPE MyEnum:
    (A, B, C)
END_TYPE

然后在程序中你可以声明那个类型的变量

VAR
    enum: MyEnum;
END_VAR

如果你想比较的话,在程序里面。

IF enum = MyEnum.C THEN
    // Do something
END_IF;

我之前 运行 处理过这个问题。您必须在 功能块 的变量部分声明局部枚举。然后就可以在功能块的methods中使用了。