组件技术在现场总线控制系统组态软件中..

组件技术在现场总线控制系统组态软件中..

ID:26653214

大小:50.00 KB

页数:5页

时间:2018-11-28

组件技术在现场总线控制系统组态软件中..  _第1页
组件技术在现场总线控制系统组态软件中..  _第2页
组件技术在现场总线控制系统组态软件中..  _第3页
组件技术在现场总线控制系统组态软件中..  _第4页
组件技术在现场总线控制系统组态软件中..  _第5页
资源描述:

《组件技术在现场总线控制系统组态软件中.. 》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、组件技术在现场总线控制系统组态软件中..摘要:简要介绍现场总线控制系统的组成以及组成软件的功能,重点讲述了组件技术在组态软件中的应用及VxD驱动程序的开发。关键词:现场总线组态软件VxD(ponentObjectModel)组件技术是构造二进制兼容软件的规范,通过它可以建立能够相互传输数据的组件,其服务器-客户机结构非常适合工控软件应用程序的开发。由于工控软件不仅包括PC机上的HMI(人-机界面)程序,还包括与各种基于ISA或PCI总线的数据采集卡进行数据交换的程序,这部分程序对开人员的硬件水平要求较高,而且开发难度较大,与HMI程

2、序是相互独立的,所以可以把工控软件分成两部分,即把HMI程序作为客户机端程序,把与硬件进行数据交换的程序作为服务器端程序。基于这种思想,本文将服务器-客户机结构应用到现场总线控制系统的组态软件中,着重介绍客户机和服务器的功能及实现。首先介绍现场总线控制系统的组成。1系统组成现场总线控制系统主要由PC机、ISA或PCI总线智能适配器、智能测控模块、组态软件、HMI软件、服务器、用户软件等构成。现场总线系统中所有信息的传递都是双向的,服务器介于智能适配器和上位机软件之间,负责完成数据的传输。上位机软件相当于客户机端应用软件,它使用服务器

3、提供的接口来操作适配器,对适配器进行初始化及向特定单元写入和读出数据。由于在,模块收到数据后根据lpBaseAddress[5]的命令字进行相应处理;如果是0xB0,则按照接收到的数据配置模块工作状态;如果是0xA5,则将此时的测量值送到适配器上,由程序读出。3.3模块检查函数适配器初始化成功后,还要检查适配器与下面的测控模块是否连接好,或者是否存在组态软件要组态的模块,也就是要进行模块检查操作。模块检查的命令字是0xAD,向数组的1~5单元分别写入上位机节点号、模块节点号、保留字、发送数据长度和模块检查命令字0xAD,向0x3F8

4、单元写入0xC7(表示向适配器写入数据),等待几十ms后,如果0x3F8单元清零而且0x100单元被置为0xAA,表示该模块存在而且可以通信;否则,表明该模块不存在或者硬件上有问题。3.4写适配器数据函数在确定了网络中存在哪些可通信的模块之后,就可以向它们发送数据并进行配置。为了实现向适配器发送数据,总共编写了4个函数、SendData([in]BYTESendBuf[256])、SendFinish([in]BOOLbFinish)、FinishQuery([out]BOOL*bFinish)和ReceiveResult([out

5、]BOOL*bSendFinish)。SendData负责把一个模块所需要发送的数据以数组的形式放到服务器的一个二维数组(Room[64][256])里,每个模块的数据作为一行。由于向适配器发送数据后,要等待一段时间判断模块是否接收成功,所以SendFinish中开启辅助线程来发送数据并等待结果,这相可不占用主程序的时间,使客户调用接口函数后能立即返回,执行其它操作。FinishQuery查询数据发送是否结束。ReceiveResult弹出一个非模式对话框,显示哪些模块接收到数据,哪些没有。3.5读适配器数据函数除了向适配器发送数据

6、,还可以从适配器上读取模块传上来的数据。读取数据的命令字是0xA5。实现该任务的函数是GetPV([in]BYTEbDesNode,[out]floatvalue[8]),第一个参数是模块节点号,第二个参数是返回的测量值数组。这里,是用ATL编写的本地服务器,对象的线程是套间线程。接口定义了6个函数,程序流程图如图2所示。对象接口的函数声明以及适配器初始化的程序如下:接口定义:interfaceINCardapLinearAddress(dentaddress,0x400,hDevice)//调用VxD函数,获得指向ISA总线物理地

7、址的线性地址指针cardctrl,UnMapLinearAddress(lpBaseAddress,hDevice)//关闭VxD//调用适配器初始化函数_outp(0x310,0x01)//打开邮箱锁lpBaseAddress[0x3F0]=bSrcNodeNumber//上位机节点号lpBaseAddress[0x3F1]=bRate//波特率lpBaseAddress[0x3F8]=0xC6//适配器初始化命令字DrvDelay(20,false)//延时20ms…………//初始化后其它操作_outp(0x310,00);//

8、关闭邮箱锁returnS_OK}4虚拟设备驱动程序VxD是虚拟设备驱动程序(VirtualDeviceDriver)的缩写,中间的x表示某一设备。它能够无限制地访问所有硬件设备、自由地检测操作系统的数据结构(如描述符和页表)以及访问任

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。