SA0120:程序调用 检测程序调用 说明:根据IEC 61131-3标准,程序只能在任务配置中调用。当您不从其他位置调用程序时,代码更容易移植。 重要性:低 例 102 . 例子 PROGRAM prog_control VAR END_VAR ; PROGRAM PLC_PRG VAR END_VAR prog_control(); 输出在 留言 看法: SA0120:不允许程序调用“prg_
SA0121:缺少 VAR_EXTERNAL 声明 检测功能块中全局变量的使用,而无需将其声明为 VAR_EXTERNAL 理由:根据 IEC 61131-3 标准,只有通过显式导入才允许访问全局变量 VAR_EXTERNAL 宣言。 重要性:低 PLCopen规则:CP18 例 103 . 例子 VAR_GLOBAL iGlob1 : INT; END_VAR PROGRAM PLC_PRG V
SA0122:数组索引定义为表达式 检测数组索引声明中表达式的使用 理由:并非所有系统都允许将表达式作为数组限制。 重要性:低 例 105 . 例子 PROGRAM PLC_PRG VAR CONSTANT c_iValue : INT := INT#15; END_VAR VAR arr : ARRAY [0..c_iValue + 1] OF INT; END_VAR 输出在 留言 看法: S
SA0123:INI、ADR 或 BITADR 的用法 检测使用 CODESYS Static Analysis - 特定的运算符 INI , ADR , 和 BITADR . 理由: CODESYS - 特定的运算符会阻止代码的可移植性。 重要性:低 例 106 . 例子 PROGRAM PLC_PRG VAR uiTemp : UINT; TempVarInFUNC : DWORD; END_
SA0147:不寻常的班次操作 -strict 检测不对位域数据类型进行的位移操作( BYTE , WORD , DWORD , LWORD ) 说明:IEC 61131-3 标准只允许对位域数据类型进行位访问。但是,那 CODESYS 编译器还允许对无符号数据类型进行位移操作。 重要性:低 提示 另见严格规则 SA0018 . 例 107 . 例子 PROGRAM PLC_PRG VAR in_
SA0148:异常位访问 -strict 检测未对位域数据类型进行的位访问( BYTE , WORD , DWORD , 和 LWORD )。 IEC 61131-3 标准只允许对位域数据类型进行位访问。但是,那 CODESYS 编译器还允许对无符号数据类型进行位访问。 重要性:低 例 108 . 例子 PROGRAM PLC_PRG VAR iTemp1 : INT; diTemp3 : DIN
Static Analysis ¶ Note The CODESYS Professional Developer Edition provides a tool for static code analysis . A rule set is included for automatically checking the naming convention described above. Un
Parameterization with parameter lists ¶ Implementation Details The language model of a certain library in a certain version is loaded only once in a project. This means that if, for example, the libra
Parameter Handling ¶ There are several ways for supplying values (from the caller) to a function, a function block or its methods (the callee). These values are necessary to influence the implemented
Visibility Control ¶ Visibility modifiers also none as access modifiers can be applied to some elements of CODESYS project or library. CODESYS will provide two groups of these modifiers. Attributes fo