UnknownUser
Level-2
- Beiträge
- 8
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
KANN GELÖSCHT WERDEN. Enumeration in IF, CASE Anweisungen
Hallo,
ich habe folgende Enumeration und Anweisungesblock
Modeattr ist vom Typ HVFC_ENUM_MDTTR
Im Simulationsmodus funktioniert dieser Anweisungsblock aber leider nicht. Es wird immer der Code im ELSE-Block ausgeführt, unabhängig davon ob HVFC.Modeattr "Oper" oder "Prog" gesetzt ist.
Gleiches passiert auch in CASE Anweisungen
Kann man Enumerations überhaup in Kontrollstrukturen so abfragen?
Grüße
// Begraben unter 100ten Zeilen Code habe ich den Fehler gefunden, Modeattr wird ständig überschrieben aber im Monitoring komischerweise nicht angezeigt. Der Code funktioniert also einwandfrei.
// Thema kann gelöscht werden!
Hallo,
ich habe folgende Enumeration und Anweisungesblock
Code:
TYPE HVFC_ENUM_MDTTR :
(
Oper := 0,
Prog
);
END_TYPE
Code:
IF HVFC.Modeattr = HVFC_ENUM_MDTTR.Oper THEN
HVFC.Mode := HVFC.Mode_Cmd_Oper;
ELSE
// Mode_Cmd_Oper immer mitsetzen, um "Sprünge" zu vermeiden.
HVFC.Mode_Cmd_Oper := HVFC.Mode_Cmd_Prog;
HVFC.Mode := HVFC.Mode_Cmd_Prog;
END_IF
Code:
Modeattr: HVFC_ENUM_MDTTR;
Im Simulationsmodus funktioniert dieser Anweisungsblock aber leider nicht. Es wird immer der Code im ELSE-Block ausgeführt, unabhängig davon ob HVFC.Modeattr "Oper" oder "Prog" gesetzt ist.
Gleiches passiert auch in CASE Anweisungen
Code:
CASE HVFC.Modeattr OF
HVFC_ENUM_MDTTR.Oper:
HVFC.Cmd := HVFC.Cmd_Oper;
HVFC_ENUM_MDTTR.Prog:
// Cmd_Oper immer mitsetzen, um "Sprünge" zu vermeiden.
HVFC.Cmd_Oper := HVFC.Cmd_Prog;
HVFC.Cmd := HVFC.Cmd_Prog;
END_CASE
Grüße
// Begraben unter 100ten Zeilen Code habe ich den Fehler gefunden, Modeattr wird ständig überschrieben aber im Monitoring komischerweise nicht angezeigt. Der Code funktioniert also einwandfrei.
// Thema kann gelöscht werden!
Zuletzt bearbeitet: