




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入版设备驱动文档驱动开发MCGS嵌入版设备驱动开发文档一、 MCGS嵌入版这是指我们的嵌入版组态软件,他的组态环境与通用版一样,也是运行于通用PC的Windows(95,98,Me,2000)操作系统上的软件。但是,他的运行环境是运行于嵌入式操作系统(如Window CE.net)上的软件。二、 嵌入式设备驱动用C+(VC&EVC)编写的,供嵌入版组态软件调用的动态连接库。使用它的目的是为了控制外部设备。即主程序通过调用动态连接库(嵌入式驱动程序)来与外部设备(硬件)通讯。这些驱动程序通常是操作嵌入式系统的串口,网口等各种I/O端口。三、 嵌入式驱动的接口函数。在这里,我们用标准的动态连接库的输出函数来实现需要的各种功能。动态连接库(驱动程序)中对外接口函数共有15个,编制驱动主要工作是编制各个函数,函数由主程序调用,不同的驱动在函数内部处理也不同。1,SvrGetProperty2,SvrSetProperty3,SvrCollectDevData4,SvrGetChannel5,SvrDoHelp6,SvrEditCustomProperty7,SvrEditProperties8,SvrEnumPropertyValue9,SvrExitDevRun10,SvrGetDevInfo11,SvrInitDevRun12,SvrInitDevSet13,SvrDevIOCtrl14,SvrSetRunIDispatch15,SvrSetSetIDispatch函数的功能:1 MCGS_DLL_FUNC SvrGetProperty(MCGS_DATA& data,CStringArray& strPropertyName, CStringArray& strPropertyValue, CArray& bPropertyHasValueArray)/函数功能:设置设备属性列表/函数返回:TRUE,固定/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/strPropertyName 设备属性的名称的数组/strPropertyValue /设备属性的当前值的数组/bPropertyHasValueArray /指定设备属性是否具有取值列表的数组,/true 表示有,false 表示没有。如果具有取值列表则可以获取取值列表/调用时,三个数组大小都为0,返回时,三个数组大小必须一致/备 注:如图所示: 函数主要是设置属性页中最小采样周期以后的设备属性名(strPropertyName)、设备属性初始值(strPropertyValue),和是否有下拉框(bPropertyHasValueArray)。设置下拉菜单用SvrEnumPropertyValue()函数。2 MCGS_DLL_FUNC SvrSetProperty(MCGS_DATA& data, CStringArray& strPropertyName, CStringArray& strPropertyValue)/函数功能:获取设备属性列表的下拉框内容,把值写到 data 中去/函数返回:TRUE,固定/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/strPropertyName 设备属性的名称的数组/strPropertyValue设备属性的值的数组/备 注:函数功能:获取设备属性列表,主程序在调通道连接和设备调试属性页之前运行,系统获取基本属性页中的数据。必须保存。3 MCGS_DLL_FUNC SvrCollectDevData(MCGS_DATA& data, CArray& collectFlag, CArray& valueArray, CStringArray& strValueArray)/函数功能:主采集函数用于采集数据/函数返回:0,正确。-100,错误。/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/collectFlag用于标志设备通道是否需要操作的数组/valueArray用于返回设备通道的数值型数据的数组/strValueArray用于返回设备通道的字符串型数据的数组/备 注:在这里调用CDevBas中的mfcollectDevData函数进行实际的数据采集操作函数功能:采集数据显示到各个通道中。除了板卡设备外,第0通道为通讯状态通道(0表示正常,1表示不正常)。读数据成功时,通道0值赋0,函数返回0,读数据不成功时通道0值赋1,函数返回-100。4 MCGS_DLL_FUNC SvrGetChannel(MCGS_DATA& data, CStringArray& strChannelName, INTARRAY& tyChannelType)/函数功能:设置通道个数,各个通道的名字和类型/函数返回:TRUE,固定/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/strChannelName设备通道的名称的数组/strPropertyValue设备通道的数据类型的数组/备 注:函数功能:设置通道个数。数组strChannelName中设置名称,数组tyChannelType中设置类型。+1表示只读或读写开关型,+2表示只读或读写数值型,+3表示只读或读写字符型,-1表示只写开关型,-2表示只写数值型,-3表示只写字符型。如图,画面上显示11个通道。5 MCGS_DLL_FUNC SvrDoHelp(CString& strFileName, long& lngID)/函数功能:弹出在线帮助/函数返回:TRUE,固定/参数意义:strFileName帮助文件名/lngID帮助ID号/备 注:在基本属性页中弹出在线帮助,如图:在基本属性页中,单击“查看设备在线帮助时”,系统调用本函数。在函数中共2个参数,第一个参数返回帮助文件名,第二个参数返回帮助ID号,帮助ID号由设备组组长在分析中指定。6 MCGS_DLL_FUNC SvrEditCustomProperty(MCGS_DATA& data)/函数功能:编辑客户自定义属性, 调用DEV的内部属性页,在这里删除和添加通道/函数返回:TRUE,固定/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/备 注:7 MCGS_DLL_FUNC SvrEditProperties(MCGS_DATA& data, bool& bDefaultPeopertyDialog, CString& strName, CString& strComment, long& DevCltTime, long& DevChannelNum, long& DevWorkFlag, CStringArray* strChannelVarName, CArray* iChannelType)/函数功能:编辑客户自定义属性, 调用DEV的内部属性页/函数返回:TRUE,固定/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/bDefaultPeopertyDialog = false, 使用自定义属性对话框进行编辑/strName设备名称/strComment设备注释/DevCltTime最小采集周期/DevChannelNum通道数量/DevWorkFlag初始工作状态/strChannelVarName 通道所连接的数据对象名数组/iChannelType通道的数据类型/备 注:8 MCGS_DLL_FUNC SvrEnumPropertyValue(MCGS_DATA& data,CString& strPropertyName, CStringArray& strPropertyValue)/函数功能:设置设备属性列表的下拉框内容/函数返回:TRUE,固定/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/strPropertyName 设备属性的名称/strPropertyValue设备属性的值的数组,在这个数组中返回设备属性列表的下拉框内容/备 注:9 MCGS_DLL_FUNC SvrExitDevRun(MCGS_DATA& data)/函数功能:退出设备采/函数返回:TRUE,固定/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/strChannelName设备通道的名称的数组/strPropertyValue设备通道的数据类型的数组/备 注:10 MCGS_DLL_FUNC SvrGetDevInfo(CString& strName, DEVTYPE& devType, DEVSTYLE& devStyle, MCGS_RUNTIME_TYPE cType, CString& strDllName)/函数功能:获取设备驱动的名称等信息/函数返回:TRUE,固定/参数意义:strName设备的名称/DEVTYPE设备类型 子设备/devStyle设备类别 串口设备/cType运行类别/strDllName运行时调用驱动的名称/备 注:一般来说此函数可以不用修改,可用于任何设备11 MCGS_DLL_FUNC SvrInitDevRun(MCGS_DATA& data)/函数功能:在本函数中,从Mcgs_Data中回复出DEV_DATA中的数据来/函数返回:TRUE,固定/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/备 注:12 MCGS_DLL_FUNC SvrInitDevSet(MCGS_DATA& data)/函数功能:初次创建设备时调用本函数/函数返回:TRUE,固定/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/备 注:13 MCGS_DLL_FUNC SvrDevIOCtrl(MCGS_DATA& data, CString& strCmd, CArray& valueArray, CStringArray& strValueArray)/函数功能:此函数实现命令功能,所有的命令操作都在这里进行/函数返回:0,正确。2,设备命令无效。/参数意义:dataMCGS传过来的MCGS_DATA结构的指针/strCmdMCGS传过来的命令字符串/valueArray用于返回设备通道的数值型数据的数组/strValueArray用于返回设备通道的字符串型数据的数组/备 注:在这里对写命令解码,后调用CDevBas中的mfWriteChannel函数进行实际的写操作14 MCGS_DLL_FUNC SvrSetRunIDispatch(LPDISPATCH& lpDispatch)15 MCGS_DLL_FUNC SvrSetSetIDispatch(LPDISPATCH& lpDispatch)四、 嵌入式数据保存直接调用CDevBas:mfSaveDevData(data);函数就可以了。五、 编辑客户自定义属性,如图: 当单击“设置内部属性”时,系统会调用函数SvrEditCustomProperty(),弹出一个自定义的对话框,如下图:不同的设备上述对话框,样式可能不同,上述对话框显示的是PLC设备常用的对话框,某些简单的设备通道是固定的,前面的提到的个函数SvrEditCustomProperty可以不用,直接返回TRUE。如何在DLL中调用对话框,见例程。注意:实际上,这些工作在模版中都已经做好了,通常大家只需要在DevDef.h文件中修改常量申明就可以了。六、 嵌入式驱动的编译过程1) 用VC6.0编译能在嵌入式组态环境MCGSSETE.EXE下运行的驱动程序,文件名为*.DLL。2) 备驱动的代码必须支持unicode,因为EVC采用UNICODE,否则编译不能通过。 3) 模拟环境调试运行是否正常。4) ECV4.0建立工程,加入VC6.0中的所有文件,重新编译,文件名为*E.DRV。编译过程中的注意事项:1) 试程序时,McgsSetE.exe,CEGUI.exe,CEEMU.exe要用调试版,调试版通过后再用Release版测试驱动程序, 2)McgsSetE.exe,CEGUI.exe,CEEMU.exe3)在调试unicode
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《劳动合同》模板
- 《办公室工位租赁合同》模板
- 计算机组成原理 课件 4 指令系统
- 巡视巡察培训课件
- 巡察工作培训课件
- 岩石课件科学
- 岩土检测员岗位培训课件
- 输液错误不良事件课件
- 输液泵注射泵课件
- 民用建筑抗震加固工程造价合同
- 贸易公司合伙合同协议
- 挖机工时合同协议
- 开音节闭音节试题及答案
- 部编人教版小学一年级上册道德与法治全册教学设计
- 预防脊柱弯曲异常教案
- 辅导机构创业路演
- 2025年穿脱隔离衣的试题及答案
- 2025年移动初级解决方案经理认证理论考试指导题库-下(多选、判断题)
- 健身房卫生安全措施及服务质量提升方案
- DB14-T 1737-2024 医疗护理员培训机构服务规范
- 《混凝土砖块机:混凝土砖块机技术》课件
评论
0/150
提交评论