Здравствуйте, дорогие подписчики и гости канала!
Введение
При проектировании автоматики котельных бывают ситуации, когда штатных портов ввода/вывода на контроллере Zont не хватает. Можно использовать блоки расширения типа Z-88, а можно попробовать использовать модули ввода/вывода сторонних производителей. Сегодня будем изучать подключение AMIDJ14 6AI-4DO-4DO к Zont 1000 +Pro (версия платы 722, версия прошивки 607).
Все файлы, которые будут упомянуты в этой статье, можно будет скачать по ссылке cнизу статьи
Модуль ввода вывода AMIDJ14 6AI-4DO-4DO
Производитель модуля - китайская компания Eletechsup. Страница модуля на сайте производителя тут. Купить модуль можно либо тут, либо тут
Модуль подозрительно похож на модуль ADAM от Advantech.
AMIDJ14 крепится на DIN рейку. У него 4 цифровых (сухой контакт) входа, 4 цифровых выхода (типа открытый коллектор, рекомендую использовать промежуточные реле) и 6 аналоговых входов (0-20мА либо 4-20мА)
Питание модуля от 7 до 25 вольт. Стандартный блок питания, идущий в комплекте с Зонтом, подходит.
Подключение цифровых входов осуществляется между DIX и GND.
Подключение цифровых выходов осуществляется между DOX и VCC
На аналоговый вход подключается токовая петля (0-20мА)
Модуль надо предварительно настроить при помощи программы Modbus Pull
На скриншоте видны входы и выходы и соответствующие им регистры. Подробнее остановимся на регистре DI-DO relation, где хранятся настройки взаимодействия между цифровыми входами и выходами
0 - DI и DO работают вне зависимости друг от друга (по умолчанию)
1 - Режим Триггер. При появлении сигнала на DI на DO тоже появляется сигнал. При исчезновении сигнала на DI, DO продолжает быть активен. Чтобы сбросить DO надо еще раз подать сигнал на DI. Пример использования - Сработал датчик дыма - Включилась сигнализация - Все исправили - Чтобы выключить сигнализацию нажали кнопку, привязанную к этому же входу.
2 - Защелка. При появлении сигнала на DI на DO тоже появляется сигнал. При исчезновении сигнала на DI, DO продолжает быть активен. Чтобы сбросить DO надо подать сигнал на другой DI (DI1 включает DO1. DI2 выключает DO1, но при этом включает DO2. Как в принципе сбросить DO? Только выключением) Для чего нужен этот режим я пока не придумал - пишите в комментариях
3 - Сигнал по переднему фронту. При появлении сигнала на DI, на DO тоже появляется сигнал, но через 1 секунду исчезает. При этом DI продолжает быть активным. Пример использования - На конвейере лазерный луч пересекла канистра - Счетчик канистр увеличился на одну единицу
4 - Защелка на 2 канала. Принцип действия такой же как во 2-м случае, но могут защелкнутся 2 канала DO. Зачем - пишите в комментариях
5 - Локальное управление. DI жестко связано с DO. Есть сигнал на DI значит есть сигнал на DO. Но команда по Modbus RTU имеет приоритет. Если на DI есть сигнал, но пришла команда выключить DO, то DO выключится и будет ждать повторного сигнала от DI. Пример использования - нужно включать/выключать насос как с локального пульта около насоса, так и из диспетчерской.
Настраивается модуль через программу Modbus Poll.
Подключение к ZONT 1000+ Pro v2
Модуль подключается к контроллеру Zont 1000+ Pro v2 по интерфейсу RS485. На Зонте 2 версии это нижние клеммы. Верхние используются для периферии самого Зонта. Питание можно взять со штатного блока питания Зонта.
Далее надо настроить Зонт на работу с ModBus
В качестве справочной системы для настройки модуля и Зонта я использовал блокнот Notebook LM (я писал о нем тут).
Далее настроим регистры.
DI1-DI4 Адрес начинается с 0. DI2 адрес будет 1 и так далее. Разрядность 1 бит так как это бинарный регистр (вкл/выкл). Количество переменных которые мы читаем за один раз - одна переменная. Период повторения переменных - ноль, т.к. в регистре содержится одна переменная, если бы регистр был типа int16, то в нем могло бы хранится более одной переменной и надо было бы указать период. Смещение от начала 0, собственно в этом регистре хранится всего один бит. Функция чтения регистра Dicrete Input (2), читаем битовый регистр. Делитель ставим 1 (т.е. не делим) и тип доступа - чтение, так как это входной регистр.
Адреса начинаются не с 0, а с 1. Функцию регистра ставим Coil (1/5). Тип сигнала Дискретные выходы. Тип доступа Запись, ведь это дискретный выход, поэтому и функция регистра другая. Остальное оставляем как в DI
Тут все интереснее. Это регистр типа word, а не coil как было раньше. Адресация начинается с адреса 160. Функция Holding register (3/6) Разрядность 8 бит, так как регистр типа word. Тип сигнала float Mid-LitEnd(CDAB). Это называется запись в формате Little-Big Endian. Что нам по этому поводу скажет NoteBook LM?
Разница между Big-Endian и Little-Endian в системах ZONT заключается в порядке следования байтов или слов при передаче многобайтовых данных (например, чисел формата int16, int32 или float32) по протоколу Modbus.
На основе предоставленных источников можно выделить следующие ключевые отличия и особенности:
Суть различий
• Big-Endian (прямой порядок байтов): Старший байт передается первым, а младший — вторым. В документации к устройствам (например, счетчикам Wirenboard) это часто описывается как естественный порядок.
• Little-Endian (обратный порядок байтов): Младший байт передается первым. В ZONT этот формат иногда встречается при передаче контрольных сумм CRC-16 или в специфических настройках некоторых датчиков.
Для модуля AMIDJ14 надо выбрать обратный порядок. Зонт сам поделит значение в регистре на 256 и результат будет воспринимать как вольтаж на этом порту. Отмечу, что хоть модуль AMIDJ14 предназначен для токовых датчиков, Зонт считает, что в регистре хранится вольтаж. Это важно для таблицы пересчета.
Тип доступа будет чтение так как это аналоговый вход
Теперь, когда мы добавили все регистры в Зонт, можно приступить к созданию датчиков и исполнительных устройств.
Для датчиков на базе дискретного входа надо выбрать тип сенсора "нормально замкнутый". При обмене данными между модулем и зонтом есть задержка до 30 секунд, это надо учитывать.
Теперь создадим датчик давления
Выбираем тип сенсора "Аналоговый вход"
Затем надо заполнить таблицу пересчета. Я это сделал для датчика на 5 бар
Конечно, датчик давления не может выдать 150,9 в при 4 барах. Но он и не подключен к зонту напрямую. Он подключен к модулю, и в регистре соответствующем порту AI2 будет число 38630 или около. Зонт прочитает это число, поделит его на 256 и выведет 150,9 В (хотя это просто число внутри зонта, к вольтам не имеет отношения). Наша задача калибровать датчик давления относительно зонта и заполнить таблицу. Посмотреть "сырые данные", которые датчик давления дает в AMIDJ14 можно в программе Modbus Poll либо подключится к зонту по терминалу и посмотреть там.
Добавим последний тип - DI. Но тут у нас уже не датчик, а меню "Действия с выходами" - добавить. Сделаем два действия - "Включить лампочку" и "Выключить лампочку"
У нас есть два действия. Теперь можно вывести их в интерфейс
А можно добавить включение насоса в исполнительных устройствах
Итак, мы добавили в зонт все три типа входов/выходов.
Вывод
Модуль ввода/вывода AMIDJ14 представляет собой бюджетное решение для расширения количества портов ввода/вывода контроллеров ZONT. Он подключается по интерфейсу RS485 и использует протокол Modbus RTU. Подключение к контроллеру Zont и настройка требует определенных навыков, но в своей статье я постарался подробно все описать.
Полный архив (файл с конфигурацией, программой Modbus Pull + файл регистров, инструкции), находится тут.
Уважаемые подписчики, мне важно ваше мнение. Если в наших статьях используются термины и обозначения, которые вам в новинку, обязательно сообщите мне. Я отдельной статьей составлю подробное описание каждого термина и элемента системы. Вы хотите больше технических подробностей - добро пожаловать в комментарии.
Уважаемые правообладатели. Если, в своей статье я использую фотографию или инфографику Вашего авторства, пожалуйста сообщите мне. Я укажу источник либо удалю иллюстрацию.
Ставьте лайки, пишите комментарии, подписывайтесь на наш канал!