Приветствую уважаемые Друзья, читатели, коллеги. С вами на связи Гридин Семен. Пришла пора разбираться с расширениями ФБ в Codesys. Принципы наследования работают и в этой среде.
А связке с Дракон++ - это один из важных факторов.
Если есть вопросы пишите в ТГ-канале "Ты же инженер АСУ ТП".
Расширение ФБ
Расширение позволяет, в дополнение к стандартным элементам
(переменным), таким как:
- VAR_INPUT
- VAR_OUTPUT
- VAR_IN_OUT
- VAR
Какие бывают расширения ФБ?
- Действия - Action
- Методы - Methods
- Свойства - Properties
- Переходы - Transition
Расширение ФБ основано на концепте наследственности объектно-
ориентированного программирования. Один ФБ, расширяя другой ФБ,
передает ему свои элементы в дополнение к собственным элементам блока.
Наследуемый ФБ содержит доступ ко всем элементам родительского
ФБ. Можно использовать базовый ФБ в любом контексте, где
подразумевается использование любого ФБ.
Наследуемый ФБ может перезаписывать элементы, определенные в
родительском ФБ. Это значит, что можно переопределить метод,
действие, свойство с одноименным названием, входными и выходными
переменными, как это определено в родительском блоке.
Метод (METHOD)
Метод создается внутри ФБ, интерфейса или программы.
Методы имеют свои собственные локальные переменные.
Методы могут также иметь VAR_INPUT, VAR_OUTPUT, VAR и VAR_IN_OUT. Хотя
методы автоматически имеют доступ ко всем внутренним, входным и выходным переменным родительского POU.
Методы могут возвращать значение, как это делают функции.
Обращение к методу функционального блока.
Действия (ACTION)
Действия создаются внутри ФБ или программы. Они подобны функциям или методам, с той разницей, что не имеют собственной области определения входных и выходных параметров.
Действия имеют доступ и могут манипулировать переменными базового POU (ФБ или программа)
Как выглядит действие.
Вызов действия.
Свойство (PROPERTY)
Свойства создается внутри ФБ, интерфейса, или программы, это
расширение стандарта МЭК 61131-3 для ООП. Свойства используются для
инкапсуляции данных, потому что к ним можно получить доступ удаленно и
одновременно они служат фильтрами. Для этого у свойств есть методы доступа Get и Set, которые разрешают доступ на запись и чтение свойств
экземпляра POU.
Небольшая прослойка между данными в функциональном блоке и внешними данными, где проходит предварительная проверка этих данных либо преобразование. Если вы никогда не проверяли данные на валидность, то свойства обычно этому учат.
Является по своей сути функцией, которая переписывает операцию присваивания в зависимости от расположения.
Свойство можно добавить не только в ФБ, программу или список глобальных
переменных, но и в интерфейс. Конечно, в интерфейсе не может быть
реализации Get и Set, а только определение имени свойства и уровня доступа:
Переход (TRANSITION)
Переход не является частью ООП, а просто возможным расширением
программы.
Переход используется для обозначения выполнения шагов в программе по типу STEP в SFC или в операторе CASE. То есть в каждом цикле выполняется программы в текущем шаге, потом попадаем на условия TRANSITION и переходим к следующему шагу программы.
На этом останавливаюсь. Всем пока-пока.