ich hätte ein kleines Problemchen.
Folgendes möchte ich realisieren.
In einem Geber können bis zu vier Fehlernummern hinterlegt sein.
Laut Beschreibung, können diese nacheinander ausgelesen werden.
Also dachte ich mir, ich bastle mir ein dict in denen die Fehlerbereiche aufgetrennt werden und ein dict_ fehler_request sendet mir die 4 zu erhaltenen Fehlermeldungen zurück.
Das Dict muss also dynamisch erstellt werden. Geht so etwas?
Meine Versuche sind nicht zielführend.
Kann sich einer mich annehmen?
Gruß Ralf
Code: Alles auswählen
import sick_error
fehlercode = "01" # Beispiel für Fehlercode
print(sick_error.sks_skm(fehlercode))
Code: Alles auswählen
#Datei sick_error
def sks_skm(a):
initialisierung = {
"00" :"der Geber hat keinen fehler erkannt",
"01" :"abgleichdaten fehlerhaft",
"02" :"interner Winkeloffset fehlerhaft",
"03" :"tabelle über datenfeldpartitionierung zerstört",
"04" :" analoge grenzwerte nicht verfügbar",
"05" :"interner i2c-Bus nicht funktionsfähig",
"06" :"interner checksummenfehler"
}
protokoll = {
"07":" geberreset durch Programmüberwachung aufgetreten",
"09":" Parityfehler",
"0a":" checksumme der übertragenen daten ist falsch",
"0B" :"unbekannter Befehlscode",
"0c" :"anzahl der übertragenen daten ist falsch",
"0d" :"übertragenes Befehlsargument ist unzulässig",
}
daten = {
"0e" :"das selektierte datenfeld darf nicht beschrieben werden",
"0f":"falscher Zugriffscode",
"10":"angegebenes datenfeld in seiner größe nicht veränderbar",
"11":" angegebene Wortadresse außerhalb datenfeld",
"12" :"Zugriff auf nicht existierendes datenfeld"
}
position = {
"01":"Analogsignale außerhalb Spezifikation",
"1f":"drehzahl zu hoch, keine Positionsbildung möglich",
"20":"Position Singleturn unzuverlässig",
"21":"Positionsfehler multiturn",
"22":"Positionsfehler multiturn",
"23":"Positionsfehler multiturn"
}
andere = {
"1c":"Betragsüberwachung der Analogsignale (Prozessdaten)",
"1d":"Senderstrom kritisch (Verschmutzung, Senderbruch)",
"1e":"gebertemperatur kritisch",
"08":"überlauf des Zählers"
}
fehlerbereiche=[
"initialisierung" ,
"protokoll" ,
"daten" ,
"position" ,
"andere"
]
i=0
while i <=4:
bau mir ein Dict
i = i+1
return fehler_request