技术频道

西门子:PCS7自定义功能库的开发及在承钢2500m3高炉中的应用

1. 项目简介

承钢5号高炉炼铁车间的规模为一座2500m3高炉及其所属辅助设施。主要工艺包括:2500m3高炉主体工艺设施,其中炉顶采用无料钟串罐方式,热风炉系统采用3座顶燃式热风炉和2座预热炉的方式;高炉循环水泵站;高炉喷煤制粉站;高炉除尘设施;槽上供料设施,鼓风机站,空压机站,锅炉房等。本项目的控制范围涉及上述工艺系统及其所属辅助工艺设备。工艺总貌如图1所示。

承钢5号高炉的基础自动化控制系统是典型的电仪合一的大型高炉控制系统,具有较高的控制水平,系统包括:矿槽控制系统、炉顶控制系统、高炉本体控制系统、热风炉控制系统、出铁场控制系统、布袋除尘控制系统、水冲渣控制系统、煤粉制备控制系统、煤粉喷吹控制系统、高炉水处理控制系统、鼓风机站及其水处理控制系统、煤气柜控制系统、锅炉控制系统等。

图1:高炉工艺总貌

2. 控制系统构成

本工程的控制系统考虑了SIEMENS公司“全集成自动化”的理念,不仅选用了标准的PCS7控制控制站和操作站及相应软件,还选用了SCALANCE系列的网络产品,其中包括冗余AS控制器4套,标准AS控制器11套,具有热插拔功能的ET200M单元62套,Y-Link耦合器1套,OS SERVER 硬件及软件1对(套),OS CLIENT硬件及软件10套,OS 单站硬件及软件14套,ES 工程师站硬件及软件9套,SCALANCE各系列交换机21台以及网络附件若干。控制系统配置图如图2所示:(公辅系统从略)

图2:控制系统配置图

各控制站、控制站与操作站之间采用工业以太网连接。其中,高炉主体部分为1000M光纤环网,操作站为SERVER/CLIENT结构,设有冗余SERVER对和工程师站,在PlantBus和TerminalBus环网中选用了SCALANCE X414-3系列的1000M冗余管理型交换机;其它公辅系统以100M光纤星型方式接入主环网,该部分选用了SCALANCE X200系列的交换机。

控制器部分,对于矿槽系统、炉顶系统、高炉本体系统、热风炉系统等高炉主体部分选用AS417-4-2H组件包(双电源模块、双CPU模块,双以太网通讯模块、双PROFIBUS通讯网络),其它公辅系统选用AS414-3组件包。ET200M I/O部分选用带有热插拔功能的有源背板和具有高性能的接口模块IM153-2HF,对于热备系统则选用双电源模块、双总线接口模块。

工程师站、操作员站(包括SERVER、CLIENT、单站)均选用预装有PCS7软件的SIEMENS IL43系列工控机。

对于热备系统的PROFIBUS网络,选用Y-LINK将具有PROFIBUS接口的传动装置和编码器接入并实现切换的功能。

本系统还留有于二级系统的网络接口,通过SCALANCE X200系列交换机连接至主环网并通过SCALANCE S硬件防火墙隔离。

3. 控制系统完成的功能-用户自定义功能库

在PCS7所提供的功能库的基础上,我们对其进行了延伸和扩展,开发了适合冶金行业特别是高炉控制方面的自定义功能库。通过使用该功能库,工程师一次性的编程即可完成如下工作:

AS控制器中运行的过程控制回路控制算法;
针对控制回路在上位机中相关画面下对应的监视回路图标;
控制回路在上位机中对应的操作及参数设置子画面;
控制回路对应的相关报警信息、趋势归档及用户操作记录等。
如图3所示的矿槽系统流程图中包括了各种电机、电磁阀、电动阀等69个电气回路,都是通过在CFC中调用自定义功能库中相应类型的功能块并编译OS自动上传至流程画面的。下面结合不可逆电机块MOTOR_NR介绍自定义功能库实现的功能。

图3:矿槽系统流程图

3.1.AS中的功能块类型(block types)

首先需要定义功能块的特性、声明功能块参数和本地变量。在这部分中,我们注重考虑了功能块头和功能块参数中报警和OCM(operator control and monitor)这两个属性,以便可以将需要的变量状态和报警消息显示在block icon或faceplate上。例如电机的运行状态、连锁状态、处于何种被控方式、是否处在报警状态等,都可以通过定义功能块管脚的OCM属性上传。还定义了功能块管脚的文本属性,从而可以在功能块实例对应管脚的属性对话框中组态用于在OS上显示的文本。如图4中所示,由于在声明参数属性的代码中定义了参数MONITOR、TIME_ON的文本属性,因而可以在MONITOR管脚的的属性对话框中定义当MONITOR=0时显示“监视切除”,当MONITOR=1时显示“监视投入”;在TIME_ON管脚的属性对话框中定义其用于显示的标签名“监视时间”和单位“秒”。这样使得大量用于显示的信息都可以在AS中组态和修改,很好地保证AS/OS的一致性,并大量节省HMI的工作。

通过调用SFC6(RD_SINFO)读取到相关的OB信息,实现了功能块的初始化和异步启动及容错处理。例如,当读取到CPU暖启动时(OB100),我们编写了某些重要参数的初始化程序,当读取到中断信息(OB80、OB86),则编写了错误中断或循环中断处理程序。另外,通过定义SAMPLE_T管脚并配合激活编译时的”Up date Sampling Time”功能,可以自动采集调用当前功能块的循环OB的时基值,省去了改变功能块调用OB后的手动改写,既方便又减少了由于忘记改写而带来的错误。

通过调用Alarm_8p功能块,组态了用户定义功能块中的报警消息,将该功能块中需要显示的报警消息上传至OS,如电机故障、运行超时故障等。AS控制器从Stop状态到Run状态的过程中,CPU需要处理相关的初始化代码,建立与上位机的通讯连接等。系统启动后再开始执行循环程序,如果在启动初期,系统各控制回路同时有很多的报警消息需要上传到OS,势必导致此时的CPU负荷偏大。因此,在功能块的代码中考虑了报警抑制部分。此代码在系统启动初期(或该功能块被调用的前几个循环中)抑制该回路的报警输出。完成了Alarm_8p功能块的组态和报警抑制代码的编写之后,还需要完成该功能块的报警组态。在报警组态对话框中,定义了功能块的报警类型、优先级、区域、来源等特性。特别是利用功能块相关报警定义的报警属性可以应用于该功能块类型的所有实例。如图5所示,定义了MOTOR_NR功能块的3条报警消息的消息文本,通配符$$BlockComment$$代表功能块实例中Comment字段中组态的内容,因而可以根据不同的块实例自动生成对应的报警消息,而不用逐条组态,该功能对于组态具有大量相同回路流程的报警非常方便。

在一个项目中,同类型的功能块实例在画面中都会生成与之对应的Block Icon实例,但却只拥有一套Faceplate模板。在监控画面下,点击某个功能块实例对应的Block Icon时,系统会执行相应的脚本从对应的Block Icon实例中获取该功能块实例的相关属性,并基于通用的Faceplate模板创建相应的Faceplate实例进行监控。由于同一个功能块类型只对应一套Faceplate,在具有大量相同回路的流程中就省去了大量弹出子画面的重复、单调的制作。如图7所示MOTOR_NR块主要有3个可以切换的面板:

操作面板-用于电机各状态显示、设备诊断和常规操作(带有操作记录功能);
设定面板-用于设置某些重要参数(通常带有权限);
报警面板-用于显示和处理于本电机回路有关的报警。

图7:MOTOR_NR块的Faceplate

3.3.其它功能

除上述功能外还开发了如下功能:功能块的在线帮助功能:与系统提供的功能块类似,用户自定义功能库同样可以通过选择对应功能块并点击F1键的方式自动聚焦到该功能块的帮助主题上,使用起来方便灵活。所需要做的是为功能块创建帮助文件(*.hlp)和目录文件(*.cnt)并制作注册表文件。

功能块的发布:创建了用户自定义功能库后,需要将库发布方可被其它工程师使用。发布后的功能库可以打包成一个可执行文件安装在其它机器中,同系统提供的功能库一样被其它工程师使用。所发布功能库的安装文件包含AS功能块、Block Icon、Faceplate和在线帮助系统。

功能库的更新:由于建立了基于多项目的主数据库,所以主数据库中的功能库修改后可以通过清晰、明确的更新向导更新每个子项目中的功能块实例,这样便于统一维护程序库,集中更新,保证了多项目数据的一致性。而Block Icon和Faceplate的更新则可通过将修改后的文件拷贝到相应目录下并编译OS来实现。

4. 项目运行

承钢5号2500m3高炉项目于2006年12月5日出铁投产成功。投产后,系统运行稳定可靠,特别是热备控制器性能较好,象矿槽系统、炉顶系统等程序量较大的部分在热备条件下,CPU的扫描周期仍在40毫秒左右。由于合理的规划了工程结构,特别是开发了基于多项目的符合生产工艺的用户自定义功能库,该工程从编程、调试到投产只用了两个来月的时间。对同等规模的高炉来说,可节省十几个人月的人工时。这也正是PCS7系统标准化工作的成效在承钢高炉工程中得到了初步的体现和验证。
5. 应用体会

工程中借助PCS7平台,有利于我们编制出更为标准化、集成化的用户自定义功能库。该软件从形式上将编程软件、监控软件、网络组态软件集中在同一平台,从功能上将控制器功能块的各种信息通过编译OS(compile OS)的方式上传到OS的WinCC项目中 ,并自动生成变量标签(Tags)、调用动态图标(block icons)及其对应的弹出面板(faceplate)、生成报警消息(Message)、趋势(Trend)等,甚至连静态、动态的文本信息也可以直接由AS块编译后在OS中生成,这样OS部分的工作非常简便,大部分的工作都集中AS上,便于统一维护程序库,集中更新,保证多项目数据的一致性,省去了原先AS、OS两部分握手的大量工作。目前各大PLC系统生产商都相继推出了类似功能,例如Schneider公司的UAG软件,Rockwell公司的Logixview软件等,但与PCS7平台提供的有关软件功能相比,上述软件基本是在PLC编程软件和HMI组态软件之外添加了第三套软件,用于完成PLC与HMI的握手。这样就增加了在不同软件界面间的导入、导出或是派生的过程,可操作性较为复杂,程序层次与画面结构的联系得不到较好的体现。

用户自定义功能库中的AS功能块、OS中的block icon和faceplate是相互联系紧密的整体,所以在编写程序的前期,对功能库中的各部分做一个全面的规划和较为细致的设计是非常必要的。比如在设计AS侧的Block Type时,我们较为充分的考虑了操作员需要监控的输入、输出及输入输出接口,以及所需的操作方式等,并结合系统属性(OCM相关)来对各个端口进行定义,以便这些端口可以在OS上正常、灵活的显示与操作。对于相关参数的选择我们考虑了如下方面:

为了获得设备清晰的状态信息,操作员需要监控什么类型的数据;
用何种方式显示这些变量;
哪些变量可以被操作员控制;
操作时需要哪级操作权限;
有没有与过程变量相关的权限连锁;
各个变量将在什么视图窗口中显示;
使用PCS7中的用户自定义功能库编程设备类型规整且同类设备众多的项目确实非常方便,但对于一些规模较小、设备类型较杂、接口较多的项目也存在一些不灵活方便的地方。比如PCS7中不建议直接在流程画面中使用WinCC提供的控件来对过程变量进行操作,象按钮、I/O域等。使用此方法系统将不会进行授权确认,而且不会为这些操作产生操作员记录(Operator List)。而在实际的工程项目中会经常出现增加一些位操作的情况,对于这些操作目前我们正在摸索如何能够产生操作记录的方法,同时也希望PCS7软件能够不断完善,提供给我们更为灵活、简便的工具来解决这些问题。

文章版权归西部工控xbgk所有,未经许可不得转载。