SA0047:访问直接地址 检测实现代码中的直接地址访问 理由:符号编程总是更可取的。变量的名称也可以具有含义。地址不能表明它的用途。 重要性:高 PLCopen 规则:N1 / CP1 例 58 . 例子 PROGRAM PLC_PRG VAR xVar : BOOL; byVar : BYTE; END_VAR xVar := %IX0.0; %QX0.0 := xVar; %MX0.1 :=
SA0048:直接地址的 AT 声明 检测到 AT 直接地址声明 在代码中使用直接地址是有问题的,因为地址会出现在多个位置: 首先在控制器配置中定义物理对象到地址的分配 程序中的第二个变量被分配给这些地址。 如果由于配置更改而重新定位地址,则需要将变量重新分配给程序中完全不同位置的地址。这是错误的原因并导致代码的可读性和可维护性较差。因此,最好在设备编辑器的 I/O 映射中执行所有分配。 重要性:
SA0105:多个实例调用 检测被多次调用的功能块的实例。为此,必须使用以下编译指示来标记功能块: {attribute 'analysis:report-multiple-instance-calls'} 理由: 某些功能块的设计方式是在一个循环中只能调用一次。此测试检查是否在多个位置进行呼叫。 重要性:低 PLCopen规则:CP16 / CP20 例 92 . 例子 // {attribut