用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