摘要:PLC技术广泛应用在工业控制系统中,稳定生产是衡量PLC系统性能的重要指标,排除故障时间过长容易导致生产停机,给正常生产带来隐患及损失;如何快速发现并排除故障,缩短故障时间是PLC程序设计的难题。通过增加自诊断程序可以帮助客户快速排除故障,缩短故障时间,减少故障带来的生产损失;本文结合笔者多年PLC程序设计经验,总结了一套基于西门子S7-300/400PLC、WinCC系统的自诊断程序设计方法,通过该诊断程序的实施可以提前诊断系统中存在的异常情况,有助于操作人员提前发现并及时解决异常情况。
关键词:自诊断;故障排除;PLC
1. 引言
在生产制造系统中因设备、传感器故障以及工艺参数不满足等异常情况导致系统暂停或停机的情况在所难免,生产制造系统一般不允许频繁或较长时间的停机,如何提前发现系统中存在的异常状态并指导操作人员快速解决异常情况是客户与设计工程师的共同目标。PLC程序执行是按照预定的条件或顺序执行的,当出现故障或条件不满足等异常情况时,系统会进行自动暂停或停机处理等操作。通常情况在程序执行时检测到故障或异常情况时通过上位机界面显示报警提示信息,让操作人员处理完异常情况,条件满足后再重启工艺程序。这种处理流程存在滞后性,当发生异常时已经影响到系统正常运行了。通过增加自诊断程序功能在还未开机时检查出已经存在的故障或异常情况,让操作员提前处理,这样就避免了在开机过程中出现因异常而暂停或停机的情况。在开机过程中,自诊断程序也可检查影响当前运行的异常情况,便于帮助操作人员快速排除故障;本文以西门子S7-400PLC、WinCC系统为基础阐述PLC自诊断程序设计思路及实现方法。
2. PLC自诊断程序设计硬件框架
本文阐述的PLC自诊断程序设计基于西门子S7-400H系统、WinCC组态软件设计的,操作层采用西门子SIMATIC 过程控制系统作为操作员开发系统,共设置OS冗余操作员站2个,ES工程师组态单站1个,互成冗余的两个OS操作员站,既满足了日常维护和监控的需求,也通过冗余技术,进一步提高了系统的高可靠性。控制层采用西门子S7-417-5H冗余CPU作为主控制器,主控制器包含2个互为冗余的CPU,能实现无扰切换,极大提高了系统的稳定性,控制器主要完成设备监控和数据采集功能。现场层,采用远程分布式IO 从站ET200M。PLC自诊断程序设计硬件框架如下图:
图2.1 PLC自诊断程序设计硬件框架图
PLC自诊断程序设计硬件清单如下表:
3.设计思路
3.1设计原则
基于以往不能提前发现异常状态的情况,自诊断程序必须做到提前检查,实时检测的效果,在程序执行前进行系统自检,程序执行时实时检查异常状态并通过SCADA画面显示诊断结果;因SCADA的变量点数与价格有关,把详细的诊断信息显示出来需要较多的变量点数,所以在设计自诊断界面时必须做到尽量占用少的变量显示出详细的诊断信息。
3.2设计思路
自诊断前提是定义异常状态以及触发条件,然后对异常状态进行实时检查并把状态信息存储到异常信息储存区。每一个生产制造系统都可能有多个工位,每一个工位也有可能有多个工艺,每个工艺所控制的设备是不相同的,也有可能一个设备被多个工艺程序控制。对于设备及工艺流程较多的系统如果把所有异常状态信息同时显示出来,不利于查找到当前工艺程序所包含的异常状态信息,所以自诊断程序是基于工艺程序设计的,为每个工艺程序诊断出属于该工艺程序的异常状态信息,在工艺程序启动前检查出该工艺程序已经存在的故障或异常情况,让操作员提前处理,这样就避免了在开机过程中因出现异常而暂停或停机的情况。在开机过程中,自诊断程序也可检查影响当前正常运行的异常情况,便于帮助操作人员快速排除故障;
异常状态信息通过SCADA界面显示出来,让操作员掌握异常状态情况并及时处理这些异常情况;异常状态信息显示时会占用较多的变量点数,所以在SCADA设计时采用公共显示区的设计思路,当查看某个工艺程序的诊断信息时就发命令给PLC,让PLC从该工艺程序对应的异常状态信息储存区提取异常状态信息到用于SCADA画面显示异常信息的储存区中,这样无论有多少个工艺程序,只需建一套异常信息变量就可以了,画面显示也只需做一个,这样既节省了变量点数也节省了开发界面的数量,可以为客户节约采购组态软件的费用。根据以上设计思路设计出自诊断程序框架如下图;
自诊断程序框架
3.3程序设计
根据自诊断程序框架,自诊断程序实现步骤为1-7步骤,具体步骤如下:
1、定义控制设备
设备是系统控制最基本单元,设备的异常将导致系统无法正常运行,常见控制设备包括电机、泵、阀门、风机以及其他智能设备;
2、定义异常状态信息
异常状态信息包含两种,一种是设备异常信息,包括设备忙、未准备好、被占用、就地控制、手动控制、连锁条件不满足、通讯故障、设备故障等;另一种是条件异常状态信息,例如工艺参数条件不满足、现场传感器异常等,对于这部分异常状态存在时会触发一个唯一的异常状态编码,用于SCADA系统定义并查询异常报警信息;
3、设备异常信息储存区(异常信息储存I区)
实时检查每个设备的异常情况以及影响工艺程序正常运行的条件异常信息,并将所有异常信息集中存储在设备异常信息储存区(异常信息储存I区),每个设备分有唯一的存储单元,用于后续进行异常信息查询及筛选。
4、定义工艺程序
通常一个生产制造系统可能包含多个工位,一个工位也有可能包含多个工艺,自动控制程序一般基于工艺流程控制的,每个工艺程序有自己的工艺执行顺序以及控制设备,自诊断程序是服务于工艺程序的,工艺程序是根据生产需求来执行的,不一定都处在执行状态。对于自诊断程序作用有两个阶段,阶段一,在工艺程序未执行前检查出异常状态信息,便于操作人员提前处理完异常信息再启动该工艺程序;阶段二,在程序执行已经启动后实时检查出当前存在的异常状态信息,并在SCADA界面显示,便于操作员快速排除故障;
5、工艺程序包含的异常情况
每个工艺程序包含不同的设备,同一设备也可能被多个工艺程序控制。在自诊断程序设计时需定义好每个工艺程序包含哪些设备异常信息以及条件异常信息,这样在进行异常情况判断时才能筛选出属于该工艺程序的异常状态信息;
6、工艺程序异常信息存储区(异常信息储存II区)
把工艺程序相应设备的及条件的异常状态信息从设备异常信息储存区(异常信息储存I区)提取到工艺程序存储区中(异常信息储存II区),便于工艺程序对自身异常信息进行处理及显示;
7、异常信息处理
自动控制程序是安装预定的条件或顺序执行的,当出现异常时也有相应的异常处理程序,若该工艺程序还未启动,则在SCADA界面做异常信息报警提示,提示操作人员及时解决。若该工艺程序已经启动了,则通过SCADA界面显示影响当前程序正常运行的异常信息,帮助操作人员快速找到异常问题并及时解决,缩短排除故障时间;
3.4自诊断界面设计
根据自诊断程序框架,自诊断界面实现步骤为8-10步骤,具体步骤如下:
1、选择工艺程序
根据自诊断界面设计原则设计时尽量占用少的变量显示详细的诊断信息,所以在SCADA设计时采用公共显示区的设计思路,当需查看某个工艺程序的诊断信息时通过选择该工艺程序异常信息查询按钮即可查看;
2、SCADA异常信息显示储存区(异常信息储存III区)
当选择了某个工艺程序诊断信息查询功能后通过按钮发命令给PLC,让PLC从工艺程序异常信息存储区(异常信息储存II区)提取该工艺程序异常信息到SCADA异常信息显示储存区(异常信息储存III区),异常信息传递过程见下图:
异常信息传递图
3、SCADA界面显示
SCADA自诊断界面通过文字、图形显示工艺程序异常信息,异常信息包括设备异常信息以及影响工艺程序正常运行的条件异常信息,显示直观,界面友好,便于操作人员快速了解异常状态情况;
4.实现方法
1、定义设备异常信息
设备异常信息包括设备忙、未准备好、被占用、就地控制、手动控制、连锁条件不满足、通讯故障、设备故障等,共包含10个字节的储存区,见下图;
2、工艺程序异常信息存储区(异常信息储存II区)清零
首先将工艺程序异常信息存储区(异常信息储存II区)清零,然后把工艺程序所包含所有设备的异常信息存储到该储存区,每个设备的异常信息包含10个字节的储存地址,采用语句表编程,FOR循环语法将工艺程序异常信息存储区清零;
3、选择工艺程序
通过SCADA界面选择要显示的工艺程序异常信息,当前程序共定义了5个工艺程序,选择不同的工艺程序则执行不同异常信息筛选、传输及显示程序;
4、工艺程序异常储存区
将需要显示的工艺程序对应的设备异常信息传输工艺程序异常储存区;采用语句表编程,FOR循环语法将工艺程序对应的所有设备异常信息及条件异常信息传输到工艺程序异常信息存储区,为后续的程序处理及显示打基础,具体程序实现见下图:
5、SCADA异常信息显示储存区(异常信息储存III区)清零
SCADA异常信息显示储存区是一个公共的显示区,为了把上一次其他工艺程序的异常信息清除,需把SCADA异常信息显示储存区清零,具体的程序实现见下图:
6、SCADA显示异常状态信息
将工艺程序中异常信息检查并筛选出来,并传输到SCADA异常显示储存区,并在SCADA界面显示出来,具体实现程序见下图:
7、自诊断显示界面
自诊断显示界面显示包括两部分内容,一,设备的异常状态信息;二、工艺程序条件异常信息;设备异常信息通过图标显示该异常是否存在,工艺程序异常信息通过程序定义的唯一编码查询并显示该信息即采用IO文本方式实现,诊断界面设计如下图:
结论
总而言之经测试,增加程序自诊断功能后可以帮助客户快速排除故障,缩短故障时间,减少故障带来的生产损失,提高系统稳定性;通过采用SCADA公共显示区的设计方法可以有效节省SCADA变量点数以及开发画面的数量;
参考文献:
[1](德)Hans Berger著 张同庄;方荣惠;伍小杰;邓先明 译.西门子 S7-300/400 PLC 编程--语句表和结构化控制语言描述(第 3 版).人民邮电出版社,2008 年 4 月
[2]陈海霞,柴瑞娟,任海庆,孙承志编著.西门子S7-300/400PLC编程技术及工程应用.机械工业出版社,2011年
[3]刘华波[等]编著.组态软件WinCC及其应用. 机械工业出版社,2009年
论文作者:陈达明
论文发表刊物:《基层建设》2019年第16期
论文发表时间:2019/9/11
标签:异常论文; 程序论文; 信息论文; 工艺论文; 储存区论文; 设备论文; 状态论文; 《基层建设》2019年第16期论文;