Решение подошло. Спасибо.
И да, есть нюансы, не всегда очевидные для меня. Пытаюсь с этим разобраться.
Вид для печати
Решение подошло. Спасибо.
И да, есть нюансы, не всегда очевидные для меня. Пытаюсь с этим разобраться.
А вот библиотеки CAA (CoDeSys Automation Alliance) согласно какому документу разработаны? И как это стыкуется с PLCopen?
В CODESYS 3.5 есть библиотека CAA Behavior Model, которая разработана в соответствии стандарту, который мы здесь обсуждаем (или стандарт на ее основе разработан, тут уж история умалчивает).
UPD: меня тут поправляют, что история, таки, не умалчивает, и в основу стандарта PLCopen Compliant Libraries легла библиотека CAA Behavior Model, разработка которой началась еще в 2004 году.
Остальные ФБ группы CAA разработаны с учетом правил, описанных в стандарте (пока что бросается в глаза единственное различие: в стандарте модель называется LCont, а в CBM - LTrig. Но это мелочи).
А нафига вообще, в автоматизации ООП? Для того, чтобы выпендриться? Наибольшая часть задач решается процедурным программированием.
Нафига код усложнять?
В этой теме ООП не обсуждали, если мне память не изменяет.
Обсуждали стандартизацию интерфейсов и переходов между состояниями функциональных блоков т.н. "модели поведения".
Принципы ООП применимы в т.ч. в автоматизации, но это тема для отдельного разговора и развивать ее здесь мы не будем.
я бы еще добавил, а кто навязывает использовать ООП?
Tolya25, выделил Ваше сообщение в отдельную тему http://www.owen.ru/forum/showthread.php?t=29688
Подскажите, пожалуйста. Вопрос по применению "скелета", например ETrig.
Как мне свою логику на CASE "внедрить" в этот скелет?
Просто вставляю обработку своего CASE в CASE BM_EXECUTING ?
Спасибо.
Прочитал описание стандарта.
Однократное - это как? ФБ должен отработать за один цикл? Т.е. свой CASE использовать не получится?Цитата:
Существует два варианта активации ФБ: 1. По фронту (через вход Execute). В этом случае происходит однократное выполнение ФБ, которое в случае отсутствия ошибок завершается сигналом на выходе Done.
Да.Цитата:
Просто вставляю обработку своего CASE в CASE BM_EXECUTING?
Однократное выполнение следует понимать как "ФБ выполнит свою операцию один раз". Т.е. ФБ отправки запроса по протоколу Modbus по переднему фронту на входе xExecute отправит один запрос - а не два, три или бесконечно много.Цитата:
Однократное - это как? ФБ должен отработать за один цикл?
(если только внутренней логикой блока не предусмотрено некое число повторных запросов при отсутствии ответа)
При этом сама операция, которая включает в себя формирование запроса, отправку данных в порт, ожидание ответа, проверку корректности ответа, выделения данных (и возможно еще что-то) - займет несколько циклов ПЛК.