如何管理通过西门子S7-1200 PLC检测到的外设错误?

s7-1200 plc 能够对有诊断能力的设备进行错误检测和报告。这些错误称之为诊断错误。系统能够检测以下诊断错误: 无用户电源(信号模块/信号模板) 超过高限位 (模拟量输入或输出) 超过低限位 (模拟量输入或输出) 断线(电流输出) 短路(电压输出) 所有诊断错误将会触发diagnostic error interrupt(ob82)。diagnostic error interrupt(ob82)包含启动信息,可帮助用户定义错误发生的情况: 哪个设备与通道发生错误 当前事件是到来事件还是离去事件 用户可以在 ob82 中编写指令用于确定这些信息并可采取相应的措施。 使用 diagnostic error interrupt组织块(ob82)评估诊断错误事件 当下列条件满足时,几个不同诊断错误中的任何一个产生或离去都将触发诊断错误事件: ob82 已被添加到 s7-1200 plc 中。 模块已使能诊断错误事件。 假如 ob82 不存在,cpu 将忽略错误。
假如有诊断能力的模块发现错误时,diagnostic error interrupt ob82 将会中断循环程序的正常执行。 说明
当创建一个新的项目时将不会自动添加 diagnostic error interrupt(ob82)。
序号 使用“诊断错误中断”组织块(ob82)评估诊断错误事件
1 添加使用diagnostic error interrupt组织块(ob82)评估诊断错误事件 浏览项目树,找到“添加新块” 。 在“添加新块”窗口,点击“组织块”按钮。 在列表中选择“诊断错误中断”。 点击“ok”按钮。 说明 程序中只能有一个“诊断错误中断”组织块。
图 01
2 从diagnostic error interruptob82 中读出启动信息 双击项目树中的“诊断错误中断”ob82。 浏览指令面板。 拖拽“move”指令到 ob82 中的网络。 将“iostate”变量中的值传送到全局变量(例如 db1.w_iostate)。 按照此方式编写其它要监控的变量,如下图所示。
图 02
3 评估诊diagnostic error interruptob82 的启动信息 “诊断错误中断”ob82 有如下错误信息: iostate (word)
iostate包含带有诊断能力的模板的 i/o 状态。 详细信息见表 3。 laddr (hw-any)
硬件识别号。
硬件识别号用于识别模块或模块的功能单元(例如输出和高速计数器)。 硬件识别号由数字组成,在系统的诊断报警中会显示此数字用于定位出错的模块。可在 device configuration 中的 properties 选项中找到功能单元的hw-id 。浏览 io addresses/hw identifier 项目的导航区域(如下图) channel (uint)
channel 包含了信号模块/信号模板中被使用的输出通道号。 multierror (bool)
the multierror 位指示了不止一次发生过错误。
图 03
表 01 使能并理解不同的诊断错误事件 操作系统会监视带有诊断能力的模板是否发生上面提及的诊断错误。诊断错误事件将会被闪烁的红色led灯指示。下面的地表格中列出了不同诊断错误事件的额外信息,如何使能它们,已经led灯是如何指示的。
序号 理解不同的诊断错误事件
1 no encoder or load power
“无传感器或负载电压。” 如下的 s7-1200 plc led 灯将会闪烁(闪烁的 led 灯颜色:红色): cpu的“error”灯。 所有信号模块/信号模板的 led 灯 enable power diagnostics “启用电源诊断” 浏览项目树中的设备组态。 点击设备组态窗口中的信号模块。 选择属性标签,点击“常规”目录下的“ai4/ao2”条目。 点击选中“启用电源诊断”。
图 04
2 超过上限
超过模拟量输入/输出的最高限制(输出值大于 +32511)。 如下的 s7-1200 plc led 灯会闪烁(闪烁的led灯颜色:红色): cpu的“error”灯。 信号模块的“diag”灯。 相关的通道指示灯。 “启用溢出诊断” 浏览项目树 ,找到设备组态 。 点击设备组图窗口中的信号模块。 选择属性标签,点击“常规”目录下的“ai4/ao2”条目。 选择需要监控的通道。 点击选中启用溢出诊断。
图05
3 超过下限
超过模拟量输入/输出的下限(电流输出值小于“0”,电压值小于“-32512”)。 如下的 s7-1200 plc led 灯将会闪烁(闪烁的 led 灯颜色:红色): cpu的error灯。 信号模块的diag灯。 相关的通道指示灯。 “启用下溢诊断” 浏览项目树 ,找到设备组态 。 点击设备组态窗口中的信号模块。 选择属性标签,点击“常规”目录下的“ai4/ao2”条目。 选择需要监控的通道。 点击选中启用下溢诊断。 请查看上面的图以获得详细信息。
4 wire break
模拟量电流输出断线。 如下的 s7-1200 plc led 灯将会闪烁(闪烁的 led 灯颜色:红色): cpu 的 error 灯。 信号模块的 diag 灯。 相关的通道指示灯。 “启用断线诊断” 浏览 项目树 ,找到 设备组态。 点击 设备组态 窗口中的信号模块。 选择属性标签,点击“常规”目录下的“ai4/ao2”条目。 选择需要监控的通道。 选择模拟量输出类型为 电流。 点击选中 启用断线诊断。
图 06
5 short circuit
模拟量电压输出短路。 如下的 s7-1200 plc led 灯将会闪烁(闪烁的led灯颜色:红色): cpu 的error灯。 信号模块的diag灯。 相关的通道指示灯。 “启用短路诊断” 浏览 项目树 ,找到 设备组态。 点击 设备组态 窗口中的信号模块。 选择属性标签,点击“常规”目录下的“ai4/ao2”条目。 选择需要监控的通道。 选择模拟量输出类型为 电压。 点击选中 启用短路诊断 。
图 07
表 02 使用 step 7 basic 在线诊断。 当使用 step 7 basic 在线连接 s7-1200 plc 时,可以使用online & diagnostics功能: 在线连接 s7-1200 plc。 浏览项目树找到在线和诊断。 浏览在线访问 窗口的导航区域找到诊断缓冲区。 从 事件列表中选择一个诊断错误事件。 在 事件 列表下面,显示有所选事件的详细信息,在这里可以看到硬件标识(hw-id),通道号和事件类型。 说明
incoming event 表明一个事件的开始。
outgoing event 表明一个事件的结束。
图 08 iostate tag
如下的表格中显示了 iostate 变量可能的 i/o 的状态。
io state 描述
bit 0 组态正确: 1, 组态正确 0, 组态不再正确
bit 4 错误: 1, 存在一个错误(例如断线) 0, 错误不再存在
bit 5 组态不正确: 1, 组态不正确 0, 组态再次正确
bit 6 i/o无法被访问: 1, i/o 错误发生 在这种情况下, laddr变量包含了访问错误 i/o 的硬件识别号 0, i/o 可以再次被访问
表 03 创建环境: 该文档中的截屏来自 step 7 basic v11 。 需求: s7-1200 plc 以太网电缆 pg / pc step 7 (tia portal) 带诊断能力的信号模块/信号模板