使用HTML5、SVG 和并发编程技术实现水电站自动化系统
徐学琴,许明勇
(二滩水力发电厂,四川省攀枝花市617000)
摘要:简要介绍了目前国内水电站自动化控制系统的概况,研究了在当前多核芯片和WebOS 业已成为未来计算机技术发展趋势的情况下,使用H T ML5和SVG 等Web 技术及并发编程技术实现水电站自动化控制系统的可行性,并给出了一个实现模型,探索了在自动化控制系统实现过程中,可能得到应用的一种崭新的方式。
关键词:H TM L5;SVG;Erlang;自动化控制
收稿日期:2010 06 30。
0 引言
随着计算机技术的发展,Goog le Docs,iPhone,HTML5,noSQL 等产品的用户正在快速壮大,多核并发、云计算和WebOS 已成为未来计算机技术发展的方向。新技术的不断涌现,给传统的水电站自动化系统的设计理念造成了一定程度的冲击,人们对Web 的认识也在逐渐转变,使用Web 技术作为水电站自动化系统的开发平台和工具已成为现实。
1 水电站自动化系统介绍
水电站自动化系统主要包括上位机、下位机、历史系统、高级应用软件(如自动发电控制(AGC)、自动电压控制(AVC)、EDS)和调度通信系统等五大部分。个别厂商自主研发下位机控制器,多数厂家采用国外知名的可编程逻辑控制器(PLC)作为下位机,国内的下位机控制器的可靠性、可用性、应用资质和市场占有率方面与国外产品还有一些差距。不考虑下位机,在水电站自动化系统中,上位机的软件开发难度最大。
目前国内水电站自动化系统上位机实现主要有3种方式: 自主研发,使用C++和JAVA 作为开发工具,图形界面主要采用M OT IF,Gnom e,QT 4,Sw ing 或SWT 等图形库实现; 使用国外成熟的上位机组态软件,直接组态国外成熟的上位机软件,如iFix ,Cim plicity,WinCC,InT ouch 等;!使用Flash 和Actionscript 实现。
以上3种实现方式各有优劣,第1种方式的优点是代码执行效率高,缺点是开发效率低、界面设计不灵活、过多地依赖成熟的图形库、需要自主开发实
时控制过程对象、数据展示方式不灵活;第2种方式的优点是系统集成效率高,缺点是需购买昂贵的版权、系统定制不灵活;第3种方式的优点界面美观,缺点是开发难度大、不易进行代码调试和优化、代码执行效率低、标准不开放、无法进行内容检索。
自H T ML5标准草案发布后,其优异的特性得到了众多主流浏览器厂商的支持。使用浏览器作为上位机平台(准WebOS 方式),融合H T ML5,SVG,Javascript 等技术实现自动化系统上位机的功能,将极大地提高开发效率,具有丰富数据展示方
式,并使过程对象的图形界面具有矢量图特性[1]
2 HTML5关键技术
2.1 HTML5发展历程
1999年H TM L4标准发布以来,经过十多年的酝酿,W3C 和WH AT WG 两大浏览器标准组织通过将XH T ML 和Web2.0技术进行融合后,终于走到了一起,共同合作推出了H T M L5。
虽然H T M L5正式标准可能要在2年后才正式发布,但自2009年下半年万维网联盟W3C 发布H T ML5标准草案以来,得到了各大浏览器开发厂商的大力支持,Firefox,Chrome,Opera,Safari 等均已部分实现H T ML5功能,微软也公开申明将在IE9中支持H T ML5和可伸缩矢量图形(SVG)技术,目前微软的IE 平台预览第6版和Goog le 公司的开源Chrom e 浏览器对H T M L5的兼容性最好。2.2 Web Socket
传统的Web 实时数据传输方式,多采用低效的AJAX XML H ttpRequest 实现。WebSocket 直接调用浏览器底层的(传输控制协议)T CP 接口,通过在T CP 协议(OSI 的数据传输层)上进行一次简单的握手后,使用∀0x 0+U TF -8+0Xff #的封装方式,在T CP 端口之间对UT F-8编码数据进行双
17
第31卷 第4期2010年11月Vo l.31 No.4N ov.2010
向传输,使得Web数据网络交换效率直接提升到操作系统应用程序的级别,实时数据传输性能产生了一个飞跃,一举淘汰了A JAX XML H ttpRequest和COM ET等技术。这为采用WebOS方式作为水电站自动化系统上位机平台奠定了坚实基础。
2.3 Web W orker+Multithreaded Javascript
H TM L5提供了Web Worker接口,可以实现后台调用js库,通过消息传递方式交换数据。Multithreaded Jav ascr ipt使用<scr ipt async src =%%>标签,采用异步方式进行脚本的多线程执行,实现从而提高了前端js脚本的处理性能。通过操作系统(OS)对浏览器利用中央处理单元(CPU)资源的调优,可以充分利用多核CPU的并发特性,大大提高Javascript的执行效率。
2.4 Web Storage
Web Storag e使用key/v alue键值对方式,本地存储数据。它分为Sessio n Storage和Local Sto rag e这2种方式,使变量具有2种不同的作用域。
2.5 Web SQL Database
Web结构化查询语言(SQL)Database实现了每个浏览器本地介质存储的关系型数据库,并使用SQ Lite的SQL语言(不完全兼容标准的SQL)作为访问接口。
2.6 C ross Document Messaging
提供Web文档间的消息传输。如果自动化系统中的画面看作一个Web页面,那么画面之间的消息传输使得画面的数据展示方式更加灵活,开发效率更高,代码结构更加清晰。
2.7 Native JSON
JSON(JavaScript Object Natation)是一种轻量级的字符型数据交换格式,串行化效率和Goog le pro to buf相当,比可扩展置标语言(XM L)的串行化效率高出很多倍。使用JSON可以快速的定义出一种应用层的协议规范。
二进制数据交换格式由ASN.1,MessagePack 等,但它们不能使用WebSocket交换数据。
Native JSON使浏览器内核直接支持w indow. JSON对象,提供对JSON对象的封包和解析,而不必依赖外部的Jav aScript包,执行效率更快。
2.8 界面标签的变化
H TM L5中增加了<H EADER>,<NAV>, <ASIDE>,<SECTION>,<ARTICLE>,< FOOTER>等标签,解决了H T ML4中通篇∀< DIV ID=%%>#的混乱局面,使H TM L和CSS技术配合地更加完美,页面展示风格更加统一。扩展了<INPU T>标签的类型,简化了用户输入数据验证过程。增加了<MENU>,<COMM AND>,< DA TAGRID>,<M ETER>,<PROGRESS>等标签,使得WebAPP更接近操作系统应用程序,开发效率更高。新增了<CANV AS>,<FIGURE>更好的支持矢量图和常规图形。使用<AU DIO>, <V IDEO>标签简化了多媒体的代码,并将媒体编码统一到H.264标准,是传统的Flash视频替代产品,如全球最大视频提供商YOU TU BE也在逐渐完成Flash和H.264视频的双向支持。
Web的数据展示方式丰富多彩,绚丽夺目,这些新标签将使得上位机的交互性更强,更美观,开发效率更高。
3 SVG介绍
SVG标准由W3C组织发布,基于XM L,它和FLA SH类似,其主要优点是矢量图形不会因为图形的放大而失真,而且可代码化[2]。
H T ML5已支持内嵌SVG标签,具有良好的交互性,使用Jav aScript可以方便的操作SVG图形, SVG还支持动画效果。使用SVG实现过程对象的图形、状态显示及交互非常方便。
在电力系统自动化领域也逐步尝试使用SVG 表述电气设备的符号、主接线、厂站地理位置等。比如IEC61970标准中的CIM规范、IEC61850标准均可用XML和SV G为数据载体,浙江省电力公司也发布了&基于SVG的共同图形交互规则∋。
4 并发编程语言
为了迎接多核CPU和服务器的到来,并发编程已成为当前IT行业的热门,目前市场知名的并发编程语言有Scala和Erlang。
4.1 Scala
Scala和Java类似,在Java虚拟机(JVM)上运行,具有平台无关性的特点,被誉为可能是Java语言的替代产品。目前世界领先的微博网站T w itter 和Scalar云计算平台既是采用Scala语言开发的。
Scala是一种融合了面向对象和函数式编程特点的语言,其最大的特点就是借鉴了Erlang语言的并发特性,且可直接调用Java库。
4.2 Erlang/OTP
Erlang/OT P是一个无类型的函数式编程语言,已有数十年发展历程,由爱立信公司开发。早期主要用作电信级交换机的内核开发语言,广泛支持各种网络协议,目前已开源,它可在LINUX, Window s,SOLARIS,OPENSOALRIS,AIX,H P U X平台下使用。SOH U白社会、SINA、盛大网络、Faceboo k等超大型网站均使用了Er lang作为网络
18
水电厂自动化
相关服务的编程语言。
Erlang 的最大特点是容错和并发。∀变量不
变#(变量只能赋值一次)的基本特性就是为了简化在并发编程过程中避免处理对象访问互斥问题,通过尾递归和消息传递等方式使得并发开发易如反掌;支持高阶函数;支持代码热升级,升级代码不会影响进程的正常执行;集成了键值对格式的内存数据库和磁盘数据库,提供SQL 访问和部分关系数据库特性;提供了丰富的容错网络模块,使得实现N
级冗余很容易,比Cluster 技术更领先[3]
Erlang 语言使用C 语言开发,比起其他诸如Javascript,Ruby,Python 等脚本语言具有更快的执行速度。它提供NIF 接口可直接调用.DLL 或.SO 动态库,提供Java 语言接口,还有丰富的调试模块。
svg矢量图下载它只提供简单图形用户界面(GU I)模块,不适宜做客户端软件,但非常适合做服务器端软件,这一特点和GO 语言类似。
5 使用HTML5+SVG+Erlang 构建自动化控制系统
笔者试图使用H TM L5,SVG,Erlang 等技术来设计一个完整的自动化控制系统,充分利用这些技术的特点和优势,提高代码开发效率,整体展示该系统的优异性能。5.1 系统结构
图1所示为系统结构。可以看出系统的容错能力很强,网络可实现full  meshed 全网状结构,Bro wser 和Er lang 均具有平台无关的特点,可直接在多个平台运行,无需移植,
系统部署灵活。
图1 系统结构
Erlang 作为服务器,用于实现上位机和下位机通信,并实现系统的N 级冗余。对于浮点运算复杂的的高级应用软件(如AGC,AVC,EDS)可直接用C 语言实现,直接将计算结果通过N IF 协议接口给
返回Erlang [4]。
每个Erlang 上可使用其M nesia 库,直接实现内存式分布式数据库,Erlang 之间的数据交换采用其自身的EPM D 协议。5.2 性能优势
平台无关,无需移植,应用程序可直接使用。上位机开发使用Javascript,H T ML5和SVG,数据展示灵活,界面美观,开发效率高。
网络部署灵活,可自动识别接入网络的Erlang 节点,容易实现full  meshed 全网状结构。集成了网络管理命令(如:ping,netstat 等),便于对Er lang 网络的管理。底层网络通信协议均采用T CP/IP,与其他系统接口容易。Er lang 之间各节点数据交换容易,仅需如
{No de,Pr ocessID}!M essag e
这样一个语句,即可实现不同计算机上不同进程之间的数据交换。
使用执行速度最快的高级语言C 语言(比C#,C++和JAVA 快得多,仅次于汇编语言)实现高级应用程序,仅将请求和计算结果通过NIF 进行数据交换即可。
6 结语
本文简要地介绍了H TM L5、SVG 和并发编程语言的一些特性,并设计了一个简单的自动化控制系统架构,以初步探索使用这些新技术实现一个水电站自动化系统的案例,并对其优势进行了说明。
一流的企业卖专利,二流的企业卖标准,三流的企业卖产品。只有持续不懈地关注和探索新技术的发展方向,企业才能在市场经济的激烈竞争中增强核心竞争力,立于不败之地。
参考文献
[1]Draft H T M L 5Specificatio n [R/O L ].[2010 06 05].
htt p://dev.w3.o rg.
[2]SVG Specification [R/O L ].[2010 06 05].dev.
< g.[3]Er lang o nline documentation [R/OL ].[2010 06 05].htt p://er lang.o rg.
[4]高会生,项洪印,刘广.IEC61850的SV G 应用.继电器,
2006,34(14):46 49,57.
徐学琴(1975∃),女,通信作者,工程师,主要研究方向:计算机监控系统检修维护和技术管理。E  mail:x m
19∃(计算机监控( 徐学琴,等 使用H T M L 5、SV G 和并发编程技术实现水电站自动化系统

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。