Как мы можем генерировать трафик в библиотеке PyModbus?

Я хочу сгенерировать трафик Modbus, но не могу найти примеров. Другими словами, я хочу создать симулятор Modbus.


person ellinagreek    schedule 27.02.2021    source источник
comment
Добро пожаловать в StackOvervflow! Можете ли вы указать в своем вопросе, что у вас есть на данный момент (подробности см. В stackoverflow.com/help/mcve)?   -  person VirtualScooter    schedule 28.02.2021


Ответы (1)


Хорошим началом было бы просмотреть папку примеров.

Самый простой способ запустить что-то - выполнить следующие действия, если у вас установлен pymodbus:

  1. Загрузите и запустите пример syncronous_server.py из командная строка

  2. Загрузите и запустите в другом командном окне пример 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.

person Marcos G.    schedule 01.03.2021