Как Вы, возможно, знаете PLCOpen разработали документ Creating PLCopen Compliant Libraries, в котором описаны стандартные интерфейсы и поведения функциональных блоков разработанных на языках стандарта МЭК-61131 (всем нам знакомые FBD, CFC, ST и т.д.).
Не так давно этот документ был переведен на русский язык (доступен по ссылке).
В стандарте приведены примеры для всех "моделей поведения", но их использование в проекте затруднено т.к. все примеры приведены в виде картинок и текст придется перенабирать вручную.
В этой теме я буду постепенно выкладывать исходный код ФБ (на языке ST) тех моделей поведения, которые использовал в работе.
Так Вы сможете просто
- скопировать перечисление, содержащее состояния ФБ в Ваш проект;
- скопировать "скелет" ФБ;
- доработать "скелет" ФБ в соответствии с Вашей задачей (места, которые необходимо доработать под задачу выделил комментариями (* TODO: *)).
без необходимости перевводить код ФБ вручную.
Если Вы использовали модель поведения, которой еще нет в теме - присылайте исходный код, я добавлю его в тему.
Итак:
перечисление, содержащее все состояния ФБ:
ETrig
- Старт по переднему фронту;
- Нет возможности прерывания до окончания работы блока;
- Нет ограничения по времени цикла;
- Нет ограничения по времени выполнения.
Исходный код:
ETrigA
- Старт по переднему фронту;
- Есть возможность прерывания до окончания работы блока;
- Нет ограничения по времени цикла;
- Нет ограничения по времени выполнения.
Исходный код:
P.S. Не смотря на то, что в теме указано "Модели поведения в CODESYS 2.3". Этот же исходный код будет работать и в CODESYS 3.5.
Заготовка оформления: