在代码生成期间,您还可以对源代码进行静态分析(lint)。这将决定您的源代码是否符合您定义的编码准则——根据lint分析工具背后的思想。
对于带有静态分析的静态代码分析,只检查项目的应用程序代码。库被排除在检查之外。 POUs视图中的GVL变量不一定要检查: 如果您的项目有多个应用程序,那么只检查活动应用程序中的对象。如果只有一个应用程序,那么也会检查公共POU池中的对象。 |
在默认的开发系统中,XX只包含一组简化的规则。在安装CODESYS Static Analysisadd-on附加组件时,可以使用一组更大的规则、附加的命名约定和指标。 |
借助于pragma {analysis ...},您可以标记代码,这样指定的规则就不会被检查。因此,标记的代码行不需要进行静态分析。标记的代码在检查期间被忽略。
语法:
{analysis <sign><rule number>|,<other combinations of signs and rules, comma-separated>}
-<rule number>: 取消SA规则<规则号>。
-<rule number>: 激活SA规则<规则号>。
.不包括实现代码
要求:规则在工程设置对话框里激活。
1. | 在代码行上面添加pragma {analysis -<number>},其中包含的代码首先不需要检查。例如,对于规则SA0024
| ||
2. | 在代码行下面添加pragma {analysis -<number>},其中包含的代码首先不需要检查。例如,对于规则SA0024
|
.例如:忽略无类型的文字
{analysis -24}
nTest := 99;
iVar := INT#2;
{analysis +24}
规则SA0024: 无类型字面值被停用了两行。虽然代码没有正确到: nTest := DINT#99;
.例如:忽略几个规则
{analysis -10, -24, -18}
...
{analysis +10, +24, +18}
SA0010: 只有一个组件的数组
SA0018: 不寻常的一些访问
SA0024: 只是未知类型的字面值
但是,您不能禁用规则SA0004:使用pragma对输出进行多写访问。 |
语法:
{attribute 'analysis' := '-<rule number>[,<other negative rule numbers, comma-separated>]'}
在编程对象的声明部分插入属性pragma时,整个编程对象将排除指定的规则。如果排除了多个规则,则每个规则由逗号和数字分隔。激活不需要pragma语句。
.另请参阅