CODESYS Development System
方法: FB_Init , FB_Reinit 和 FB_Exit 您可以显式声明方法以影响功能块变量的初始化以及退出功能块时的行为。 提示 隐式方法的返回值类型是 BOOL .该值不由系统评估,但不应更改类型。 FB_Init 总是隐式可用的,它主要用于初始化。对于特定的影响,您还可以显式声明方法并在其中提供带有标准初始化代码的附加代码。 FB_Reinit 必须明确实施。如果此方法存在,则在受
对象:跟踪 象征: 类型的对象 痕迹 用于在一个或多个图表中配置和显示特定于应用程序的跟踪数据。在应用程序运行时,跟踪变量的值曲线,您可以在跟踪编辑器中的 CODESYS 在此期间,记录在控制器上。要求是已将跟踪配置传输到控制器,并且已开始跟踪记录。采样数据传输到开发系统并根据配置以图表形式显示。您可以在跟踪时浏览数据。 欲了解更多信息,请参阅: 跟踪数据采样 提示 如果控制器支持跟踪管理器,那么
使用配方设置值 使用配方同时更改或读取控制器上一组特定变量(配方定义)的配方值。 您可以在中定义菜谱的基本设置,例如位置和格式。 食谱经理 目的。插入任意数量的 食谱定义 在该物体下方。 您可以将配方保存到文件或直接从文件写入 PLC。 可以通过以下方式调用菜谱 CODESYS 开发接口、可视化元素或应用程序。 在远程设备上使用食谱 如果涉及数据源变量并且配置了数据源交换,则配方中的变量值将自动传
命令:检测克隆 功能 :命令扫描打开的程序代码 CODESYS 复制代码的项目,然后打开 克隆检测结果 查看以显示检测到的克隆代码块。在这个过程中,只有大于特定大小的代码块才被认为是克隆。非常小的代码块不会显示为克隆。 在这种情况下,还要注意 提取功能 和 检测代码克隆 指示。 称呼 : 构建 → 静态分析 菜单 静态分析 上下文菜单 要求 : 这 CODESYS Static Analysis
SA0013:具有相同变量名的声明 检测名称已被其他变量使用的变量(例如,具有相同名称的全局变量和局部变量)。还可以检测其函数、操作、方法或属性名称在同一访问范围内使用的变量。还检测在 GVL 中声明的变量 设备 查看或在 POU 池中。然而,为此,GVL POU 视图必须在应用程序中使用。 说明:相同的名称在阅读代码时可能会造成混淆,如果无意中访问了错误的对象,它们可能会导致错误。我们建议您使用
SA0015:通过 FB_Init 访问全局数据 通过方法检测功能块对全局变量的访问 FB_Init .此变量的值取决于初始化的顺序。 理由:根据 POU 实例的声明位置,如果违反规则,可能会访问未初始化的变量。 重要性:高 例 27 . 例子 VAR_GLOBAL g_xTest1 : BOOL; g_iTest3 : INT; END_VAR METHOD PUBLIC fb_init : B
SA0054:REAL/LREAL 的相等/不等比较 检测比较运算符是否 = (平等)和 <> (不等式)比较类型的操作数 REAL 或者 LREAL . 理由: REAL / LREAL 根据 IEEE 754 标准,值被实现为浮点数。该标准意味着特定的、看似简单的十进制数无法精确表示。因此,可能会有不同的表示形式: LREAL 对于相同的十进制数。 考虑以下代码行: lr11 := 1.1;
SA0063:可能不是 16 位兼容的操作 检测具有临时结果的 16 位操作。背景:在 16 位系统上,可以截断 32 位临时结果。例子: (int+10) 可以超过 16 位。 理由:在极少数情况下,您必须编写应该在 16 位处理器和 32 位处理器上运行的代码,此消息应该有助于防止出现任何问题。 重要性:低 例 73 . 例子 PROGRAM PLC_PRG VAR iVar : INT; E
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 映射中执行所有分配。 重要性: