Я хочу сгенерировать трафик Modbus, но не могу найти примеров. Другими словами, я хочу создать симулятор Modbus.
Как мы можем генерировать трафик в библиотеке PyModbus?
Ответы (1)
Хорошим началом было бы просмотреть папку примеров.
Самый простой способ запустить что-то - выполнить следующие действия, если у вас установлен pymodbus:
Загрузите и запустите пример syncronous_server.py из командная строка
Загрузите и запустите в другом командном окне пример syncronous_client.py.
Все готово, из вывода обеих командных строк вы сможете увидеть транзакции Modbus, которые имели место.
Если вы хотите иметь непрерывный поток обменов Modbus, вы можете просто изменить клиента, чтобы он работал где-нибудь, например:
while True:
rr = client.read_holding_registers(1, 1, unit=UNIT)
time.sleep(1)
будет читать регистр временного хранения примерно раз в секунду.
Нет необходимости ничего менять на сервере, он всегда будет слушать, пока вы его не убьете с помощью Ctrl + C
Ничто не помешает вам использовать другой компьютер для сервера и клиента, пока оба подключены к одной сети и вы изменяете клиент так, чтобы он указывал на адрес сервера. В частности (строка 70 в примере):
client = ModbusClient('localhost', port=5020)
Измените localhost
на IP-адрес вашего сервера, например, на 192.168.x.y
.
Если вы не знаете, есть много альтернатив pymodbus для генерации трафика Modbus. Modpoll - это классический вариант, но вы также можете посмотреть qModMaster.