- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 5
用C#构建的电气控制仿真控件库
朱菊香,史东丽,丁金根
(常州铁道高等职业技术学校电气工程系 江苏 常州 213011)
摘 要:用C#语言来实现一组Windows控件库。控件库包含了一些常用的电气设备,如开关、继电器、接触器以及三相异步电动机等电气设备。这些控件与普通的Windows控件一样,可在父窗体上任意拖放,调整属性,控件呈现的外观与电气控制原理图一致,并能通过编程来模拟运行,实现了动态图纸的功能。
关键词:C#;.net Framework;自定义控件;仿真;动态图纸
1 引言
我们在从事与电气控制相关的教学过程中发现,学生即使花很长的时间也未必能读懂一个电气控制系统的原理图。究其原因是普通的原理图不够形象,不能动态地显示出每一时刻系统的状态,从而增加了学生理解的难度。因此,用微软公司的Visual C#制作了一个电气控制系统的仿真控件库,利用这个控件库可方便地制作出能实时仿真的动态原理图。
选用C#是因为它简单、功能强大、类型安全,而且是面向对象的,C#凭借它的许多创新,在保持C++表示形式的同时,实现了应用程序的快速开发。用C#创建自己的控件要比其它高级语言更方便快捷,并可应用于任何一种支持.net的语言(目前Basic、C++、Delphi等均已支持.net)。
2 仿真控件库的总体设计思想
电气控制仿真库就是一组基于.net的Windows控件,它将电气控制系统中常用的接触器、继电器、按钮、开关、电动机等元件的图形符号及其基本功能封装在Windows控件中,在父窗体上放置控件就像在图纸上画出元件图形符号一样。运行时用鼠标点击窗体上按钮或开关的图标来模拟按动动作,就像操作实际器件一样,其余元件通过其编程接口来改变行为,根据相互间的逻辑关系作出准确的动作。
仿真库采用事件驱动的方式来模拟实际器件的动作。如图1所示。
输入元件
输入元件
电路扫描
与执行
输入状态刷新
输入元件重绘
输入元件映像区
触点状态映像区
输出元件映像区
输出元件重绘
触点状态刷新
触点重绘
状态改变事件
状态
改变事件
状态改变事件
状态
改变事件
图1 系统框图
由图1可知,整个系统的仿真过程和PLC的运行过程是极其相似的。鼠标点击按钮、开关等输入元件,产生输入元件的状态改变事件,在其事件处理函数中进行元件图标的重绘和输入元件映像区的更新工作。电路扫描与执行过程则根据输入映像区和触点状态映像区的值并按照元器件之间的连接关系来改变接触器、继电器这些输出元件的状态。执行结束后再刷新输出元件映像区,若状态有改变则重绘输出元件图标并更新触点状态映像区。
针对系统的仿真原理,电气控制仿真控件库应具备如下基本功能:
1、能响应鼠标输入,开放鼠标事件处理函数;
2、能在设计态和运行态方便地设置元件属性;
3、能根据属性值自动刷新图标外观,实现所见即所得功能;
4、能自动判别元件的状态是否改变,并为其配置事件处理函数。
另外,仿真库的图形符号应尽量符合国家标准,要与实际图纸的表示方式一致。
3 仿真控件库的详细设计
C#所使用的Windows 窗体控件是一组基于.NET Framework的可重用组件,根据实现方法的不同,可将自行开发控件分为复合控件、扩展控件和自定义控件三类。其中复合控件就是将多个Windows 控件封装在同一个窗体容器中,也即将若干个Windows 控件的功能合成一个可重新使用的单元,它保留了每个被包含的Windows控件所有固有的功能,可以有选择地公开和绑定它们的属性。由于复合控件继承于UserControl类,它已经供了大量默认的鼠标、键盘处理功能,所以不需要太多额外的开发工作,并且可以在控件表面任意绘图,结合仿真控件库所要实现的基本功能,本人将复合控件定为仿真库的基础控件。
属性元件的名称、编号触点的类型:常开、常闭触点的状态:断开、闭合线圈的状态:得电、失电时间继电器的整定值事件按钮的压下与弹起触点的闭合与由断开线圈的得电与失电时间继电器的延时到方法元件图形符号的绘制不管是哪一种控件,都包含有属性(Property)、方法(Method)和事件(Event)三部分内容,应当将实际电气元件的特性与功能和控件的相关部分正确地联系起来。以按钮为例,它的名称和编号可归入到“属性”,其图形符号的绘制可纳入到“方法
属性
元件的名称、编号
触点的类型:常开、常闭
触点的状态:断开、闭合
线圈的状态:得电、失电
时间继电器的整定值
事件
按钮的压下与弹起
触点的闭合与由断开
线圈的得电与失电
时间继电器的延时到
方法
元件图形符号的绘制
图2 类层次图
图2 类层次图
属性
元件的名称、编号
触点的类型:常开、常闭
触点的状态:断开、闭合
线圈的状态:得电、失电
时间继电器的整定值
事件
按钮的
文档评论(0)