ich bin mehr als neu und schreibe gerade ein kleines Tool, welche Daten aus dem Modbus ausliest. Das funktioniert soweit ganz gut doch leider komme ich jetzt an meine Grenzen.
Es geht um folgendes Skript:
Code: Alles auswählen
#!/usr/bin/env python
#IMPORT VON DATUM UND UHRZEIT
import datetime
datum = []
uhrzeit = []
heute = datetime.date.today()
datum.append(heute)
# MODBUS-ADAPTER AN COM PORT KONFIGURIEREN
import minimalmodbus
minimalmodbus.BAUDRATE = 19200
minimalmodbus.PARITY = 'E'
minimalmodbus.BYTESIZE = 8
minimalmodbus.stopbits = 1
minimalmodbus.TIMEOUT = 0.02
#DEFINITION VON HARDWARE UND SLAVE-ADRESSE
instrument1 = minimalmodbus.Instrument('/dev/ttyS0', 31)
instrument2 = minimalmodbus.Instrument('/dev/ttyS0', 33)
instrument3 = minimalmodbus.Instrument('/dev/ttyS0', 20)
instrument4 = minimalmodbus.Instrument('/dev/ttyS0', 16)
instrument5 = minimalmodbus.Instrument('/dev/ttyS0', 32)
#AUSLESEN VON REGISTER 2 ( ACHTUNG: REGISTER 1 IST 0) UND DEFINITION VON preassure
preassure1 = instrument1.read_registers(1, 1, 4)
preassure2 = instrument2.read_registers(1, 1, 4)
preassure3 = instrument3.read_registers(1, 1, 4)
preassure4 = instrument4.read_registers(1, 1, 4)
preassure5 = instrument5.read_registers(1, 1, 4)
#AUSGABE VON PREASSURE
print "SENSOR1\t","1\t",preassure1,"\t",heute.strftime('%d.%m.%Y'),"\t",datetime.datetime.now().strftime("%I:%M:%S")
print "SENSOR2\t","2\t",preassure2,"\t",heute.strftime('%d.%m.%Y'),"\t",datetime.datetime.now().strftime("%I:%M:%S")
print "SENSOR3\t","3\t",preassure3,"\t",heute.strftime('%d.%m.%Y'),"\t",datetime.datetime.now().strftime("%I:%M:%S")
print "SENSOR4\t","4\t",preassure4,"\t",heute.strftime('%d.%m.%Y'),"\t",datetime.datetime.now().strftime("%I:%M:%S")
print "SENSOR5\t","5\t",preassure5,"\t",heute.strftime('%d.%m.%Y'),"\t",datetime.datetime.now().strftime("%I:%M:%S")
Dieses Skript liest aus dem Modbus bestimmter Adressen die Register aus.
die Ausgabe hierzu sieht so aus:
Code: Alles auswählen
SENSOR1 1 [4131] 28.01.2014 12:14:13
SENSOR2 2 [4092] 28.01.2014 12:14:13
SENSOR3 3 [4052] 28.01.2014 12:14:13
SENSOR4 4 [4044] 28.01.2014 12:14:13
SENSOR5 5 [4077] 28.01.2014 12:14:13
Bezeichnung des Sensors / Datenbank ID/ Druck / Datum / Uhrzeit
Nun ist es so, dass ich zwischen den einzelnen Segmetnten durch ein \t einen Tabulator gesetzt habe. Das ist soweit auch in Ordnung. Leider tauchen hinter den Modbus-Werten und hinter dem Datum ein Leerzeichen auf. Das ist nicht so dolle. Das nächste ist die [] um dem ausgelesenen Wert. Diese Klammer möchte ich gerne weg haben.
Vor langer Zeit hatte ich mal was ähnliches in PHP gemacht. Dort musste ich, logischer weise, vor dem Print die Variabel nochmal auslesen, zeichen entfernen und als andere Variable setzen. Leider habe ich das hier absolut nicht hinbekommen.
Ich würde mich freuen, wenn mir hier jemand helfen könnte.
Das speichern in einer Datei... na ja... das gehe ich danach erstmal selbst an und würde mich freuen, im Zweifel nochmal fragen zu dürfen.
Vielen Dank vom absoluten Python-Neuling
Frannek