水暖之家讯:cript>用ActiveX控件实现MIS网动态显示调度实时信息胡铁斌 余文辉 包军摘 要:从基于Internet/intranet的企业MIS网的特点出发,介绍了使用ActiveX技术实现在网页中图形化动态显示电网调度实时信息的方法,并针对调度系统实时数据库是否支持ODBC接口,给出了不同的解决办法。
关键词:ActiveX控件;电网调度系统;MIS
分类号:TP393.03 文献标识码:A
文章编号:1007-290-(200)01-0014-02Realizationofdynamicdisplayofpowerdispatching
real-timeinformationinMISusingActiveXHUTie-bin
(GaozhouPowerSupplyBureau,Gaozhou,Guangdong525200,China)
YUWen-hui
(GaozhouPowerSupplyBureau,Gaozhou,Guangdong525200,China)
BAOJun
(ZhengzhouElectricPowerHigherTrainingSchool,Zhengzhou,Henan450004,China)Abstract:IntermsofthecharacteristicsofInternet/intranet-basedManagementInformationSystem(MIS)ofenterprises,themethodofusingActiveXtechniquetorealizethedynamicgraphicaldisplayofpowergriddispatchingreal-timeinformationonwebpageisintroduced.Differentsolutionsareofferedaswellinviewofpowerdispatchingreal-timedatabasesinornotinsupportofODBCinterface.
Keywords:ActiveX;dispatchingsystemofpowergrid;MIS▲据有关文献报道,国家电力公司将大力投入电力信息网的建设,1999年底实现一级网建设并初步完成二级网建设,2000年底完成三级网建设,至2010年实现电力系统县电力局(供电局)以上单位的联网。实现系统内电子化信息交换,体现信息化综合业务应用的管理信息系统将成为发展重点。基于Internet/intranet方式的电子商务将成为电力企业贸易的重要方式,电力系统内部将出现多网合一的综合业务数据网。这样,具有多样性及实时性的电力调度系统与基于Internet/intranet方式的MIS系统实现无缝连接就成为必然的发展趋势。采用intranet方式构建企业MIS网已成为当今热点技术,在这种方式下,用户只需通过统一的浏览器界面就可完成所有操作。为了增加网页的交互性,除传统的CGI外,现在已出现各种新的技术,如脚本语言,JavaApplet,ActiveX控件,ASP等。本文介绍一种采用ActiveX技术实现在网页中图形化动态显示实时信息的方法。1 RD-800B系统中服务器方的解决方法高州市供电局的电网调度系统采用了南瑞电网所的RD-800B系统,硬件平台为SUN工作站,操作系统采用Solaris2.5。由于该系统采用的实时数据库不支持ODBC接口,因此无法通过网络来访问其实时数据库中的信息,但它提供了几个API函数,供本机上的进程访问数据库。为了使实时数据能对网络开放,我们编写了一个服务代理,它与数据库运行在同一台主机上。该服务代理的作用是接受网络上其他进程访问实时数据的请求,从实时数据库中取出相应信息后发送给请求者。为了能同时处理多个客户的连接请求,该服务代理采用了多进程技术,主进程每收到一个客户的连接请求,就调用UNIX系统上的fork( )系统调用产生一个子进程来对之进行处理。这是一个典型的客户/服务器模型,服务器方的处理流程如下:
a)调用socket(…)创建套接字;
b)调用bind(…)指定服务器地址及端口号;
c)调用listen(…)设置请求队列的长度;
d)调用accept(…)等待客户的连接请求(该调用将导致进程阻塞,直到客户发出连接请求,此时accept( )返回一个新的套接字,子进程将使用这个新的套接字与客户进行通信);
e)调用fork( )产生子进程,由子进程负责处理客户的请求;
f)父进程关闭新的套接字后返回d,继续等待客户的连接请求,而子进程则利用新的套接字处理客户的请求:
1)调用read(…)读取客户的请求;
2)根据客户的请求读取实时数据库的相应信息;
3)调用write(…)将结果发回给客户;
4)转回子进程第1步继续处理客户的请求。有了这个服务代理,我们就可通过网络访问实时数据库了。为了简化用户的使用,我们希望通过浏览器,以与MIS网同样的intranet技术来实现,做到与MIS网的无缝集成,这可采用JavaApplet和ActiveX技术来实现。由于涉及到实时数据的图形化显示问题。我们选择了ActiveX。2 用ActiveX控件实现浏览器方的功能对于电网调度系统,我们不仅要访问到实时信息,而且还要将实时信息形象直观地显示在画面上(如变电站的一次接线图)。为此,我们采用VisualC 编写了一个图形制作软件,利用它画出一次接线图,对图中的实时元件(如开关、遥测量等)定义好厂站号与序号,将文件保存在HTTP(或FTP)服务器上,供ActiveX控件读取。
我们采用VisualC 设计的ActiveX控件具有属性:
Host:运行服务代理的主机名或IP地址;
Port:服务代理使用的端口号;
Picture:图形文件的URL;
AutoRefresh:决定是否自动刷新,缺省为真;
RefreshTime:刷新周期,缺省为5s;
AutoSize:决定是否根据图形的大小自动改变控件的大小,缺省为真。
控件的工作过程如下:
a)利用CDataPathProperty类异步下载图形文件,当有数据可用时,该类对象调用其成员函数onDataAvailable(…),你只需重载该函数就可获得图形文件的内容。该类采用了WinInetAPI,能将下载的图形文件自动缓存在本地机器中,下次需要同样的图形文件时则直接从缓冲区中读取,加快了执行速度。
b)利用CSocket类与服务代理建立TCP连接。
c)根据刷新周期启动定时器。
d)处理定时器消息(WM-TIMER),根据图形文件中实时元件的定义向服务代理请求数据,并刷新图形显示。
设计好控件后,将它嵌入在网页上,设置好属性,就可由浏览器调阅了。
当客户机器上没有所需要的控件,或其版本比服务器上的控件版本低时,浏览器会自动从codebase指出的URL处下载控件并安装到自己的机器上,然后启动控件的运行。值得注意的是,基于安全性的考虑,浏览器在默认情况下会禁止运行未经数字签名的控件。所谓数字签名,就是利用控件开发者的数字证书标识该控件,使得浏览器能得知该控件来自何人及在传输途中未被篡改。关于数字证书的详细情况,请查看VeriSign的网址http:∥www.verisign.com。3 支持ODBC的调度系统中服务器方的解决方法即使实时数据库支持ODBC连接,浏览器客户也不能直接使用它,因为这意味着要先在每台客户机上配置ODBC数据源,这不符合Internet的原则。因此,仍然需要一个服务代理来帮助客户端的ActiveX控件获得数据,只是该服务代理可运行在任何一台主机上,并只需在这台机器上配置ODBC数据。■作者简介:胡铁斌(1970—),男,湖南长沙人,工程师,工学硕士,主要从事电力调度自动化及
变电站自动化工作。
作者单位:胡铁斌(高州市供电局,广东高州525200)
余文辉(高州市供电局,广东高州525200)
包军(郑州电力高等专科学校,河南郑州450004)参考文献:[1]TallE,GinsburgM.?"ActiveX开发人员指南[M].章巍,刘军,赵强等译.北京:机械工业出版社,1997
[2]李真文.Windows95特色编程[M].北京:北京航空航天大学出版社,1997
[3]刘祖亮.深入学习UNIX[M].北京:清华大学出版社,1997收稿日期:1999-11-09