APP下载

基于S7-300PLC软件编程的现场总线系统故障处理

2010-07-14

设备管理与维修 2010年1期
关键词:调用总线编程

张 还

PLC具有高可靠性和可维修性,通过其操作系统或监控程序可实现较完善的自诊断功能。西门子S7-300PLC用户程序由数量丰富的组织块(OB)、功能(FC)、功能块(FB)和系统功能(SFC)等逻辑块组成。OB允许用户创建在特定时间内执行的程序或对特定事件响应的程序,如对故障处理OB编程,一旦PLC控制系统出现硬件故障,PLC操作系统会自动调用相应故障处理OB进行故障诊断;OB中的OB1为主程序,包含用户编写的主干程序,FC、FB和SFC中编有子程序,供OB1直接或间接调用,受PLC模块诊断能力限制,对某些硬件故障,操作系统无法调用故障处理OB进行自诊断,则必须在OB1或FC中编程。

一、双复合胎面挤出联动线控制系统

1.基本组成

青岛黄海橡胶集团双复合胎面挤出联动线采用基于PROFIBUS现场总线的全分布式控制系统,PROFIBUS-DP连接西门子S7-300PLC,构成单主—多从的总线网络(图1)。控制系统主要组成:①PLC是系统主控制器,作为整个现场总线网络的主站,上位工控机安装S7-300/400PLC编程软件STEP7和组态软件InTouch。②智能从站,如远程分布式I/O(ET200M)、直流调速器(6RA70)、交流调速器(MM440/MM420)、裁断位置控制器(EVS9300)等。③外部设备,如继电器、各类开关、传感器以及未和PROFIBUS总线连接的变频器、直流调速器等。

2.控制系统故障类型

(1)外部设备故障。直接影响PLC系统工作,故障原因一般是设备损坏或寿命到期。

(2)智能从站故障。可直接引发直流电机、变频电机或伺服电机的传动故障,导致胎面挤出联动线瘫痪。

(3)PLC系统故障。是影响系统运行的全局性故障,一般是系统设计不当或系统运行年限较长。其中偶然性故障在系统重启后可恢复正常,反之为固定性故障,需更换硬件或软件。

(4)硬件故障。PLC系统中的模块损坏,原因是使用不当或元器件老化。

(5)软件故障。软件自身包含错误引起,主要原因是软件设计者考虑不周,程序执行过程中满足了错误条件。

(6)总线故障。主要原因是总线屏蔽不良、现场工业环境干扰大、总线断线和总线连接器接触不良等。

二、在OB中编程进行故障诊断

1.故障处理OB功能

该联动线控制系统CPU型号为315-2DP,主要包括如下故障处理OB。

(1)OB40(硬件中断错误OB)。当具有中断能力的模块被激活,满足中断条件时,系统会调用该OB。

(2)OB80(时间错误处理OB)。响应3种错误:①循环监视时间超时。②在执行某OB时产生确认错误。③时间超前,引起OB启动时间被跳越。

(3)OB81(电源故障处理OB)。响应24V电源和备用电池故障。

(4)OB82(诊断中断处理OB)。当具有诊断能力的模块诊断到1个错误时,即向CPU发出1个诊断中断请求,操作系统会调用该OB。

(5)OB85(优先级错误OB)。响应3种错误:①试图启动1个未下载的OB。②操作系统访问某个模块时出错。③正在刷新整个映像区时I/O访问出错。

(6)OB86(机架故障OB)。发生扩展机架故障,主站故障或分布式I/O系统中某个站点故障时调用该组织块。

(7)OB87(通信故障OB)。响应由通信引起的故障。

2.故障诊断和处理

该联动线控制系统实际用到OB80、OB81、OB82和OB86等,下面以对OB82和OB86编程为例,介绍故障诊断和处理方法。

(1)在OB82中编程。该控制系统只对AO模块出现的错误故障在OB82中进行了编程,反之若S7-300PLC操作系统调用OB82,则必定发生了和AO模块有关的故障类型,OB82临时变量区中的诊断变量见表1。

表1

在OB82中编程时,需使用SFC 51“RDSYSST”(系统功能)读出模块诊断数据,再使用SFC 52“WR_USMSG”将诊断数据存入S7-300PLC的诊断缓冲区中。当某模块发生故障,PLC操作系统会自动调用OB82,这时可在上位机启动STEP7编程开发环境,监视CPU诊断缓冲区中故障诊断信息(表1数据),具体步骤:①启动STEP7编程软件,选择要监视的站(S7-300),进入编程环境主界面。②执行菜单命令“PLC”→“Diagnostics/Settings”→“Diagnose Hardware”。③点击“Module Information”,打开CPU硬件诊断快速视窗。④点击视窗选项卡的“Diagnostic Buffer”,进入诊断缓冲区。诊断缓冲区显示该站中故障模块的详细诊断信息,“Events”窗口显示事件记录,“Details on Event”窗口显示选中事件详细信息,包括事件描述、事件发生地址等。

例 假设AO模块起始地址为256,模块发生电流断线故障,则OB82的诊断变量将会变为:EV_CLASS=39,MDL_ADDR=256,INT_FAULT=0,EXT_FAULT=1,PNP_INFO=1,EXT_VOLTAGE=0,FID_CONNCTR=1。

(2)在OB86中编程。当OB86被调用时,可能发生的故障有:①从站和主站联系中断,即总线故障。②从站自身故障。若主站和从站1之间总线断开,所有的N个从站(本PLC控制网络中N=25)与主站联系中断,因此1个PLC循环会调用N次OB86,同理,当从站1和从站2之间总线断开,会调用N-1次OB86。因此根据OB86被调用次数,可确定总线故障的大概位置(当然也可能多个从站同时发生故障,但概率极小);若是从站自身故障,如ET 200M掉电、背板总线故障等,由OB86启动信息可诊断出故障从站。OB86临时变量区中的诊断变量见表2。

表2

OB86编程和诊断步骤与OB82相似,不再详述。

3.注意事项

若PLC控制系统发生了使PLC操作系统自动调用某个错误处理OB的故障,但CPU中没有下载该OB,则CPU会转入停止状态(调用OB81的故障除外),引起整个控制系统瘫痪。因此,一般要将所有故障处理OB均下载至CPU中,即使不在其中编程。例如该控制系统存在AI模块,当发生调用OB86的错误时,PLC操作系统同时调用OB122(I/O访问错误OB),直至故障被排除(此时若CPU中未下载OB122,CPU会转入停止状态)。

在STEP7中插入、下载OB的步骤:①启动STEP7编程软件,新建1个项目。②右键点击该项目→选择“Insert NeWObject”→选择“SIMATIC 300STATION”,插入西门子 S7-300。③点击SIMATIC 300→双击Hardware进行硬件组态。④点击CPU 315-2DP→点击S7 Program(1)→双击Blocks(此时只有主程序OB1,没有其他OB)。⑤在主窗口中,点击右键→选择“Insert NeWObject”→Organization Block,出现OB属性对话框,进行设置后即可加入OB80、OB82等OB,在块中编程后再下载至PLC中。

上述方法适用控制系统从站或模块故障的情况,而对于外部设备故障则可利用在OB1或FC中编程加以处理。

三、在OB1或FC中编程进行故障诊断

PLC操作系统对于某些故障(如DI/DO模块和设备间连线故障,DO模块掉电,PLC外接的输入、输出元件故障)无法采用调用故障处理OB的方法,这些故障出现后PLC不会自动停机,直至设备机械顶死或电控系统常规保护动作,易引发设备事故。为使故障发生后PLC自动停机、报警,应将故障监测作为电控系统设计的组成部分。在实际生产设备控制系统中,PLC程序容量、内部继电器、定时器、计数器均有相当余量,可利用PLC的这些闲置资源进行故障检测,常用方法如下。

1.数字量信号的故障诊断

(1)超时限故障检测法。设备工作周期中各工步运动均需要一定时间,可以此时间为参考,在要检测的工步动作开始同时,启动1个定时器,定时器设定值比正常情况下该动作需要时间长20%~30%,定时器输出信号可用于报警、显示或自动停机装置。当设备某工步动作时间超过规定时间,达到对应定时器预置时间还未转入下一个工步动作时,定时器则发出故障信号,该信号停止正常工作循环程序,启动执行报警和显示程序。

例 在联动线液压机头开、合模程序中编入“高压故障压力检测”程序。液压系统达到高压一般需15~18s,经接通延时定时器T73延时20s后未检测到系统高压,则置位高压故障位,程序如下。

(2)逻辑错误检测法。设备正常情况下,电控系统各输入、输出信号、中间记忆装置等相互之间存在着确定的逻辑关系,一旦设备故障则逻辑关系出现异常,反之亦然。因此可编写一些常见故障的异常程序,加进用户程序,若这种逻辑关系状态变为“1”,则必然出现了相应故障,可将异常逻辑关系的状态输出作为故障信号,实现报警、停机等控制。

例 在联动线压延程序中启动摆胶电机后,摆胶左、右限位开关常开触点不可能同时闭合,反之若同时闭合,则表明至少两者之一失灵;当启动左、右调距时,左、右调距输出继电器均应得电,若只有一个继电器输出或两个均不输出,则发生欠输出故障。摆胶限位开关故障和双调距欠输出逻辑错误检测程序见图2,若中间存储位M100.0得电并驱动Q100.0输出显示或报警,则必然出现限位开关故障;在双调距接近动作时,输出继电器Q6.0、Q6.2均应输出,如果不满足,则M100.1得电驱动Q100.0输出。

2.模拟量信号的故障诊断

压力、温度等模拟量信号直接连接PLC的AI模块端子,经AI模块内A/D转换器转换成数字量信号,在扫描过程中CPU将输入端子的模拟值读入输入数据存储区。PLC诊断模拟量故障的过程,实质是将模拟量信号输入点的实际数字值与系统允许的极限值比较的过程。如果实际值在极限值范围内,表明对应的受监控部件处于正常工作状态,反之处于故障状态。

例 压力传感器测量机头250压力的0~10V模拟量信号,经AI模块A/D转换后由PLC程序比较是否超限,若超限则超压指示灯发出灯光报警并置位液压高压故障位,程序如下。

以上基于西门子S7-300PLC软件编程的故障诊断方法在胎面挤出联动线控制系统实际使用后,电气控制系统可靠性、稳定性和可维修性明显提高。

1 廖常初.S7-300/400PLC应用技术[M].北京:机械工业出版社,2005

2 西门子(中国)有限公司自动化与驱动集团.深入浅出西门子S7-300 PLC[M].北京:北京航空航天大学出版社,2004/段落>

W10.01-19

猜你喜欢

调用总线编程
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
基于系统调用的恶意软件检测技术研究
多通道ARINC429总线检查仪