Semantischer Fehler (SEM1077): Mehrdeutiger Enumerationswert '...'.
Im Code wird auf ein Element einer Enumeration zugegriffen, dessen Zugehörigkeit nicht eindeutig bestimmt werden kann, d.h. das Element kann zu unterschiedlichen anwenderdefinierten Enumerationen gehören.
Enthalten mehrere Enumerationen Elemente mit demselben Namen, so müssen diese Elemente immer zusammen mit dem Namen der jeweiligen Enumeration verwendet werden.
Hintergrund: Ansprechen von Elementen einer Enumeration im Code
Gemäß der Norm IEC 61131 kann auf die folgenden Arten auf Werte von Enumerationen zugegriffen werden:- Entweder durch Voranstellen des Enumerationsnamens gefolgt von einem #-Zeichen.
MyInt := ColorEnum#Red; - Oder nur durch Angeben des Elementnamens.
MyInt := Red;Die zweite genannte Schreibweise kann jedoch nur dann verwendet werden, wenn das Element auch ohne den Namen der Enumeration eindeutig identifiziert ist.
- Wenn auch eine andere Enumeration ein Element mit dem Namen Red enthält, ist die zweite genannte Schreibweise nicht mehr zulässig.
- Existiert auch eine Variable mit demselben Namen (hier: Red), so bezieht sich die Anweisung MyInt := Red; immer auf die Variable und nicht auf das Enumerationselement.
In beiden Fällen muss vor dem Namen des Elementes der Name der Enumeration angegeben werden.