命令:格式 调试模式 仅当您的 CODESYS 实例以调试模式启动。 为此,请使用以下命令行调用启动您的实例: codesys.exe --debug 功能 :该命令根据配置的规则格式化ST对象 CODESYS 选项以提高代码的可读性。 称呼 : 上下文菜单下 重构 菜单 要求:ST 编辑器已打开并且光标位于声明或实现内。 有关更多信息,请参阅: 自动格式化程序 本节内容如下 :
SA0032:未使用的枚举常量 检测编译程序代码中未使用的枚举常量 理由:未使用的枚举常量不必要地增加了枚举定义的大小,并且在阅读程序时可能会造成混淆。 PLCopen规则:CP24 重要性:低 提示 如果一个项目中存在多个应用程序,则仅影响当前活动应用程序下方的对象。如果只有一个应用程序,那么公共 POU 池中的对象也会受到影响。 例 41 . 例子 TYPE My_Enum : ( one :
SA0072:计数器变量的无效使用 检测计数器变量的使用 FOR 环形 理由:在 a 中操作计数器变量 FOR 循环很容易导致无限循环。要防止针对计数器变量的特定值执行循环,请使用 CONTINUE 或者只是一个 IF 。 重要性:高 PLCopen 规则:L12 例 79 . 例子 PROGRAM PLC_PRG VAR_TEMP iIndex : INT; END_VAR FOR iIndex
SA0090:函数结束前的 RETURN 语句 检测代码位置 RETURN 语句不是函数、方法、属性或程序中的最后一个语句。地点 RETURN 存在于一个 IF 还检测到分支。 理由:A RETURN 在代码中导致代码的可维护性、可测试性和可读性变差。一个 RETURN 在代码中很容易被忽略。每次之前 RETURN ,经常忘记插入退出函数时应始终执行的代码。 重要性:中等 PLCopen规则:CP
SA0059: 比较操作总是返回 TRUE 或 FALSE 检测与结果始终为的文字的比较 TRUE 或者 FALSE ,并且可以在编译期间进行处理。 理由:持续产生的操作 TRUE 或者 FALSE 是编程错误的指示。 重要性:高 例 69 . 例子 PROGRAM PLC_PRG VAR byTemp1 : BYTE; END_VAR WHILE byTemp1 <= 255 DO byTemp
SA0062:在表达式中使用 TRUE 或 FALSE 检测文字的使用 TRUE 或者 FALSE 在表达式中 理由:布尔文字的运算 TRUE 或者 FALSE 应避免重复计算并每次返回相同的结果。这种表达是多余的,应该被替换。它的存在表明存在错误。无论如何,表达式都会不必要地增加程序运行时的负担。 重要性:中等 例 72 . 例子 PROGRAM PLC_PRG VAR xTemp1, xTem
SA0063:可能不是 16 位兼容的操作 检测具有临时结果的 16 位操作。背景:在 16 位系统上,可以截断 32 位临时结果。例子: (int+10) 可以超过 16 位。 理由:在极少数情况下,您必须编写应该在 16 位处理器和 32 位处理器上运行的代码,此消息应该有助于防止出现任何问题。 重要性:低 例 73 . 例子 PROGRAM PLC_PRG VAR iVar : INT; E
SA0095:条件分配 检测条件下的分配 IF , CASE , 或者 REPEAT 结构体 理由:赋值 (:=) 和比较 (=) 很容易被误解。结果,条件中的分配很容易是无意的,因此会被报告。这也会使代码的读者感到困惑。 重要性:高 例 87 . 例子 PROGRAM PLC_PRG VAR iCond1:INT := INT#1; iCond2:INT := INT#2; xCond:BOOL
SA0100: 大于 <n> 字节的变量 检测使用超过 n 个字节的变量,其中 n 由当前配置定义。默认值:1024 字节。可以通过双击该行来更改该值。 理由:一些编程指南指定了单个变量的最大大小。这可以用这个来检查。 重要性:低 例 88 . 例子 PROGRAM PLC_PRG VAR aobyTest : ARRAY [0..1024] OF BYTE; END_VAR aobyTest[I
SA0101:名称长度无效 检测长度无效的名称。在里面 项目设置 ,双击规则条目以打开一个对话框,您可以在其中定义名称的长度并定义任何例外。 理由:一些编程指南指定了变量名的最小长度。此分析可用于检查合规性。 重要性:低 PLCopen规则:N6 提示 所有规则都列在 设置静态分析:规则 对话。您可以在其中双击规则 101 以打开特定于规则的配置。然后,您可以定义最小和最大字符数,并在 名称长度