This is an old revision of the document!
Table of Contents
Работа с расширителями портов Modbus фирмы Wellpro через Hardware PLC
Посылка и прием команд по протоколу Modbus возможна в контроллерах myCNC через запись в выделеные регистры из массива глобальных переменных.
Перечень регистров для работы с Modbus показан в таблице ниже.
Variable Address | Description |
---|---|
60010 | Ид. номер устройства. Изменить Идентификационный номер устройства на шине Modbus с которым ведется работа. |
60011 | Переключение протокола ASCII/RTU. Изменить протокол Modbus. "0" - Modbus/RTU "1" - Modbus/ASCII |
60012 | Скорость передачи. Запись в этот регистр изменит скорость передачи по последовательному каналу RS485. Доступные скорости 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 |
60013 | Communication parameters. Change UART connection parameters: number of bits (8 or 7), parity (none, odd, even), number of stop bits (1, 2). Data comes in 3 low nibbles. The lowest is stop bits, then parity, then number of bits. Example: 0x801=8,N,1 0x712=7,O,2 0x822=8,E,2 |
60019 | Значение для записи. Записанное в этот регистр значение будет запомнено в скрытом регистре. При записи в регистр записи значение из скрытого регистра будет послано в удаленное устройство |
60030 | Старт записи. Запись в этот регистр инициирует посылку сообщения в удаленный контроллер по шине Modbus. Значение, записанное в этот регистр будет адресом, по которому осуществляется запись. Значение для записи будет взято из скрытого регистра |
60020 | Адрес для операции чтения. Записанное в регистр значение будет защелкнуто в регистре Адрес для чтения. При операции |
60031 | Чтение Регистра. При чтении с этого регистра инициируется посылка в удаленное устройство команды чтения регистра с адреса, запомненным при записи в регистр 60020. PLC контроллер зачыпает на время ожидания ответной посылки из удаленного устройства. |
60035 | Запись битового поля. При записи в этот регистр осуществляется операция записи в устройство Modbus с помощью команды WRITE_MULTIPLE_COILS (0xf). Адрес регистра для записи задается в младших 16 битах (младшее слово) записываемого значения. Количество бит, которые надо записать задаются в старшем байте. Например - 0x080000FF - включить 8 бит регистра 0x080000F0 - включить старшие 4 бит регистра и выключить младшие 4 бит 8-битного регистра. |
60036 | Чтение Битового поля. При чтении с этого регистра инициируется посылка в удаленное устройство команды чтения входных бит с адреса, запомненного при записи в регистр 60020. PLC контроллер засыпает на время ожидания ответной посылки из удаленного устройства. |
60037 | Запись регистра. При записи в этот регистр осуществляется операция записи в устройство Modbus с помощью команды WRITE_SINGLE_REGISTER (0x6). В параметре задается адрес регистра. Ид. номер устройства и записываемое значение хранится в регистрах 60010, 60019. |
Примеры PLC программ для управления Modbus расширителями портов
1. Задание параметров соединения через PLC
gvarset(60011,0); //Выставить режим Modbus RTU gvarset(60012,9600); //Выставить скорость передачи 9600
2. Начальная инициализация расширителей Modbus Wellpro.
Для того, чтобы запрограммировать идентификационный номер устройства у расширителя Wellpro, надо послать соответствующий номер в регистр по адресу 0x64 устройства с Ид. номером “0”.
Пример кода показан ниже
gvarset(60010,0); //Установить Ид. удаленного устройства (0) gvarset(60019,1); //Установить значение регистра (1) gvarset(60037,0x64);//Установить адрес регистра (0x64) и послать Modbus кманду
3. Запись в дискретные выходы.
gvarset(60010,1); //Задание Ид. номера устройства gvarset(60019,0xff); //Записываемое значение x=(8<<24)+0xFF; //Записываем 8 бит, включить все 8 выходов. gvarset(60035,x); //Послать команду
Автоматический опрос Modbus расширителей.
В myCNC имеется возможность включить автоматический опрос Mosbus устройств. Для этого необходимо задать соответствующие параметры в окне настроек “I/O Expand cards mapping”
1) Необходимо запомнить что опрашивать - Modbus Input Holding Register - Группу входных регистров (2, 4, 6 или 8 регистров) - Modbus/Coil Input expansion - Входные дискретные выходы - Modbus/Coil Output expansion - Выходные дискретные выходы
2) Ид. номер устройства Modbus
3) Порт источника - В случае Modbus устройства это адрес регистра для чтения/записи
4) Порт назначения - В случае Mapping Modbus портов - это номер 8-битного порта.
Например, если это выходы и Порт назначения =0, то при записи в порты 0..7 все значения будут параллельно транслироваться и на выходные пины Modbus устройства,
если это входы и Порт назначения =2, то состояние входных пинов Modbus устройства бубут транслироваться на входы 16…23 контроллера myCNC.
Обращение с оттранслированными входными и выходными пинами будет такое же, как и с обычными входами-выходами контроллера myCNC. Надо только иметь ввиду задержку, возникающую при опросы Modbus устройств. Цикл обращения к Modbus устройству (1 строка Mapping в настройках) составляет около 30мс.