在Twincat 3中获取枚举的字符串值

问题描述

在Twincat 3中,我有一个像这样的枚举:

TYPE ENUM_FUNCTIONS :
(
EMPTY                       :=0,MOTOR_SPEED_INPUT_1         :=1,MOTOR_SPEED_INPUT_2         :=2,MAIN_SHAFT_SPEED_MONITOR_3  :=3,MAIN_SHAFT_SPEED_MONITOR_1  :=4,MAIN_SHAFT_SPEED_MONITOR_2  :=5
);
END_TYPE

有什么方法可以获取枚举的字符串值?

例如,使用 ENUM_FUNCTIONS [5] 并获得值 MAIN_SHAFT_SPEED_MONITOR_2

谢谢。

解决方法

是的。请参阅here的操作方法(仅自 TwinCAT 3.1.4024.x CODESYS 3.5.14.0 起可用)

TL; DR ,简而言之,请使用 Enum to_string函数上的TO_STRING属性来获取字符串:

{attribute 'to_string'}
TYPE ENUM_FUNCTIONS :
...
END_TYPE

myEnum: ENUM_FUNCTIONS;
str: STRING := TO_STRING(myEnum);