PDA

Просмотр полной версии : Глюк SEL с перечислениями?



razv
01.02.2024, 13:35
Здравствуйте
Столкнулся с непонятным поведением оператора SEL.
На входах - две константы типа Event перечисления (ENUM), на выходе - функция с входной переменной типа Event этого же перечисления.
Codesys в предкомпиляции пишет ошибку "[ERROR] SEL error: Test [Device: Plc Logic: Application](Элемент 0 (Реализ.)): C0358: 'Test__ImpVar__11' - неподходящее значение для типа ENUM 'Event'"
73234

При этом если на вход функции подать просто константу перечисления Event то все ок
73235

Точно так же есть результат SEL записывать просто в переменную типа перечисления Event то же все ок
73236

И где тут собака порылась? Или я что то делаю не правильно?
Проект во вложении, если кому интересно

razv
01.02.2024, 13:45
Решил проблему костылем. После SEL записываю в переменную, а потом подаю эту переменную на вход функции
73238

Евгений Кислов
01.02.2024, 13:54
Если у ENUM убрать {attribute 'strict'} - то ошибки не будет.
Это старый баг, который, к сожалению, снова проявился в относительно свежих версиях.

razv
01.02.2024, 14:00
Спасибо помогло.
А что означает {attribute 'strict'}? Чтобы знать что я теряю

Евгений Кислов
01.02.2024, 14:02
Спасибо помогло.
А что означает {attribute 'strict'}? Чтобы знать что я теряю

https://ftp.owen.ru/CoDeSys3/98_Books/CodesysMemoryManipulation.pdf
стр. 19