Вестник УКЦ АПИК: Автоматизация систем отопления, вентиляции и кондиционирования воздуха

0
504

Фрагменты учебного курса, часть 2

Журнал «Мир климата» продолжает публикацию фрагментов новой учебной программы Учебно-консультационного центра «УНИВЕРСИТЕТ КЛИМАТА» под названием «Автоматизация систем отопления, вентиляции и кондиционирования воздуха», начатую в № 94.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха Данная программа рассчитана на аудиторию, состоящую из инженеров-проектировщиков систем автоматизации, инженеров-разработчиков комплексных систем управления, инженеров по диспетчеризации и иных специалистов, деятельность которых связана с решением задач автоматизации инженерного оборудования.

При разработке теоретической и практической составляющих курса сделан акцент на прикладных вопросах, касающихся современных систем автоматизации инженерного оборудования:

  • принципы управления: P, I, D и их сочетания;
  • датчики параметров среды и исполнительные устройства;
  • свободно программируемые и параметрические контроллеры;
  • методы и инструменты разработки приложений для свободно программируемых контроллеров;
  • аппаратные и программные средства диспетчеризации.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха В ходе обучения перед слушателями последовательно выстраивается целостная картина принципов работы систем автоматизации и способов их практического воплощения с использованием наиболее продвинутых современных технологий.

Такой подход обеспечивает максимальное вовлечение аудитории в учебный процесс, так как основная масса участников обучения — сотрудники служб эксплуатации девелоперских и инжиниринговых компаний, представители сервисных организаций, которых прежде всего интересует возможность практического применения полученных знаний и опыта.

Свободнопрограммируемые контроллеры

Свободнопрограммируемые контроллеры предназначены для построения нестандартных систем автоматизации и диспетчеризации. Они предоставляют разработчику возможность реализации практически любых алгоритмов управления, и, при необходимости, модификации их в течение жизненного цикла системы автоматизации.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха Отличительными особенностями наиболее современных контроллеров являются:

  • операционная система реального времени;
  • встроенный Ethernet: Modbus TCP master/slave, BACNet B-BC Webserver (HTTP), FTP сервер;
  • встроенный USB-порт;
  • встроенные порты RS485 с расширенными возможностями. Поддержка Modbus®, BACnet™;
  • специализированный чип IO;
  • универсальные входы/выходы U1…U10, каждый из которых может быть сконфигурирован как:
  • АНАЛОГОВЫЙ ВХОД: NTC, PTC, PT100, PT500, PT1000, 0/1V, 0/5V, 0/10V, 0/20mA, 4/20mA,
  • ДИСКРЕТНЫЙ ВХОД: сухой контакт (стандартный или быстродействующий),
  • АНАЛОГОВЫЙ ВЫХОД: 0/10V или ШИМ;
  • повышенная разрешающая способность АЦП — 14  ит;
  • увеличенная нагрузочная способность SSR24В выходов, добавлены модели с SSR220В;
  • расширенный диапазон рабочих температур (–40…+70°С для моделей без дисплея).

Средства разработки приложений

Автоматизация систем отопления, вентиляции и кондиционирования воздуха Фундаментальное отличие наиболее современных свободнопрограммируемых контроллеров от предыдущих поколений такого рода устройств — использование в качестве программного ядра операционной системы реального времени (ОСРВ) вместо BIOS.

В случае с BIOS программный код выполняется последовательно, при необходимости отрабатывая запросы на прерывания, во время выполнения которых основной программный цикл останавливается.

Достоинством ОСРВ по сравнению с системой на основе BIOS является многозадачность и, как следствие:

  • уменьшенное время программного цикла (в среднем с 1 секунды до 200 миллисекунд);
  • уменьшенное время загрузки системы при запуске (в среднем с 50 секунд до 10 секунд);
  • модульная структура программных компонентов, что позволяет легко модифицировать систему, добавляя, удаляя или меняя компоненты, но не ядро;
  • независимость модулей системы, обеспечивающая ее отказоустойчивость.

Наиболее характерным примером современной среды разработки является CAREL c.Suite, имеющая следующие достоинства:

  • представляет собой набор независимых приложений, каждое из которых предназначено для реализации определенного этапа в процессе разработки программы для контроллера;
  • реализована поддержка стандартных типов данных (в том числе 32-битовых целых, с плавающей точкой и других);
  • возможно использование стандартных языков программирования ST, FBD, LD, SFC в соответствии с IEC61131 с возможностью произвольного их комбинирования;
  • интегрирована поддержка различных коммуникационных протоколов (Modbus, BACnet, FTP и др.), в том числе нестандартных.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха Разработка приложений в среде c.Suite может производиться как одним универсальным разработчиком, так и распределенной командой инженеров, каждый из которых отвечает за определенную часть проекта, используя при этом соответствующий компонент пакета c.Suite:

  • c.Strategy — служит для описания функциональной составляющей работы установки и предназначен для использования специалистом в технологии вентиляции/кондиционирования/отопления/охлаждения;
  • c.Mask — используется для разработки пользовательских интерфейсов и рассчитан на использование промышленным дизайнером и специалистом в эргономике;
  • c.Design — предназначен для конфигурирования физических входов/выходов контроллера, а также коммуникационных интерфейсов и должен использоваться инженером-проектировщиком щитов автоматики;
  • c.Factory — утилита, предназначенная для загрузки готового приложения в контроллер. Загрузка может производиться через интерфейсы USB, Ethernet или с помощью стандартного USB-накопителя, на который предварительно записывается готовый файл приложения. Указанная утилита рассчитана на использование специалистами сборочного производства щитов автоматики и не требует от них специальных знаний.

Такой подход позволяет привлекать к каждому из этапов разработки приложения соответствующих узкопрофильных специалистов, что в итоге ведет к снижению требований к их квалификации и, как следствие, сокращает бюджет проекта.

В этой публикации мы подробно остановимся на двух первых приложения c.Strategy и c.Mask.

c.Strategy

Процесс разработки стратегии в c.Strategy полностью отвязан от аппаратной части контроллера, что позволяет создавать кроссплатформенные приложения, а также использовать однажды отлаженную логику в различных конфигурациях контроллеров.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

В приложении могут быть в любом порядке использованы элементы стратегии, созданные на стандартных языках ST, FBD, SFC и Ladder в соответствии с IEC61131.

Кроме того, пользователь имеет возможность создавать свои собственные функции, оформляя их в виде независимых библиотечных компонентов.

Разработчик имеет возможность отлаживать приложение как в программном симуляторе, так и в реальном контроллере, наблюдая в c.Strategy значения переменных, поступающие из контроллера, подключенного к среде разработки через порт USB или Ethernet.

c.Suite поддерживает стандартные типы данных (табл. 1).

Табл. 1(*) поддерживается только в c. Strategy

Тип данных Описание Размер Нижний предел Верхний предел
USINT Unsigned Shot Integer 8 0 255
SINT Short Integer 8 -128 127
UINT Unsigned Integer 16 0 65535
INT Integer 16 -32768 32767
UDINT Unsigned Double Integer 32 0 4294967295
DINT Double Integer 32 -2147483648 2147483647
TIME (*) Time 32 0 49d17h2m47s294ms
DATE (*) Date 32 1970-01-01 2038-01-18
BOOL Boolean 1
BYTE Byte 8 0 255
WORD Word 16 0 65535
DWORD Double Word 32 0 4294967295
REAL Real 32 ±1.175494351E-38 ±3.402823466E+38
STRING String

Разработка приложения в c.Strategy начинается с создания проекта.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

При выборе места расположения проекта не рекомендуется использовать кириллицу в именах папок и файлов проекта.

Проект может быть создан пустым или на основе шаблона, включающего в себя ряд готовых функций:

  • контроль и сброс тревог;
  • ведение лога тревог;
  • отслеживание факта перезапуска контроллера, например если пропадает питание;
  • управление версиями проекта;
  • задержка запуска приложения при подаче питания на контроллер для предотвращения фиксации неустановившихся значений на физических входах контроллера;
  • экспорт списка тревог в виде файла формата CSV;
  • управление включением/выключением установки по сигналам с дискретного входа, из системы BMS, с встроенного пользовательского интерфейса и т. д.;
  • подсчет времени наработки;
  • экспорт/импорт параметров.

Структура проекта представлена в окне Solution Explorer:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Для использования тех или иных библиотечных функций в раздел Dependencies следует добавить соответствующие библиотеки, прежде всего — CAREL_BASIC_LIB.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Результат:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

А также иные пользовательские или стандартные библиотеки, доступные в разделе c.Suite портала ksa.carel.com

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Например, для использования готового PID-регулятора в раздел Dependencies следует добавить библиотеку PID_Adv_2_1.0.0.otlib

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Результат:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

…и так далее.

Для добавления элементов программы следует выбрать один из четырех доступных языков:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

После выбора FBD главное окно c.Strategy примет вид:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Для использования того или иного библиотечного элемента следует вставить его на свободное место.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Окно библиотеки:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Блоки можно отфильтровать по первым символам названия.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

После выбора функционального блока он появится на странице стратегии.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Аналогичным образом вводятся переменные.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

После нажатия левой кнопки мыши появится окно, где следует ввести имя создаваемой переменной и нажать Add.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Далее следует указать свойства переменной.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

DataType — тип данных, соответствует назначению переменной. Для аналоговой величины, которая может иметь дробные значения, логично использовать тип REAL. Кроме того, необходимо, чтобы тип данных переменной совпадал с типом данных входа функционального блока, к которому подключается переменная, в противном случае на этапе компилирования проекта будет выдано сообщение об ошибке.

Min и Max — минимальное и максимальное значения выбранной переменной. Используются прежде всего в пользовательском интерфейсе для ограничения возможных изменений параметра.

Retain — крайне важное свойство, при выборе которого переменная будет храниться в энергонезависимой памяти контроллера. Следует помнить, что ресурс энергонезависимой памяти современных микроконтроллеров не бесконечен и ограничен в среднем 200–400 тысячами циклов записи, после чего ячейка памяти может перестать корректно работать. Следовательно, в памяти типа RETAIN следует хранить только те переменные, которые меняются относительно редко.

IO — при выборе данного свойства переменная будет доступна для привязывания к физическим входам/выходам контроллера.

Protocol — при выборе данного свойства переменная будет доступна для передачи в коммуникационные интерфейсы систем диспетчеризации или взаимодействия с полевыми устройствами.

UI — при выборе данного свойства переменная будет доступна для вывода на экран встроенного пользовательского интерфейса контроллера или на внешний дисплей типа pGD1.

DEV — свойство предназначено для установки значения по умолчанию для переменной, хранящейся в памяти типа Retain.

LOG — при выборе данного свойства переменная будет доступна для автоматической записи в архив, расположенный в энергонезависимой памяти контроллера.

UoM — единица измерения — необязательный параметр.

Comment — комментарий, можно использовать кириллицу.

Таким образом, для переменной, в которой будет храниться требуемое значение параметра (уставка), свойства могут выглядеть следующим образом:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

После нажатия OK символическое обозначение переменной появится на поле проекта.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Далее следует подключить переменную к соответствующему входу функционального блока.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Аналогичным образом добавим другие необходимые переменные.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Обратите внимание, что переменную, которая может непрерывно меняться, мы храним в оперативной памяти контроллера, то есть параметр Retain не установлен!

Подключим новую переменную на соответствующий ее назначению вход функционального блока.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Похожим образом добавим константы. Здесь работает то же правило, что и для переменных: тип данных должен соответствовать типу данных входа функционального блока, к которому мы подключаем переменную или константу.

Для выполнения этого правила следует соблюдать формат записи констант:

  • тип Real — должна иметь десятичную точку;
  • тип Integer и его варианты — не должны иметь десятичной точки;
  • тип Boolean —должна иметь значение True или False;
  • Тип Time — должна иметь формат T#ххххMS, где хххх — время в миллисекундах. Допускается также указание времени в секундах и другие варианты в соответствии со стандартом.

Таким образом, константу типа Real следует создавать так:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

После чего ее следует подключить к входу функционального блока аналогично переменной.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Аналогичным образом добавим недостающие константы и переменные.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Теперь мы полностью оформили стратегию, содержащую один PID-регулятор.

Добавим еще одну страницу в проект, выбрав на этот раз язык программирования ST.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Появится окно для ввода команд в соответствии с синтаксисом языка ST.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Для примера решим следующую задачу: будем считать, что значение текущей температуры поступает в контроллер от датчика, подключенного через последовательный интерфейс по протоколу Modbus. Часто такие устройства передают аналоговые величины в виде целых, умноженных на 10, то есть, например, величина 23.5 передается как 235.

Создадим соответствующую переменную.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

В окне программы на ST введем следующую команду:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Данная команда сначала преобразует значение целой переменной Current_Temperature_BMS в формат Real, после чего производится ее деление на 10 и результат записывается в переменную Current_Temperature, которая далее поступает на вход PID-регулятора на ранее созданной FBD-странице.

Для упорядочивания элементов проекта пользователь имеет возможность переименовывать программные элементы и менять их последовательность в Solution Explorer.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Полученный проект может быть откомпилирован, для чего следует выбрать в меню соответствующий пункт.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

В случае отсутствия ошибок в окне Output появится следующее сообщение:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

На этом работа в c.Strategy может быть временно закончена, можно перейти к созданию пользовательского интерфейса в компоненте c.Mask.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

c.Mask

c.Mask используется для определения вида отображения информации на встроенном в контроллер пользовательском терминале или на внешнем дисплее типа pGD1.

Переменные, созданные в c.Strategy, доступны в c.Mask, так обеспечивается связь между логикой работы приложения и отображением информации на дисплее.

Запуск c.Mask возможен как независимо от c.Strategy, так и непосредственно из меню редактора стратегии.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

В результате откроется c.Mask с проектом, который был открыт в c.Strategy.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Одно из основных понятий c.Mask — цикл масок, Loop. Маски, входящие в цикл, то есть соединенные между собой связью и подключенные к объекту Loop, получают следующий встроенный функционал:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

  • при нажатии кнопок «ВВЕРХ» или «ВНИЗ» на пользовательском терминале происходит переход на маску, находящуюся в цикле выше или соответственно ниже текущей;
  • при нажатии кнопки «ENTER» на какой-либо маске происходит переход курсора на ближайшее поле, в котором находится переменная, которая может быть записана, то есть не Read Only;
  • при нахождении курсора в поле с переменной при нажатии кнопок «ВВЕРХ» или «ВНИЗ» происходит изменение значения выбранной переменной; при нажатии кнопки «ENTER» при нахождении курсора в поле переменной происходит запись текущего значения переменной и автоматический переход на следующее ближайшее поле с переменной не Read Only.

Все объекты интерфейса имеют свойства, причем они различны для проекта в целом, для конкретной маски и для конкретного поля на маске.

Например, если кликнуть мышью на пустом месте окна проекта, свойства будут выглядеть следующим образом:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Где, например, свойство BeginFromMask определяет маску, которая будет отображаться первой при запуске контроллера.

Свойства маски выглядят так:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Например, для использования кириллицы в пользовательском интерфейсе необходимо установить в свойстве Font значение CAREL_TERM_EAST. При этом если выполнить это действие в свойствах проекта, все объекты на листе (маски, текстовые поля и так далее) получат по умолчанию также свойство CAREL_TERM_EAST в поле Font.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Однако при необходимости можно установить это свойство на уровне маски, не меняя его на уровне проекта — в этом случае по умолчанию будет использоваться CAREL_TERM_STD.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Для вывода на экран значения той или иной переменной следует «вытащить» из Toolbox объект Variable и «уронить» его на выбранную маску.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Появится окно выбора переменных, в котором следует выбрать нужную. В данном окне также имеется поле фильтра, позволяющее отсеять переменные, начинающиеся с определенных символов.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

После выбора переменной на маске появится соответствующее поле:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Поля с переменными на масках отображаются символами:

  • RRR — для переменных типа Real;
  • III — для переменных типа Integer;
  • B — для переменных типа Boolean.

Заглавными символами обозначаются поля переменных, которые могут быть записаны, то есть не Read Only, а строчными — соответственно Read Only.

Количество символов обозначает количество цифр, с помощью которого будет отображаться переменная.

Поведение переменной можно менять с помощью полей свойств.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Например, при необходимости переменная может быть принудительно заблокирована от изменения с пользовательского интерфейса путем установки свойства Format в Output.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Соответственно поле переменной при этом изменится.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Аналогично из Toolbox перетаскивается на маску объект Text:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Для редактирования содержимого поля Text следует кликнуть по нему — появится окно для ввода текста.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Введите текст:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

После нажатия Ok соответствующий текст появится на маске.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Аналогичным образом добавим переменную Temperature_Setpoint и поле с текстом «Уставка»:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Для изменения масштаба отображения информации на экране в 2 раза можно воспользоваться свойством маски ZoomCode — появится окно, в котором можно интерактивно выбрать строки экрана, в которых масштаб будет увеличен.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Результат:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

При необходимости каждый из объектов можно подвинуть в нужное место на экране.

Для добавления масок в цикл следует перетащить соответствующий объект из Toolbox на поле проекта.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Как и все другие объекты, маски и циклы можно переименовывать для повышения читаемости проекта.

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

Действуя по уже известной схеме, добавляем на новую маску поле с переменной PID_Output и соответствующий текст:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

После этого проект можно откомпилировать. При отсутствии ошибок в окне Output появится сообщение:

Автоматизация систем отопления, вентиляции и кондиционирования воздуха

В следующем номере журнала мы продолжим публикацию фрагментов нового учебного курса по автоматизации, входящего в программу обучения в Учебно-консультационном центре «УНИВЕРСИТЕТ КЛИМАТА».