EcoStruxure Machine Expert 中的意味着,在可以将项目下载到目标系统而不发生编译错误之前,将搜索源代码是否与特定编码标准存在偏差。为此,可以在项目设置中配置要遵循的一组规则。在每次生成代码时均将根据这些定义规则执行自动验证。
分析结果作为错误显示在视图中,并添加有前缀 。
示例 (SA0006):
FUNCTION_BLOCK ADD_FB
g_iTemp1 := g_iTemp1 + INT#1;
PROGRAM PLC_PRG //controlled by MainTask
g_iTemp1 := g_iTemp1 + INT#2;
g_xTemp2 := g_iTemp1 > INT#10;
PROGRAM PLC_PRG_1 //controlled by SubTask
g_iTemp1 := g_iTemp1 - INT#3;
g_xTemp2 := g_iTemp1 < INT#-10;
|
(SA0004): |
检测在一个以上位置被写入的输出。 |
VAR_GLOBAL
g_xVar AT %QX0.0 : BOOL ;
g_iTest AT %QW0 : INT ;
END_VAR
PROGRAM PLC_PRG
IF iCondition < INT#0 THEN
g_xVar := TRUE;
g_iTest := INT#12;
END_IF
CASE iCondition OF
INT#1:
g_xVar := FALSE;
INT#2:
g_iTest := INT#11;
ELSE
g_xVar := TRUE;
g_iTest := INT#9;
END_CASE
示例 (SA0027):
PROGRAM PLC_PRG
VAR
ton : INT; // error SA0027
END_VAR
Standard.library 包含在项目中,并提供功能块 TON,从而导致名称多次使用。
示例 (SA0167):
PROGRAM PLC_PRG
VAR
END_VAR
VAR_TEMP
yafb: AFB;
END_VAR
FUNCTION Fun : INT
VAR_INPUT
END_VAR
VAR
funafb: AFB;
END_VAR
METHOD METH : INT
VAR_INPUT
END_VAR
VAR
methafb: AFB;
END_VAR