Фрагменты учебного курса, часть 3
Журнал «Мир климата» продолжает публикацию фрагментов новой учебной программы ДПО Учебно-консультационного центра «УНИВЕРСИТЕТ КЛИМАТА» под названием «Автоматизация систем отопления, вентиляции и кондиционирования воздуха».
В прошлом номере мы подробно остановились на работе с приложениями c.Strategy и c.Mask, являющимися частью современной среды разработки CAREL c.Suite.
Сегодня речь пойдет о работе с ещеё двумя приложениями среды CAREL c.Suite., такими как c.Design и c.Factory.
c.Design
c.Design представляет собой инструмент для:
- связывания логики и переменных стратегии с физическими входами/выходами контроллера;
- определения способов передачи данных между контроллером и внешними устройствами посредством коммуникационных интерфейсов;
- установки значений по умолчанию для переменных, хранящихся в энергонезависимой памяти;
- конфигурирования ведения журнала переменных.
Запуск c.Design возможен как независимо, так и непосредственно из меню редактора стратегии или редактора масок.
После запуска появится окно, в котором необходимо ввести имя конфигурации.
Под конфигурацией понимается набор свойств аппаратной части контроллера, с которым в данный момент предполагается связать проект.
Важно, что пользователь имеет возможность создать множество различных конфигураций для одного и того же проекта, что позволяет максимально гибко использовать различные версии контроллеров с одним и тем же приложением.
Указав имя конфигурации, следует выбрать подсемейство контроллера:
В результате появится окно вида:
В поле Description можно ввести комментарий, упрощающий в дальнейшем выбор той или иной конфигурации.
После нажатия Next появится окно, в котором, прежде всего, следует выбрать конкретный типоразмер контроллера.
После этого следует перейти к конфигурированию. Начать можно с любого пункта, например, I/O Editor, который предназначен для связывания физических входов и выходов контроллера с переменными проекта.
Для конфигурирования режимов работы того или иного канала ввода-вывода следует кликнуть по нему мышкой, появится окно свойств канала.
В поле Variable следует указать переменную проекта, которая будет связана с каналом.
Обратите внимание, что в этом списке присутствуют только те переменные, которые были отмечены как доступные для привязывания к каналам ввода-вывода на этапе их создания. При необходимости изменить этот перечень следует вернуться в c.Strategy и поставить соответствующие отметки в окне редактирования переменных.
Поле Channel Direction отражает фундаментально важное свойство контроллеров c.pCO — возможность конфигурирования универсальных каналов как:
- аналоговый вход;
- аналоговый выход;
- дискретный вход.
Кроме того, имеется возможность связывания режима работы входа с определенной переменной, что позволит менять режим работы входа прямо во время работы программы, делая контроллер предельно гибким и универсальным.
Универсальность также распространяется на свойство Channel Type, например, в режиме аналогового входа канал поддерживает множество характеристик сигналов.
Для примера предлагается:
- связать с каналом U1 переменную PID_Output;
- установить режим канала в аналоговый выход;
- тип сигнала —
0-10 В.
В итоге получим такой результат:
Аналогичным образом пользователь может настроить каждый из каналов.
Обратите внимание, что набор доступных каналов ввода-вывода отличается для различных конфигураций контроллеров, что находит свое отражение на изображении контроллера в окне c.Design.
Вернемся в главное окно:
И выберем следующий компонент — Protocol Editor.
Protocol Editor предназначен для конфигурирования коммуникационных возможностей контроллера.
Здесь основным понятием является «Линия» -— набор переменных, передаваемых или принимаемых извне по какому-либо коммуникационному протоколу.
В настоящее время для контроллеров c.pCO доступны следующие встроенные протоколы:
- Carel Slave;
- Carel Master;
- Modbus RTU Slave;
- Modbus RTU Master;
- Modbus TCP Slave;
- Modbus TCP Master;
- Bacnet MSTP Server;
- Bacnet MSTP Client;
- Bacnet IP Server;
- Bacnet IP Client;
- SNMP.
Для примера создадим линию для связи с датчиком температуры, имеющим порт RS485 с протоколом Modbus. В номенклатуре продукции Carel такие датчики имеются в канальном, настенном и уличном исполнениях.
Создав линию, следует выбрать протокол Modbus Master, назвать линию удобным образом и кликнуть по символу линии. Откроется окно:
Прежде всего, следует ввести перечень ведомых устройств, к которым наша программа будет обращаться по шине RS485.
В нашем случае устройство — одно, его адрес по умолчанию — 128.
Если устройств больше, то все их необходимо добавить. Если они одинаковые, имеется возможность «клонировать» уже готовое устройство.
Далее, кликнув по строке устройства, получаем окно ввода переменных:
На этом этапе следует обратиться к документации на устройство и определить адреса тех переменных, которые мы намерены читать из устройства или записывать в него.
Поскольку нас интересует температура, значит необходимо читать Input Register с адресом 5.
Добавляем регистр:
Связываем его с переменной в нашем проекте.
Устанавливаем необходимый тип регистра.
Готово:
Обратите внимание, что в правой части окна конфигурирования линии имеется столбец Read/Write Mode, состояние которого определяет логику обращения к данному регистру устройства.
Для периодического чтения переменной без записи выбираем ReadPoll — NoWrite.
Линия готова:
Теперь необходимо привязать переменную к определенному физическому коммуникационному каналу. В нашем случае —это порт RS485 FieldBus.
Связывание производится «перетаскиванием» символа линии на изображение соответствующего порта.
Аналогично можно создать и привязать линии к другим портам, причем к порту Ethernet можно привязать сразу несколько протоколов, так как данный канал это позволяет, например, на порте Ethernet могут одновременно работать протоколы Modbus Slave и Modbus Master.
Для настройки параметров коммуникационного канала, следует кликнуть по его изображению на контроллере, откроется окно, в котором можно указать необходимую скорость передачи данных, количество битов и так далее.
Следующий раздел — DEV Editor — предназначен для задания значений по умолчанию для переменных, хранящихся в памяти типа Retain.
Например, удобно задать требуемое значение температуры (уставку), равное 23.0, чтобы при первом запуске контроллера, данный параметр сразу имел осмысленное значение, а не 0.
Вернемся на главный экран:
И откроем LOG Editor.
Лог — это набор переменных, которые будут автоматически записываться в энергонезависимую память контроллера с определенным квантом времени и в течение определенного времени. Обратите внимание, что буфер лога — циклический, т.е. его размер заранее определен.
Количество различных логов ограничено только объемом доступной памяти, которая составляет 4 МБ.
Создадим новый лог.
Установим режим лога — периодический.
Щелчок по строке лога открывает окно его свойств.
Установим квант времени и глубину лога.
После чего этого на вкладке Log Variable Settings отметим переменные, которые мы намерены включить в данный лог.
Результат:
Обратите внимание, что объем памяти, выделенный под лог с указанными параметрами, составляет 49.2 КБ.
После выполнения указанных действий, возвращаемся на главный экран. Поскольку все необходимые параметры установлены, можно загрузить приложение в контроллер, для чего следует нажать кнопку Upload to Device.
Откроется окно следующего компонента среды разработки — c.Factory.
c.Factory
c.Factory предназначен для загрузки откомпилированных приложений в контроллеры и может быть независимо установлен на компьютере сотрудников сборочного производства. Доступ к файлам проекта при этом может осуществляться по локальной сети или через Интернет.
В зависимости от используемого канала связи с контроллером, возможна загрузка через:
- Ethernet;
- USB-порт;
- Сс помощью файла формата .ap1, загружаемого в контроллер через USB-порт, FTP-сервер или с помощью USB-накопителя.
Выберем вариант Ethernet, в этом случае, при наличии контроллера в локальной сети, его IP-адрес автоматически определится и появится в соответствующем поле:
Аналогично, при подключении по USB, в соответствующем поле следует выбрать адрес виртуального COM-порта, соответствующего контроллеру.
Нажатие кнопки Upload запускает процесс загрузки контроллера, как в варианте Ethernet.
Так и USB-подключения:
При отсутствии возможности физического подключения контроллера по Ethernet или USB, можно воспользоваться процедурой создания установочного файла формата ap1. При этом, установочный файл может содержать не только само приложение, но и обновление операционной системы и файлы web-интерфейса контроллера.
Нажав кнопку Export, указываем место для сохранения файла.
Готово:
Web-интерфейс контроллера
Контроллеры c.pCO, оснащенные портом Ethernet, предоставляют возможность использования встроенного web-интерфейса, который может состоять, как из готовых страниц, разработанных производителем контроллера, так и из пользовательских страниц.
Подключившись к контроллеру по его IP-адресу, на вкладке PGD увидим следующее изображение:
На данной странице отображается точно та же информация, что и на дисплее, встроенном в контроллер, или даже если встроенного дисплея нет, но приложение содержит пользовательский интерфейс.
Как можно видеть, разработанное нами приложение отображаетм ровно то, что нам и требовалось.
При наличии корректно подключенного датчика, данные из него читаются, пересчитываются в REAL-формат и отображаются в поле под строкой «Температура».
Уставка имеет установленное нами значение 23.0.
Нажатием кнопок «ВВЕРХ» или «ВНИЗ» переходим на страницу, где отображается значение на выходе PID регулятора:
При необходимости, меняем значение уставки:
Для просмотра текущих значений параметров контроллера в графическом виде, переходим на страницу LOGGER, вкладку Live и запускаем процесс чтения данных кнопкой «Воспроизведение».
Содержимое лога считывается на вкладке Datalogger путем нажатия кнопки Load Log Data.
В одном из следующих номеров мы продолжим публиковать фрагменты новой учебной программы по автоматизации Учебно-консультационного центра «УНИВЕРСИТЕТ КЛИМАТА».