300PLC硬件远程配置诊断如何操作

百度视频搜索_第1课时.S7-300PLC硬件产品概述当前位置: >>
第六章 S7-300PLC故障诊断
第七章 故障诊断PLC是运行在工业环境中的控制器,一般而言可靠性比较高, PLC是运行在工业环境中的控制器,一般而言可靠性比较高, 出现故障的概率较低,但是,出现故障也是难以避免的。一 般引发故障的原因有很多,故障的后果也有很多种。 引发故障的原因虽然我们不能完全控制,但是我们可以通过 日常的检查和定期的维护来消除多种隐患,把故障率降到最 低。故障的后果轻的可能造成设备的停机,影响生产的数量; 重的可能造成财产损失和人员伤亡,如果是一些特殊的控制 对象,一旦出现故障可能会引发更严重的后果。 故障发生后,对于维护人员来说最重要的是找到故障的原因, 迅速排除故障,尽快恢复系统的运行。对于系统设计人员在 设计时要考虑到系统出现故障后的系统的自我保护措施力争 使故障的停机时间最短,故障的产生的损失最小。 7.1 了解S7-300 PLC的基本故障种类 了解S7PLC的基本故障种类一般PLC的故障主要有外部故障或是内部错误造成。外部故障时由外 一般PLC的故障主要有外部故障或是内部错误造成。外部故障时由外 部传感器或执行机构的故障等引发PLC产生故障,可能会使整个系统 部传感器或执行机构的故障等引发PLC产生故障,可能会使整个系统 停机,甚至烧坏PLC。 停机,甚至烧坏PLC。 而内部错误是PLC内部的功能性错误或编成错误造成的,可以使系统 而内部错误是PLC内部的功能性错误或编成错误造成的,可以使系统 停机。S7-300具有很强的错误(或称故障)检测和处理能力,CPU检 停机。S7-300具有很强的错误(或称故障)检测和处理能力,CPU检 测到某种错误后,操作系统调用对应得组织块,用户可以在组织块中 编程,对发生的错误采取相应的措施。对于大多数错误,如果没有给 组织块编程,出现错误时CPU将进入STOP模式。 组织块编程,出现错误时CPU将进入STOP模式。 被S7 CPU检测到并且用户可以通过组织块对其进行处理的错误分为两 CPU检测到并且用户可以通过组织块对其进行处理的错误分为两 类: 1、异步错误 异步错误是与PLC的硬件或操作系统密切相关的错误,与程序执行无 异步错误是与PLC的硬件或操作系统密切相关的错误,与程序执行无 关,但异步错误的后果一般比较严重。 2、同步错误 同步错误是与执行用户程序有关的错误,程序中如果有不正确的地址 区,错误的编号或错误的地址,都会出现同步错误,操作系统将调用 同步错误OB。 同步错误OB。 7.2 掌握PLC的常规维护及故障排除 掌握PLC的常规维护及故障排除 的方法为了保障系统的正常运行,定期对PLC系统 为了保障系统的正常运行,定期对PLC系统 进行维护和检查是必不可少的,而且还必 须熟悉一些故障诊断和排除方法。 7.2.1 检查与维护 7.2.2 外部故障的排除方法 7.2.3 内部错误的故障诊断 7.2.1 检查与维护一、定期检查 PLC是一种工业控制设备,尽管在可靠性方 PLC是一种工业控制设备,尽管在可靠性方 面采取了许多措施,但工作环境对PLC影响 面采取了许多措施,但工作环境对PLC影响 还是很大的。所以,通常每隔半年时间应 对PLC作定期检查。如果PLC的工作条件不 PLC作定期检查。如果PLC的工作条件不 符合表7 符合表7-1规定的标准,就要做一些应急处 理,以便使PLC工作在规定的标准环境。 理,以便使PLC工作在规定的标准环境。 表7-1 周期性检查一览表 检查项目交流电源 电压 稳定度检查内容测量加在PLC上的电压是否为额定值? 测量加在PLC上的电压是否为额定值? 电源电压是否出现频繁急剧的变化?标准电源电压必须在工作电压范 围内 电源电压波动必须在允许范 围内工作环境 温度、湿度 震动、灰尘温度和湿度是否在相应的变化范围内? (当PLC安装在仪表板上时,仪表上的温度 (当PLC安装在仪表板上时,仪表上的温度 可以认为是PLC的环境温度。) 可以认为是PLC的环境温度。) 基本单元和扩展单元是否安装牢固? 基本单元和扩展单元的联接电缆是否完全 插好? 接线螺钉是否松动? 外部接线是否损坏?温度0~55℃相对湿度85%以 温度0~55℃相对湿度85%以 下振幅小于0.5mm(10~55Hz) 下振幅小于0.5mm(10~55Hz) 无大量灰尘、盐分和铁屑 安装螺钉必须上紧 联接电缆不能松动 联接螺钉不能松动 外部接线不能有任何外观异 常安装条件使用寿命锂电池电压是否降低? 继电器输出触点锂电池工作5 锂电池工作5年左右 继电器输出触点寿命300万次 继电器输出触点寿命300万次 (35V以上) 35V以上) 二、日常维护 PLC除了锂电池和继电器输出触点外,基本 PLC除了锂电池和继电器输出触点外,基本 上没有其它易损元器件。由于存放用户程 序的随机内存(RAM),计数器和具有保 序的随机内存(RAM),计数器和具有保 持功能的辅助继电器等均用锂电池保护, 锂电池的寿命大约5 锂电池的寿命大约5年,当锂电池的电压逐 渐降低达一定程度时,PLC基本单元上的电 渐降低达一定程度时,PLC基本单元上的电 池电压跌落指示灯会亮。提示用户注意, 有锂电池所支持的程序还可以保持一周左 右,必须更换电池,这是日常维护的主要 内容。 调换锂电池的步骤: 调换锂电池的步骤:1、在拆装之前,应先让PLC通电15S以上,这样可 、在拆装之前,应先让PLC通电15S以上,这样可 使作为内存备用电源的电容器充电,在锂电池断 开后,该电容可对PLC作短暂供电,以保护RAM 开后,该电容可对PLC作短暂供电,以保护RAM 中的信息不丢失。 2、断开PLC的交流电源。 、断开PLC的交流电源。 3、打开基本单元的电池盖板。 4、取下旧电池,装上新电池。 5、盖上电池盖板。 更换电池的时间要尽量短,一般不允许超过3min。 更换电池的时间要尽量短,一般不允许超过3min。 如果时间过长,RAM中的程序将丢失。 如果时间过长,RAM中的程序将丢失。 7.2.2 外部故障的排除方法PLC有很强的自诊断能力,当PLC自身故障 PLC有很强的自诊断能力,当PLC自身故障 或外围设备发生故障,都可用PLC上具有诊 或外围设备发生故障,都可用PLC上具有诊 断指示功能的发光二极管的亮灭来诊断。 一、故障查找 1、总体检查 根据总体检查流程图找出故障点的大方向,逐渐 细化,以找出具体故障,如图7 细化,以找出具体故障,如图7-1所示。 2、电源故障检查电源等不亮部需要对供电系统进行检查,检查流程图如图7 电源等不亮部需要对供电系统进行检查,检查流程图如图7-2所示。 3、运行故障检查电源正常,运行指示灯不亮,说明系统已因某种 异常而终止了正常运行,检查流程图如图7 异常而终止了正常运行,检查流程图如图7-3所示。 4、输入输出故障检查输入输出是PLC与外部设备进行信息交流的信道,其是否正常工作,除了和 输入输出是PLC与外部设备进行信息交流的信道,其是否正常工作,除了和 输入输出单元有关外,还与联接配线、接线端子、保险管等组件状态有关。 图7-4和图7-5分别所示的是输入检查流程和输出检查流程。 和图7图7-4 输入检查流程图 图7-5 输出检查流程图 5、外围环境的检查影响PLC工作的环境因素主要有温度、湿度、 影响PLC工作的环境因素主要有温度、湿度、 噪音与粉尘,以及腐蚀性酸碱等。 二、故障的处理不同故障产生的原因不同,它们也有不同的处理方法,具体请见下表所列。 序 号 1 2 3 异常现象 可能原因 [POWER]LED灯不亮 [POWER]LED灯不亮 保险丝多次熔断 [RUN]LED灯不亮 [RUN]LED灯不亮 1、电压切换端子设定不良2、保险丝熔断 1、电压切换端子设定不良 2、线路短路或烧坏 1、程序错误2、电源线路 、程序错误2 不良3 I/O单元号重复4 不良3、I/O单元号重复4、 远程I/O电源关,无终端 远程I/O电源关,无终端 正确设定切换端子 更换保险丝 正确设定切换端子 更换电源单元处理修改程序 更换CPU单元 更换CPU单元 修改I/O单元号 修改I/O单元号 接通电源4 5 6运行中输出端没闭合([POWER]灯 运行中输出端没闭合([POWER]灯 亮) 编号以后的继电器不动作 特定的继电器编号的输出(入)接 通电源回路不良 I/O总线不良 I/O总线不良 I/O总线不良 I/O总线不良更换CPU单元 更换CPU单元 更换基板单元 更换基板单元7特定单元的所有继电器不接通I/O总线不良 I/O总线不良更换基板单元表7-2 CPU装置、I/O扩展装置故障处理 CPU装置、I/O扩展装置故障处理 序号异常现象可能原因 1、未加外部输入电压 2、外部输入电压低 供电 加额定电源电压 拧紧处理1输入全部不接通(动作指示灯也灭) 3、端子螺钉松动 4、端子板联接器接触不良把端子板补充插入、锁紧。更换端子板联接器 更换单元 更换单元 更换输入器件 检查输入配线 拧紧 把端子板补充插入、锁紧。更换端子板联接器 调整输入组件 更换单元 修改程序 更换组件 修改程序 使外部输入电压在额定值范围 抗干扰措施: 安装绝缘变压器、安装尖峰抑制器、用屏蔽线 配线等 拧紧 把端子板补充插入、锁紧。更换端子板联接器 拧紧 把端子板补充插入、锁紧。更换端子板联接器 更换CPU单元 更换单元2 3输入全部断开(输入指示灯也灭) 输入全部不关断输入回路不良 输入回路不良 1、输入器件不良 2、输入配线断线 3、端子螺钉松驰416特定继电器编号的输入不接通4、端子板联接器接触不良 5、外部输入接触时间短 6、输入回路不良 7、程序的OUT指令中用了输入继电器编号 1、输入回路不良5特定继电器编号的输入不关断 2、程序的OUT指令中用了输入继电器编号 1、外部输入电压低 2、噪音引起的误动作6输入不规则ON/OFF动作 3、端子螺钉松动 4、端子板联接器接触不良 1、COM端螺钉松动7异常动作的继电器编号为8点单位2、端子板联接器接触不良 3、CPU不良8输入动作指示灯不亮(动作正常)LED灯坏表7-3 输入单元故障处理 序号异常现象可能原因 1、未加负载电源 2、负载电源电压低 3、端子螺钉松动 加电源处理使电源电压为额定值 拧紧 把端子板补充插入、锁紧。更换端子 板联接器 更换保险丝 更换单元 更换单元 更换单元 更换单元 修改程序 更换单元 更换输出器件 检查输出线 拧紧 端子充分插入、拧紧 更换继电器 更换单元1输出全部不接通4、端子板联接器接触不良 5、保险丝熔断 6、I/O总线接触不良 7、输出回路不良2输出全部不关断输出回路不良 1、输出接通时间短3特定继电器编号的输出不接通 (动作指示灯灭)2、程序中指令的继电器编号重复 3、输出回路不良 1、输出器件不良 2、输出配线断线4特定继电器编号的输出不接通 (动作指示灯亮)3、端子螺钉松动 4、端子联接接触不良 5、继电器输出不良 6、输出回路不良 1、输出继电器不良 5 特定继电器编号的输出不关断 (动作指示灯灭) 2、由于漏电流或残余电压而不能关 断 1、程序OUT指令的继电器编号重复 6 特定继电器编号的输出不关断 (动作指示灯亮) 2、输出回路不良 1、电源电压低 2、程序OUT指令的继电器编号重复 7 输出出现不规则的ON/OFF现 象更换继电器 更换负载或加假负载电阻修改程序 更换单元 调整电压 修改程序 抗噪音措施: 装抑制器、装绝缘变压器、用屏蔽线 配线等 拧紧 端子充分插入、拧紧 拧紧 端子充分插入、拧紧 更换保险丝 更换CPU单元 更换单元3、噪音引起的误动作 4、端子螺钉松动 5、端子联接接触不良 1、COM端子螺钉松动8异常动作的继电器编号为8点 单位2、端子联接接触不良 3、保险丝熔断 4、CPU不良9输出指示灯不亮(动作正常)LED灯坏表7-4输出单元故障处理 7.2.3 内部错误的故障诊断S7-300具有非常强大的故障诊断功能,通过 S7-300具有非常强大的故障诊断功能,通过 STEP 7编程软件可以获得大量的硬件故障 7编程软件可以获得大量的硬件故障 与编程错误的信息,使用户能迅速地查找 到故障。 这里的诊断是指S7 300内部集成的错误识别 这里的诊断是指S7-300内部集成的错误识别 S7和记录功能,错误信息在CPU的诊断缓冲区 和记录功能,错误信息在CPU的诊断缓冲区 内。有错误或事件发生时,标有日期和时 间的信息被保存到诊断缓冲区,时间保存 到系统的状态表中,如果用户已对有关的 错误处理组织块编程,CPU将调用该组织块。 错误处理组织块编程,CPU将调用该组织块。 一、故障诊断的基本方法在SIMATIC管理器中用菜单命令“View”→“Online”打开再现窗口。打 SIMATIC管理器中用菜单命令“View” Online” 开所有的站,查看是否有CPU显示了指示错误或故障的诊断符号。 开所有的站,查看是否有CPU显示了指示错误或故障的诊断符号。 诊断符号用来形象直观地表示模块的运行模式和模块的故障状态,如 图7-6所示。如果模块有诊断信息,在模块符号上将会增加一个诊断符 号,或者模块符号的对比度降低。图7-6 诊断符号 诊断符号“当前组态与实际组态不匹配” 诊断符号“当前组态与实际组态不匹配”表示被组态的模 块不存在,或者插入了与组态的模块的型号不同的模块。 诊断符号“无法诊断” 诊断符号“无法诊断”表示无线上连接,或该模块不支持 模块诊断信息,例如电源模块或子模块。 “强制”符号表示在该模块上有变量被强制,即在模块的 强制” 用户程序中有变量被赋予一个固定植,该数据值不能被程 序改变。“强制” 序改变。“强制”符号可以与其它符号组合在一起显示, 如图7 如图7-6中“强制与运行”符号。 强制与运行” 从在线的SIMATIC管理器的窗口、在线的硬件诊断功能打 从在线的SIMATIC管理器的窗口、在线的硬件诊断功能打 开的快速窗口和在线的硬件组态窗口(诊断窗口),都可 以观察到诊断符号。 通过观察诊断符号,可以判断CPU模块的运行模式,是否 通过观察诊断符号,可以判断CPU模块的运行模式,是否 有强制变量,CPU模块和功能模块(FM)受否有故障。 有强制变量,CPU模块和功能模块(FM)受否有故障。 打开在线窗口,在SIMATIC管理器中执行菜单命令 打开在线窗口,在SIMATIC管理器中执行菜单命令 “PLC”→“Diagnostic/Setting”→“Hardware Diagnostics”,将 PLC” Diagnostic/Setting” Diagnostics” 打开硬件诊断快速浏览窗口。在该窗口中显示PLC的状态, 打开硬件诊断快速浏览窗口。在该窗口中显示PLC的状态, 看到诊断功能的模块的硬件故障,双击故障模块可以获得 详细的故障信息。 二、利用CPU诊断缓冲区进行详细故障诊断 利用CPU诊断缓冲区进行详细故障诊断建立与PLC的在线连接后,在SIMATIC管理器中选择要检 建立与PLC的在线连接后,在SIMATIC管理器中选择要检 查的站,执行菜单命令 “PLC”→“Diagnostics/Setting”→“Module Information”,如图 PLC” Diagnostics/Setting” Information” 7-7所示,将打开模块信息窗口,显示该站中CPU的信息。 所示,将打开模块信息窗口,显示该站中CPU的信息。 在快速窗口中使用“ 在快速窗口中使用“Module Information”。 Information”图7-7 打开CPU诊断缓冲区 在模块信息窗口中的诊断缓冲区(Diagnostic Buffer)选项 在模块信息窗口中的诊断缓冲区(Diagnostic Buffer)选项 中,给出了CPU中发生的事件一览表,选中“Events” 中,给出了CPU中发生的事件一览表,选中“Events”窗口 中某一行的某一事件,下面灰色的“ 中某一行的某一事件,下面灰色的“Details on”窗口将显 on” 示所选事件的详细信息,见图7 示所选事件的详细信息,见图7-8所示。使用诊断缓冲区可 以对系统得错误进行分析,查找停机的原因,并对出现的 诊断时间分类。图7-8 CPU模块的在线模块信息窗 诊断事件包括模块故障、过程写错误、CPU中的系统错误、CPU运行模式的切 诊断事件包括模块故障、过程写错误、CPU中的系统错误、CPU运行模式的切 换、用户程序的错误和用户用系统功能SFC52定义的诊断事件。 换、用户程序的错误和用户用系统功能SFC52定义的诊断事件。 在模块信息窗口中,编号为1 在模块信息窗口中,编号为1,位于最上面的事件是最近发生的事件。如果显 示因编程错误造成CPU进入STOP模式,选择该事件,并点击“ 示因编程错误造成CPU进入STOP模式,选择该事件,并点击“Open Block”按 Block” 钮,将在程序编辑器中打开于错误有关的块,显示出错的程序段。 诊断中断和DP从站诊断信息用于查找模块和DP从站中的故障原因。 诊断中断和DP从站诊断信息用于查找模块和DP从站中的故障原因。 “Memory”(内存)选项给出了所选的CPU或M7功能模块的工作内存和装载内 Memory”(内存)选项给出了所选的CPU或M7功能模块的工作内存和装载内 存当前的使用情况,可以检查CPU或功能模块的装载内存中是否有足够的空间 存当前的使用情况,可以检查CPU或功能模块的装载内存中是否有足够的空间 用来存储新的块,如图7 用来存储新的块,如图7-9所示。图7-9 “Memory” 选项 “Scan Cycle Time”(扫描循环时间)选项卡用于显示所选CPU或M7功能模块的 Time”(扫描循环时间)选项卡用于显示所选CPU或M7功能模块的 最小循环时间、最大循环时间和当前循环时间,如图7 10所示。 最小循环时间、最大循环时间和当前循环时间,如图7-10所示。 如果最长循环时间接近组态的最大扫描循环时间,由于循环时间的波动可能 产生时间错误,此时应增大设置的用户程序最大循环时间(监控时间)。 如果循环时间小于设置的最小循环时间,CPU自动延长循环至设置的最小循 如果循环时间小于设置的最小循环时间,CPU自动延长循环至设置的最小循 环时间。在这个延长时间内可以处理背景组织块(OB90)。组态硬件时可以 环时间。在这个延长时间内可以处理背景组织块(OB90)。组态硬件时可以 设置最大和最小循环时间。图7-10 “Scan Cycle Time” 选项 “Time System”(时间系统)选项卡显示当前日期、时间、 System” 运行的小时数以及时钟同步的信息,见图7 11所示。 运行的小时数以及时钟同步的信息,见图7-11所示。图7-11 “Time System” 选项 “Performance Data”(性能数据)选项卡给出了所选模块 Data” (CPU/FM)可以使用的地址区和可以使用的OB、SFB、 CPU/FM)可以使用的地址区和可以使用的OB、SFB、 和SFC,见图7-12所示。 SFC,见图7 12所示。图7-12 “Performance Data” 选项 “Communication”(通信)选项卡给出了所选模块的传输速 Communication” 率、可以建立的连接个数和通信处理占扫描周期的百分比, 如图7 13所示。 如图7-13所示。图7-13“Communication” 选项 “Stacks”(堆栈)选项卡只能在STOP模式或HOLD Stacks”(堆栈)选项卡只能在STOP模式或HOLD (保持)模式下调用,显示所选模块的B (保持)模式下调用,显示所选模块的B(块)堆 栈。还可以显示I(中断)堆栈、L 栈。还可以显示I(中断)堆栈、L(局域)堆栈 以及嵌套深度堆栈。可以跳转到使块中断的故障 点,判明引起停机的原因。 在模块信息窗口各选项卡的上面显示了附加的信 息,例如所选模块的在线路径、CPU的操作模式 息,例如所选模块的在线路径、CPU的操作模式 和状态(例如出错或OK)、所选模块的操作模式, 和状态(例如出错或OK)、所选模块的操作模式, 如果它有自己的操作模式的话(例如CP342如果它有自己的操作模式的话(例如CP342-5)。 从 (“Accessible Nodes”窗口)打开的非CPU模块 Nodes”窗口)打开的非CPU模块 的模块信息中,不能显示CPU本身的操作模式和 的模块信息中,不能显示CPU本身的操作模式和 所选模块的状态。 三、错误处理组织块 组织块是操作系统与用户程序之间的接口。S7提 组织块是操作系统与用户程序之间的接口。S7提 供了各种不同的组织块(OB),用组织块可以创 供了各种不同的组织块(OB),用组织块可以创 建在特定时间执行的程序和响应特定事件的程序。 当系统程序可以检测下列错误:不正确的CPU功 当系统程序可以检测下列错误:不正确的CPU功 能、系统程序执行中的错误、用户程序中的错误 和I/O中的错误。根据错误类型的不同,CPU设置 I/O中的错误。根据错误类型的不同,CPU设置 为进入STOP模式或调用一个错误处理OB。 为进入STOP模式或调用一个错误处理OB。 当CPU检测到错误时,会调用适当的组织块,见 CPU检测到错误时,会调用适当的组织块,见 表7-5。如果没有相应的错误处理OB,CPU将进入 。如果没有相应的错误处理OB,CPU将进入 STOP模式。用户可以在错误处理OB中编写如何 STOP模式。用户可以在错误处理OB中编写如何 处理这种错误的程序,以减小或消除错误的影响。 OB号 OB70 OB72 OB73 OB80 OB81 OB82 OB83 OB84 OB85 OB86 OB87 OB121 OB122错误类型 I/O冗余错误(仅H系列CPU) CPU冗余错误(仅H系列CPU) 通信冗余错误(仅H系列CPU) 时间错误 电源错误 诊断中断 插入/取出模块中断 CPU硬件故障 优先级错误 机架故障或分布式I/O的站故障 通信错误 编程错误优先级 25 28 35 2626/28引起错误的OB的优先级 I/O访问错误表7-5 错误处理组织块 为避免发生某种错误时CPU进入停机,可以 为避免发生某种错误时CPU进入停机,可以 在CPU中建立一个对应的空的组织块。用户 CPU中建立一个对应的空的组织块。用户 可以利用OB中的变量声明表提供的信息来 可以利用OB中的变量声明表提供的信息来 判别错误的类型。 根据S7 CPU检测到并且用户可以通过组织 根据S7 CPU检测到并且用户可以通过组织 块对其进行处理的错误分为异步错误和同 步错误。 1、异步错误组织块异步错误是与PLC的硬件或操作系统密切相 异步错误是与PLC的硬件或操作系统密切相 关的错误,与程序执行无关。异步错误的 后果一般都比较严重。异步错误对应的组 织块为OB70~OB73和OB80~OB87,有最 织块为OB70~OB73和OB80~OB87,有最 高的优先级。操作系统检测到一个异步错 误时,将启动相应的OB。 误时,将启动相应的OB。 (1)时间错误处理组织块(OB80) 时间错误处理组织块(OB80) OB执行时出现故障S7OB执行时出现故障S7-300 CPU的操作系统调用 CPU的操作系统调用 OB80。这样的故障包括循环时间超出、执行OB OB80。这样的故障包括循环时间超出、执行OB 时应答故障、向前移动时间以致于跃过了OB的启 时应答故障、向前移动时间以致于跃过了OB的启 动的时间、CLR后恢复RUN方式。 动的时间、CLR后恢复RUN方式。 如果当循环中断OB仍在执行前一次调用时,该 如果当循环中断OB仍在执行前一次调用时,该 OB块的启动事件发生,操作系统调用OB80。如 OB块的启动事件发生,操作系统调用OB80。如 果OB80未编程,CPU变为STOP方式,可以使用 OB80未编程,CPU变为STOP方式,可以使用 SFC39至42封锁或延时和在使用时间故障OB。 SFC39至42封锁或延时和在使用时间故障OB。 如果在同一个稍描周期中由于扫描时间超出OB80 如果在同一个稍描周期中由于扫描时间超出OB80 被调用两次,CPU就变为STOP方式,可以通过在 被调用两次,CPU就变为STOP方式,可以通过在 程序中适当的位置调用SFC43“RE_TRIGR” 程序中适当的位置调用SFC43“RE_TRIGR”来避免 这种情况。 打开OB80可以从OB80的临时变量中得到故障信息,见图7-14所示。图7-14 OB80的临时变量 变量 OB80_EV_CLASS OB80_FLT_ID OB80_PRIORITY OB80_OB_NUMBR OB80_RESERVED_1 OB80_RESERVED_2 OB80_ERROR_INFO OB80_ERR_EV_CLASS OB80_ERR_EV_NUM OB80_OB_PRIORITY OB80_OB_NUM OB80_DATE_TIME类型 BYTE BYTE BYTE BYTE BYTE BYTE WORD BYTE BYTE BYTE BYTE DATE_AND_TI ME描述 事件级别和标识:B#16#35 故障代码 优先级:在RUN方式时OB80以优先级26运行, OB请求缓冲区溢出时以优先级28运行 OB号 保留 保留 故障信息:根据故障代码 引起故障的启动事件的事件级别 引起故障的启动事件的事件号 故障信息:根据故障代码 故障信息:根据故障代码 OB被调用时的日期和时间4表7-6 OB80的变量申明表 (2)电源故障处理组织块(OB81) 电源故障处理组织块(OB81)与电源(仅对S7-400)或后备电池有关的故 与电源(仅对S7-400)或后备电池有关的故 障事件发生时,S7障事件发生时,S7-300 CPU的操作系统调用 CPU的操作系统调用 OB81,表7 OB81,表7-7为OB81的变量申明表。 OB81的变量申明表。 如果OB81未编程,CPU并不转换为STOP方 如果OB81未编程,CPU并不转换为STOP方 式。可以使用SFC39至42来禁用、延时或再 式。可以使用SFC39至42来禁用、延时或再 使用电源故障(OB81)。 使用电源故障(OB81)。 变量 OB81_EV_CLASS OB81_FLT_ID OB81_PRIORITY OB81_OB_NUMBR OB81_RESERVED_1 OB81_RESERVED_2 OB81_MDL_ADDR OB81_RESERVED_3 OB81_RESERVED_4类型 BYTE BYTE BYTE BYTE BYTE BYTE INT BYTE BYTE描述 事件级别和标识:B#16#38,离去事件;B#16#39, 到来事件 故障代码 优先级:可通过STEP 7选择(硬件组态) OB号 保留 保留 位0至2:机架号;位3:0=备用CPU,1=主站CPU; 位4至7:1111 仅与部分故障代码有关OB81_RESERVED_5BYTEOB81_RESERVED_6 OB81_DATE_TIMEBYTE DATE_AND_TIM E OB被调用时的日期和时间表7-7 OB81的变量申明表 (3)诊断中断处理组织块(OB82) 诊断中断处理组织块(OB82)如果模块具有诊断能力又使能了诊断中断, 当它检测到错误时,它输出一个诊断中断 请求给CPU,以及错误消失时,操作系统都 请求给CPU,以及错误消失时,操作系统都 会调用OB82。当一个诊断中断被触发时, 会调用OB82。当一个诊断中断被触发时, 有问题的模块自动地在诊断中断OB的起动 有问题的模块自动地在诊断中断OB的起动 信息和诊断缓冲区中存入4 信息和诊断缓冲区中存入4个字节的诊断数 据和模块的起始地址。可以用SFC39至42来 据和模块的起始地址。可以用SFC39至42来 禁用、延时或再使用诊断中断(OB82), 禁用、延时或再使用诊断中断(OB82), 表7-8描述了诊断中断OB82的临时变量。 描述了诊断中断OB82的临时变量。 变量类型描述OB82_EV_CLASS OB82_FLT_ID OB82_PRIORITY OB82_OB_NUMBR OB82_RESERVED_1 OB82_IO_FLAG OB82_MDL_ADDR OB82_MDL_DEFECT OB82_INT_FAULT OB82_EXT_FAULT OB82_PNT_INFO OB82_EXT_VOLTAGE OB82_FLD_CONNCTR OB82_NO_CONFIG OB82_CONFIG_ERR OB82_MDL_TYPE OB82_SUB_MDL_ERR OB82_COMM_FAULT OB82_MDL_STOP OB82_WTCH_DOG_FLT OB82_INT_PS_FLT OB82_PRIM_BATT_FLT OB82_BCKUP_BATT_FLTBYTE BYTE BYTE BYTE BYTE BYTE WORD BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BYTE BOOL BOOL BOOL BOOL BOOL BOOL BOOL事件级别和标识:B#16#38,离去事件;B#16#39,到来事件 故障代码 优先级:可通过SETP 7选择(硬件组态) OB号 备用 输入模板:B#16#54;输出模板:B#16#55 故障发生处模板的逻辑起始地址 模板故障 内部故障 外部故障 通道故障 外部电压故障 前连接器未插入 模板未组态 模板参数不正确 位0至3:模板级别;位4:通道信息存在;位5:用户信息存在;位6: 来自替代的诊断中断;位7:备用 子模板丢失或有故障 通讯问题 操作方式(0:RUN,1:STOP) 看门狗定时器响应 内部电源故障 电池故障 全部后备电池故障 OB82_RESERVED_2 OB82_RACK_FLT OB82_PROC_FLT OB82_EPROM_FLT OB82_RAM_FLT OB82_ADU_FLT OB82_FUSE_FLT OB82_HW_INTR_FLT OB82_RESERVED_3 OB82_DATE_TIMEBOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL DATE_AND_TIME备用 扩展机架故障 处理器故障 EPROM故障 RAM故障 ADC/DAC故障 熔断器熔断 硬件中断丢失 备用 OB被调用时的日期和时间表7-8 OB82的变量申明表 在编写OB82的程序时,要从OB82的起动信息中 在编写OB82的程序时,要从OB82的起动信息中 获得与出现的错误有关的更确切的诊断信息,例 如是哪一个通道出错,出现的是哪种错误。使用 SFC51“RDSYSST” SFC51“RDSYSST”也可以读出模块的诊断数据,用 SFC52“WR_USMSG” SFC52“WR_USMSG”可以将这些信息存入诊断缓冲 区。 现在通过结合模板的短线诊测应用和SFC51来说明 现在通过结合模板的短线诊测应用和SFC51来说明 诊断中断组织块OB82的使用方法 诊断中断组织块OB82的使用方法。 首先,在SIMATIC管理器中新建一个项目,插入一个300站。硬件组态,在机 首先,在SIMATIC管理器中新建一个项目,插入一个300站。硬件组态,在机 架上插入CPU 315-2DP和一块具有中断功能模拟量输入模块SM331,配置 架上插入CPU 315-2DP和一块具有中断功能模拟量输入模块SM331,配置 SM331模块的“Inputs”选项,选择0 通道组为2线制电流(2DMU),其它通 SM331模块的“Inputs”选项,选择0-1通道组为2线制电流(2DMU),其它通 道组为电压,并注意模块的量程卡要与设置的相同。选中“Enable” 道组为电压,并注意模块的量程卡要与设置的相同。选中“Enable”框中的 “Diagnostic Interrupt”选项,选中“Diagnostics”选项中的0-1通道组中的 Interrupt”选项,选中“Diagnostics”选项中的0 “Group Diagnostics”和“with Check for Wire Break”选项,如图7-15所示。 Diagnostics” Break”选项,如图7 15所示。图7-15 硬件组态 点击OK,然后双击CPU 315-2DP,选择 点击OK,然后双击CPU 315-2DP,选择 “Interrupts”选项,可以看到CPU支持OB82,见图 Interrupts”选项,可以看到CPU支持OB82,见图 7-16所示。硬件组态完成后,保存编译,下载到 16所示。硬件组态完成后,保存编译,下载到 CPU中。 CPU中。图7-16 CPU中的“Interrupts”选项 然后完成诊断程序。OB82程序当在硬件组态中设定的诊断中断发生后执行, 然后完成诊断程序。OB82程序当在硬件组态中设定的诊断中断发生后执行, 但OB82执行时可以通过它的临时变量OB82_MDL_ADDR读出产生诊断中断 OB82执行时可以通过它的临时变量OB82_MDL_ADDR读出产生诊断中断 的模块的逻辑地址。STEP 7不能时时监控程序的运行。 的模块的逻辑地址。STEP 7不能时时监控程序的运行。 在SIMATIC管理器中S7 Program(1)下插入一个STL Source文件STL Source(1), SIMATIC管理器中S7 Program( )下插入一个STL Source文件STL Source(1), 如图7 17所示。 如图7-17所示。图7-17 插入STL Source文件 打开OB1,在“Libraries” 打开OB1,在“Libraries”→“Standard Libraries”→“System Function Blocks”下找到 Libraries” Blocks” SFC51“ SFC51“RDSYSST DIAGNSTC”,按F1键,出现SFC51在线帮助信息,在帮助信 DIAGNSTC”,按F1键,出现SFC51在线帮助信息,在帮助信 息的最低部点击“ 息的最低部点击“Example for module diagnostics with the SFC51”,然后点击 SFC51” “STL Source File”,选中全部STL Source源程序拷贝到STL Source(1)中,编译 File”,选中全部STL Source源程序拷贝到STL Source(1)中,编译 保存。这是在Blocks中生成OB1、OB82、DB13和SFC51。 保存。这是在Blocks中生成OB1、OB82、DB13和SFC51。 打开OB82,对其中的程序做简单的修改,将19和20行的程序拷贝到go:后面, 打开OB82,对其中的程序做简单的修改,将19和20行的程序拷贝到go:后面, 如图7 18所示。再进行保存,下载到CPU中 如图7-18所示。再进行保存,下载到CPU中。图7-18 OB82的程序修改 下载完成后,将CPU上的模式选择开关切换到“RUN”状态,此时,CPU上的 下载完成后,将CPU上的模式选择开关切换到“RUN”状态,此时,CPU上的 “RUN”灯和“SF”灯会亮,SM331模块上的“SF”灯也会亮。同时,查看CPU RUN”灯和“SF”灯会亮,SM331模块上的“SF”灯也会亮。同时,查看CPU 的诊断缓冲区可以获得相应的故障信息。 打开DB13数据块,在线监控,见图7 19所示。因为通道断线是一到来事件, 打开DB13数据块,在线监控,见图7-19所示。因为通道断线是一到来事件, 所以诊断信息存储到COME数组中。 所以诊断信息存储到COME数组中。图7-19 DB13中的数据变换 本例中COME数组字节的含义接受如下: 本例中COME数组字节的含义接受如下: COME[1]=B#16#D:表示通道错误,外部故障和模块问题; COME[1]=B#16#D:表示通道错误,外部故障和模块问题; COME[2]=B#16#15:表示此段信息为模拟量模块的通道 COME[2]=B#16#15:表示此段信息为模拟量模块的通道 信息; COME[3]=B#16#0:表示CPU处于运行状态,无字节2 COME[3]=B#16#0:表示CPU处于运行状态,无字节2中 标示的故障信息; COME[4]=B#16#0:表示无字节3 COME[4]=B#16#0:表示无字节3中标示的故障信息; COME[5]=B#16#71:表示模拟量输入; COME[5]=B#16#71:表示模拟量输入; COME[6]=B#16#8:表示模块的每个通道有8 COME[6]=B#16#8:表示模块的每个通道有8个诊断位; COME[7]=B#16#8:表示模块的通道数; COME[7]=B#16#8:表示模块的通道数; COME[8]=B#16#3:表示0通道错误和1 COME[8]=B#16#3:表示0通道错误和1通道错误,其他通 道正常; COME[9]=B#16#10:表示0 COME[9]=B#16#10:表示0通道断线; COME[10]=B#16#10:表示1 COME[10]=B#16#10:表示1通道断线; COME[11]=B#16#0:表示2通道正常,其他通道与2 COME[11]=B#16#0:表示2通道正常,其他通道与2通道 相同。 (4)插入/拔出模块中断组织块(OB83) 插入/拔出模块中断组织块(OB83)当组态的模块插入/拔出后或在SETP 7下修改了模块的参 当组态的模块插入/拔出后或在SETP 7下修改了模块的参 数并在“RUN”状态把所做修改下载到CPU后,CPU操作系 数并在“RUN”状态把所做修改下载到CPU后,CPU操作系 统调用OB83。 统调用OB83。 在“RUN”、“STOP”和“STARTUP”状态时每次组态的模 RUN” STOP” STARTUP” 块插入或拔出,就产生一个插入/ 块插入或拔出,就产生一个插入/拔出中断(电源模块、 CPU、适配模块和IM模块不能在这种状态下移出)。该中 CPU、适配模块和IM模块不能在这种状态下移出)。该中 断引起有关CPU的诊断缓冲区和系统状态表的记录 断引起有关CPU的诊断缓冲区和系统状态表的记录 如果在“RUN”状态下拔出组态的模块,OB83期启动。由 如果在“RUN”状态下拔出组态的模块,OB83期启动。由 于仅以一秒的间隔监视模块的存在,如果模块被直接访问 或当过程映像被刷新时可能首先检测出访问故障。如果在 “RUN”状态下插入一块模块,操作系统检查插入模块的 RUN” 类型是否与组态的记录一致,如果模块类型匹配,于是 OB83被启动并且参数被赋值。可以借助SFC39至42来禁用、 OB83被启动并且参数被赋值。可以借助SFC39至42来禁用、 延时或再使用插入/拔出模块中断(OB83),表7 延时或再使用插入/拔出模块中断(OB83),表7-9描述了 插入/拔出模块中断OB83的临时变量。 插入/拔出模块中断OB83的临时变量。 变量类型描述 事件级别和标识:B#16#32,模块参数赋值结 束;B#16#33,模块参数赋值启动;B#16#38, 模块插入;B#16#39,模块拔出或无反应,或 参数赋值结束 故障代码 优先级,可通过STEP 7选择(硬件组态) OB号 块模块或接口模块标识 范围:B#16#54,外设输入(PI);B#16#55, 外设输出(PQ) 有关模块的逻辑起始地址 B#16#A0,接口模块号;B#16#C4,机架号或 DP站号(低字节)或DP主站系统ID(高字节) 有关模块的模块类型 OB被调用时的日期和时间OB83_EV_CLASSBYTEOB83_FLT_ID OB83_PRIORITY OB83_OB_NUMBR OB83_RESERVED_1 OB83_MDL_ID OB83_MDL_ADDR OB83_RACK_NUM OB83_MDL_TYPE OB83_DATE_TIMEBYTE BYTE BYTE BYTE BYTE WORD WORD WORD DATE_AND_TIME表7-9 OB83的变量申明表 (5)CPU硬件故障处理组织块(OB84) CPU硬件故障处理组织块 OB84) 硬件故障处理组织块(当CPU检测到MPI网络的接口故障、通信总 CPU检测到MPI网络的接口故障、通信总 线的接口故障或分布式I/O网卡的接口故障 线的接口故障或分布式I/O网卡的接口故障 时,操作系统调用OB84。故障消除时也会 时,操作系统调用OB84。故障消除时也会 调用该OB块,即事件到来和离去时都调用 调用该OB块,即事件到来和离去时都调用 该OB。表7-10描述了CPU硬件故障OB84的 OB。表7 10描述了CPU硬件故障OB84的 临时变量。 变量 OB84_EV_CLASS OB84_FLT_ID OB84_PRIORITY OB84_OB_NUMBR OB84_RESERVED_1 OB84_RESERVED_2 OB84_RESERVED_3 OB84_RESERVED_4 OB84_DATE_TIME类型 BYTE BYTE BYTE BYTE BYTE BYTE WORD DWORD DATE_AND_TIME描述 事件级别和标识:B#16#38,离去事件; B#16#39,到来事件 故障代码 优先级,可通过STEP 7选择(硬件组态) OB号 备用 备用 备用 备用 OB被调用时的日期和时间表7-10 OB84的变量申明表 (6)优先级错误处理组织块(OB85) 优先级错误处理组织块(OB85) 在以下情况下将会触发优先级错误中断: 产生了一个中断事件,但是对应的OB块没有下载 产生了一个中断事件,但是对应的OB块没有下载 到CPU; CPU; 访问一个系统功能块的背景数据块时出错; 刷新过程映像表时I/O访问出错,模块不存在或有 刷新过程映像表时I/O访问出错,模块不存在或有 故障。 在编写OB85的程序时,应根据OB85的起动信息, 在编写OB85的程序时,应根据OB85的起动信息, 判定是哪个模块损坏或没有插入。可以使用SFC39 判定是哪个模块损坏或没有插入。可以使用SFC39 至42封锁或延时并使能优先级故障OB,表7-11描 42封锁或延时并使能优先级故障OB,表7 11描 述了优先级故障OB85的临时变量。 述了优先级故障OB85的临时变量。 变量 OB85_EV_CLASS OB85_FLT_ID OB85_PRIORITY OB85_OB_NUMBR OB85_RESERVED_1 OB85_RESERVED_2 OB85_RESERVED_3 OB85_ERR_EV_CLASS OB85_ERR_EV_NUM OB85_OB_PRIOR OB85_OB_NUM OB85_DATE_TIME类型 BYTE BYTE BYTE BYTE BYTE BYTE INT BYTE BYTE BYTE BYTE DATE_AND_TIME 事件级别和标识 故障代码描述优先级,可通过STEP 7选择(硬件组态) OB号 备用 备用 备用 引起故障的事件级别 引起故障的事件号码 当故障发生时被激活OB的优先级 当故障发生时被激活OB的号码 OB被调用时的日期和时间表7-11 O85的变量申明表 (7)机架故障组织块(OB86) 机架故障组织块(OB86)出现下列故障或故障消失时,都会触发机 架故障中断,操作系统将调用OB86:扩展 架故障中断,操作系统将调用OB86:扩展 机架故障(不包括CPU 318),DP主站系统 机架故障(不包括CPU 318),DP主站系统 故障或分布式I/O故障。故障产生和故障消 故障或分布式I/O故障。故障产生和故障消 失时都会产生中断。 在编写OB86的程序时,应根据OB86的起动 在编写OB86的程序时,应根据OB86的起动 信息,判断是哪个机架损坏或找不到。可 以使用SFC39至42封锁或延时并使能OB86, 以使用SFC39至42封锁或延时并使能OB86, 表7-12描述了机架故障OB86的临时变量。 12描述了机架故障OB86的临时变量。 变量 OB86_EV_CLASS OB86_FLT_ID OB86_PRIORITY OB86_OB_NUMBR OB86_RESERVED_1 OB86_RESERVED_2 OB86_MDL_ADDR OB86_RACKS_FLTD OB86_DATE_TIME类型 BYTE BYTE BYTE BYTE BYTE BYTE WORD ARRAY[0..31] DATE_AND_TIME描述 事件级别和标识:B#16#38,离去事件; B#16#39,到来事件 故障代码 优先级,可通过STEP 7选择(硬件组态) OB号 备用 备用 根据故障代码 根据故障代码 OB被调用时的日期和时间表7-12 O86的变量申明表 这里也通过一个例子来说明OB86的使用。新建一个项目, 这里也通过一个例子来说明OB86的使用。新建一个项目, 插入一个300站,进行硬件组态。在机架中插入CPU 315插入一个300站,进行硬件组态。在机架中插入CPU 3152DP,选择DP作为主站,在DP主站下添加一个ET200M从 2DP,选择DP作为主站,在DP主站下添加一个ET200M从 站,并在从站中插入一个模拟量输入模块SM331,如图7 站,并在从站中插入一个模拟量输入模块SM331,如图720所示。 20所示。图7-20 硬件组态 然后双击CPU,选择“Interrupts”选项,可以看到CPU支持 然后双击CPU,选择“Interrupts”选项,可以看到CPU支持 OB86,见图7 21所示。硬件组态完成后,保存编译,下载 OB86,见图7-21所示。硬件组态完成后,保存编译,下载 到CPU中。 CPU中。图7-21 CPU中的“Interrupts”选项 OB86程序当在通讯发生问题后或者访问不 OB86程序当在通讯发生问题后或者访问不 到配置的机架或站时执行,此时程序可能 还可能需要调用OB82和OB122等组织块, 还可能需要调用OB82和OB122等组织块, 当OB86执行时可以通过它的临时变量读出 OB86执行时可以通过它的临时变量读出 产生的故障代码和事件类型,通过它们的 组合可以得到具体错误信息,同时也可以 读出产生错误的模块地址和机架信息。 STEP 7不能时时监控程序的运行,可以用 7不能时时监控程序的运行,可以用 “Variable Table”监控实时数据的变化。 Table” 打开组织块OB86编写程序 程序如图7 22所示 打开组织块OB86编写程序,程序如图7-22所示。 编写程序, 所示。图7-22 OB86中所编写的程序 该程序也可以转化成梯形图,但程序中要将OB86的临时 该程序也可以转化成梯形图,但程序中要将OB86的临时 变量OB86_RACKS_FLTD ARRAY[0..31]改成OB86_z23 变量OB86_RACKS_FLTD ARRAY[0..31]改成OB86_z23 DWORD。 DWORD。 把程序下载到CPU后,在“Blocks”插入“ 把程序下载到CPU后,在“Blocks”插入“Variable Table”, Table” 如图7 23所示。然后打开,填入MB0、MB1、MW2、 如图7-23所示。然后打开,填入MB0、MB1、MW2、MD4 并点击 键就可以得到相关信息了。图7-23 插入“Variable Table” (8)通信错误组织块(OB87) 通信错误组织块(OB87) 在使用通信功能块或全局数据(GD)通信进行数 在使用通信功能块或全局数据(GD)通信进行数 据交换时,如果出现下列通信错误,操作系统将 调用OB87: 调用OB87: 接受全局数据时,检测到不正确的帧标识符 (ID); ID); 全局数据通信的状态信息数据块不存在或太短; 接受到非法的全局数据包编号。 如果用于全局数据通信状态信息的数据块丢失, 需要用OB87生成该数据块将它下载到CPU。可以 需要用OB87生成该数据块将它下载到CPU。可以 使用SFC39至42封锁或延时并使能通信错误OB, 使用SFC39至42封锁或延时并使能通信错误OB, 表7-13描述了通信错误OB86的临时变量。 13描述了通信错误OB86的临时变量。 变量 OB87_EV_CLASS OB87_FLT_ID OB87_PRIORITY OB87_OB_NUMBR OB87_RESERVED_1 OB87_RESERVED_2 OB87_RESERVED_3 OB87_RESERVED_4 OB87_DATE_TIME类型 BYTE BYTE BYTE BYTE BYTE BYTE WORD DWORD 事件级别和标识 故障代码描述优先级,可通过SETP 7选择(硬件组态) OB号 备用 备用 根据故障代码 根据故障代码DATE_AND_TIME OB被调用时的日期和时间表7-13 OB87的变量申明表 2、同步错误组织块同步错误是与执行用户程序有关的错误, 程序中如果有不正确的地址区、错误的编 号和错误的地址,都会出现同步错误,操 作系统将调用同步错误OB。 作系统将调用同步错误OB。 同步错误组织块包括OB121用于对程序错误 同步错误组织块包括OB121用于对程序错误 的处理和OB122用于处理模块访问错误。同 的处理和OB122用于处理模块访问错误。同 步错误OB的优先级与检测到出错的块的优 步错误OB的优先级与检测到出错的块的优 先级一致。因此OB121和OB122可以访问中 先级一致。因此OB121和OB122可以访问中 断发生时累加器和其他寄存器中的内容, 用户程序可以用它们来处理错误。 同步错误可以用SFC36“MASK_FLT” 同步错误可以用SFC36“MASK_FLT”来屏蔽,使某些同步错 误不触发同步错误OB的调用,但是CPU在错误寄存器中 误不触发同步错误OB的调用,但是CPU在错误寄存器中 记录发生的被屏蔽的错误。用错误过滤器中的一位来表示 某种同步错误是否被屏蔽。错误过滤器分为程序错误过滤 器和访问错误过滤器,分别占一个双字。 调用SFC37“DMSK_FLT” 调用SFC37“DMSK_FLT”并且在当前优先级被执行完后, 将解除被屏蔽的错误,并且清楚当前优先级的事件状态寄 存器中相应的位。 可以用SFC38“READ_ERR” 可以用SFC38“READ_ERR”读出已经发生的被屏蔽的错误。 对于S7-300(CPU318除外),不管错误是否被屏蔽,错误 对于S7-300(CPU318除外),不管错误是否被屏蔽,错误 都会被送入诊断缓冲区,并且CPU的 组错误”LED会被 都会被送入诊断缓冲区,并且CPU的“组错误”LED会被 点亮。 可以在不同的优先级屏蔽某些同步错误。在这种情况下, 在特定的优先级中发生这类错误时不会停机,CPU把该错 在特定的优先级中发生这类错误时不会停机,CPU把该错 误存放到错误寄存器中。但是无法知道是什么时候发生的 错误,也无法知道错误发生的频率。 (1)编程错误组织块(OB121) 编程错误组织块(OB121) 当有关程序处理的故障事件发生时CPU操作系 当有关程序处理的故障事件发生时CPU操作系 统调用OB121,OB121与被中断的块在同一优先 统调用OB121,OB121与被中断的块在同一优先 级中执行,表7 14描述了编程错误OB121的临时 级中执行,表7-14描述了编程错误OB121的临时 变量。 变量 OB121_EV_CLASS OB121_SW_FLT OB121_PRIORITY OB121_OB_NUMBR OB121_BLK_TYPE OB121_RESERVED_ 1类型 BYTE BYTE BYTE BYTE BYTE BYTE 事件级别和标识 故障代码描述优先级=出现故障的OB优先级 OB号 出现故障块的类型(在S7-300时无有效值在 这里记录) 备用 故障源(根据代码)。如:转换故障发生的 寄存器;不正确的地址(读/写故障);不正 确的定时器/计数器/块号码;不正确的存储 器区 引起故障的MC7命令的块号码(S7-300无效) 引起故障的MC7命令的块号码(S7-300无效) OB被调用时的日期和时间OB121_FLT_REGWORDOB121_BLK_NUM OB121_PRG_ADDR OB121_DATE_TIMEWORD WORD DATE_AND_TIME表7-14 OB121的临时变量表 OB121程序在CPU执行错误时执行,此错误不包括用户程 OB121程序在CPU执行错误时执行,此错误不包括用户程 序的逻辑错误和功能错误等,例如当CPU调用一个未下载 序的逻辑错误和功能错误等,例如当CPU调用一个未下载 到CPU中的程序块,CPU会调用OB121,通过临时变量 CPU中的程序块,CPU会调用OB121,通过临时变量 “OB121_BLK_TYPE”可以得出出现的错误的程序块。使 OB121_BLK_TYPE” 用STEP 7不能时时监控程序的运行,可以用“Variable 7不能时时监控程序的运行,可以用“ Table” Table”监控实时数据的变化。 打开事先已经插入的OB121编写程序,如图7 24所示。 打开事先已经插入的OB121编写程序,如图7-24所示。图7-24 OB121中编写的程序 接着在项目“Blocks”下插入FC1,打开FC1编写程 接着在项目“Blocks”下插入FC1,打开FC1编写程 序,如图7 25所示。 序,如图7-25所示。图7-25 FC1中编写的程序 然后打开OB1编写程序,如图7 26所示。 然后打开OB1编写程序,如图7-26所示。图7-26 OB1中编写的程序 先将硬件和OB1下载到CPU中,此时CPU能 先将硬件和OB1下载到CPU中,此时CPU能 正常运行。在“Blocks”下插入“ 正常运行。在“Blocks”下插入“Variable Table”,然后打开,填入MW0和M10.0,并 Table”,然后打开,填入MW0和M10.0,并 点击键,程序运行正常。将M10.0置为 点击键,程序运行正常。将M10.0置为 “true”后,CPU就报错停机,查看CPU的诊 true”后,CPU就报错停机,查看CPU的诊 断缓冲区信息,发现为编程错误,这是将 OB121也下载到CPU中,再将M10.0置为 OB121也下载到CPU中,再将M10.0置为 “true”,CPU会报错但不停机,MW0立刻为 true”,CPU会报错但不停机,MW0立刻为 “W#16#88”,“W#16#88”表示为OB程序 W#16#88” W#16#88”表示为OB程序 错误,检查发现FC1未下载。下载FC1后, 错误,检查发现FC1未下载。下载FC1后, 在将M10.0置为“true”,这是CPU不会再报 在将M10.0置为“true”,这是CPU不会再报 错,程序也不会在调用OB121。 错,程序也不会在调用OB121。 (2)I/O访问错误组织块(OB122) I/O访问错误组织块 OB122) 访问错误组织块(当对于模块的数据访问出现故障时CPU的操 当对于模块的数据访问出现故障时CPU的操 作系统调用OB122,OB122与被中断的块的 作系统调用OB122,OB122与被中断的块的 同一优先级中执行,表7 15描述了I/O访问 同一优先级中执行,表7-15描述了I/O访问 错误OB121的临时变量。 错误OB121的临时变量。 变量 OB122_EV_CLASS OB122_SW_FLT OB122_PRIORITY OB122_OB_NUMBR OB122_BLK_TYPE类型 BYTE BYTE BYTE BYTE BYTE 事件级别和标识 故障代码描述优先级=出现故障的OB的优先级 OB号 出现故障块的类型(在S7-300时无有效值在 这里记录) 存储器区和访问类型:位7至4,访问类型-0、 位访问-1、字节访问-2、字访问-3;位3至0, 存储器区-0、I/O区-1、过程映像输入或输出2 出现故障的存储器地址 引起故障的MC7命令的块号码(S7-300无效) 引起故障的MC7命令的块号码(S7-300无效) OB被调用时的日期和时间OB122_MEM_AREABYTEOB122_MEM_ADDR OB122_BLK_NUM OB122_PRG_ADDR OB122_DATE_TIMEWORD WORD WORD DATE_AND_TIME表7-15 OB122的临时变量表 同样,在这里运用一个例子来说明OB122的用法。首先,新建一个项 同样,在这里运用一个例子来说明OB122的用法。首先,新建一个项 目,插入一个300的站,进行硬件组态。插入一个CPU 315-2DP和一个 目,插入一个300的站,进行硬件组态。插入一个CPU 315-2DP和一个 模拟量输入模块SM331。同时配置SMM331的 Inputs” 模拟量输入模块SM331。同时配置SMM331的“Inputs”选项,把所有通 道设置为电压类型,注意模块的量程卡要与设置的相同,并把模块的 逻辑输入地址设置为256…257,如图7 27所示。 逻辑输入地址设置为256…257,如图7-27所示。图7-27 硬件组态 组态完成后,编译保存并下载到CPU中。 组态完成后,编译保存并下载到CPU中。 OB122程序在出现I/O访问错误是被调用,通过临时变量“OB122_SW_FLT” OB122程序在出现I/O访问错误是被调用,通过临时变量“OB122_SW_FLT” 可以读出错去代码,通过“OB122_BLK_TYPE” 可以读出错去代码,通过“OB122_BLK_TYPE”得出出错的程序块,通过 “OB122_MEM_ADDR”可以读出发生错误的存储器地址使用STEP 7不能时时 OB122_MEM_ADDR”可以读出发生错误的存储器地址使用STEP 7不能时时 监控程序的运行,可以用“ 监控程序的运行,可以用“Variable Table”监控实时数据的变化。 Table” 打开在“Blocks”下插入的OB122编写程序,如图7 28所示。 打开在“Blocks”下插入的OB122编写程序,如图7-28所示。图7-28 OB122中编写的程序 该程序也可以转换为梯形图。 接着打开OB1编写程序,如图7 29所示。 接着打开OB1编写程序,如图7-29所示。图7-29 OB1中编写的程序 先将硬件组态和OB1下载到CPU中,这是CPU运行正常。在“Blocks” 先将硬件组态和OB1下载到CPU中,这是CPU运行正常。在“Blocks” 下插入“ 下插入“Variable Table”,然后打开,填入MW0、MW2、MW4、MW6 Table”,然后打开,填入MW0、MW2、MW4、 和M10.0,点击键,程序运行正常。将M10.0置为“true”,CPU会报错 M10.0,点击键,程序运行正常。将M10.0置为“true” CPU会报错 并停机,查看CPU的诊断缓冲区信息,发现为I/O访问错误。将 并停机,查看CPU的诊断缓冲区信息,发现为I/O访问错误。将 OB122下载到CPU中,再将M10.0置为“true” CPU会报错但不停机, OB122下载到CPU中,再将M10.0置为“true”,CPU会报错但不停机, 检查并修改OB1程序,如图7 30所示。 检查并修改OB1程序,如图7-30所示。图7-30 OB1修改后的程序 重新下载OB1,CPU不再报错,程序运行正常。 重新下载OB1,CPU不再报错,程序运行正常。 对于某些同步错误,可以调用系统功能SFC44,为 对于某些同步错误,可以调用系统功能SFC44,为 输入模块提供一个替代错误值,以便使程序能继 续执行。如果错误发生在输入模块,可以在用户 程序中直接替代。如果是输出模块错误,输出模 块将自动地用组态时定义的值替代。替代值虽然 不一定能反映真实的过程信号,但是可以避免终 止用户程序和进入STOP模式。 止用户程序和进入STOP模式。
龙源期刊网 http://www.qikan.com.cn S7―300 PLC 之间的 ProfiNet 通信研究 作者:张绘敏 韩海敏 来源:《价值工程》2014 年第 36 期 摘要: 本文对工业现场...S7-300 PLC 五层电梯控制系统-设计方案2013_电子/电路_工程科技_专业资料。济南大学泉城学院 毕业设计方案题 专班学学目业级生号 基于 S7-300 PLC...电气控制与PLC复习题(s7-300)_机械/仪表_工程科技...光电开关:用于物位检测,液位控制,产品计数,速度检测...故障率高 灵活性和扩展性差 ⑵工作方式:plc 串行...西门子S7-300系列PLC的位逻辑指令_电子/电路_工程...对触点跳变沿直接检测的梯形图方块指令 艾驰商城是...(国产) 972-0CB20-0XA0(国产)现货促销
13:49:12 网友评论 条 点击查看 西门子 S7-300 系列 PLC 编程电缆 6ES7 972-0CB20-0XA0,为 USB ...故障少的工业控制机,而且可以和计 算机网络操作联网...诊断 PLC 里面的电路工作状态和编程过程中的语法不对...11 基于 S7-300 P LC 注塑机控制系统硬件设计 第...SIMATIC S7-300 PLC及STEP7系统介绍_电子/电路_工程科技_专业资料。SIMATIC S7...第1章 SIMATIC S7-300 P...
SIMATIC S7-300系列PLC系... ...基于S7-300PLC 和杰控组态的单容 水箱液位控制 ...接地 故障保护,短路保护,I2t 电动机过热保护,PTC ...下 面是部分调试结果 第六章设计总结作为一名工科生...西门子S7-300系列PLC通讯接口的类型_电子/电路_工程科技_专业资料。SIMATIC S7-300 具有多种不同的通讯接口: 多种通讯处理器用来连接 AS-i 接口、PROFIBUS 和...6es70变频器与s7-300PLC通讯设置_机械/仪表_工程科技_专业资料。详细的介绍了通讯设置内容 内容介绍 摘要: 摘要: 本文通过举例讲述了 PROFIBUS-DP 现场总线在生产...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。}

我要回帖

更多关于 PLC硬件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信