文档之家
首页
教学研究
幼儿教育
高等教育
外语考试
建筑/土木
经管营销
自然科学
当前位置:
文档之家
›
基于 MCGS 组态软件的设备驱动开发
基于 MCGS 组态软件的设备驱动开发
格式:pdf
大小:250.28 KB
文档页数:4
下载文档原格式
下载原文件
/ 4
下载本文档
合集下载
下载提示
文本预览
1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前置采集器装置通过计算机的串口与计算机进 行数据通信。在 MCGS 中与串口通信有关的设备,必 须调用一个串行通信父设备。串行通信父设备直接 与计算机的串口打交道,负责对串行端口的设置(如 波特率大小,数据位长度,停止位位数,有无奇偶校验 等)、初始化和读写操作。在程序的开发编程时通信 子设备按通信协议形成设备命令, 并把命令放到一 个固定的字节数组中, 调用串行通信父设备提供的 标准串口读写函数,即可完成各种功能通信子设备 驱动程序的开发编程工作。串行通信父设备的读写 串行口操作函数如下:
为此,MCGS 提供了一套开放的可扩充的接口规 范和配套的高级开发工具包。它基于微软 OLE(对象 链接和嵌人)标准,利用了最新的 ActiveX 技术,保 证用户能根据需要方便地使用 VB,VC ++等各种高 级语言用以开发特定的构件来扩充系统的功能。鉴
收稿日期:2007- 05- 28 作者简介:邱小文(1977- ),男,湖南浏阳人,硕士研究 生,研究方向:岩土工程。
Dim i As Integer For i = 0 To ChlNumber - 1 alngChlDataType(i)= 2 ‘存储通道的数据 类 型:1 开关型, 2 数值型, 3 字符型 astrChlExplain(i)=“输入数据”‘存储 各 通 道 内容的文字描述 Next i End Function 当通道的数据类型为正数时,表示该通道的作 用是把设备中读取的数据输入到 MCGS 中;当通道 的数据类型为负数时,表示该通道的作用是 MCGS 中的数据送到设备,供设备处理使用。 在 MCGS 运行环境中,设备构件开始采集之前 调用一次 InitDevRun 接口,用于对设备硬件进行的 初始化工作。接口编程如下: Public Function InitDevRun(objMcgsSave As Object,objMcgsData As Object)As Long On Error Resume Next ' 取串口父设备对象 Set m_objCommParent = objMcgsSave.ParentDev If Err Then Set m_objCommParent = objMcgsData.ParentDev End If … 通过 MCGS 存盘数据对象获取设备的各种 信息以及进行一些必要的初始化 End Function 在 MCGS 组态模式和运行模式下,MCGS 会按设 定的采集周期,调用 CollectDevDat 接口,从设 备采 集或向设备输出数据。CollectDevDat 接口是十分重 要的接口函数,需要定时采集的数据都通过这个接口 来采集。设备构件首先调用串行通信父设备函数 Com OutinDat 把命令字写到串行端口输出到通信设备, 通信设备即前置数据采集器收到命令字后,就发送数 据到串行端口,串行端口读取返回的数据,把数据返 回到 InPutCha(r )数组中,然后打包存放在通道数组 asngDataValue()中供 MCGS 进行处理、存储与管理。
机电与自动化
露天采矿技术 2007 年第 5 期
· 51 ·
基于 MCGS 组态软件的设备驱动开发
邱小文,汪仁和
(安徽理工大学土木工程系,安徽 淮南 232001)
摘 要:针对高级用户要求对 MCGS 组态软件进一步开发,以实现与所用硬件相匹配驱动程序的问题,
介绍了 MCGS 良好的可扩充性,并从其设备驱动构件的接口规范出发,说明了设备驱动构件的开发过程,为
把数据写到串行端口输出到通信设备的串行口 操作函数:
ComOutDat (ByVal OutNum As Long, OutByte() As Byte)
将当前输入缓冲区的数据全部读回来的串行口 操作函数:
ComAllInDat(InputByte()as byte) 把数据写到串行端口输出到通信设备,并从串 行端口中读取返回的数据的串行口操作函数: ComOutInDa(t OutByte() As Byte, ByVal OutNum As Long, InputFlag As Long, ByVal InputNum As Long, ByVal InputChar As Long, ByVal DelayTime As Long) 2.3 方法接口 MCGS 在组态模式和运行模式下要调用方法接 口来实现特定的功能,如实现初始化、数据的输入与 输出等功能。 MCGS 组态环境下调用 GetDevName 接口,返回 设备构件的类型名称。InitNewDev 接口在设备组态 环境下增加新设备时调用它,用于初始化新设备的 缺省参数值。编程如下: Public Function InitNewDev(objMcgsSave As Object)As Long
一般的设备驱动程序提供了设计思路和程序框架,软、硬件开发人员和第三方用户通过简单移植即可开发出
自己的设备驱动和专业化的模块。
关键词:MCGS;串口通信;设备驱动;接口规范
中图分类号:TP 31
文献标识码:A
文章编号:1671 - 9816(2007)05 - 0051 - 04
Development of device dr iver based on configur ation softwar e MCGS QIU Xiao- wen , WANG Ren- he
1引言
MCGS(Monitor and Control Generated System)是 一套基于 Windows 平台的、为工业过程控制和实时 监测服务的 32 位全中文界面组态软件系统。它通过 对现场数据的采集、分析和处理,以动画显示、报警 处理、流程控制和报表输出等多种方式向用户提供 实际工程问题的解决方案,已经广泛应用于工业控 制领域。用户无需了解复杂的编程知识,就可以用 MCGS 在短时间内完成一个稳定、成熟并且具备专 业水准的计算机监控系统的开发工作。但在实际应 用中,由于所用设备的特殊性、实际工程的需要以及 用户的个性化需求,必然会要求对组态软件进一步 开发,实现有自己风格的界面、自己设计的控制算法 或者与自己硬件相匹配的驱动程序。
ChlNumber = 16 SendFlag=0 … End Function MCGS 组态环境下调用 GetDevHelp 接口,以显 示设备构件的在线帮助。调用 SetDevPage 接口来显 示设备构件的特定 属性页。程序框架如下: Public Function GetDevHelp()As Long … End Function Public Function SetDevPage(objMcgsSave As Object)As Long
于 VB6.0 的通用性、简单性和以二进制码来编译执 行程度,它完全能满足功能构件所需的速度要求,而 且开发出的扩充构件具有简单快速、安全保密、任务 明确、方式多样等诸多优点,所以,建议使用 VB6.0 来开发 MCGS 的串口程序。本文就以如何在 VB6.0 环 境下来编写 MCGS 上下位机的串口程序进行了探讨。
备对应的子设备,假如设备种类为独立设备,则可以 设置 DevStle=0.编程如下:
Public Property Get DevStyle()As Long DevStyle = 1 End Property DevChannel 属性接口标明设备的通道个数,编 程如下: Public Property Get DevChanne(l )As Long DevChannel = ChlNumber ‘扩充属性用于设置 通道个数 End Property DevIONumber 属性接口标明设备所占用系统 IO 的个数,前置数据采集器为子设备,不需要占用系统 IO ,DevIONumber = 0,对于接口卡的设备驱动程序 DevIONumber 不为 0。 Public Property Get DevIONumbe(r )As Long DevIONumber = 0 End Property DevBaseIO 为读写属性,本接口确定设备所用的 IO 基地址。对于板卡类设备都有一个基地址,其地 址范围为:000H- 3FFH, 计算机通过该基地址来向采 集板输入输出数据,没有通信协议的概念。前置数据 采集器不占用 IO 地址,在此为只读属性,属性值设 为 0。编程如下: Public ProPerty Get DevBaseIO AS Long DevBaseIO=0 End Property MCGS 为了用户在设置属性时能对设备属性进 行组态设置,可在编程时增加 ActiveDLL 属性。在编 制前置数据采集器时增加了读写属性 ChlNumber 和 SendFlag,编程如下: Public ChlNumber As Integer ‘用于动态设定通 道数 Public SendFlag As Integer ‘由于用多个前置采 集器,用于标识向哪个设备发送命令字。 2.2 串口操作函数
机电与自动化
露天采矿技术 2007 年第 5 期
· 53 ·
… End Function GetChlType 接口用来读取设备通道信息,包括 通道数据类型和通道内容ห้องสมุดไป่ตู้文字描述,并显示在通 道连接属性页中。 GetChlType 接口编程如下:
Public Function GetChlType (alngChlDataType As Variant, astrChlExplain As Variant)As Long
· 52 ·
露天采矿技术 2007 年第 5 期
机电与自动化
设备,如通信子设备,设为只读。 每个设备驱动程序都必须有 4 个只读属性:属
性 DevType,DevStyle,DevIONumber 和 DevChannel. DevType 属性接口标明设备类型为子设备。假
如设备类型为父设备,则 DevType=0.编程如下: Public Property Get DevType()As Long DevType = 1 End Property DevStyle 属性接口标明设备种类为和串口父设
2 设备驱动构件开发
考虑到 MCGS 通过调用不同的接口来完成设备 驱动所需的功能,本文将按照 MCGS 提供的设备驱 动程序接口规范来实现前置数据采集器驱动程序的 设计,为一般的设备驱动程序的设计提供了设计思 路和程序框架。 2.1 属性接口
MCGS 提供的接口规范中有 5 个属性接口,程 序可以通过调用属性接口函数来设置设备属性。设 备属性可以分为 2 类:读写属性与只读属性。在设备 属性页中可以设置读写属性,而只读属性不被显示 在 属 性 页 中 。 在 MCGS 设 备 属 性 接 口 中 , 属 性 DevType、DevStyle、DevIONumber 为只读属性,用户 组态时不能修改;属性 DevBaseIO 可设置为读写属 性,也可设置为只读属性,当不需要 IO 端口地址的
(Dept. of Civil Engineering, Anhui University of Science and Technology, Huainan 232001, China) Abstr act:Advanced users need further developments of MCGS to implement drivers assorted with their own devices. The expansivity of MCGS is introduced, and according to the interface criterion, it offers program frame of common device driver design. If simply replanted, software/hardware explorers and third - party users can develop particular device drivers and professional modules. Key wor ds: MCGS;serial communication;device driver interface criterion
相关主题
mcgs组态软件经典教程
基于mcgs组态软件开发
mcgs脚本程序
文档推荐
基于MCGS组态软件的机械手控制系统
页数:2
基于MCGS组态软件技术的多种液体自动混合系统设计
页数:11
基于MCGS组态软件开发水位控制系统
页数:54
毕业设计论文:基于MCGS组态软件的水位控制系统
页数:20
基于MCGS组态软件的交通灯控制系统设计
页数:4
基于MCGS组态软件的交通灯控制系统的设计
页数:20
基于MCGS组态软件的
页数:15
基于MCGS组态软件的上位机程序开发
页数:11
毕业设计论文基于MCGS组态软件的水位控制系统
页数:20
基于 MCGS 组态软件的设备驱动开发
页数:4
最新文档
2010年福建省特级教师协会《考前最后一卷》数学文科卷
五年级语文上册 金奖章5课件 语文S版
三上按课文内容填空2
校服如何致青春
三年级音乐下册教案 第15课 我是小音乐家
2014年TI杯大学生电子设计竞赛赛题-C题锁定放大器
糖类 PPT1 苏教版
SB70变频器在锌带收卷控制上的应用
浅谈第三方物流的仓储管理
护理学基础