SA0013:具有相同变量名的声明 检测名称已被其他变量使用的变量(例如,具有相同名称的全局变量和局部变量)。还可以检测其函数、操作、方法或属性名称在同一访问范围内使用的变量。还检测在 GVL 中声明的变量 设备 查看或在 POU 池中。然而,为此,GVL POU 视图必须在应用程序中使用。 说明:相同的名称在阅读代码时可能会造成混淆,如果无意中访问了错误的对象,它们可能会导致错误。我们建议您使用
SA0066:临时结果的使用 检测数据类型小于寄存器大小的语句中临时结果的使用。在这种情况下,隐式强制转换可能会导致不良结果。 理由:出于性能原因, CODESYS Static Analysis 对处理器的寄存器宽度执行操作。中间结果不会被截断。这可能会导致误解,如下例所示: 例 77 . 例子 usintTest := 0; xError := usintTest - 1 <> 255; 在
SA0054:REAL/LREAL 的相等/不等比较 检测比较运算符是否 = (平等)和 <> (不等式)比较类型的操作数 REAL 或者 LREAL . 理由: REAL / LREAL 根据 IEEE 754 标准,值被实现为浮点数。该标准意味着特定的、看似简单的十进制数无法精确表示。因此,可能会有不同的表示形式: LREAL 对于相同的十进制数。 考虑以下代码行: lr11 := 1.1;
SA0058:对枚举变量的操作 检测对枚举数据类型的变量的操作 允许赋值。 理由:枚举不应用作普通整数值。或者,可以定义别名数据类型或者可以使用子范围类型。 重要性:中等 例外:如果枚举用 pragma 标记 {attribute 'strict'} ,那么编译器已经报告了这种操作。 如果枚举被 pragma 声明为标志 {attribute 'flags'} ,则不会发出错误 AND , OR
CODESYS Safety for EtherCAT Safety Module
FB_SLI 描述 功能块 这 FB_SLI 功能块用于保存 Position 输入的上升沿 bSLI 输入(锁存位置)。只要 bSLI 被设定为 TRUE ,进行检查以确保位置位于闩锁位置的范围内 - udiLimitNeg 和闩锁位置 + udiLimitPos 。如果是这样的话,那么 bSLIActive 输出设置为 TRUE 。如果位置超出定义范围,则 bSLIActive 被设定为 FA
CODESYS Development System
职能 在 ST 中,您可以将函数调用用作操作数。 例 191 . 例子: Result := Fct(7) + 3; TIME()函数 此函数产生自系统启动以来经过的时间(以毫秒为单位)。 时间戳是 TIME (32 位)数据类型。溢出后,值再次从 0 。 例 192 . ST 中的示例 systime := TIME(); 本节内容如下 :
CODESYS Development System
规则 变量规则 标识符不得包含空格或特殊字符。 下划线被识别。 例如, A_BCD 和 AB_CD 被视为两个不同的标识符。 不允许有多个连续的下划线。 不区分大小写。 例如, VAR1 和 var1 引用同一个变量。 标识符的长度不受限制。 我们建议您应用 建议 除了变量声明时需要特别考虑的事项之外。通过这样做,您可以在分配名称时获得最佳的协调性。 多重使用规则(命名空间) 标识符不能在本地声明
CODESYS Development System
标签:文件 在这个选项卡上 通用设备编辑器 ,您可以在之间传输文件 CODESYS (主机)和PLC。如果通讯设置正确且 PLC 在线,则 CODESYS 在运行期间自动建立与 PLC 的连接 文件传输 . 表 40 . 主机/运行时 使用标准文件管理器的功能访问主机的文件系统 地点 主机端文件传输的当前目录 打开一个对话框以在设置的路径中创建一个新目录 删除选定的文件或目录 更新设置位置的文件和
_KEYMOD_ALT : DWORD := 2; /// VISU_KEYMOD_CTRL
入门 以下说明将指导您使用一个简单的应用程序,该应用程序使用两个 BACnet 对象以便 1)编写模拟 BACnet 运行时的值,2)根据a发出警报 BACnet 当前的通知类 BACnet 值超出特定范围。 . 要求: 这 CODESYS BACnet2 SL 软件包已安装。 运行时支持 BACnet 。为了实现这一点, CmpBACnet 组件必须在运行时的配置文件中输入和配置。 在 CODE