系统简介:
---- 该项目是新疆石油管理局所属的石油运输管道控制系统二期项目。这条管线将克拉玛依炼油厂的成品油通过管道运输至乌鲁木齐。目前为止它是国内第三条,也是现代化程度最高最长的成品油管线。全长三百余公里。它由五个泵站,一个调度中心组成。技术上涉及不同油品的混合运输,两管汇合,水击事件保护等大量复杂控制功能。在该项目的一期工程中,控制系统采用的是AB 公司的PLC和霍尼韦尔的SCAN3000系统。在二期项目中,用户决定在新增的两个站中采用西门子的WINCC系统,并且将原泵站的SCAN3000系统替换为WINCC系统。系统开发商为沈阳惠东公司。SFAE承担销售和技术支持任务。
---- 系统中每个泵站有一套AB冗余PLC,使用一套WINCC进行本地监控。在调度中心使用两套WINCC系统进行远程监控。WINCC系统采用中文版本4。02,中文NT操作系统。两套WINCC系统为冗余SERVER,同时也作为两个操作站使用。各泵站,泵站与调度中心间使用光缆进行广域网连接。
面临问题:
---- 针对这个项目,我们分析并解决了如下几个几方面主要问题:
如何实现WINCC 和AB PLC 的连接,同时满足变量数,广域 网连接等要求?
如何实现WINCC 和AB PLC 通讯链路的冗余,包括AB PLC 的冗余,网口及通讯介质的冗余?
如何实现WINCC 的冗余及主备标志切换?
如何实现WINCC 与用户应用程序之间的数据交换,以及不同SERVER上用户应用程序所需数据的冗余?
如何实现两台WINCC SERVER间LOCAL 报警的同步确认?
如何完成用户复杂报表格式的实现?
如何实现整个系统的时间同步?
方案选择和系统结构:
---- 首先考虑WINCC 和AB PLC 的连接问题:
思路一:WINCC与ABLPLC通过S7-300连接。ABLPLC与S7-300通过TCP/IP或 PtP, 或其他方法。
思路二:WINCC与ABLPLC直接连接。比较WINCC提供的ABJTCP/IPKCHANNEL 或 DH+ CHANNEL,或其他方法。
其次考虑WINCC 和AB PLC 通讯链路的冗余:
思路:AB PLC 通过DH+可实现冗余;但如何通过TCP/IP实现
再次考虑WINCC 的变量数及两套变量间的切换
思路:尽量不增加变量数,并不在WINCC中通过C脚本来实现变量间的切换
---- 经过多次试验和考虑,系统方案定为如下所示:
---- 实现方法:使用Rockwell的Rslinx软件连接冗余的ABJPLCLCPU,使用TCP /IP协议以满足系统广域网的连接。WINCC与Rslinx通过DDE通道进行数据交换 。通过Rslinx软件的别名功能来实现两套变量间的切换。其切换的控制和通讯介质的冗余由SFAE开发的应用程序与AB PLC程序配合控制。
解决方法:
---- 1.如何实现WINCC与用户应用程序之间的数据交换,以及不同SERVER上用户应用程序所需数据的冗余,如何快速启动用户程序?
由于用户需开发专用的控制程序来完成批输,水击等控制功能。不可避免的需要与WINCC进行数据交换,读写实时和历史值。为解决这一问题我们使用了WINCCIODK的函数,使得用户应用程序能够直接从DATA MANAGER中 访问数据。在程序中进行访问同一数据的协调。
由于用户某些功能需长时间连续进行,如批输功能,可能持续几天。为防止在此期间应用程序运行的WINCCPSERVER出现故障,必须保证另一台 WINCC SERVER上的应用程序能够在中断点继续运行。这样,必须将故障 SERVER上的中间计算数据实时的进行备份。为实现该功能,采用了WINCC OPC通道,并使用C脚本,将两台WINCC的相应数据从当前主机上传送到备机上。数据备份按C 脚本的触发周期进行。
用户程序需根据不同工况快速启动,比如水击保护功能,水击波传输速度为一千米左右/每秒。系统必须在不同负载率的情况下及时启动保护程序。我们通过C脚本中的程序启动函数完成该项功能,并满足了用户对实时性的要求
---- 2. 如何完成用户复杂报表格式的实现?
----用户所用的班报表,月报表格式复杂而且很大。在原系统中是将其拆成四张报表。在这期项目中用户要求将其合并以方便管理,并扩展其统计等功能。WINCC现有的报表功能不能满足用户的要求。我们采用EXCEL软件来完成报表功能。通过其方便的编辑功能完成报表样式的设计,通过VBA编程来完成数据采集,填写和统计等功能。打印作业的启动由C脚本完成。报表输出采用LQ1600KIII针打,以实现宽报表输出和报警的实时输出。
---- 3. 如何实现两台WINCC SERVER间LOCAL 报警的同步确认?
---- 为完成某些报警功能,开发技术人员使用C脚本程序产生一些内部变量进行判断,并将内部变量作为报警触发变量。同时由于变量数的限制并没有将报警的确认反馈回PLC中。那么在调度中心的WINCC系统中,用户在一台WINCC中进行的报警确认不能同时在另一台WINCC中反映。为解决这一问题,当WINCC4。02推出后,我们利用WINCC4。02的本地报警同步功能来解决。但由于报警数目超过WINCC4。02能确认的一千条限制,所以我们利用ODK的报警处理函数完成超过一千条部分的报警同步确认。当用户在一台WINCC上进行报警确认时,通过OPC通道将其变化传到另一台WINCC上,触发该机器上的C程序完成相应报警条的确认。
---- 4. 如何实现整个系统的时间同步?
---- 由于系统由多个WINCC系统组成,并且经过广域网连接,时间同步成为重要的要求。综合各种方法,我们采用开发时间同步程序来完成时间同步。时间值由当前主站发送,备机和泵站接受。主机发送程序一天启动三次,运行一分钟后关闭。备机每小时检查启动情况,如没有启动接收程序则启动它,启动后不再重启。泵站接收程序随NT系统启动,关闭时停止。
---- 5. 主备机标志的切换扩充控制
---- 在本系统中,两个冗余WINCC系统的主备标志不仅由系统自身控制,而且还由标志控制程序控制。在WINCC系统中,当发生主机WINCC退出或RT停止时,备机切换至主机状态。但当主机计算机掉电,死机或通讯故障时,备机不能自动从备机切换至主机状态。在本系统中,考虑到负载等原因,一些用户程序分别在主机和备机上运行。当主机出现问题时,备机应及时切换至主机状态以接替运行。通过程序控制,当发生上述故障时,主备标志将及时切换。
结论:
---- 该项目的实施及成功完成,证明了西门子WINCC系统在管道运输行业的可靠性和灵活性。为今后承接类似控制项目奠定了良好的实践基础,取得了宝贵的技术经验。同时也为西门子进入石油行业,特别是石油管道运输行业迈出了坚实的一步。