Das ist ein Dataframe was ich normalerweise empfange:
Sollwert Empfangen:
Raw_Dataframe(SOLL) = b'60-01.00.0015:49:0801.02.2021 31-------- 4 50050---- 0300--- 0-----------------60\r'
Dataframe nach Transformation(SOLL) = ('60', ' 3', '1', ' 4', ' 500', '50', '----', '300', ' 0', '---', ' 0', '----', '---', '---')
Parameter(SOLL) = (4, 500, 50, 300, 0, 0)
Istwert Empfangen(S):
Raw_Dataframe(IST) = b'50A01.00.0015:49:4101.02.2021 311 400100 4 50085---- 0300--- 0-----------------66\r'
Dataframe nach Transformation(IST) = ('50', ' 3', '1', ' 4', ' 500', '85', '----', '300', ' 0', '---', ' 0', '----', '---', '---')
Parameter(IST) = (4, 500, 85, 300, 0, 0)
Die Frames sind natürlich gleich von der Struktur.
Danach vergleiche ich die beiden Parameter bzw. bilde die Differenz der Werte mit:
Code: Alles auswählen
def diff_soll_ist(soll, ist):
diff = list(map(int.__sub__, soll, ist))
print("Ist =", ist)
print("Soll =", soll)
print("Diff =", diff)
return diff
Differenz = (0, 0, -35, 0, 0 ,0)
Danach erfolgt dann meine Automatische Werteanpassung welche die Werte, welche ungleich 0 sind anpasst.
im Anschluss frage ich dann meinen neuen Istwert ab (an dieser stelle ist dann der Fehler):
Code: Alles auswählen
istwert = get_serial()
Was ich da erhalte habe ich mit einer kleinen Modifikation meines alten Codes anzeigen lassen:
Code: Alles auswählen
def get_serial():
while True:
data = connection_ist.readline()
# print(len(data))
# print(data)
data_str = str(data)
# print(data_str[2])
if len(data) == 86 and data_str[2] == "5":
istwert = data_str # Übergabe des Datenstring
# print("Empfangen(Ist-Wert) =", istwert)
return istwert
elif len(data) >= 2:
empfangen = data_str
print("Empfangen(Ist-Wert) =", empfangen)
@Sirius3 ich hoffe ich konnte mit dieser kleinen Ausführung deutlicher rüberbringen was genau jetzt der fehler bei mir ist.