冗余DCS开发方法
2007/12/26 16:47:00
1.概述 可编程序控制器(Programmable Logic Controller,简称PLC)把自动化技术、计算机技术和通信技术融为一体,按照成熟而有效的继电控制概念和设计思想,用先进的微控制器技术来实现I/O的实时检测和控制。由于PLC具有编程简单、可靠性高、通用性强和使用方便等特点,因此得到广泛应用。 PLC是由早期继电器逻辑控制系统与微机计算机技术相结合而发展起来的,它是以微处理器为主的一种工业控制仪表,它融计算机技术、控制技术和通信技术于一体,集顺序控制、过程控制和数据处理于一身,可靠性高、功能强大、控制灵活、操作维护简单。近几年来,可编程序控制器及组成系统在我国冶金、电厂、轻工石化、矿业、水处理等行业更是到了广泛的应用,并取得了一定的经济效益。 在工业过程控制领域,每年对具有更高可靠性系统产品的需求都在逐年增加,其中绝大多数是受经济利益的驱动所产生的。工厂停机损失所带来的代价是极其昂贵的,而且所造成的生产成本也会随之增加。尤其在欧洲,一系列规章制度的主体正在逐步得到完善和加强。现在公布的IEC 61508标准为过程控制系统的安全性能提供了设计依据,该标准主要针对可编程电子系统内的功能性安全设计而制定的。 由于PLC应用的广泛性以及用户对产品可靠性需求的不断提高,开发低成本的、易用性强的PLC显得特别具有意义。 目前,由于PLC把专用的数据高速公路(HIG HWAY)改成通用的网络,并逐步将PLC之间的通信规约靠拢使得PLC 有条件和其它各种计算机系统和设备实现集成,以组成大型的控制系统,这使得PLC 系统具备了DCS的形态,这样,基于PLC的DCS (Distributed Control System集散控制系统) 系统目前在国内外都得到了广泛的应用。 2.开发平台选择以及技术路线确定 在开发DCS过程中,如同大多数工业产品开发过程一样,首先需要确定技术路线以及软、硬件开发平台。考虑到DCS基础软件技术已经非常成熟,国际上也有多家公司提供相关开发软件包。所以在确定技术路线的时候,我们决定DCS基础软件技术采用国外成熟的开发平台。我们利用自身特长,重点开发低成本的、易用性强、高可靠的硬件主控制器以及I/O模板。软件上重点提高可靠性。基于用户对可靠性需求不断增加,重点开发冗余功能。 2.1 硬件平台 近年来,作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。 采用RISC架构的ARM微处理器一般具有如下特点: 1、体积小、低功耗、低成本、高性能; 2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 3、大量使用寄存器,指令执行速度更快; 4、大多数数据操作都在寄存器中完成; 5、寻址方式灵活简单,执行效率高; 6、指令长度固定; 在各种以ARM为内核的CPU中,我们最终选定美国NETSilicon公司的NET+50作为我们主控制器的CPU。选择该CPU主要是其性能满足DCS控制器要求,同时,该CPU集成网络MAC以及高速同步通信HDLC控制器,除这些外,还有功能丰富的NETOS软件开发环境。 2.2 软件平台 美国NETSilicon公司针对NET+50 CPU,推出了NET+OS集成开发环境,包括: 方便易用的GreenHills Multi2000编译、调试工具 高性能、低占用的ThreadX实时多任务操作系统 完整的TCP/IP协议栈 2.3 DCS开发平台 选择DCS开发平台的时候,我们最终选定德国科维(KW)软件公司的产品作为我们的开发平台。 德国科维软件公司以其MULTIPROG、ProConOS和ProConOS OPC服务器等产品,为复杂的自动化任务的编程和运行,提供了一个全面的、完美的、易于使用的解决方案。由于模块化的开放的系统设计,用户可以很容易地修改系统,使其分别适应不同需要。 MULTIPROG是一个可以适配和集成到任何控制系统并允许对客户部分做个别修改的 IEC 61131 编程系统。因为系统支持所有5种IEC 61131-3语言,程序员可以根据自己的偏好或者程序的要求,选择任何文本语言(IL和ST)或图形语言(LD、FBD和SFC),来完成它的工作任务。而且,LD、FBD和SFC等语言可以混合出现于同一工作单内,并且,IL、LD和FBD等语言可以相互自由转换。 ProConOS基于一个标准的多任务操作系统,支持抢占式多任务调度。它通过内置的专用于不同CPU平台的代码生成模块,保证了最快速的执行时间。 ProConOS OPC服务器提供开放的OPC接口,方便将DCS中的实时过程数据集成到其它第三方软件中。 3 软件开发过程 基于德国科维软件公司DCS开发平台基础上的软件开发主要过程为: a.控制器DCS开发平台支撑环境开发 这部分开发工作主要有实时多任务操作系统(RTOS)支持,文件系统支持。 b.I/O数据通信驱动开发 c.自定义功能块开发 这部分工作包括下位控制器功能块算法编写以及上位功能块描述两部分内容。 d.上位组态工具定制 包括模板组态画面定制、出错信息定制、控制器模板定制等。 e.冗余开发 包括上位通信驱动开发以及下位冗余应用程序开发。 本文主要描述冗余开发过程。 在冗余实现方案中,系统结构图如下: 如上图所示,在冗余体系结构中,上位应用软件(包括MultiProg组态软件、ProConOS OPC服务器)是通过以太网与下位设备(DCS控制器)通信。两个冗余DCS控制器之间通过背板HDLC同步通信通道进行冗余同步、诊断等。同时,背板上有仲裁逻辑电路确定控制器主/从脚色分配、仲裁以及切换。 任何时刻,上位应用软件只同当前为主的控制器进行通信。两个冗余DCS控制器具有不同的IP地址,通过具有相同的物理标签(PdTag)来识别其冗余关系。 通过上面的体系结构图,可以看到,冗余DCS的实现需要两部分工作:上位以太网通信驱动开发、下位冗余程序开发。 3.1 以太网通信驱动开发 上位应用软件通过调用通信驱动库中的Open、Close、Transmit、Receive实现与DCS控制器的通信。这些基本通信在DCS开发包中已经实现。DCS开发人员需要实现的是找到当前为主设备的IP地址,然后利用开发包提供的接口建立通信连接。同时,当主/从发生切换时,能够切换与上位应用软件建立通信连接的DCS控制器。 实现方案如下: 如上图所示,DCS控制器与以太网通信驱动之间有两个广播端口。冗余DCS控制器在运行过程中通过DCS广播端口周期性地广播其基本信息(包括IP地址信息、设备标签信息、主/从脚色信息),同时侦听主机广播端口,该端口由冗余通信驱动发送快速识别命令,当收到识别命令时,立刻将其基本信息通过DCS广播端口广播。而以太网通信驱动正好相反,启动时向主机广播端口发送一个快速识别请求(请求中包含设备标签信息),同时侦听DCS广播端口信息,根据收到的DCS控制器基本信息决定与哪个DCS控制器建立连接,同时,当DCS控制器主/从发生切换时,以太网通信驱动的连接对象也做相应切换。 3.2下位冗余程序开发 DCS控制器冗余主要需要考虑的问题有: 主/从DCS控制器冗余脚色确定 主/从DCS控制器冗余同步 主/从DCS冗余切换机制 3.2.1 主/从DCS控制器冗余脚色确定 对于同时上电的情况,主/从DCS控制器冗余脚色确定按照下表方式进行: 对于非同时上电情况,先上电的DCS控制器成为主,后上电的DCS控制器为从。只有当先上电的DCS控制器有启动工程,并且处于运行状态。同时,后上电的DCS控制器启动工程文件以及保持数据区与先上电的DCS控制器相同的时候,才进入冗余同步状态,其余情况均不进入冗余同步状态。 3.2.2 主/从DCS控制器冗余同步 DCS控制器有两种冗余状态需要处理同步: 非冗余同步状态下的强制同步 冗余同步状态下的运行同步 3.2.2.1 非冗余同步状态下的强制同步 如同前面所说,主/从DCS控制器只有在某些情况才能进入冗余同步状态。当没有进入冗余同步状态的时候,冗余是没有意义的。故对于应用而言,需要让主/从DCS控制器进入冗余同步状态。此时需要强制同步命令。 主DCS控制器接收到强制同步命令后,首先向从DCS控制器发起强制同步请求。在收到从DCS控制器强制同步请求应答后,依次将如下数据通过HDLC同步通道通信: 同步启动工程文件以及其它文件 同步保持区数据 同步I/O数据区 同步DCS系统内部数据 同步DCS任务数据 3.2.2.1 冗余同步状态下的运行同步 运行期间的同步主要通过DCS开发包提供的三个沟子函数实现: Task Begin Redundancy Hook、Task End Redundancy Hook负责任务执行同步 Data Access Hook负责修改数据同步 任务执行同步: Sync 1 1.同步任务执行时刻并检查握手信号 2.主卡通过HDLC同步通道同步输入数据 Sync 2 1. 同步任务执行时刻并检查握手信号 2. 可以比较输出结果以决定工作状态 数据同步: 在Data Access Hook钩子函数中,主DCS控制器首先检查是否有备板以及是否处于同步运行状态,当两者条件皆满足的时候,主DCS控制器将修改的变量以及值通过HDLC同步通道同步给从DCS控制器。 3.2.3 主/从DCS控制器冗余切换机制 主/从DCS控制器冗余切换发生情况有: 主卡硬件故障(包括拔<
提交
查看更多评论
其他资讯
PHIIDF2021顶配发布,有些热爱,值得去奔赴!
开放式工业控制器软件方案技术研讨会
菲尼克斯电气标识和安装材料业务再添新助力
菲尼克斯电气 IEC61131 · PROFINET 技术研讨会9月开始啦!
基于PLCopen标准的工业机器人控制软件技术研讨会