摘要:如今,随着我国信息化建设以及互联网技术的快速发展,分布式控制系统在工业控制领域得到了广泛的应用。而在现代化的电厂建设中,通过分布式控制系统对大量分散的前端实时数据进行采集并集中管理,能够大大减少人力成本,提高生产效益。但是,目前电厂数据采集分布式控制系统中主站采用的双冗余热备份设计,通过软件控制活动站和备份站的工作状态和仲裁切换,切换响应速度慢、数据易丢失、可靠性不高。同时系统主从站间采用直接通过RS485总线通信的方式,通信速度慢、出错率高、网络利用率不高,这些问题严重制约了系统的实时性。基于此,本文针对我国电厂当前实际现状,对原系统中存在的性能和可靠性等技术问题作以改进,设计了硬件双冗余热备份主站仲裁模块以及快速可靠的仲裁切换方案,使用双冗余PROFIBUS总线代替原有的通信方案,在保证系统实时性的基础上,避免了单总线故障对整个系统的影响,提高了系统的稳定性和可靠性。
关键词:分布式控制系统;系统设计;PROFIBUS总线
1 分布式控制系统结构分析
在现代工业控制领域,常常通过分布式控制系统实现过程控制。分布式控制系统是指对分散的工业现场前端进行统一的集中管理,是计算机技术、工业控制技术、通信技术等技术相互交融的基础之上发展起来的。如今分布式控制系统得到进一步升华,其融合了智能控制技术、可编程控制器技术、嵌入式系统软硬件技术、现场总线技术等现代技术的发展进行了更替。分布式控制系统主要采用层级式控制,本文分析的分布式控制系统结构主要包括三层:即操作员站、过程控制站以及数据采集站。上层的操作员站负责集中管理,中央过程控制站负责数据通信和运行控制算法,分布式数据采集站负责实现数字量和模拟量的输入和输出,达到分散控制的目的。分布式控制系统结构见图1所示。
2 分布式控制系统的总体设计方案
本文研究的PROFIBUS总线分布式控制系统,用于电厂的实时数据采集和集中控制。基于PROFIBUS总线的分布式控制系统中的过程控制站采用双冗余热备份设计,由两个独立的PROFIBUS主站和仲裁板构成,PROFIBUS主站之间通过双冗余心跳线互检工作状态。每个PROFIBUS主站由上位机和通信板两个部分构成。上位机运行控制算法,对前端数据采集站,即PROFIBUS从站进行集中控制,通信板负责周期性接收前端数据采集站的实时数据,并将其统一发送给上位机。上位机通过双冗余工业以太网与操作员站通信,同时通信板通过双冗余的PROFIBUS总线与从站通信,上位机和通信板之间采用虚拟双端口存储器(DPM-DualPortMemory)共享数据区的方式进行通信。
PROFIBUS总线站点分为主站和从站两种类型站点。PROFIBUS主站拥有PROFIBUS总线控制权,负责和各个从站通信,采集实时数据并发送控制命令。PROFIBUS从站负责前端模拟量和数字量的采集和输出工作,其工作状态通过主站发送的控制命令决定。本系统中PROFIBUS总线网络由双冗余热备份的PROFIBUS主站和最多62个PROFIBUS从站组成。从站根据其不同工作划分为热电偶测量前端、4-2mA测量前端、热电阻测量前端、变送器测量前端、开关量输入前端、开关量输出前端、模拟量输出前端以及模拟量输出冗余前端共八种类型。PROFIBUS总线采用双冗余设计,PROFIBUS主站通过冗余控制任务选择PROFIBUS总线进行通信,诊断和报警工作。
3 双冗余热备份PROFIBUS主站设计
PROFIBUS主站是分布式控制系统的核心,对其实时性和可靠性要求很高。采用双冗余热备份设计方案,能够大大减少系统平均无故障时间。
3.1硬件结构
PROFIBUS主站的硬件结构由上位机和通信板两个部分构成。上位机和通信板之间通过PC104总线,使用虚拟双端口存储器(DPM)通信。上位机使用研华4153嵌入式工控板,负责发送命令和数据处理。通信板使用netX100嵌入式ARM芯片设计,负责与从站进行数据通信,双冗余主站的识别和切换,双冗余主站心跳线互检工作。主站使用双冗余PROFIBUS总线与从站进行通信,因此主站还负责双冗余总线的使用、切换和故障诊断工作。
3.2通信板软件结构
PROFIBUS通信板的软件结构由三个模块构成,即PROFIBUS通信模块、冗余控制模块以及命令处理模块。下面就三个模块在结构中的功能及应用进行分析。
3.2.1PROFIBUS通信模块
该模块在采用双冗余总线的主站上,使用两个相同的PROFIBUS任务,分别负责通过两条PROFIBUS总线与从站通信。PROFIBUS通信模块负责初始化PROFIBUS通信,PROFIBUS周期通信以及PROFIBUS非周期通信。PROFIBUS初始化工作流程包括任务初始化,下载从站参数,下载总线参数,设置PROFIBUS主站进入通信状态。
3.2.2冗余控制模块
冗余控制模块是本分布式控制系统的关键模块。其主要包括两个部分的工作内容,即双冗余热备份主站控制和双冗余PROFIBUS总线控制。双冗余热备份主站控制的工作包括主备识别、心跳数据传输、故障切换。双冗余PROFIBUS总线控制的工作包括双冗余PROFIBUS总线的状态监控、总线选择和切换。冗余控制模块在接收到上位机发送的从站命令后,将其转发给双冗余的PROFIBUS通信模块,命令通过两条PROFIBUS总线同时发送。从站在收到冗余的PROFIBUS命令后,通过其冗余控制模块,只进行一次命令处理,避免从站进行重复的数据处理。主站在收到冗余的从站数据后,只选择一个数据包发送给上位机,将双冗余网络的实现细节对上位机实现屏蔽,简化上位机软件的设计工作。双冗余主站工作时,通过双冗余心跳线相互发送心跳数据包。当前主站在指定周期内同冗余心跳线上均收到对方主站发送过来的心跳数据包时,认为对方主站当处于正常工作状态。如果从双冗余心跳线上均接收不到心跳数据包,则认为对方主站故障。如果自身是备份站,则需要进行主备切换工作。如果只能从一条心跳线上接收到心跳数据,则判断为心跳线故障。
3.2.3命令处理模块
命令处理模块通过虚拟双端口存储器与上位机通信,接收上位机发送的命令包,并返回响应包。上位机通过发送邮箱发送的命令类型分为三种类型,读从站周期实时采集数据命令,读写从站类型命令,读写从站参数命令。对于读从站周期实时采集数据命令,PROFIBUS通信任务自动更新从站数据保存在主站上,因此,直接将主站上保存的从站当前周期的实时采集数据拷贝发送给上位机,不用再进行额外的PROFIBUS通信操作。在收到读写从站类型或读写从站参数命令以后,命令处理模块将该命令转发给冗余控制模块,由冗余控制模块来选择合适的PROFIBUS总线通过非周期数据包的形式来发送命令给从站。等到从站返回响应数据包以后,再将处理结果返回给上位机。
3.3仲裁模块
3.3.1仲裁模块硬件设计
仲裁模块的核心采用一个D触发器,通过其输出信号Q和Q#来保证仲裁结果互斥。D触发器的输入信号PR#和CLR#分别由来自两个主站A和B的看门狗输出信号Watchdog_O#和总线控制信号Bus-Control#相互通过与门以后得到。D触发器的输出Q与Q#分别是主站A和主站B的仲裁结果。
3.3.2仲裁模块软件设计
为了保证仲裁模块的正确工作,需要PROFIBUS主站通信板的软件配合工作。仲裁软件负责仲裁主备识别,相互发送心跳数据,故障切换操作以及故障恢复操作。系统上电以后,双冗余热备份PROFIBUS主站需要先进行主备识别操作,在确认当期的工作状态以后,两个主站开始交换心跳数据,同时活动站开始PROFIBUS通信,采集从站数据。当出现故障时,主站根据自己的当前工作状态来决定是否需要进行仲裁切换。当故障站修复以后,重新加入系统中后,首先进行主备识别,然后开始与另一个主站进行周期性心跳线数据交换。
4 双冗余PROFIBUS总线设计
4.1总线的工作方式
采用双冗余的PROFIBUS总线可以提高系统的可靠性,在单总线出现故障时,系统仍然能够连续运行,不会出现数据丢失的错误。同时,由于使用了冗余总线,当出现通信故障时,PROFIBUS主站能够通过两条PROFIBUS总线上的通信情况判断故障出现的位置。双冗余PROFIBUS网络的工作可以采用冷备份和热备份两种方式。
4.1.1总线冷备份
采用双网冷备份的通信方案,在主从站的通信过程中,主站只通过一条PROFIBUS总线与从站进行通信,另一条PROFIBUS总线作为备份总线,只在通信出现故障时切换使用。
4.1.2总线热备份
采用双网热备份的通信方案,在主从站通信的过程中,主站同时使用两条
总线与从站通信,两条总线上传输同样的数据。系统正常运行时,两个PROFIBUS通信任务同时工作。PROFIBUS网络出现故障时,通过从两条PROFIBUS总线上接收到的数据判断出现故障的位置,不需要进行总线切换,也不需要进行网络参数重新初始化操作。
4.2总线的工作状态
双冗余热备份的PROFIBUS总线能够大大提高系统的可靠性。两条PROFIBUS总线同时工作,可以免去总线切换时间,提高系统的实时性。系统初始时,双冗余总线都处于正常工作的状态,主站同时使用两条PROFIBUS总线与从站通信。当一条PROFIBUS总线出现故障时,系统选择只使用一条总线进行通信工作。当故障总线修复以后,系统重新回到正常工作状态,同时使用两条PROFIBUS总线进行通信。如果在单总线工作状态下,出现该总线也出现故障,则系统进入空闲状态,停止PROFIBUS通信。
4.3总线通信控制
为了保证从站采集数据的实时性,双冗余PROFIBUS总线同时工作,活动站能从两条总线上同时发送和接收从站数据,当某个从站或某条总线出现故障时,都能立刻从另外一条总线上获得数据,无需任何切换操作,系统能够保持继续运行。同时,通过双网控制任务,对上位机隐藏双冗余总线设计和工作细节,简化上位机软件设计。
通信任务0和1分别使用双冗余PROFIBUS的0网和1网与从站通信,当通信任务收到从站数据包以后,直接将其转发给双网控制任务。然后双网控制任务通过数据包的状态,判断通信是否出错,如果出错,则标记数据包来源从站在对应网络上通信错误。如果数据包状态正确,则判断其来源,这里假设0网的优先级高于1网,即0网收到的数据正确时,就抛弃1网上接收的数据,只有当0网出错时,才从1网接收数据。
参考文献
[1]田飞龙,郭迎清,姜彩虹.分布式控制系统稳定性分析及控制器设计[J].航空发动机,2015,05:38-42.
[2]高瑞.电厂机组分布式控制系统DCS的改造分析[J].科技传播,2012,02:69+61.
[3]由坤.电厂600MW机组电气控制系统ECS设计要点分析[J].电子技术与软件工程,2014,19:247.
论文作者:蔡军
论文发表刊物:《电力设备》2017年第18期
论文发表时间:2017/11/7
标签:冗余论文; 总线论文; 通信论文; 主站论文; 上位论文; 分布式论文; 模块论文; 《电力设备》2017年第18期论文;