2013-03-19 2 views
0

Я буду создавать соединение между моим Linux-сервером и сотовым модемом, где модем будет выступать в качестве сервера для последовательной передачи через TCP.Pymodbus (последовательный) по последовательному подключению tcp

Сам модем подключен к Modbus-устройству (промышленному протоколу) через соединение RS232.

Я хотел бы использовать pymodbus для облегчения разговоров с устройством Modbus конца. Однако я не могу использовать опцию TCP modbus в PyModbus, поскольку конечное устройство говорит о последовательной Modbus (Modbus RTU). И я не могу использовать опцию последовательного modbus в Pymodbus, так как он рассчитывает открыть на локальном сервере фактический локальный последовательный порт (tty device).

Как подключить последовательное соединение так, чтобы библиотека pimodbus увидела соединение как локальное последовательное устройство?

ответ

0

Нет простого решения, чтобы обмануть ваш сервер linux, полагая, что MODBUS RTU на самом деле имеет соединение MODBUS TCP.

Во всех случаях ваш модем должен будет передавать данные с TCP на последовательный (и наоборот). Поэтому я предполагаю, что: 1) как-то вы можете запрограммировать свой модем и поручить ему делать все, что хотите 2) производитель модема предоставил встроенный механизм для этого.

Если 1): вы должны запрограммировать свой модем так, чтобы он мог заменять ADU AD с помощью ADU (и наоборот) при копировании данных из TCP-соединения на RS-соединение.

Если 2): просто предоставите раму RTU любому API, разработанному изготовителем.

+0

Я думаю, что PyModbus поддерживает использование кадров RTU в протоколе TCP. Я попробую и опубликую свои результаты. Альтернативой является использование remserial, например: remserial -d -r server-name -p 23000 -l/dev/remserial1/dev/ptmx & this is from http://lpccomp.bc.ca/remserial/ – michael

0

Я на самом деле работал над чем-то похожим и решил создать свой собственный последовательный/TCP-мост. Использование виртуальных последовательных портов для обработки связи с каждым из модемов.

Я использовал библиотеку minimalmodbus, хотя мне пришлось немного изменить его, чтобы обрабатывать виртуальные последовательные порты.

Надеюсь, вы решили свою проблему, и если бы не я, я мог бы попытаться помочь вам.

Смежные вопросы