Я пытаюсь связаться с Modbus через TCP.Я хочу использовать этот тип кода без библиотеки.
Код запускается так:
sudo python3 modbus_master.py
Когда я запускаю программу с этим кодом, я вижу мое соединение Modbus, определенное в Wireshark.Я также использую подчиненные программы Modbus (более одной), но нет связи с моим мастером.
Что я делаю не так в следующем коде?
#!/usr/bin/python3
# This is client.py file
import socket
import struct
import time
# Create a TCP/IP socket
TCP_IP = '192.168.0.107'
TCP_PORT = 502
BUFFER_SIZE = 39
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((TCP_IP, TCP_PORT))
try:
unitId = 16
functionCode = 5
print("\n,Switching plug on")
coilId = 1
req = struct.pack('12B', 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, int(unitId), int(functionCode), 0x00, int(coilId),
0xff,
0x00)
sock.send(req)
print("TX: (%s)" % req)
time.sleep(2)
finally:
print('\nCLOSING SOCKET')
sock.close()