gibt es eine Möglichkeit an ein laufendes Skript einen Parameter zu übergeben?
Also einen Parameter, der zum Beispiel die Kommunikation über RS485 kurzzeitig einstellt,
damit ein anderes Skript auf diese Schnittstelle sicher zugreifen kann?
Ich möchte ab und zu ein Holding-Register am Wechselrichter umschreiben.
Das Hauptskript greift aber ständig und kontinuierlich darauf zu.
Einzige Möglichkeit, mit meinem begrenzten Wissen, wäre die Parameter in eine Datei abzulegen und das Haupt-Skript schaut da ab und zu nach und schreibt diese Register um.
Das umschrieben mit meinem Test-Skript funktioniert, wird aber durch die Zugriffe das anderen Skriptes gestört.
Code: Alles auswählen
from pymodbus.client import ModbusSerialClient
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("adresse", type=int, help="Inverter Adresse")
parser.add_argument("register", type=int, help="Holding-Register")
parser.add_argument("value", type=int, help="Value")
args = parser.parse_args()
inverter_adresse = args.adresse
modbusregister = args.register
modbusvalue = args.value
client = ModbusSerialClient(
port="/dev/ttyUSB0",
startbit=1,
databits=8,
parity="N",
stopbits=2,
errorcheck="crc",
baudrate=9600,
method="RTU",
timeout=5
)
client.connect()
result = client.read_holding_registers(modbusregister, 1, inverter_adresse) # Power-Mess
print(result.registers)
schreiben = client.write_register(modbusregister, modbusvalue, inverter_adresse)
client.close()
Gruß Ralf