Modbus TCP

Интерфейс обмена
Сперва подключаем modbus библиотеку.

import modbus_tk
import modbus_tk.defines as cst
import modbus_tk.modbus_tcp as modbus_tcp

Создаем ссылку на объект куда подключаемся и указываем
host=’IP адрес устройства, с которым устанавливаем связь’
port=’порт устройства, к которому подключаемся’

master = modbus_tcp.TcpMaster(host=slaveIP, port=int(slavePort))
master.set_timeout(1.0)

Теперь пробуем получить данные от устройства, в данном случае начиная с адреса регистра 0 , получаем 10 регистров дискретных сигналов (ТС).

getDI=master.execute(1, cst.READ_DISCRETE_INPUTS, 0, 10)

Для других видов регистров необходимо указать другие наименования.

master.execute(1,сst.READ_COILS, 0, 10) master.execute(1,cst.READ_INPUT_REGISTERS, 100, 3) master.execute(1,cst.READ_HOLDING_REGISTERS, 100, 12)

Теперь если сделать

print getDi

Мы получим массив данных от устройства с адреса 0 по адрес 9

(0,1,0,1,0,0,0,0,0)

Если что-то подобное появится, то значит устройство на связи.
Получение данных от других видов регистров происходит аналогично.
В данной библиотеке имеется возможность не только получать данные , но и записывать значения в соответствующие регистры.
Это подробно описано в документации.