commit
1dce1cfe20
@ -0,0 +1,27 @@
|
||||
from pymodbus.client import ModbusTcpClient
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
input_zone = input("Bereich [0, 11, ...]: ")
|
||||
input_client = input("Client [101, 102, ...]: ")
|
||||
print("\n")
|
||||
|
||||
client = ModbusTcpClient(f'192.168.{input_zone}.{input_client}')
|
||||
|
||||
if client.connect():
|
||||
print(f"✅ Verbindung Hergestellt: [192.168.{input_zone}.{input_client}] \n")
|
||||
try:
|
||||
while True:
|
||||
r_ist = client.read_holding_registers(address=12, count=2)
|
||||
if not r_ist.isError():
|
||||
# aktuellen Zeitstempel erzeugen
|
||||
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
# Ausgabe in derselben Zeile
|
||||
print(f"\r{timestamp} | Ist: {r_ist.registers}", end="", flush=True)
|
||||
time.sleep(0.5)
|
||||
except KeyboardInterrupt:
|
||||
print("\nBeendet.")
|
||||
finally:
|
||||
client.close()
|
||||
else:
|
||||
print("Verbindung fehlgeschlagen")
|
||||
@ -0,0 +1 @@
|
||||
pymodbus
|
||||
@ -0,0 +1,42 @@
|
||||
from pymodbus.client import ModbusTcpClient
|
||||
import struct
|
||||
|
||||
client = ModbusTcpClient('192.168.0.102')
|
||||
|
||||
if client.connect():
|
||||
|
||||
# Benutzereingabe in Prozent
|
||||
eingabe = input("Gib einen Wert in % ein: ")
|
||||
prozent = float(eingabe)
|
||||
|
||||
# Umrechnung auf den Wertebereich des Registers
|
||||
registerwert = int(prozent * 320)
|
||||
|
||||
# Konvertierung des 32-Bit-Werts in Modbus-Registerwerte
|
||||
registers = client.convert_to_registers(registerwert, data_type=client.DATATYPE.INT32)
|
||||
print(f"Got int32: {registers}")
|
||||
|
||||
# Schreiben in Holding Register 100 (2 Register erforderlich)
|
||||
client.write_registers(14, registers)
|
||||
|
||||
# Lesen
|
||||
r_druck = client.read_holding_registers(address=10, count=2)
|
||||
r_ist = client.read_holding_registers(address=12, count=2)
|
||||
if not r_druck.isError():
|
||||
print("Druck:", r_druck.registers)
|
||||
# reg_bytes = struct.pack('>HH', *r_druck.registers)
|
||||
# wert = struct.unpack('>f', reg_bytes)[0]
|
||||
# print(f"Ausgelesener Wert: {wert}")
|
||||
else:
|
||||
print("Fehler beim Lesen:", r_druck)
|
||||
if not r_ist.isError():
|
||||
print("Ist:", r_ist.registers)
|
||||
# reg_bytes = struct.pack('>HH', *r_ist.registers)
|
||||
# wert = struct.unpack('>f', reg_bytes)[0]
|
||||
# print(f"Ausgelesener Wert: {wert}")
|
||||
else:
|
||||
print("Fehler beim Lesen:", r_ist)
|
||||
|
||||
client.close()
|
||||
else:
|
||||
print("Verbindung fehlgeschlagen")
|
||||
Loading…
Reference in new issue