Салют коллеги.
Сегодня хочу поведать Вам с какими трудностями мы столкнулись при настройке записи Modbus Function:05 (Write Single Coil) и описать путь решения данной задачи.
Начнем с задачи: в наличии контроллер Q06UDEH, к нему прикручен модуль QJ71MB91. Нужно прочитать пул регистров (Function: 04), пул битов(Function:02), и записать 3 катушки(Function:05) со Slave-контроллера.
Первым делом я решил сходить на сайт Mitsubishi и поискать подходящую библиотеку для настройки передачи данных по Modbus от нашего Masterа(QJ71MB91) к Slave (стороннему контроллеру). Из четырех имеющихся библиотек подходящей оказалась только одна QJMB91ModbusSerial_V120, так как оказалась более универсальной, по сравнению с остальными, которые сделаны для конкретного оборудования. Взял ее, внедрил в GX Works 2 и начал курить мануал. В результате чтения выяснилось, что данная библиотека поддерживает только следующие функции: 01h, 02h, 03h, 04h, 0Fh, 10h, 17h. Естественно функции 05 среди них нет. Остальные библиотеки, имеющиеся на сайте Mitsubishi так же не поддерживают F05.
Было решено Read функции 02 и 04 реализовывать через QJMB91ModbusSerial_V120 lib, что в общем то легко получилось. А Write функцию 05 настраивать собственными силами.
Реализация Write Single Coil (FC:05) началась как обычно с курения манула:
QJ71MB91 MODBUSInterfaceModule GX Configurator-MB (SW1D5C-QMBU-E)
Art. no. 168869 01042009 SH(NA)-080578ENG Version G
В результате чтения выяснилось, что 01h, 02h, 03h, 04h, 0Fh, 10h, 17h (которые поддерживает библиотека QJMB91ModbusSerial_V120) используют для передачи целого массива данных функцию Z.MBRW. Но F:05 передает только отдельно каждому регистру данные и использует совсем другую функцию Z.MBREQ, видимо поэтому писатели из Mitsubishi не стали реализовывать F:05 в своей библиотеке и просто забили (БРАВО профессионалам!! :-D)
Пакет данных, передаваемый F:05, выглядит следующим образом:
Сами создаём себе трудности, сами же их героически преодолеваем... Насколько помню, SlySnake, этот модуль не нуждается в библиотеках, а все настройки обмена с ведомыми, включая Автообновление, с легкостью выставляются через соответствующую утилиту, предназначенную для конфигурирования модуля.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)