Добрый день!
Мои коллеги готовят прошивку для модулей с интерфейсом RS-485 и протоколом modbus, а я готовлюсь подключать их к WB4. Поэтому прошу ответить на несколько вопросов, касающихся подключения новых типов модулей к контроллеру.
Вопросы:
-
Для подключения нового типа модулей нужно:
- добавить файл описания типа в новом файле config-wb-тип.json в каталог /usr/share/wb-homa-modbus/templates;
- включить в файл /etc/wb-homa-modbus.conf описание устройства.
Этого достаточно? Как составлять имя файла для новых модулей: config-wb-тип.json или это не принципиально?
При этом, позволено описывать тип (описание каналов) в файле wb-homa-modbus.conf. Что происходит, если описание одного и того же типа есть и в шаблонах и в конфиге? Мне представляется, что описание каналов приоритетно из etc/.conf, а на самом деле?
-
В config-wb-тип.json нет указания на номера функций, используемых для каналов. Вероятно, функция определяется типом регистра (coil, holding register и т.д.). Какие функции обязательно должны быть реализованы в модуле, чтобы без проблем можно подключить его к WB4?
Я спрашиваю потому, что наши модули, например, не стали работать с Spider 2 (http://www.insyte.ru/catalog/detail/tsentralnyy-kontroller-landrive-spider2/) из-за того, что коллеги реализовали не весь набор функций по протоколу modbus. При этом имеющихся функций для меня хватает, чтобы работать с модулем через преобразователь интерфейса Moxa NPort. Я понимаю, что WB4 использует функции libmodbus, в которых нет явного указания на коды функций. Но, может быть, есть таблица соответствия reg_type с номерами функций? Хотелось бы получить эту информацию.
-
Для устройств uniel есть замечательная конструкция adress вида “0x0100WWRR”. Можно ли использовать ее для любых устройств, поддерживающих протокол modbus rtu?
-
Правила описания типа предполагает, что канал (секция channels) связан с одним регистром. Исключение - rgb. Как добавить новые интегральные типы, используя конструкцию “consists_of”? Ну, очень хорошая конструкция;)
К примеру, в модуле http://www.insyte.ru/catalog/detail/releynyy-modul-ld2-r1000d/ для одного счетчика используется 2 регистра. Конечно, я всегда могу обработать пару-тройку регистров и выдать пользователю нужные данные. Но это неэффективно - опрос трех регистров идет последовательно. Я предпочел бы, например, чтобы была возможность прочесть одновременно десяток смежных регистров, чтобы потом полученные данные разделить на каналы.
Мне известно, что в драйвере modbus такая возможность заложена. Может быть, я мог бы воспользоваться этой возможностью? Не могли бы вы подсказать, в каких модулях это реализовано?
Как изменения внедрить в ПО WB4? Скопировать исходники в home, останавить wb-homa-modbus, потом make, make install? Подскажите, пожалуйста последовательность команд.
Информацию о версии прошивки WB4 дать не могу - не знаю как это получить, и не нашел в описании. Ничего не менял, купили в июне этого года. Нужно обновиться (вроде все, что я использую, работает. Но я за то, чтобы работать на самом новом софте)?
С уважением, Сергей.