пятница, 22 мая 2020 г.

Особенность настройки ICP CON 7061D


Сегодняшняя тема - про модули ввода-вывода от фирмы ICP DAS. Долгое время у меня были сомнения насчёт использования различного рода дешёвых модулей ввода-вывода в связке с контроллером S7-1200, но вот возник объект, куда клиентом были закуплены модули M-7061D - дискретные выходы (12 DQ) и M-7041D - дискретные входы (14 DI).

По умолчанию на этих модулях используется протокол DCON. Мы с этим протоколом не работаем, мы используем Modbus RTU. Для изменения протокола и настройки параметров связи необходимо установить программу DCON Utility Pro. Где скачивать ПО и как настраивать оборудование, объясняет инструкция, которая идёт в комплекте с оборудованием. Инструкция - общая для любых модулей I-7000 и M-7000.


В левой верхней части мы видим настройки по умолчанию (Default Communication Parameters). В частности, там сказано, что для модулей M-7000 протоколом по умолчанию является Modbus RTU с адресом 1 и параметрами 9600 kbps, 8E1. Я не уверен, что это так. У меня было в распоряжении несколько модулей M-7061D и M-7041D и, по крайней мере некоторые из них, будучи в состоянии "с завода", при поиске устройств сети (поиск по обоим протоколам - DCON и Modbus RTU) вообще никакого результата не показали (может быть, надо было искать Modbus ASCII, - ну, я не пробовал). Поэтому я дальше этот поиск осуществлять не стал, а сразу перевел все устройства в режим INIT, и дальше уже с ним вёл настройку.

На модулях M-7041D режим INIT активируется тумблером INIT/NORMAL в задней части модуля.
На модулях M-7061D активация происходит перемычкой с клеммы GND на клемму INIT*.
Зачем так по-разному сделано? Я так понимаю, что изначально они хотели везде сделать активацию перемычкой, но на модуле M-7061D сравнительно много клемм, потому что на нём каждый канал дискретного выхода является отдельной группой (т.е. каждый канал использует две клеммы). Ну, соответственно, клемм получилось много, а размер самого устройства стандартный - как для всех M-7000, в итоге клемме INIT* места не досталось, вот и придумал производитель сделать тумблер. Как по мне, ни один из способов перехода в режим INIT не является удобным, потому что тумблер на M-7061D расположен в задней части модуля. Это значит, что если вы приедете на объект с уже собранным шкафом автоматики и установленными в нём на din-рейках устройствами, то каждое из них придётся снимать, чтобы переключать тумблер на обратной стороне. Перемычка - тоже так себе вариант. Почему не сделать было тумблер на передней части модуля (да и вообще всю настройку параметров интерфейса тумблерами) - неизвестно.

Далее под пунктом 2 мы видим рекламу конвертеров RS232/RS485 и USB/RS485 от ICP, которые они рекомендуют использовать для подключения к компу. Пункт 3 - это ссылка на скачивание DCON Utility Pro.

Переходим к пункту 4, тут мы видим картинку последовательности действий для поиска устройства:


Непонятно, зачем они понаставили галочек на разные скорости и на разные протоколы, если перед этим уже перевели устройства в режим INIT. В этом режиме искать надо на скорости 9600 kbps, протокол - DCON, без проверки контрольной суммы (Checksum Disabled), формат - без проверки на чётность, 8 бит, 1 стоп-бит ("N,8,1").

Переходим к пятому пункту. Тут у нас настройка параметров связи.

Ну, т.е. видите: (1) - нажали кнопку поиска, (2) - сделали двойной щелчок мыши по названию устройства в первой колонке таблицы, открылось окно настройки, (3) - поменяли всё, что нужно, (4) - нажали кнопку "Set...",  (5) - на выход, настройка закончена.

Для модуля M-7041D у меня всё так и настроилось. Вот смотрим нотариально заверенный скриншот:


А вот с модулями M-7061D что-то пошло не так:


В общем-то пляска с бубном привела к нажатию вот такой вот кнопочки:


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


Выбираем M-7061D, после чего открывается окно настройки интерфейса - похожее на то, которое было до этого, но в заголовке окна присутствует надпись Offline Configuration. и кнопка другая - Write Configuration to I/O Module. Тут всё настроилось без проблем:


Далее обесточиваем модуль, убираем INIT, включаем и всё работает.

Регистры Modbus RTU


Для считывания текущего состояния дискретных входов модуля M-7041D используются Modbus-функция 02: Read input bits. Регистр для чтения - 10001. Функция позволяет читать несколько битов подряд за один запрос, т.е. читаем сразу 14 битов.

Для записи значений дискретных выходов модуля M-7061D используется Modbus-функция 05: Writing an output bit (если надо записать 1 бит) или функция 15: Writing multiple output bits - если надо записать значения для нескольких выходов (пишем сразу все 12 выходов, например). Регистр для записи - 1.

Возможно, что будет желание проверять состояние связи с каждым модулем (для индикации ошибки) через считывание контрольного слова. Я использовал для этого чтение значения из регистра 40485. В этом регистре хранится текущий адрес устройства в сети Modbus, это значение условно можно считать проверочным значением для текущего устройства.

P. S.
В общем-то, ничего пока сказать о качестве этих модулей не могу. Но думаю, что шансов, что они будут нормально работать, гораздо больше, чем у модулей Овена и других подобных горе-производителей. Ценник более чем приемлем, хотя вся эта приемлемость проистекает напрямую из-за возможности покупать модули тут, в России через юрлицо, не занимаясь обналом. Если же сравнивать с ценами Aliexpress, то я бы предпочел купить S7-200 и noname-модули к нему, и так же по Modbus сделать связку с S7-1200, потому что на S7-200 можно переложить часть функционала, включая проверки на дребезг контактов и масштабирование аналогового сигнала. Ценник на модули ICP CON у официалов явно завышен, это легко проверить, если сравнить с ценами на них же на Aliexpress, хотя модулей M-7000 (Modbus) я с ходу не нашел, но вот, например, модуль I-7000 для подключения 8 термопар (I-7019R) на Aliexpress стоит $60, а в России - $250, на дискретные модули разбег, понятное дело, меньший (раза в полтора - два), но просто из-за невозможности торгашей сделать конкурентную цену высокой.