毕业论文(设计)基于Unicode 编码的EMS 国际版开发.doc

上传人:仙人指路1688 文档编号:2396880 上传时间:2023-02-17 格式:DOC 页数:10 大小:314.50KB
返回 下载 相关 举报
毕业论文(设计)基于Unicode 编码的EMS 国际版开发.doc_第1页
第1页 / 共10页
毕业论文(设计)基于Unicode 编码的EMS 国际版开发.doc_第2页
第2页 / 共10页
毕业论文(设计)基于Unicode 编码的EMS 国际版开发.doc_第3页
第3页 / 共10页
毕业论文(设计)基于Unicode 编码的EMS 国际版开发.doc_第4页
第4页 / 共10页
毕业论文(设计)基于Unicode 编码的EMS 国际版开发.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《毕业论文(设计)基于Unicode 编码的EMS 国际版开发.doc》由会员分享,可在线阅读,更多相关《毕业论文(设计)基于Unicode 编码的EMS 国际版开发.doc(10页珍藏版)》请在三一办公上搜索。

1、基于Unicode编码的EMS国际版开发 姜彬 (南瑞继保电气有限公司 江苏南京市江宁区苏源大道69号 211102)Internationalization Research Of Energy Management SystemJiangbin(Nanjing Nari-Relays Electric Co.,LTD. 69 Suyuan Avenue,Jiangning,Nanjing 211102)ABSTRACT: With the development of EMS technology and the requirement of international competiti

2、on, energy managerment system should be used not only in different languages, but also in different input techniques, character encodings and presentation conventions. Base of analysis for framework of ems, this paper is attempted to introduce principle of internationalization and describe the compl

3、ete design of architecture, components, modules, interfaces, and data for ems internationalization. KEY WORD: Energy management System Internationalization Unicode Encoding摘要: 随着我国电网调度自动化技术发展,开拓国际市场的要求也越来越迫切,这就需要能量管理系统能够适用各种字符集和语言环境,满足不同国家和地区用户的本地化使用需求。本文从能量管理系统的架构出发,分析了国际版开发的基础,提出了开发的目标、内容和总体思路,并通过

4、国际工程项目的应用验证了设计思路是切实可行的。关键词: EMS系统 国际化 Unicode 编码1 引言目前,我国软件产业继续呈快速增长态势,产业规模继续扩大,软件出口平稳增长,产业结构与布局不断调整,成为信息产业增长的重要力量,并在促进信息化发展中发挥了积极作用。随着软件产业的快速发展,产业规模、产品结构、研发水平和人员构成都得到了进一步调整,市场不断向大企业集中,产品不断向服务型转化,技术不断向国际前沿推进。从电力系统二次自动化产品看,国内几大电力系统设备生产商实力雄厚、技术先进、产品实用可靠,有实力参加国际竞争,例如,南瑞继保电气有限公司的控制保护、变电站监控设备已经大量出口到国际市场,

5、据权威统计看,南瑞继保已经成为全球销售额排名第三的控制保护生产商。作为二次自动化的高端产品能量管理系统(简称EMS),属于应用软件产品,所涉及的专业多,系统架构复杂,数据规模庞大,开发一套成熟的EMS系统需要几百人年。目前国际市场被ABB、西门子和GE等国际大公司所垄断。国内EMS厂家经历了消化吸收、仿制、创新等近30年的探索和奋斗,已经在技术创新、研发管理、市场营销和产品服务方面基本和世界接轨,具备了参与国际竞争的能力,2008年南瑞继保PCS-9000一举中标刚果布国调也证明了这一点。软件产品参与国际竞争,这与在本国使用有很大区别,除了具体应用功能、指标参数等不同外,有一个重要方面就是应用

6、软件的本地化。不同地区的用户有不同的使用习惯和环境,如字符集,货币,时间日期,文本等。本文重点考虑能量管理系统的国际化开发,就是要让EMS软件能够适合多种字符集、语言环境,适用于多种不同地区的需求。1 EMS系统的架构分析能量管理系统是电力系统监视和控制的硬件和软件的总和,包括数采和控制,自动发电与经济调度,系统状态估计与安全分析,调度培训系统等模块。 国内几家EMS系统架构类似,以PCS-9000能量管理系统为例,整个系统从下至上分成五层,依次为硬件层、操作系统层、通用中间层、统一应用支撑平台层和基于该平台一体化设计开发的全系列电力系统应用。硬件层有基于RISC架构和X86架构的各类主机,如

7、IBM P5 系列、SUN SPARC序列、HP 安腾序列和PC 系列服务器或工作站。操作系统层有IBM AIX、SUN Solaris、HP UNIX、Windows Server 和Windows XP。通用中间层屏蔽了各种操作系统的差异、实现了平台层和应用层对下统一的系统调用。 从EMS的架构分析,操作系统层中涉及的各操作系统Tru64 UNIX、IBM AIX、SUN Solaris、HP UNIX、LINUX和Windows等都有完善的国际版,通用中间件主要由Qt和ACE组成,ACE是屏蔽了各操作系统差异可供用户进行系统调用的动态函数库,Qt作为跨平台的图形开发环境,在国际版开发上有

8、成熟的思路和工具,所以EMS国际版开发就是在统一支撑平台层和应用层上,根据应用需要,基于ACE和Qt的国际版的工具和函数库,设计整个能量管理系统的国际版功能。2国际版开发基础2.1 常见字符集及编码方式u ASCII 最初的计算机字符集。定义了英文字母及符号,编码由一个字节组成,高位为零,可以有127个码位,范围为0x00-0x7F。u Unicode 由国际标准化组织和Unicode组织创立的世界单一字符集。可以称之为ISO10646或者Unicode标准,实际上两个标准是独立的。两者在多语言面是完全一致的,每个字符在两个标准中的编码位置是一致的,不同的是,Unicode为了印刷而额外定义了

9、一些符号,并且含有一些文字处理算法,而ISO10646不过是一个简单的字符集。一般我们将其统称为Unicode。Unicode或ISO10646可以有多种编码方式,常见的有两种:l UTF-16或UCS-2 固定的2字节编码方式,ASCII字符被扩展为两个字节,增加了一个高位字节,其高位字节被编码为00。常见于windows平台。存在高字节在前或者在后的问题及大小头问题。l UTF-8 可变字节编码方式,兼容ASCII,ASCII被编码为一个字节。汉字多被编码为3个字节。第一个字节高位的1的数量代表这个字符的字节数量,由于是单字符多字节流(multi-octet stream),因此不存在大小

10、头问题,一定是高字节在前。u GB2312 国标中文字符集,编码方式兼容ASCII,双字节编码高位和地位的第一个bit均为1,这样可以和ASCII混合使用。2.2 操作系统对字符集的支持u Unix、Linux由于历史原因,对ucs-2或utf16支持不好,这些编码的字符串会包含一些特殊的字符, 比如 0 或 /, 它们在 文件名和其他 C 库函数参数里都有特别的含义。另外, 大多数使用 ASCII 文件的 UNIX 下的工具, 如果不进行重大修改是无法读取 16 位的字符的. 基于这些原因, 在文件名, 文本文件, 环境变量等地方, UCS-2 不适合作为 Unicode 的外部编码。因此,

11、在Unix操作系统上,一般采用uft-8来支持Unicode。u Windows 微软从windows2000开始在内核层增加了对于Unicode的支持,所有的系统调用和API都有两个版本,一个用于支持ASCII和多字节编码,一个用来支持双字节的ucs-2编码方式。需要注意的是,当微软提到Unicode的时候,就是指ucs-2编码。windows操作系统只支持对文件名采用ucs-2编码,不支持utf-8。Unix、Linux和 Windows均支持多种字符集,但是对于Unicode即ISO10646字符集,采取了两种不同的编码方式进行支持。2.3 Qt 的国际化开发支持目前,许多EMS系统是基

12、于Qt类库开发的,实现了跨平台功能,Qt本身提供了国际化支持,完全支持Unicode,一个国际标准的字符集。开发者可以自由地混合使用被Unicode字符集支持的语言,例如阿拉伯文,英文,中文,希伯来文,日文和俄文等。为了有助于将产品推向国际市场,Qt还提供了将应用翻译成支持多种语言环境的工具。主要通过以下方法完成:u Qt提供了相应的工具和函数用于帮助开发者以本地语言推出应用。要使一个字符串可以被翻译,只需要把这个字符串作为一个参数放到tr()函数中调用。Qt提供了3 种工具帮助人们建立译文存储文件(.qm 文件),这3 个工具是lupdate, QtLinguist 和 lrelease。u

13、 Qt可以将程序中所用的字符串提取出来,生成一个ts文件,然后我们将ts文件中的字符串翻译后,发布为一个qm文件,在程序初始化时载入,就可以实现大部分文本的翻译和替换工作。u 开发者使用Qt Linguist 工具提供的良好的人机界面打开一个.ts 文件(翻译源文件),然后开发者根据每一个source text 填写上相对应的译文,这样一个.ts 文件(翻译源文件)就包含了完整的“Context”,“source text”和译文信息。u 最后通过运行lrelease 去把一个.ts 文件(翻译源文件)压缩为一个.qm 文件,生成的.qm 文件可用在执行程序上。3 国际版开发设计3.1 开发目

14、标国际版开发是为了让我们的能量管理系统更好地参与国际竞争,在满足客户性能指标的情况下,支持各国、各地区的用户用他们习惯的语言和方式使用我们的产品,为此,需要考虑如下需求:u 多平台的需求。windows与Unix对于编码方式及字符集支持的不同,而我们的系统会同时运行在多个操作系统上,需要解决windows和Unix的兼容问题。u 系统原有模块的兼容性。程序中大量使用了ANSI编码的字符串,应保证原先程序的兼容性与可重用性,以最小的修正代价达到最好的效果。u 翻译文件的管理。 很多模块有公用的词汇与短语,如何提炼与维护这些词汇,减小工作量,并且将这些资料整理出来供其它项目组使用。u 应用无关性。

15、应用不需要关心当前的locale和字符集,这对自动化系统的具体业务逻辑,应该是透明的,在切换语言环境时,对产品的具体业务逻辑应该没有任何影响。u 配置文件的归类关联。 原配置文件是用写二进制的方法写入磁盘,如果系统环境变更,读出可能会有错误,并且最好可以将配置信息统一化,使得多种语言环境下,我们的配置信息可以通用。u 快速切换当前程序界面及locale设置, 重新格式化输出。 系统应该可以动态修改位置信息,切换语言环境,并按照当前位置格式化时间,日期等信息。u 系统的可扩展性。作为国际版应用程序,在未来会增加其它语言的支持,如何在不修改程序的情况下加入新的字符集和编码方式。u 支持混合语言集的

16、模式。能量管理系统有多个节点构成,每个节点上需要支持不同的语言集,所以整个系统能支持混合的语言集模式。3.2 开发内容根据系统运行和国际化的需求,我们将国际化分为三个相对独立的层次:u 界面层软件界面的语言,这里面包括界面上的文字字符串以及包含文字的图片,这个层次应该可以随时切换和修改,不受系统当前locale的影响。u 表示层不同的国家,不同的区域,由于文化和习惯的不同,对于信息的表示方法是不一样的。比如时间的顺序,货币的单位,数字是用逗号作小数点还是用点号做小数点,文本是从右到左还是从左到右,在不同语言下,同样的信息显示的宽度是不是一样甚至考虑将一些运行信息翻译为另一种语言呈现。u 数据层

17、这一层是最终的运行数据和信息。包括系统的运行实时数据库,使用的商用库,系统本身的配置和设置信息,用户的输入等方面。在数据层我们需要考虑以下问题:n 实时数据库采取什么样的编码方式n 商用库采取什么样的字符集n 系统配置信息的存储n 如何转化用户的输入,例如,如何将当前输入的文本转化成数据并验证合法性等等。3.3 国际化开发总体方案开发流程如下:通过在应用模块中增加语言环境初始化,设置国际化环境,读取该模块的语言文件配置,载入语言文件,设置字符集与编码方式,在本地语言集下运行。u 设立国际化模块,用于提供国际化服务,封装和屏蔽各种字符集与编码方式的解析与转换,格式化各种数据。将与国际化相关的工作

18、从应用中剥离出来。在新增一个新的语言环境时,我们只需翻译新的ts文件,无需修正任何程序。u 翻译文件统一管理,为每个需要载入语言文件的模块准备配置文件列出需要载入的语言文件列表,含文字图片列表,由系统负责载入,应用无须关心载入的语言文件。而程序员无需关心翻译的问题,由项目组统一安排翻译问题。对于用ts文件生成的程序所需qm文件,我们可以每种语言建一个目录,放在系统中,含文字的图片也修改后统一放置在该目录中。如对于俄文,在bin/language目录下新建ru目录,将所有的俄文qm文件及含俄文的图片统一放置在这里。u 使用xml文件保存各个模块的配置信息,xml文件是自描述的,就脱离了编码方式的

19、影响,读取配置文件时,可以根据xml文件中自己规定的编码方式去读取,保证不同语言下的配置文件是可以通用的。u 系统提供应用级翻译服务 提供一个可以用户自定义的辞典,并提供应用可以将需要翻译的字符串(应用级)提交给系统请求翻译,系统将其翻译为另一种语言后返回给应用。翻译服务包括以下部分:n 一个词典文件,需要翻译的字符串和翻译过的字符串。n 自定义工具,用来让客户或者工程人员定义,配置词典。u 程序界面语言由环境变量决定,可以方便切换。例如,原先调试时采取中文界面,交付给用户后可以修改为英文界面。u 数据的格式化以及货币,度量单位由当前locale决定,应用需格式化输出时,可自行转化。例如,当需

20、要将一个浮点数转化为当地格式打印时,可以通过调用QLocale: toString函数,将其转换。3.4 人机界面国际版开发国际版开发的主要工作量在界面工具上,能量管理系统的界面层主要是各种界面工具,界面工具包括图元编辑工具、图形编辑工具、在线监控工具、曲线、报表、告警显示工具、数据库输入输出工具和历史数据查询工具等。界面工具的国际版开发有如下方面:1)人机界面菜单和窗口的静态文字EMS系统的界面工具都是采用Qt进行开发,所以在开发界面程序时,只需将菜单、提示信息和标识的内容作为一个参数放到tr()函数中调用,然后通过调用lupdate工具生成.ts 文件,然后用linguist工具对文字进行

21、翻译,可以根据不同地区语言的要求,翻译成不同的.ts文件,再采用lrelease工具将.ts文件翻译成.qm文件,分别放在不同的语言集目录下即可。2) 单一语言集环境下人机界面上的动态信息当国际版系统只有单一语言集时,可以在数据库层将用户数据转变成用户本地的语言集方式,界面层按照当地的locale显示动态数据。3) 混合语言集环境下人机界面上的动态信息当国际版存在多种语言集时,以一种语言集为主,数据库层中数据按照主语言集方式进行存放,应用程序也按照主语言集进行处理。在与主语言集不同的语言集节点上,提供一个可以用户自定义的辞典,界面程序在显示动态信息时,将需要翻译的字符串(应用级)提交给系统请求

22、翻译,系统将其翻译为另一种语言后返回给界面,界面按照该语言集的方式进行显示4 结论本文提出的国际版开发设计思路,在PCS9000 EMS系统中得到了成功实施,系统可以同时支持英语、法语、俄语、中文等各种语言,并且可以方便地进行切换,也可以通过翻译工具扩展到别的语言,不用修改程序。PCS9000国际版目前已经应用在刚果布国调系统中,提高了我国能量管理系统的国际竞争水平。参考文献1 张伯明(Zhang Boming).现代能量控制中心概念的扩展与前景展望(Concept Extension and Prospects for Modern Energy Control Centers).电力系统自

23、动化(Automation of Electric Power Systems),2003,27(15)2 于尔铿,刘广一,周京阳,等(Yu ErKeng,Liu Guangyi,Zhou Jingyang,etc).能量管理系统(Energy Management System). 北京:科学出版社(Beijing,Science Press),1998.3 刘 青,彭晓兰(Liu Qing,Peng Xiaolan)。面向对象的电力系统专家系统设计(An Object Oriented Expert System for Power System)。电力系统自动化(Automation o

24、f Electric Power Systems),1997,21(5)4 陈文伟(Chen Wenwei)。决策支持系统及其开发(Decision Support System and DSS Development)。北京:清华大学出版社(Beijing:TsinghuaUniversity Press),20005 Vadari S V,Montstream M J,Ross H B Jr. An on-line Dispatcher Training Simulator Function for Real-time Analysis and Training。 IEEE Trans o

25、n Power Systems,1995,10(4)6 Hua JiaWei,Kamber Micheline. 数据挖掘:概念与技术(Data Ming:Concepts and Techniques). 北京:机械工业出版社(Beijing:China Machine Press),2001.7 BRAIN A.WHITE。Software Configuration Management Strategies and rational clearcase.Addison-Wesley Professional,Boston, MA 02116 USA .作者:姜彬 (1970- ) 男

26、高级工程师 从事电力自动化系统的开发工作 联系方式: Mobile : 13305158530 Tel: 025-87178066 Email : jiangbinnari- Editors note: Judson Jones is a meteorologist, journalist and photographer. He has freelanced with CNN for four years, covering severe weather from tornadoes to typhoons. Follow him on Twitter: jnjonesjr (CNN) -

27、I will always wonder what it was like to huddle around a shortwave radio and through the crackling static from space hear the faint beeps of the worlds first satellite - Sputnik. I also missed watching Neil Armstrong step foot on the moon and the first space shuttle take off for the stars. Those eve

28、nts were way before my time.As a kid, I was fascinated with what goes on in the sky, and when NASA pulled the plug on the shuttle program I was heartbroken. Yet the privatized space race has renewed my childhood dreams to reach for the stars.As a meteorologist, Ive still seen many important weather

29、and space events, but right now, if you were sitting next to me, youd hear my foot tapping rapidly under my desk. Im anxious for the next one: a space capsule hanging from a crane in the New Mexico desert.Its like the set for a George Lucas movie floating to the edge of space.You and I will have the

30、 chance to watch a man take a leap into an unimaginable free fall from the edge of space - live.The (lack of) air up there Watch man jump from 96,000 feet Tuesday, I sat at work glued to the live stream of the Red Bull Stratos Mission. I watched the balloons positioned at different altitudes in the

31、sky to test the winds, knowing that if they would just line up in a vertical straight line we would be go for launch.I feel this mission was created for me because I am also a journalist and a photographer, but above all I live for taking a leap of faith - the feeling of pushing the envelope into un

32、charted territory.The guy who is going to do this, Felix Baumgartner, must have that same feeling, at a level I will never reach. However, it did not stop me from feeling his pain when a gust of swirling wind kicked up and twisted the partially filled balloon that would take him to the upper end of

33、our atmosphere. As soon as the 40-acre balloon, with skin no thicker than a dry cleaning bag, scraped the ground I knew it was over.How claustrophobia almost grounded supersonic skydiverWith each twist, you could see the wrinkles of disappointment on the face of the current record holder and capcom

34、(capsule communications), Col. Joe Kittinger. He hung his head low in mission control as he told Baumgartner the disappointing news: Mission aborted.The supersonic descent could happen as early as Sunday.The weather plays an important role in this mission. Starting at the ground, conditions have to

35、be very calm - winds less than 2 mph, with no precipitation or humidity and limited cloud cover. The balloon, with capsule attached, will move through the lower level of the atmosphere (the troposphere) where our day-to-day weather lives. It will climb higher than the tip of Mount Everest (5.5 miles

36、/8.85 kilometers), drifting even higher than the cruising altitude of commercial airliners (5.6 miles/9.17 kilometers) and into the stratosphere. As he crosses the boundary layer (called the tropopause), he can expect a lot of turbulence.The balloon will slowly drift to the edge of space at 120,000

37、feet (22.7 miles/36.53 kilometers). Here, Fearless Felix will unclip. He will roll back the door.Then, I would assume, he will slowly step out onto something resembling an Olympic diving platform.Below, the Earth becomes the concrete bottom of a swimming pool that he wants to land on, but not too ha

38、rd. Still, hell be traveling fast, so despite the distance, it will not be like diving into the deep end of a pool. It will be like he is diving into the shallow end.Skydiver preps for the big jumpWhen he jumps, he is expected to reach the speed of sound - 690 mph (1,110 kph) - in less than 40 secon

39、ds. Like hitting the top of the water, he will begin to slow as he approaches the more dense air closer to Earth. But this will not be enough to stop him completely.If he goes too fast or spins out of control, he has a stabilization parachute that can be deployed to slow him down. His team hopes its

40、 not needed. Instead, he plans to deploy his 270-square-foot (25-square-meter) main chute at an altitude of around 5,000 feet (1,524 meters).In order to deploy this chute successfully, he will have to slow to 172 mph (277 kph). He will have a reserve parachute that will open automatically if he lose

41、s consciousness at mach speeds.Even if everything goes as planned, it wont. Baumgartner still will free fall at a speed that would cause you and me to pass out, and no parachute is guaranteed to work higher than 25,000 feet (7,620 meters).It might not be the moon, but Kittinger free fell from 102,800 feet in 1960 - at the dawn of an infamous space race that captured the hearts of many. Baumgartner will attempt to break that record, a feat that boggles the mind. This is one of those monumental moments I will always remember, because there is no way Id miss this.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号