Safety Error Messages
This section contains a list of the messages of the safety-oriented CODESYS Safety Extension checker of the CODESYS Safety Extension extension of the CODESYS development system.
In the case of a safety application the user can manually initiate the safety-specific function for the programming system part of the error checks via the standard command to Build an application. Similar to the standard Build command, error messages may appear in the standard message window; it is possible to jump from an error code to its position in the source code.
Application
Error Number | Severity | Condition | Position | Text |
---|---|---|---|---|
| Fatal error | Application object | Missing at least one POU in application Explanation: The application contains only commented-out POUs or none at all | |
| Fatal error | Application object | Missing task in application Explanation: The application contains no task. | |
| Warning | Application setting Warning: unused objects activated | Object | Unused <object type> in application Explanation:
|
| Warning | GVL object | GVL contains no declarations Explanation: GVL contains no declarations | |
| Warning | Logical Device object | Logical device contains no mappings Explanation: The logical device does not contain any I/O mappings. | |
| Warning | Basic/Extended POU | POU object | The POU contains no network Explanation: A Basic or Extended level POU contains no networks. |
| Warning | Application setting Warning for missing object comment activated | Object | This object requires an object version and comment Explanation: The object comment of the safety application or a safety POU is empty. |
| Error | Object | Name conflict: Name of object 'Name of the object' is not unique Explanation: The application contains two objects with the same name. The name must be unique across the following object types: safety application, task, POU, GVL, logical device. | |
Additional info | Information | Object | …see object of the same name | |
| Warning | Application setting Warning for significant characters activated. | Object | Insufficient significance of object identifier '<Object>' Explanation: The application contains two objects with names that do not differ in the first n significant characters. |
Additional info | Information | Object | ...same first <number> characters in object identifier '<Object>' | |
| Error | Object Variable declaration | Name conflict: Variable '<variable>' has the same name as an object Explanation: The application contains two objects with names that do not differ in the first n significant characters. | |
Additional info | Information | Object | …see object of the same name | |
| Warning | Application setting Warning for significant characters activated. | Object Variable declaration | Insufficient significance of variable identifier '<Variable>' Explanation: The application contains a variable ( |
Additional info | Information | Object | ...same <number of significant characters> characters in object identifier '<Object>' | |
| Error | Object Variable declaration name or label | Name conflict: Identifier '<symbol>' is already defined. Explanation: The symbol is already defined in the range of validity. Valid for variables and labels. | |
Additional info | Information | Conflict of several global variables or of a global and a local variable | Object Variable declaration name | … see variable of the same name |
Additional info | Information | Label with same name as a variable | Object Insert Label | … see label of the same name |
| Warning | Application setting Warning for significant characters activated. | Object Variable declaration name or label | Insufficient significance of identifier 'Symbol' Explanation: Two symbols are defined in the scope that do not differ in the first n significant characters. |
Additional info | Information | Conflict of several global variables or of a global and a local variable due to significance | Object Variable declaration name | ... same first <number> characters in variable '<Symbol>' |
Additional info | Information | Label with same name as a variable due to significance | Object, label | ... same first <number> characters in label '<Symbol>' |
| Warning | Task object | Task contains no entries Explanation: Task contains no entry | |
| Warning | Application setting Warn about out-commented content activated | Task object | Task contains <n> commented-out entries Explanation: The task contains at least one out-commented entry. |
| Error | Task object, program entry | Unknown program '<Name of program>' in task Explanation: The task contains a call entry with a program that is not part of the application. | |
| Error | Task object Program entry | Task cannot call '<Name of object>' which is not a program Explanation: The task contains a call entry with the name of a POU that is not a program. | |
Additional info | Information | 2nd Object | … see referenced object |
Code format
Error Number | Severity | Position | Text |
---|---|---|---|
| Fatal error | Incompatible format: Unknown code elements in object of version <SafetyExtensionVersion> | |
| Information | Object | Forwards compatibility: Object from '<SafetyVersion>' contains extensions that are ignored in the target system version <ExecVersion> |
| Fatal error | Target version <ExecVersion> not supported |
Error Number | Severity | Position | Text |
---|---|---|---|
| Fatal error | Depends on the error | Fatal: Internal error [<Id>] in checking function <(Fun, Info)> |
| Fatal error | Object | Fatal: Object corrupted |
| Fatal error | Object | Fatal: Application corrupted |
| Fatal error | Object | Fatal: internal error in object <(Id, Info)> |
| Fatal error | Object | Fatal: Error in project structure <(Id, Info)> |
Implementation
Error Number | Severity | Condition | Position | Text Note/Example |
---|---|---|---|---|
| Error | Object, variable declaration | PLCopen: Instance '<instance>' of the single-call function block '<POU>' is not called Explanation: An instance of an FB with single call attribute is never called in the application | |
| Error | Object, network, call instance | PLCopen: Instance '<instance>' of the single-call function block '<POU>' is called several times Explanation: An instance of an FB with single-call attribute is called twice in the application | |
Additional info | Information | Object, network, call instance | … see other call | |
| Error | Object, network, call instance | PLCopen: Conditional call of '<instance>' of type '<POU>' (after conditional jump/return) not allowed Explanation: An instance of an FB with single-call attribute is called following a conditional jump/return | |
Additional info | Information | Object, network, jump/return | … see jump/return | |
| Error | Object, network, call instance | I/O instance '<Instance>' cannot be called twice Explanation: An implicit instance of a stack FB is called more than once | |
Additional info | Information | Object, network, call instance | … see other call | |
| Error | Object, network, L-operand | ISO 13849: Output '<mapping>' must not be assigned at two places Explanation: A mapped output is written in several places | |
Additional info | Information | Object, network, L-operand | … see other assignment | |
| Warning | Application setting Warning for unused variables activated | Object, variable declaration | Unused variable: Function block instance '<instance>' is not called Explanation: A declared FB instance is not called in the application. The components may have been accessed |
| Warning | Application setting Warning for unused variables activated | Object, variable declaration | Unused variable: '<variable>' is declared but never used Explanation: A declared variable is neither read nor written. |
| Warning | Application setting Warning for unused variables activated | Object, variable declaration | Superfluous variable: '<variable>' is assigned but never read Explanation: Although a declared variable is written, it is no longer read afterwards |
| Warning | Application setting Warning: unused contents activated | Object, variable declaration | <Scope> '<Variable>' requires an assignment Explanation: A |
| Warning | Application setting Warning: unused contents activated | Object, variable declaration | The value of <Scope> '<Variable>' is never changed, it should be declared CONSTANT Explanation: A variable is not written but is read. It can be declared |
| Error | Object, network, R-operand | Call to '<Variable>' required before reading output '<Instance>' Explanation: The output of an FB instance is read before the call of the instance has taken place. | |
| Error | Object, network, label | Label between call and reading of the output not allowed Explanation: There is a label between the call of an FB and the reading of an output of this FB | |
Additional info | Information | Object, network, call | … see prior call | |
| Error | Basic POU | Object, network, L-operand | Basic level: Assignment to '<variable>' creates a feedback loop to the previous reading access Explanation: A variable is read and written within a network. |
Additional info | Information | Object, network, R-operand | … see earlier read access | |
| Error | Object, operand | Identifier or value expected Explanation: An operator input or an assignment source is empty. | |
| Error | Object, network, L-operand | Jump/return must be the last element in the network Explanation: The network contains further jumps/returns or assignments after a jump/return. | |
| Warning | Application setting Warning for number of networks activated. | Object | The number <Number> of effective networks exceeds the limit of <Maximum> Explanation: The POU contains more non-commented-out networks than the number indicated in the application object. |
| Warning | Object, network | Empty network Explanation: A network contains no instructions. | |
| Warning | Application setting Warning for number of calls activated. | Object, network, | Network with <number> of calls exceeds the limit of <maximum> Explanation: The network contains more calls of FBs and operators than indicated in the application settings. |
| Warning | Application setting Warn about out-commented content activated | Object, network | Out-commented network Explanation: A network in the POU is out-commented. |
| Warning | Object, network, operator | Unused operand 'Operand' Explanation: The result of an operator is not assigned | |
| Warning | Application setting Warning for unused variables activated | Object, network, label | The label '<Element>' has not been referenced Explanation: The label is not referenced in a jump within the POU. |
| Error | Object, network, R-operand | Function block instance '<instance>': '<FB>' cannot be used as a value Explanation: An FB instance is used as part of an assignment. | |
| Error | Object, network, R-operand | '<operator>' not permissible on type '<type>' Explanation: An operation is performed on an incompatible type, e.g. | |
| Error | Object, network, operator | Type '<type1>' cannot be compared with '<type2>' Explanation: The operands of a comparison operator have incompatible types, for example | |
| Error | Object, network, operator | Different types '<type1>' and '<type2>' to operator '<operator>' Explanation: Operands of different types are used on an operator, e.g. | |
| Error | Object, network, operator | Multiplication and division not permissible by an operand of type '<type>' Explanation: An invalid multiplication/division is performed, e.g. | |
| Error | Basic POU | Object, network, operator | Basic level: Only OR of SAFEBOOL is allowed Explanation: All operands of the |
| Error | Object, network, call instance | Function block instance expected in place of '<Identifier>' Explanation: An attempt is being made to call an FB with a scalar variable as an instance. | |
| Error | Object, network, call instance | '<instance>' is not an instance of '<type>' Explanation: The transferred instance does not correspond to the type of the call. | |
| Error | Object, network, call | '<input>' is not an input of '<FB>' Explanation: The formal input in the call is missing in the definition of the FB. | |
Additional info | Information | The FB does not have a variable of this name or the variable is | Object | … see referred function block |
Additional info | Information | <input> is defined in <FB>, but not | Object | … see <scope> '<input>' in POU |
| Error | Object, network, call | '<output>' is not an output of '<FB>' | |
Additional info | Information | The FB does not have a variable of this name or the variable is | Object | … see referred function block |
Additional info | Information | <output> is defined in | Object | see <scope> '<output>' in POU '<POU>' |
| Error | Object, network, L-operand | '<variable>' is not a valid assignment target Explanation: The target of an assignment is a constant, local | |
| Error | Object, network, L-operand | Input '<instance input>' is no valid assignment target outside of a call Explanation: The input of an function block instance is written to outside the instance call. | |
| Error | Object, network, jump | No such label 'Label' within the scope of the 'JMP' statement. Explanation: The label specified for the jump does not exist in the POU. | |
Additional info | Information | Jump label is defined, but the network is commented out | Object, network, label | ... Definition of '<label>' is commented out |
| Error | Object, network, jump | PLCopen: Backward jump to label '<label>' is not permitted Explanation: The definition of the label lies before the jump. | |
Additional info | Information | Label: Network | ... see definition of '<label>' Explanation: The definition of the label lies before the jump. | |
| Error | Basic POU | Object, network, jump/return | Basic level: Conditional jump/return is not allowed Explanation: A jump/return is used. Possible due to copy/paste from Extended level. |
| Error | Object, network, L-operand | Cannot convert type '<type1>' into type '<type2>' Explanation: The source type of the assignment is incompatible with the assignment target, e.g. | |
| Error | Object, network, R-operand | Conditional jump/return is not possible on type '<type>' Explanation: The condition for a jump/return is not Boolean. | |
| Error | Basic POU | Object, network, operand | Basic level: Accessing variable '<Variable>' of type '<Type>' is not allowed Explanation: The input or output of a system FB of the type |
| Error | Basic POU | Object, network, operand | Basic level: Output '<Output>' of type '<Type>' must not be read Explanation: Outputs of the type |
| Error | Basic POU | Object, network, L-operand | Basic level: Input '<Input>' of type '<type>' must not be written Explanation: Inputs of other FBs of the type |
| Error | Basic POU | Object, network, L-operand | Basic level: Input '<input>' of type '<type>' requires a constant value Explanation: Inputs of other FBs of the type |
Lexical analysis
Error Number | Severity | Condition | Position | Text Example |
---|---|---|---|---|
| Error | Object, cell | Identifier expected in place of '<Token>' Explanation: A cell does contains no valid identifier, e.g. '???' as operand, call instance, call type or variable name in declaration. | |
| Error | Object, cell | Type definition expected in place of '<Token>' Explanation: The type definition of a variable declaration contains no identifier or basic type, e.g. '???' or 'a.b' | |
| Error | Basic/Extended POU | Object, variable declaration, type | Name '<Symbol>' reserved for System level Explanation: A type with a leading underscore is used. |
| Error | Object, cell | Reserved symbol '<Symbol>' used as identifier Explanation: A reserved symbol is used as an identifier, e.g. operators, standard FB names, etc. | |
| Error | Object | Reserved symbol '<Symbol>' used as object name Explanation: A reserved symbol is used as an object name, e.g. operators, standard FB names, etc. | |
| Error | Basic POU | Object, variable declaration, type | Basic level: Function block type '<Type>' reserved for extended level Explanation: A variable of an FB is declared that is not permitted in Basic level ( |
| Error | Object, variable declaration, type | Unknown FB type '<type>' Explanation: An identifier is used as a type that doesn't exist in the application as an FB. | |
| Error | Object, variable declaration, type | Forward reference to fb-type '<type>' (data recursion?) Explanation: An FB is referenced that references its own FB. | |
Additional info | Information | Object, variable declaration, type | … see referred function block | |
| Error | Object, variable declaration, type | <object type> '<object>' used as function block type Explanation: | |
Additional info | Information | Object | ... see referred object Explanation: An object that is not a function block is used as an FB. | |
| Error | Basic/Extended POU | Object, network, R-operand | PLCopen: constant <Value> of type '<type>' is not allowed Explanation: |
| Error | Object, cell | Constant '<value>' too large for type '<type>' Explanation: A constant of the type | |
| Error | Object, network, call | '<operator>' not allowed Explanation: An impermissible operator ( | |
| Error | Basic POU | Object, network, call | Basic level: Operator '<operator>' not allowed (only AND and OR) Explanation: The |
| Error | Extended POU | Object, network, call | '<operator>' only for I/O conversion in extended level programs Explanation: A conversion between |
| Error | Object, network, operand | Identifier '<identifier>' not defined Explanation: No definition exists for the specified identifier, e.g. no variable is defined or components not defined in instance. | |
Additional info | Information | <identifier> is declared but commented out | Object, declaration | ... Definition of '<identifier>' is commented out |
| Error | Object, network, operand | Object '<object>' used like a variable Explanation: | |
Additional info | Information | Object | … see definition of '<object>' Explanation: The name of an object is used as an operand. Object = GVL, POU, Mapping. | |
| Error | Object, network, operand | Access to global variable '<variable>' requires a VAR_EXTERNAL declaration Explanation: A global variable is used as an operand without local | |
Additional info | Information | Object, variable declaration | … see declaration of '<variable>' | |
| Error | Object, network, operand | Component access '<component>': '<instance>' is not a structured variable. Explanation: Component access to a variable with basic type is being performed. | |
| Error | Object, network, L-operand | No external access to 'VAR_INPUT' parameter '<parameter>' of 'FB' Explanation: A |
Variables
Error Number | Severity | Condition | Position | Text Note/Example |
---|---|---|---|---|
| Warning | Application setting Warning for number of declarations activated. Number exceeded. | Object | The number of <number> declarations exceeds the limit of <maximum> Explanation: A GVL or POU contains more declarations than the maximum number specified in the application object. |
| Warning | Application setting Warn about out-commented content activated | Object | Object contains <number> out-commented declaration(s) Explanation: A GVL, POU, or mapping contains out-commented declarations. |
| Error | Object, variable declarations | Access to VAR_IN_OUT <var> forbidden Explanation: A | |
| Error | Object, variable declarations | '<scope>' in not permitted in this context Explanation: A variable with a Scope is declared that is not permissible in the object type, e.g. | |
| Error | Object, variable declarations | No global definition found for VAR_EXTERNAL '<variable>' Explanation: No | |
Additional info | Information | Global declaration of <variable> exists, but it is commented out | Object, variable declaration | ... Definition of '<variable>' is out-commented Explanation: |
| Error | Object, variable declaration | Wrong modifier in declaration <scope> '<variable>' Explanation: The | |
Additional info | Information | Object, variable declaration | … see referred <scope> '<global variable>' declaration | |
| Error | Object, variable declaration | External declarations of I/O variables have no modifier Explanation: | |
Additional info | Information |
| Object, variable declaration | … see referred <scope> '<global variable>' declaration |
| Error | Object, variable declaration | Wrong type '<type>' for VAR_EXTERNAL '<variable>' Explanation: The data type of the | |
Additional info | Information | Object, variable declaration | ....see global declaration '<global variable>:<type>' | |
| Error | Basic POU | Object, variable declaration | Basic level: Reference to normal global variable not allowed Explanation: A normal |
Additional info | Information | Object, variable declaration | … see referred <scope> '<global variable>' declaration | |
| Error | Object, variable declaration | Data recursion: <recursion path> with a <recursion path> of the form 'fb1' -> 'fb2' ->...-> 'fbn' Explanation: An FB defines a variable of its own type. Also across several levels. | |
| Error | Object, variable declaration | <scope> function block instance '<instance>' not permitted Explanation: Function block instances must not be | |
| Error | Object, variable declaration | Type '<FB>' permitted in VAR_EXTERNAL declarations only Explanation: An FB with | |
Additional info | Information | Object | see referred function block | |
| Error | Object, variable declaration | PLCopen: instance of single-call function block '<FB>' only permissible as VAR" Explanation: Instance of single-call function block 'FB' only permissible as | |
Additional info | Information | Object | … see referred function block | |
| Error | Object, variable declaration | PLCopen: Instance of single-call FB '<FB>' only allowed in PROGRAM and single-call FUNCTION BLOCK Explanation: A single-call FB must not be instantiated in a non-single-call FB. | |
Additional info | Information | Object | see referred function block | |
| Error | Basic POU | Object, variable declaration | Basic level: Can use global integer variable '<variable>' only if CONSTANT Explanation: Global |
| Error | Basic POU | Object, variable declaration | Basic level: Word only for diagnostic output ('<variable>' must be constant or output) Explanation: Variables with type |
| Error | Basic POU | Object, variable declaration | Basic level: Time only as constant FB input ('<variable>' must be constant or input) Explanation: Variables with type |
| Error | Extended POU | Object, variable declaration | Extended level: Time only internally, or as constant FB input ('<variable>' must be constant, input or internal) Explanation: Variables with type |
| Error | Basic POU | Object, variable declaration, type | Basic Level: Variable '<variable>' of type '<type>' not allowed Explanation: A variable of the type |
| Error | Object, variable declaration | No initial value for variable '<variable>' Explanation: | |
| Error | Object, variable declaration | No initial value allowed for VAR_EXTERNAL '<variable>' Explanation: | |
| Error | Object, variable declaration | Initial value of permitted for VAR_IN_OUT '<variable>' Explanation: |
Project context – general
Error Number | Severity | Condition | Position | Text |
---|---|---|---|---|
| Fatal error | Fatal: Internal error during project check. Test terminated. Explanation: Internal error, for example zero reference or range overflow |
Error Number | Severity | Condition | Position | Text |
---|---|---|---|---|
| Error | Object safety network variable list (sender), PLC network tab | The group of list identifiers '<number of group>' is not unique within the project. Explanation: The group of list identifiers that are configured in the safety network variable list (sender) is not unique within the project (tab PLC network, input field Group of variable list identifiers on standard controller). | |
Additional info | Object safety network variable list (sender), PLC network tab | …see object of the same group number | ||
| Error | Object safety network variable list (sender), Safety configuration tab | Too many receivers are assigned to the NVL. Explanation: More receivers were assigned to a safety network variable list (sender) than was defined in Maximum number of receivers in the Safety configuration tab. | |
| Error | Object safety network variable list (sender), PLC network tab | The configured port '<port>' of the sender NVL does not match the port of the receiver NVL with the list identifiers '<list identifier pair>'. Explanation: The set port for a specified set of list identifiers of a sender does not match the port of the assigned receiver that was assigned these list identifiers. | |
Additional info | Object safety network variable list (receiver), PLC network tab | ...see linked NVL | ||
| Error | Object safety network variable list (sender), PLC network tab | The list identifiers are used by more than one receiver-NVL Explanation: A set of list identifiers prepared by the safety network variable list (sender) is used by more than one receiver in a project. | |
Additional info | Object safety network variable list (receiver), PLC network tab | ... see NVL with the list identifiers '<list identifier pair>' | ||
| Error | Object safety network variable list (sender), PLC network tab | A linked NVL does not have valid list identifiers for communication. Explanation: A receiver that is assigned to the object "safety network variable list (sender)" has list identifiers that are not valid for the sender. (They are empty or from another area.) | |
Additional info | Object safety network variable list (receiver), PLC network tab | ...see linked NVL | ||
| Error | Object safety network variable list (sender), Safety configuration tab | The safety address of a linked NVL does not match the local one. Explanation: The safety addresses of the sender the and receiver assigned to the sender do not match. | |
Additional info | Object safety network variable list (receiver), Safety configuration tab | ...see linked NVL | ||
| Warning | Object safety network variable list (sender), PLC network tab | The target network addresses of the linked NVLs are different. Explanation: The set target network addresses of the assigned receiver of the tested object "safety network variable list (sender)" do not match. (As all receivers have the same sender as target, this should be the case.) Explicit addresses mixed with broadcast addresses can result in a valid configuration, but they should be avoided nonetheless.) | |
Additional info | Object safety network variable list (receiver), PLC network tab | ... see linked NVL with network address '<network address>' | ||
| Error | Object safety network variable list (sender), Safety configuration tab | The contents of the declarations or the object version of the sender does not match the linked NVL. Explanation: The contents of the variable declarations or the object version of the sender do not match for the sender and receiver. | |
Additional info | Object safety network variable list (receiver), Safety configuration tab | ...see linked NVL |
Error Number | Severity | Condition | Position | Text |
---|---|---|---|---|
| Error | Object 'Safety network variable list (Receiver)' | The linked NVL is unknown or part of the same safety application. Explanation: The sender that is assigned to a "safety network variable list (receiver)" object is invalid:
| |
Additional info | Linked sender is below the same safety application. | Object 'Safety network variable list (Sender)' | see linked NVL | |
| Error | Object safety network variable list (receiver), PLC network tab | The list identifiers are out of range defined by the linked NVL. Explanation: The list identifiers that are set in the object "safety network variable list (receiver)" do not match those that were prepared by the associated sender. | |
Additional info | Object safety network variable list (sender), PLC network tab | ...see linked NVL | ||
| Error | Object safety network variable list (receiver), PLC network tab | The configured port '<port>' does not match the port of the sender NVL with the list identifiers '<list identifier pair>'. Explanation: The set port for a receiver does not match the port set by the sender for the used list identifiers. | |
Additional info | Object safety network variable list (sender), PLC network tab | see linked NVL | ||
| Error | Object safety network variable list (receiver), Safety configuration tab | The contents of the declarations or the object version of the sender does not match the linked NVL. Explanation: The contents of the variable declarations or the object version of the sender do not match for the sender and receiver. | |
Additional info | Object safety network variable list (sender), Safety configuration tab | ...see linked NVL | ||
| Error | Object safety network variable list (receiver), PLC network tab | The list identifiers '<list identifier pair>' conflict with the other list identifiers in the project. Explanation: The same set of list identifiers is used by more than one object "safety network variable list (receiver)" in the project. | |
Additional info | Object safety network variable list (receiver), PLC network tab | ...see NVL with the list identifiers '<list identifier pair>' | ||
| Error | Object safety network variable list (receiver), Safety configuration tab | The safety address of the linked NVL does not match the local one. Explanation: The safety addresses of the sender and receiver do not match. | |
Additional info | Object safety network variable list (sender), Safety configuration tab | ...see linked NVL | ||
| Error | Object safety network variable list (receiver), Safety configuration tab | Permitted maximum of receivers for the linked sender-NVL is exceeded. Explanation: The assigned sender object has more receivers assigned than is permitted by the set value for Maximum number of receivers. | |
Additional info | Object safety network variable list (sender), Safety configuration tab | ...see linked NVL |