СТА 4/2017

105 СТА 4/2017 www.cta.ru В ЗАПИСНУЮ КНИЖК У ИНЖЕ Н Е РА вентилятор, располагаемый в конкретной приточно-вытяжной установке. Таким образом, в случае если у нас имеется несколь- ко приточных установок с количествомN вентиляторов, то для каждого из них в программе создаётся свой объект (рис. 3). Рассмотрим создание классов в среде CODESYS V3. Для опи- сания используемых в классах методов и свойств используются так называемые интерфейсы (Interface, рис. 4). Понятие интер- фейса схоже с функциональным блоком, но в отличие от по- следнего интерфейс не имеет реализации и объявления локаль- ных переменных. Класс вентиляторов будет иметь одно свойство – статус Status (рис. 5). И для управления статусом используются два метода: запросить состояние (GetStatus) и установить состоя- ние (SetStatus). Для управления вентилятором будет исполь- зоваться интерфейс с именем Work, который имеет два мето- да: включение (Start) и выключение (Stop). Каждый метод имеет возвращаемый тип данных. Для воз- вращения состояния вентилятора и управления его работой используется тип данных BOOL (рис. 6). Для получения и установки статуса вентилятора мето- дом SetStatus необходимо в область входных переменных VAR_INPUT добавить переменную iStatus типа BOOL, которая будет получать и устанавливать состояние работы вентилятора. После создания интерфейсов можно переходить непосред- ственно к созданию класса объектов. Для этого используется программная единица POU (Program Organization Unit) – функциональный блок (FB, Function Block). Во второй реализации стандарта МЭК 61131-3 функцио- нальный блок использовался в качестве умного определяемо- го пользователем типа [8]. FB объединял фрагмент програм- мы с данными, которые необходимы для выполнения этого кода, и позволял использовать его много раз (создавать эк- земпляры). В третьей версии стандарта МЭК существовавшая ранее концепция функционального блока была расширена методами, свойствами и поддержкой наследования классов, что позволяет использовать FB в качестве класса [9]. Итак, на базе FB создаётся класс вентиляторов Fan, кото- рый имеет свойства и методы, реализованные в интерфейсах Status и Work (рис. 7). Поля «Язык реализации метода» и «Язык реализации» поз- воляют выбрать языки стандарта МЭК, на которых будут реа- лизованы методы и сам класс (или FB). После добавления функционального блока мы имеем соз- данный класс, в котором присутствуют описанные нами ин- Промышленный вентилятор Свойство Метод Статус Включён Выключен Управление Включить Выключить Рис. 2. Структурная схема класса, описывающего промышленные вентиляторы Вентилятор 1 Свойство Метод Статус: включён Управление: включить Объект 1 Вентилятор 2 Свойство Метод Статус: включён Управление: включить Объект 2 Вентилятор N Свойство Метод Статус: включён Управление: включить Объект N … Промышленный вентилятор Свойство Метод Статус Включён Выключен Управление Включить Выключить Рис. 3. N объектов (экземпляров), относящихся к классу вентиляторов Рис. 4. Создание интерфейса класса Рис. 5. Интерфейсы, определяющие работу класса Рис. 6. Реализация метода SetStatus, имеющего возвращаемый тип BOOL Рис. 7. Поле Implements позволяет добавлять интерфейсы, реализованные в данном классе

RkJQdWJsaXNoZXIy MTQ4NjUy