ich stehe vielleicht vor einem einfachen Problem, komme jedoch nicht weiter.
Ich habe eine Schleife, welche im Modbus aus einem Sensor einen Wert auslesen soll. Leider kommt es hin und wieder zu Lesefehler (oder der Sensor ist schlicht kaputt), weswegen ich nach einer kleinen Pause den Sensor erneut auslesen lassen möchte.
Momentan wird so ausgelesen:
Code: Alles auswählen
count = 1
for x in floatinstrumentlist:
try:
float_list[count] = x.read_float(floatregister_list[count], functioncode=4, numberOfRegisters=2)
except IOError as ex:
float_list[count] = 99999
except ValueError as ex:
float_list[count] = -99999
time.sleep(0.08)
count += 1
time.sleep(0.06)
Code: Alles auswählen
count = 1
for x in floatinstrumentlist:
try:
float_list[count] = x.read_float(floatregister_list[count], functioncode=4, numberOfRegisters=2)
except IOError as ex:
time.sleep(2.00)
float_list[count] = x.read_float(floatregister_list[count], functioncode=4, numberOfRegisters=2)
except IOError as ex:
float_list[count] = 99999
except ValueError as ex:
float_list[count] = -99999
time.sleep(0.08)
count += 1
time.sleep(0.06)
Geht jedoch nicht. Und genau da liegt die Frage. Wie kann ich ein except aus dem ersten readout so nutzen, dass ich nochmals auslese und erst das zweite IOError nutze, um den Wert 99999 einzutragen?
Schöne Grüße
Franz