- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态链接库在组态软件中的应用
动态链接库在组态软件中的应用
盛柏林 高连生
北京航空航天大学机械工程及自动化学院 北京 100191
摘 要:关键词:中图分类号Abstract: The paper introduces the advantages and calling method of Dynamic Link Library in windows operation, analyses and designs the total architecture of SCADA/HMI. Design the picture’s interface in picture-store, the Real-time database’s interface and the I/O device communication’s interface using Dynamic Link Library according the software’s architecture. The application can call the exported functions to accomplish some functions by loading the concerned Dynamic Link Library.
Key words: Dynamic Link Library, Calling method, SCADA/HMI
引言
自从微软推出Windows操作系统的第一个版本以来, DLL一直是Windows操作系统的基础,它既是多个进程共享资源的主要方式,也是向应用程序提供系统服务的重要手段操作系统包含三个最重要的DLL,Kernel32.dll,用于管理内存、进程和线程;User32.dll,用于执行用户界面任务;GDI32.dll,用于绘图和显示文本应用程序使用DLL有多优点:(1)有助于资源共享。DLL包含对话框模板、字符串、图标和位图等资源多个应用程序使用共享(2)有助于节省内存。多个应用程序使用同一个DLL,该DLL的页面只放入R A M一次,所有的应用程序都可以共享的页面。(3)隐藏程序实现的细节。DLL中的例程可以被应用程序访问,但这些例程的实现细节(4)有助于软件升级。当动态链接库中的函数需要更新或修复时,只需修改或替换原来的DLL,不需要应用程序。显式链接是指应用程序执行过程中调用某函数时,才把该函数从中装入内存,也可以随时卸载文件。这是一种比较节约内存的调用方式,与隐式链接相比,它不需要头文件和导入库文件,具有更好的灵活性。在显式链接中常常要用到以下几个函数:LoadLibrary()和FreeLibrary()函数用来加载和卸载一个DLL文件映像;GetModuleHandle()函数可以检查DLL是否已经被映射到进程的地址空间中;GetProcAddress()函数用来得到已加载的DLL中某个函数的地址。
显示加载比隐式链接要复杂,但显示加载是应用程序在运行过程中动态加载DLL,每加载一次,DLL的使用计数加一,每卸载一次,使用计数减一,当使用计数为零时,DLL将从内存中卸载。
2 组态软件的总体框架及动态链接库的应用
本文通过对众多组态软件的结构进行详细分析,将组态软件分为如下四个部分:图形界面组态模块,实时数据库模块,I/O设备驱动模块和通信及第三方程序接口模块。总体框架结构的划分如图2所示。下面分别分析每个模块的结构,并讨论以动态链接的方式实现某些模块的功能。
2. 1图形组态
图形组态系统是任何一个工业监控组态软件必须具备的图形处理系统,几乎所有的工程画面,无论是监视画面还是控制画面,都需要利用图形组态子系统来完成,它在整个工控组态软件系统中占有十分重要的地位。图形组态包括基本图元(线、矩形、圆、椭圆、文本、图片等)以及它们的属性(颜色、线形、是否填充)的组态;图形组件的组态,包括实时和历史趋势组态;控件的组态,包括基本的windows控件,如文本编辑控件、复选框控件、下拉列表控件、日期控件等;报警组态;控制策略的组态;数据库的组态;动画链接组态;事件记录与日志组态等。
组态软件的图元数量有上千种,每个图元的实现都放在应用程序中是不现实的,那样将会使主程序异常的庞大,且增加新的图元将会很困难,不利于软件的团队开发、升级和扩展。
基本图元的实现可以放在主程序中,其它的图元放在图库中进行管理。图库中的每个图元的功能和实现都对应一个动态链接库文件,当用户选择绘制图库中某个图元时,应用程序加载图元对应的动态链接库文件,实现图元的绘制和编辑。以下为图库的接口类的设计。
2.1.1 CHMIWizardAPI接口
这个接口由HMI提供,但它不是纯虚类接口。CHMIWizardAPI类中的方法在动态链接库程
文档评论(0)