IEC61131-3 3rd Edition defines new keywords.
Current compiler versions (e.g. ctrlX PLC 1.14.1 - based on CODESYS 3.5.17.33) report a warning or an information when these keywords are used e.g. as variable identifiers.
C0543: The name '...' is a reserved keyword in the IEC61131-3 standard. An error will be reported in future version.
The message is issued as a warning when a new keyword is found directly in the source code.
The message is issued as information when a new keyword is found within a compiled library.
Example :
In the Nexeed Automation Framework, the keywords 'Class' and 'Char' are used extensively and are contained in many places in interfaces or method/function signatures and can therefore not be adapted to be backwards compatible.
The new keywords are :
- CHAR
- WCHAR
- ANY_DERIVED
- ANY_ELEMENTARY
- ANY_MAGNITUDE
- ANY_SIGNED
- ANY_DURATION
- ANY_CHARS
- ANY_CHAR
- CHAR_TO
- TO_CHAR
- WCHAR_TO
- TO_WCHAR
- ATAN2
- USING
- CLASS
CODESYS does not plan to introduce the new keywords (as of May 2022).
Nevertheless, we recommend to avoid the above mentioned keywords for new projects or projects that are currently in progress.
The warnings can be suppressed by either adjusting the corresponding option in the respective development environment or through the pragma
{warning disable C0543}
{warning restore C0543}
There is currently no way of suppressing the information.
IEC61131-3 3rd Edition definiert neue Schlüsselworte.
Aktuelle Compilerversionen (z.B. ctrlX PLC 1.14.1 - based on CODESYS 3.5.17.33) melden bei Verwendung dieser Schlüsselworte z.B als Variablenbezeichner die Warnung bzw. die Information.
C0543: The name '...' is a reserved keyword in the IEC61131-3 standard. An error will be reported in future version.
Die Meldung wird als Warnung ausgegeben, wenn ein neues Schlüsselwort direkt im Quellcode gefunden wird.
Die Meldung wird als Information ausgegeben, wenn ein neues Schlüsselwort innerhalb einer kompilierten Bibliothek gefunden wird..
Beispiel :
Im Nexeed Automation Framework werden die Schlüsselworte 'Class' und 'Char' intensiv verwendet und sind an vielen Stellen in Interfaces oder Methoden- bzw. Funktionssignaturen enthalten und können daher nicht abwärtskompatibel angepasst werden.
Die neuen Schlüsselworte sind :
- CHAR
- WCHAR
- ANY_DERIVED
- ANY_ELEMENTARY
- ANY_MAGNITUDE
- ANY_SIGNED
- ANY_DURATION
- ANY_CHARS
- ANY_CHAR
- CHAR_TO
- TO_CHAR
- WCHAR_TO
- TO_WCHAR
- ATAN2
- USING
- CLASS
CODESYS plant nicht, die neuen Schlüsselworte einzuführen (Stand Mai 2022).
Trotzdem empfehlen wir, bei neuen oder aktuell in Arbeit befindlichen Projekten die o.g. Schlüsselworte zu meiden.
Die Warnungen können in der jeweiligen Entwicklungsumgebung in den Projekteinstellungen oder durch das Pragma
{warning disable C0543}
{warning restore C0543}
unterdrückt werden.
Bei den Information besteht derzeit keine Möglichkeit, diese zu unterdrücken.