First Commit

main
Samuel Zielke 2 months ago
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…
Cancel
Save

Powered by TurnKey Linux.