В данной статье мы подробно рассмотрим конфигурацию контроллера JZ20-R16 Unitronics в режиме Master в сети Modbus RTU. Прежде всего для решения данной задачи нам понадобится коммуникационный модуль JZ-RS4, который обеспечивает связь по интерфейсу RS485 (не поставляется в комплекте с ПЛК). Если нужно настроить контроллер в режиме Slave, то Вам необходимо ознакомиться с данной статьей.
Коммуникационный порт JZ-RS4 поддерживает следующие характеристики:
- скорость передачи 300 - 19200 бит/с
- данные битов 7/8
- контроль четности: Even/Odd/None
- время опроса 0.5/1/1.5/2/5/60 сек
- стоп бит только 1 (2 не поддерживает)
Таким образом, если данные характеристики интерфейса устраивают Вашей Modbus сети, то Вы без проблем сможете сконфигурировать контроллер Jazz 20 на обмен данными с другими устройствами.
Далее зайдем в среду разработки U90 Ladder и откроем готовый проект скачанный по данной ссылке. В нём мы увидим несколько блоков логики, зайдя на вкладку "Program-Ladder". После загрузки готовой программы в контроллер необходимо отключить питание ПЛК, затем вставить порт JZ-RS4 (RS485) в контроллер и произвести подключение кабельной линии RS485 между Master и Slave устройствами. Затем подать питание на контроллер.
Конфигурация протокола Modbus для режима Slave и Master производится одинаково, единственным отличием является запрос на запись и чтение регистров с Slave устройств. Рассмотрим конфигурацию протокола modbus в первых двух блоках (аналогично modbus slave).
1) В переменную SI141 записывается номер Slave ID контроллера (данный параметр в режиме Master не имеет значения, но лучше указать 1, для единоразового считывания);
2) В переменную SI142 записывается время Time out сети Modbus (100мс*10=1сек);
3) В переменную SI143 записывается количество повторов запросов при ошибках;
4) В переменную SI144 записывается максимальный интервал времени между отправками сообщений (2х2.5=5мсек);
5) В переменную SI145 записывается скорость передачи данных в Modbus сети (300-19200бит/с);
6) В переменную SI140 записывается значение 599 или 600. Данный параметр должен сохраняться последним в цепочке параметров как показано в примере. Значение 600 настраивает контроллер на режиме Modbus. Значение 599 по мимо настройки контроллера в режиме Modbus позволяет подключаться к ПЛК средой разработки (рекомендуем устанавливать значение 599).
7) В переменную SI141 записывается скорость порта RS485 (300-19200бит/с). Желательно чтобы значение совпадало с параметром в пункте 5.
8) В переменную SI142 записывается количество данных битов 8 или 7;
9) В переменную SI143 записывается значение контроля четности: 0= Even, 1=Odd, 2=None;
10) В переменную SI144 записывается управление потоком. Для порта RS485 необходимо указывать значение 2.
11) В переменную SI145 записывается время Time out порта (100мс*10=1сек);
12) В переменную SI146 записывается количество стоп битов. Модели Jazz 20 поддерживают только 1 стоп бит;
13) В переменную SI140 записывается значение 310 для инициализации порта с новыми параметрами.Необходимо чтобы этот параметр записывался последним в данной цепочке.
После конфигурации порта RS485 и протокола Modbus необходимо
настроить обращение к Slave устройствам и запрашиваемым регистрам. В
нашем случае мы будем опрашивать два модуля расширения, которые имеют Slave ID
2 и 3 соответственно. Первый модуль расширения имеет 8 аналоговых входов 4-20мА
(Slave ID 2), а второй модуль имеет 8 релейных выходов (Slave ID 3). В примере
мы будем считывать первые два аналоговых входа модуля расширения и управлять
одним релейным выходом на втором модуле расширения.
Третий блок программы соответствует опросу аналоговых входов
у модуля расширения с Slave ID = 2.
- Следовательно
в параметр SI141 Вы записываете номер Slave ID опрашиваемого устройства.
- В
параметр SI 142 записывается стартовый адрес с которого мы хотим начать
опрос. Регистрами модуля расширения являются целочисленные значения int16
с номерами 0-7 dex. Соответственно указывая значение 0, мы считываем
первый аналоговый вход модуля расширения.
- В
параметре SI 143 указывается длина считываемых регистров. В нашем примере
указано 2, значит мы будем считывать первые два аналоговых входа модуля
расширения.
- В
параметре SI 144 указывается тип переменной, в которую мы хотим записывать
получаемые данные с Slave устройства (MB=1; SB=2; MI=3; SI=4; I=9; O=10).
Следовательно, значение с аналогового модуля расширения является
целочисленным и мы записываем его в переменную MI.
- В
параметре SI 144 указывается стартовый номер регистра в которым
записывается получаемое значение. В нашем случае указано 0, следовательно
данные с двух аналоговых входов модуля расширения будут записаны в MI0 и
MI1. Если Вы укажите, например, значение 40, то данные запишутся в
регистры MI40 и MI41.
- В
параметре SI 140 указывается команда Modbus в зависимости от типа
переменной (команда modbus - значение SI140: 1 - 601; 5 - 602; 15 - 603; 3
- 604; 6 - 605; 16 - 606; 4 - 609; 2 - 611; 8 - 612. Например, 4 означает
функция чтения целочисленных регистров "Read Input registers").
Перед цепочкой опроса аналоговых входов мы
установили битовое значение SB3, которое каждую секунду замыкает контакт и
подает сигнал на считывания данных с модуля расширения. Таким образом
считывание происходит каждую секунду. Данный блок (SB3) можно убрать из программы
и опрос будет происходить постоянно, но в таком случае связи с другими Slave
устройствами не будет. Данная пауза в одну секунду требуется для периодического
опроса другого Slave устройства.
В четвертом и пятом блоках программы рассмотрена функция
управления релейным выходом с модулем расширения имеющим Slave ID = 3. Нажимая
кнопку 7 (SB7) на панели контроллера, мы будем подавать сигнал на включение
релейного выхода, а нажимая кнопку 8 (SB8) будет происходить отключение
релейного выхода. Цепочка управления формируется аналогичным образом как и для
считывания параметров с аналогового модуля расширения (Slave ID 2).
Рассмотрим отличия между опросом аналогового и
релейного модуля расширения:
- В
параметр SI 141 записываем другой Slave ID, в нашем случае 3.
- В
параметре SI 143 указываем значение 1, т.к. мы будем управлять только
первым релейным выходом.
- В
параметре SI 144 указываем значение 1, так как это битовый параметр и он
соответствует MB.
- В
параметре SI 145 указываем значение для битового регистра 0 или 1.
Соответственно, при 0 релейных выход будет отключаться, при 1
включаться.
- В
параметр SI 140 указываем функцию записи битового значения Modbus (602
соответствует функции 5 Modbus).
Таким образом, необходимо последовательно создавать
опрос необходимых Вам регистров и указывать паузы между цепочками не менее
20мс, так как в данных контроллерах все изменения с Slave устройств
записываются через одни и те же системные регистры SI 140 - SI 145. Если Вы
считываете только аналоговые данные с одного Slave устройства, то Вам
достаточно создать одну цепочку с постоянным опросом, при этом выбрать длину
считываемых регистров (SI143). Если Slave устройств несколько, то необходимо
создавать несколько цепочек опросов и делать паузы между ними не менее 20мс.
Если у Вас имеются сложности с конфигурацией и настройкой контроллеров Unitronics, Вы всегда можете обратиться в нашу техническую поддержку удобным для Вас способом info@analite.ru +7 343 227 227 4.