Для одной из моих программ мне нужно нормально замкнутое реле с таймированным замыканием (NCTC) в Лестничной диаграмме.Определение обнаружения падения фронта в Codesys
Я не знаю стандартного метода для реализации такого, поэтому я сам пытаюсь построить его. Моему нынешнему подходу требуется обнаружение падения. Код такого детектора, который я нашел в конце книги: «IEC 61131-3: Программирование промышленных Системы» (2-е издание, стр. 327). Похоже, это:
FUNCTION_BLOCK F_TRIG (* falling edge *)
VAR_INPUT
CLK : BOOL;
END_VAR
VAR_OUTPUT
Q : BOOL;
END_VAR
VAR RETAIN
MEM : BOOL := 1; (* initialise edge flag *)
END_VAR
Q := NOT CLK AND NOT MEM; (* recognise falling edge *)
MEM := NOT CLK; (* reset edge flag *)
END_FUNCTION_BLOCK
Который дает мне ровно 5 ошибок (игнорирование сборки неисправного из-за тех, кто):
ОШИБКА 4250: F_TRIG (1): Еще одно заявление 'ST' или конец POU ожидается
ОШИБКА 4250: F_TRIG (4): Другое заявление 'ST' или конец POU ожидается
ОШИБКА 4250: F_TRIG (7): Другое заявление 'ST' или конец POU ожидается
ОШИБКА 4250: F_TRIG (10) : Ожидается другое утверждение «ST» или конец POU
ОШИБКА 4250: F_TRIG (13): Другое заявление «ST» или конец POU ожидается
я правильно настроен тип POU быть функциональный блок и язык POU быть СТ. Я подозреваю, что мой синтаксис ржавый, но я открыт для предложений. Особенно, если я решаю эту проблему во всем неправильном подходе.
Это выглядит хорошо для меня. Что случилось?
Запуск Codesys 2.3.
Точка 3, 'Q' и' MEM' объявлены как 'BOOL'. Похоже, у них будет определенное значение в конце. – Mast
Я вернусь, чтобы подробно рассказать о том, что я делаю, и работало ли ваше предложение. – Mast
Что я пытаюсь сделать, это сборка реле с нормально замкнутым таймером (NCTC). – Mast