诊断数据块 (S7-300, S7-400) 用途 诊断 DB 是指令 CAM_DIAG (页 8455) 或 CAM_DIAG_452 (页 8459) 的存储位置。 它包含模 块的缓冲区,该缓冲区由指令处理。 组态 诊断 DB 模块地址 内部数据 作业状态 触发位 经过处理的诊断缓冲区 内容 下表显示了诊断 DB 的内容。 说明 请勿更改未在此表中列出的任何数据。 地址 参数 数据类型 初始值 说明 0.0 MOD_ADDR (输入!) INT 0 模块地址 256.0 JOB_ERR INT 0 通信错误 258.0 JOBBUSY BOOL FALSE 1 = 作业处于活动状态DIAGRD_EN BOOL FALSE 1 = 无条件读取诊断缓冲区 260.0 DIAG_CNT INT 0 列表中的有效条目数 262.0 DIAG[1] STRUCT 诊断数据Zui新条目 272.0 DIAG[2] STRUCT 诊断数据第二个条目 282.0 DIAG[3] STRUCT 诊断数据第三个条目 292.0 DIAG[4] STRUCT 诊断数据Zui旧的条目下表显示了参数 DB 的内容。 说明 请勿更改未在此表中列出的任何数据。 地址 参数 数据类型 初始值 说明 机器数据PI_MEND BOOL FALSE • FM 352:0 • FM 452: 1:启用硬件中断:满量程值 3.2 PI_CAM BOOL FALSE 1:启用硬件中断:凸轮开/关 3.5 PI_MSTRT BOOL FALSE • FM 352:0 • FM 452: 1:启用硬件中断:测量开始 4.0 EDGEDIST DINT L#0 沿检测的Zui小沿距 8.0 UNITS DINT L#1 物理单位系统。
诊断条目的结构 下表显示了诊断条目 DIAG[n] 的结构。 地址 参数 数据类型 初始值 说明 +0.0 STATE BOOL FALSE 0 = 离开的事件 1 = 进入的事件 +0.1 INTF BOOL FALSE 1 = 内部错误 +0.2 EXTF BOOL FALSE 1 = 外部错误 +2.0 FCL INT 0 错误类别: 1: 操作错误 4: 数据错误 5: 机器数据错误 7: 凸轮数据错误 15: 消息 128: 诊断错误 +4.0 FNO INT 0 错误编号 0 ... 255 +6.0 CH_NO INT 0 通道编号(始终为 1) +8.0 CAMNO INT 0 错误类别对应凸轮数据错误的凸轮编号 0 到 127 作业管理 (CAM_CTRL) (S7-300, S7-400) 作业 通过作业处理与模块的数据通信,而不是控制和反馈信号的传送。 要启动一项作业,请在通道 DB 中置位相应的触发位,包括写入作业的相应数据。 要执行此 作业,请调用 CAM_CTRL (页 8454) 指令。 如果要集中操作模块,读取作业将立即执行。 如果在分布式组态中使用 FM 352,读取作业 可能需要几个周期。 由于需要来自模块的确认,因此写入作业至少需要 3 次调用(或 OB 周期)。 如果在分布式 系统中使用 FM 352,则写入作业可能需要 3 次以上调用。 如果必要,可以随控制信号同时发送多个作业。 除了用于写入功能开关的作业以外,所有 作业均按在通道 DB 中指定的触发位顺序执行。 一项作业完成后,即会将触发位复位。 在 下次调用该指令时会识别并执行下一个未决作业。除了触发位,还为所有作业提供了完成位和错误位。 这些位通过扩展名进行区分: 位 扩展名 触发位 _EN ("enable") 完成位 _D ("done") 错误位 _ERR ("error") 在评估作业的完成位和错误位之后或启动作业之前,应将作业的完成位和错误位设置为 0。 对 JOBRESET 位进行置位时,在执行未决作业之前复位所有完成位和错误位。 然后将 JOBRESET 位复位为 0。 功能开关 功能开关用于启用和禁用模块状态。仅在开关设置有变化时,才执行写入功能开关的作业。 执行完该作业后,会保留功能开关的设置。 不能同时激活长度测量和沿检测。 因此,CAM_CTRL 指令会确保启用一个功能开关时,禁 用另外一个功能开关。 但是,如果同时启用两个功能开关 (0 → 1),则启用长度测量。 可在调用 CAM_CTRL 时同时使用功能开关和作业。 与作业相同,功能开关也具有扩展名为 _D 的完成位以及扩展名为 _ERR 的错误位。 为了能够评估完成位和错误位,应该在更改功能开关时将这些位设置为 0。 作业状态 作业执行的状态可以从通道 DB 中的返回值 RETVAL 和活动位 JOBBUSY 读取。 可以根据单 个作业的触发位、完成位和错误位来评估作业的状态。作业管理 (CAM_CTRL_452) (S7-300, S7-400) 作业 通过作业处理与模块的数据通信,而不是控制和反馈信号的传送。 要启动某个命令,请在通道 DB 中置位相应的触发位,包括写入作业的相应数据。 要执行此 命令,请调用 CAM_CTRL_452 (页 8457) 指令。 读取命令会立即执行。 由于需要来自模块的确认,因此写入命令至少需要 3 次调用(或 OB 周期)。 如果必要,可以随控制信号同时发送多个作业。 除了用于写入功能开关的命令外,所有作 业均按在通道 DB 中指定的触发位的顺序执行。 命令完成后,该触发位复位。 在下次调用 该指令时识别并执行下一个未决命令。 除了触发位,还为所有作业提供了完成位和错误位。 这些位通过扩展名进行区分: 位 扩展名 触发位 _EN ("enable") 完成位 _D ("done") 错误位 _ERR ("error") 在评估命令的完成位和错误位后或启动命令前,应将此命令的完成位和错误位设置为 0。 对 JOBRESET 位进行置位时,在执行未决作业之前复位所有完成位和错误位。 然后将 JOBRESET 位复位为 0。 功能开关 功能开关用于启用和禁用模块状态。 只有开关设置发生更改,才执行用于写入功能开关的 命令。 执行完该命令后,会保留功能开关的设置。 不能同时激活长度测量和沿检测。 因此,CAM_CTRL_452 指令会确保启用一个功能开关时, 禁用另外一个功能开关。 但是,如果同时启用两个功能开关 (0 → 1),则启用长度测量。 可在调用 CAM_CTRL_452 时同时使用功能开关和作业。 与作业相同,功能开关也具有扩展名为 _D 的完成位以及扩展名为 _ERR 的错误位。 为了能够评估完成位和错误位,应该在更改功能开关时将这些位设置为 0。错误类别 (S7-300, S7-400) 错误类别 1: 操作错误 (S7-300, S7-400) 说明 与操作员输入/控制异步检测到操作错误。 编号 含义 诊断中断 1 超出软件限位开关起始点 是 2 超出软件限位开关终点 是 3 超出运行范围起点 是 4 超出运行范围终点 是 13 无法执行即时设置实际值 是 原因 即时设置实际值后,软件限位开关超出行程范围 (-100 m 到 +100 m 或 -1000 m 到 +1000 m)。 由设置实际值/即时设置实际值操作引起的偏移量大于 ± 100 m 或 ± 1000 m。 结果 轴不同步。错误类别 4: 数据错误 (S7-300, S7-400) 说明 与操作员输入/控制同步检测到数据错误。 编号 含义 诊断中断 10 零点偏移不正确 否 原因 零点偏移大于 ±100 m 或 ±1000 m。 在零点偏移后,软件限位开关超出行程范围 (-100 m 到 +100 m 或 -1000 m 到 +1000 m)。 旋转轴: 零点偏移量大于旋转轴的终点。 11 实际值规范不正确 否 原因 线性轴: 坐标位于当前(可能发生了移动)软件限位开关之外。 旋转轴: 坐标小于 0 或大于旋转轴的终点。 12 参考位置错误 否 原因 线性轴: 坐标位于当前(可能发生了移动)软件限位开关之外。 旋转轴: 坐标小于 0 或大于旋转轴的终点。 20 不允许启用机器数据 否 原因 模块上没有新的(无错误)机器数据 21 不允许即时设置实际值 否 原因 启用“重新触发参考点”时尝试执行“即时设置实际值”。 27 位编码设置无效 否 原因 未使用的位(在这种情况下是未写入的位)不等于 0。 试图同时选择“长度测量”和“沿检测”。 28 不允许重新触发参考点 否 原因 “即时设置实际值”激活期间尝试执行“重新触发参考点”。 试图通过 SSI 编码器执行“重新触发参考点”。 29 位编码命令无效 否 原因 未使用的位(在这种情况下是未写入的位)不等于 0。 30 前置时间不正确 否 31 凸轮编号不正确 否 原因 凸轮无效 凸轮编号不在 0 到 127 的范围内。