Schleife: Wiederholen einer Abfrage im except
Verfasst: Montag 22. August 2016, 10:09
Hallo Zusammen,
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:
Da ich den Wert 99999 wirklich nur im absoluten Ausfall haben möchte, würde ich im ersten escept gerne nochmal auslesen und hatte das so probiert:
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
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