- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 1
基于C++的变电站可视化系统的开发
摘要:随着变电站的发展,可视化软件的开发变得尤为重要,尤其是随着基于信息一体化技术的发展,柱状图或饼图的信息可视化图形已经得到了普遍发展和应用。但是随着图形技术的发展,如何将信息转换成为立体图形与常规的二维信息图形进行融合成为了变电站图形可视化的重要发展方向。本文通过VS平台,以C++为主要开发语言进行数据图形的立体展示模型开发,最终实现了全新监控系统与二维监控系统的配合。
关键词:变电站;VS;C++;数据信息图形化编辑
中图分类号:TP311.52文献标识码:A文章编号:1007-9599(2012)21-0000-02
随着智能电网的发展,整个电网的信息更为全面,尤其是相量测量装置、非常规互感器等新型设备在变电站中的应用加之交互式的测量模型,使得电网的信息量增大。变电站作为电网的重要组成部分,其数字化智能化的研究对智能电网的发展有很强的针对性和实用性,因此本文从变电站着手,就其在线式一体化信息监控系统的基础上进行可视化的一次开发,进而为整个电网的智能监控提供了可能。目前,变电站监控系统主要是应用单一开发的软件系统进行应用,其数据的分析效果不明显。随着组态软件的广泛普及,其数据信息的统一管理得到了较好的应用。组态软件作为主要的人机互动设计软件,从20世纪90年代开始在我国的工控行业方面兴起,代替了复杂的语言编写过程,降低了开发周期,提高了利用价值,并能很好的完成系统的信息集成开发。组态软件由数据组态、界面组态和运行环境组成。数据组态一般与关系型数据库SQLserver相连接,界面组态一般为二维图形,运行环境可以通过OPC接口与IED设备相连,也可以设定相关的离散数据离线模拟运行。组态软件可以很好的兼容MIS系统的报表、检索、打印和在线五防等功能,同时也可以在VS平台中进行其他功能的一次开发。变电站电气设备的可视化信息载体除了通过报表、柱状图和曲线等方式展示外,还可以通过三维状图和变电站监控模型等与二维监控模型相结合的模式展现,通过数据库的深层数据挖掘,实现电气设备的全方位展现。立体的三维可视化模型的一体化模式主要采用基于信息一体化可视化技术,将知识提取所得到的信息融入到立体的可视化图形中,通过变电站的先进传输模式,实现变电站电气设备的信息知识展示。在原有监控组态C++源程序的基础上,通过VS平台在图形编辑程序Agg(组态图形开发类)中增添了立体的三维图形的主要程序内容,实现了信息的全新的可视化展现。将编辑的图元嵌入到组态软件中后,其具体的画面的建立过程如下所述。首先选取一个空间盒,然后在空间盒中通过OpenGL程序入口将已经转换完成的程序导入到模型库中,最后形成图元控件。这样从该图元控件中就可以选取所需要的图形进行监控系统的二次开发。
在组态中可以通过编辑化的语言对图元进行具体的图形化编辑,主要的图形编辑有图元的平移、大小放缩和复制等,其具体的变化方式为:
(1)图元移动:该过程在保持视角不变的前提下进行图元移动,通过改变坐标x轴和y轴、eye为图元视角坐标和ref为参照物坐标在屏幕窗口的具体数值实现视点的移动。坐标轴构成的平面与视角相互垂直,形成了立体的视觉效果。
在CGraphTool函数类中,设计了函数CGraphTool::move_view()用于图元的平移,参数dpx和dpy分别是沿坐标轴方向所移动的百分比数值,m_eye和m_ref为视角和参照物的坐标值。如下所示为函数CGraphTool::move_view()的功能实现程序,在程序中需先计算坐标轴对应于OpenGL坐标的矢量方向,然后再对m_eye、m_ref进行参数设置,最后实现图元的移动:
voidCGraphTool::move_view()
{CVector3Dvec;
CVector3DxUp,yUp;
vec=m_ref-m_eye;//视线方向向量
vec.Nomalize();//单位化视线方向向量
xUp=vec*m_vecUp;//xUp:景物窗口的x轴对应于OpenGL用户坐标系的矢量
yUp=xUp*vec//yUp景物窗口的y轴对应于OpenGL用户坐标系的矢量
m_eye-=xUp*m_width*dpx+yUp*m_height*dpy;//移动视点位置
m_ref-=xUp*m_width*dpx+yUp*m_height*dpy;//移动参照点位置
}
(2)图元缩放:通过放大、缩小和全视角的方法可以改变图元的大小,上述方法就是对图元视野改变的过程。本文在软件系统中添加一个空间盒子,整个图元的改变均在这个立体空间盒中实现。
图元的放大和缩小功能均在CgraphTool中设计了函数
文档评论(0)