配置和运行静态分析
使用下面的基本示例项目,您将找到配置和运行静态分析的最重要的步骤和选项。
要求: CODESYS Static Analysis 已安装。
示例项目
如果要重现示例项目,请创建一个标准项目并将 POU 插入设备树中的应用程序下方。然后配置连接到本地的通信设置 CODESYS Control Win。
FUNCTION_BLOCK fb1 VAR_INPUT iVar_fb1in1 : INT; ivar_fb1in2 : INT; rVar_fb1in3 : REAL; END_VAR VAR_OUTPUT iVar_fb1out:INT; END_VAR VAR P_fSampleProperty : INT; rVar : REAL; PRO : BOOL; END_VAR
iVar_fb1out:=iVar_fb1in1 + 1;
FUNCTION_BLOCK fb2 VAR_INPUT iVar_fb2in:INT; END_VAR VAR_OUTPUT iVar_fb2out:INT; END_VAR VAR END_VAR
iVar_fb2out:=iVar_fb2in - 1;
PROGRAM PLC_PRG VAR fb1_inst: fb1; fb2_inst: fb2; END_VAR
fb1_inst(iVar_fb1in1 := 99); fb2_inst(iVar_fb2in := 22); fb2_inst(iVar_fb2in := 1);
检查是否遵守规则
点击 规则 标签.
.切换到将显示一个列表,其中包含所有可能的规则检查。它们按主题类别以树形结构组织。 “规则编号”添加在括号中(例如: 未使用的变量 (33) 在类别中 未使用的对象)。
单击第一行的复选框几次(规则 节点)。
单击切换激活状态。整个树中的复选框带有红色或橙色复选标记,或者根本没有复选标记。
这样,激活所有带有红色复选标记的条目。这意味着 CODESYS Static Analysis 应将检测到的任何违反规则的行为报告为错误。
点击
。在消息视图中报告错误。消息文本标有
并以错误号“SA<rule number>”开头。
双击该消息 SA0033:未使用的变量“iVar_fb2out”。
焦点移至功能块声明部分
fb2
并选择相关变量。该变量已声明,但未使用。这在规则 33 中进行了检查(未使用的变量)。代码中,相关位置用波浪线下划线表示。要测试分析的自动执行,请单击 设置 选项卡,选择 编译后自动进行静态分析 选项。点击 好的 退出对话框。
.在点击
。对话框提示存在编译错误。代码分析报告的错误再次显示在消息视图中。
点击 规则 标签。现在清除对话框中的所有规则。在里面 未使用的对象 类别,显式激活规则 SA0035 (未使用的输入变量 (35))带有橙色复选标记以报告“警告”。请参阅规则文本的工具提示: 该规则对应于以下 PLCopen 规则: CP24)。点击 好的 退出对话框。
。切换到点击
。分析是自动执行的。在消息视图中,报告了两个错误 静态分析消息 类别:
§ SA0035:未使用的输入“iVar_fb1in2”
§ SA0035:未使用的输入“iVar_fb1in3”
双击消息并注释或删除声明。再次进行代码分析。
不显示错误消息。
检查是否符合定义的命名约定
点击 命名约定 标签。
。切换到您会看到一个树形结构的表,该表分为可扩展的变量类别和程序块。
展开 变量的前缀 – 类型前缀 类别,并且在 字首 列,指定
I
为了 智力 (14)。展开 POU 的前缀 – POU 类型的前缀 类别。在里面 字首列,指定
prog
为了 计划 (122) 和fb
为了 功能块 (103)。选择 前缀后的第一个字符应该是大写字母 选项。清除所有其他选项。
点击
。错误信息:
NC0102:名称“PLC_PRG”无效:需要前缀“prog” 因为 PLC_PRG 没有所需的前缀
前缀后的第一个字符应为大写:'ivar_fb1in2' 因为
ivar_fb1in2 : INT;
是在fb1
。NC0014:无效的变量名称 P_fSampleProperty:需要前缀“i” 因为这个整型变量没有所需的前缀。
检查禁用符号
点击 禁止符号 标签.
.切换到行编辑器允许指定不应在代码中使用的字符串。
例如,双击空白行并输入无效字符串
PRO
直接地。双击下一个空白行,然后单击按钮打开输入助手。从 标准类型, 选择 真实的.点击 行 退出对话框。
点击
。错误消息
Forbidden symbol 'REAL'
和Forbidden symbol 'PRO'
显示在消息视图中。双击消息文本可跳转到相关代码行。
显示指标
CODESYS Static Analysis 对代码执行选定的测试,您可以在视图中显示结果。
点击 指标 标签.
.切换到这些指标 CODESYS Static Analysis 适用于代码列于表中。
对于本例,激活 输入变量的数量 metric 并指定允许的值范围:下限
1
和上限2
。例如,激活更多指标 代码大小 和 通话次数。
点击
。该视图包括一个表格,其中每个表格都有一行 节目单位 的示例程序。对于每个激活的指标,有一列显示测量值。超出设置中定义的值范围的值会以红色突出显示。就本具体示例而言,这至少是 PLC_PRG/输入 字段,因为该 POU 中的输入变量数量大于定义的上限
2
。