组态王软件驱动程序开发.doc
《组态王软件驱动程序开发.doc》由会员分享,可在线阅读,更多相关《组态王软件驱动程序开发.doc(41页珍藏版)》请在咨信网上搜索。
1、组态王驱动开发包用户手册北京亚控科技发展有限公司1. 版权本开发包版权属于北京亚控科技发展有限公司,任何组织、团体、个人,未经亚控公司允许,不得擅自拷贝,使用,对于购买本开发包的组织、团体、个人,只能内部使用,不得擅自泄漏给第三方。2. 概述本开发包采用微软标准的COM组件技术,采用该技术,在创建接口时,可以创建多个互相独立对象,每个对象都可以拥有自己的变量。最后的结果是一个DLL文件。接口中的各函数,是被组态王的两个应用程序-TouchExplorer.exe和TouchVew.exe调用的。如果这两个应用程序都不启动,函数中的代码将永远没有机会执行。组态王的驱动程序是组态王和硬件设备连接的
2、桥梁,本开发包用于开发组态王的驱动程序。只要拥有硬件的通讯协议,即可以使用本开发包开发组态王的驱动程序。本开发包只能使用VC+开发。3. 开发包3.0修订目的a) 通用版和嵌入版统一到一套代码中,通用版和嵌入版实现同步更新。b) 生成设备类,为多设备型号驱动提供解决方法。c) 详尽、稳健的基类代码。d) 完善的功能与向导。e) 规范各类帮助函数。f) 规范编码格式、统一使用英文版。g) 修改部分功能的实现方法。4. 开发包使用我们提供一个开发向导工具“DriverToolKit3.0.0.0.exe”,使用这个工具,能够自动地生成驱动代码框架。运行工具,如下图:请在下页输入您的目标文件夹点击“
3、安装”,开发包即安装完成。使用开发包向导创建驱动的过程:(1) 启动Visual Studio.NET 2003。(2) 新建一个工程,“项目类型”选择“Visual C+项目”,“模板”选择 “KingView Wizard” ,在下面的编辑框中输入工程的名字以及存储路径,点击“确定”。(3) 这个创建向导分3页,第一页是“概述”,显示的是默认的设置信息,如果您不需要改变这些,直接点击“确定”即可成功的创建驱动框架。(4)第二页是“驱动类型和编译选项”,包含如下部分:驱动类型:o 串口驱动(适用于查询式设备)这个类型,是我们一般常用的,适合于普通的上位查询,设备应答的通讯类型。 o 串口驱动
4、(适用于实时上发数据的设备,非重叠IO)这种方式,适用于下位设备实时上发数据的情况,驱动中需要创建一个线程来监视串口事件的通讯类型,采用非重叠IO方式。 o 串口驱动(适用于实时上发数据的设备,重叠IO,WinCE不支持)这种方式,同上一种,也是适用于下位设备实时上发数据的情况,驱动中需要创建一个线程来监视串口的通讯类型。与前一种不同的是:采用了重叠IO方式。我们不推荐使用这种方式,因为WINCE系统不支持这种方式,使用这种方式开发的驱动,将不能在WINCE系统的嵌入式设备中运行。 o 以太网驱动(TCP服务器端)这是针对于TCP方式通讯的驱动,适用于设备为客户端,组态王为Server,组态王
5、查询,设备应答的通讯类型。如果遇到设备主动实时上发数据的情况,驱动中提供了相应的函数,可以直接调用函数,启动线程来监听网络事件。 o 以太网驱动(TCP客户端) 这是TCP方式通讯客户端的驱动,适用于组态王查询、设备应答的通讯类型。这种方式需要驱动主动去连接设备。如果遇到设备主动实时上发数据的情况,驱动中提供了相应的函数,可以直接调用函数,启动线程来监听网络事件。o 以太网驱动(UDP服务器端) 目前还没有实现,参考TCP方式,代码中需要改动的地方有标注。o 以太网驱动(UDP客户端) 目前还没有实现,参考TCP方式,代码中需要改动的地方有标注。设备名称: 默认的设备名称是“Name1”,可以
6、自由填写,但须注意应该与设备列表中的设备名称保持一致。尝试连接类型:当组态王与设备通讯失败了,组态王会周期性的尝试与设备通讯,这个过程,我们称之为“尝试连接”。尝试连接,目前准备了如下几种类型:o 永远为True,常用于板卡驱动。 o 程序员自由定义,常用于网络通讯或实时上发数据的设备。 o 使用“PACKET”进行通讯,适用于普通的驱动。 (5)第三页是“驱动基本信息”,包含如下条目:驱动基本信息o 驱动名称 o 版本 o 描述 o 程序员 o 项目经理 这些信息将被自动保存到历史文件(History.txt)中,同时也是保存在工程的ReadMe文件中,可以随工程浏览。其他支持:o USB
7、通讯 o ADO 数据库操作 (6)点击“确定”后,将完成驱动工程的创建工作。5. 工程转换工具我们要求通用版和嵌入版使用同一套代码,做到通用版和嵌入版驱动实现同步更新,这就需要一个工具来将通用版工程文件转换为嵌入版工程文件。同时,考虑到有的开发者习惯使用Visual Studio 98进行开发编译,我们也要有一个工具来将Visual Studio 2003的工程文件转换成Visual Studio 98的工程文件。我们提供一个转换工具kvdriver(包含3个文件,kvdriver.exe, vc7tovc6.exe,vc7toevc.exe),使用这个工具,可以根据Visual Studi
8、o 2003的工程文件,创建成Visual Studio 98和EVC的工程文件,开发者可以在不同的开发环境间自由选择。驱动开发包安装完成后,这个工具存放在目录KingViewDriver下。在使用的时候,可以把这个工具放在系统文件夹C:WINDOWSsystem32中,这样可以在命令行中输入“kvdriver”,然后把需要转换的Visual Studio 2003工程文件拖动过来运行即可,如下所示:6. 驱动信息结构所有的结构都定义在文件“Data类型.h”中。_DevAddr该结构定义了设备地址格式.类型def struct _DevAddr UINT nDevAddr; TCHAR sD
9、evAddrMAX_DEV_LEN; DEVADDR, * PDEVADDR;成员:sDevAddr: 用户在组态王中输入的原地址格式字符串。nDevAddr:实际转换后的设备地址数字.ComDevice这是串口设置信息的结构体.struct ComDevice short nFlag; WORD deviceKind; TCHAR deviceName32; int baudRate; short dataBits; short stopBits; short parity; short timeOut; short failTimes; short retryInterval; short
10、 isRs232; ;成员:nFlag:串口标志,目前没有用到.DeviceKind:设备类型,1代表串口设备DeviceName:逻辑名称 =COM1,COM2.BaudRate:波特率,范围是从 110到256000。DataBits:数据位StopBits:停止位.值描述ONESTOPBIT1 停止位ONE5STOPBITS1.5 停止位TWOSTOPBITS2 停止位Parity :校验. 值描述EVENPARITY偶校验MARKPARITY标志校验NOPARITY无校验ODDPARITY奇校验SPACEPARITY空格校验TimeOut:超时,单位是毫秒FailTimes:失败次数R
11、etryInterval:尝试间隔isRs232:通讯模式,1代表RS232, 2代表RS422, 3代表RS485.PLCVAR该结构定义了用户变量的属性.类型def struct var WORD wVarID; WORD wVarType; TCHAR szVarName32; short nDeviceIndex; short nUnitNo; DEVADDR *pDevAddr; TCHAR *pszRegName; short nRegType; short nSubType; short nSubType1; short nSubType2; short nNo; short n
12、DataType; short nAccessMode; long nFrequency; long nTimerCount; CWinThread* pComThread; DDEValue maxRaw; DDEValue minRaw; short bConvertion; short isBad; short isUnvalid; PLCVAR, * PPLCVAR;成员:wvarID:变量IDwVarType:变量类型,为如下几种:Bit, byte, int, uint, BCD, long, float, longbcd, stringszVarName:变量名nDeviceIn
13、dex:设备索引nUnitNo:设备地址单元pDevAddr:设备地址pszRegName:寄存器名称nRegType;寄存器类型nSubType:nSubType1:nSubType2:子类型,没有用到,如在驱动中有其他需要,可以自己定义使用。nNo:寄存器通道nDataType:数据类型nAccessMode:读写属性nFrequency:采集频率nTimerCount:超时次数pComThread:通讯线程maxRaw:最大原始值minRaw:最小原始值PACKET该结构定义了通讯包的属性 类型def struct Packet short nDeviceIndex; short nUn
14、itNo; DEVADDR * pDevAddr; TCHAR * pszDevName; TCHAR *pszRegName; short nRegType; short nSubType; short nSubType1; short nSubType2; int nStartNo; int nEndNo; short nPacketType; CPtrList varList; PACKET,* PPACKET; 成员:nDeviceIndex:设备索引nUnitNo:设备地址单元pDevAddr:设备地址结构指针pszDevName:设备地址nRegType:寄存器类型nSubType
15、:nSubType1:nSubType2:子类型,没有用到,自己可以使用nStartNo:开始通道nEndNo:结束通道nPacketType:包读写类型VarList:变量列表,存储ID_NO和ID_NO2两种类型变量ID_NO该结构定义了老的接口的变量类型def struct IdNo WORD wVarId; WORD wNo; WORD wDataType; BYTE Special4; PlcValue plcValue;ID_NO;成员:wVarId:变量IDwNo:通道wDataType:数据类型Special:目前没有使用plcValue:PLCVAR结构体指针ID_NO2该结
16、构定义了新的接口的变量类型def struct IdNo2 WORD wVarId; WORD wNo; WORD wDataType; PlcValue plcValue; BYTE Special4; WORD wQualities; FILETIME ftTimeStamps; ID_NO2;成员:wVarId:变量IDwNo:通道wDataType:数据类型Special:目前没有用到plcValue:PLCVAR结构体指针wQualities:质量戳,0xc0代表GOOD, 0代表BAD.ftTimeStamps:时间戳,在驱动中一般设置当前的时间DEVICE_INFO该结构定义了设
17、备信息类型def struct deviceinfo TCHAR sDeviceName32;DEVICE_INFO;成员:SDeviceName:设备名称,最大允许长度是32,使用TCHAR字符REG_INFO该结构定义了寄存器信息类型def struct reginfo TCHAR sRegName8; int nLowIndex; int nUpperIndex; WORD wDataType; int nData; REG_INFO;成员:sRegName:寄存器名称nLowIndex:开始通道nUpperIndex:结束通道7. 接口函数7.1 接口描述组态王与驱动交互,包括2个CO
18、M接口: IprotocolImp(老接口) 和 IProtocolImp2(新接口)IProtocolImp:StrToDevAddrXProtocolImp:StrToDevAddr(const TCHAR* str, LPVOID lpDevAddr)类型:Public目的:实现对地址输入的整理,判断用户输入的地址是否合法,并将地址的数值传给组态王,如果必要,也可以将地址以字符串的形式传给组态王。返回值:成功返回TRUE,否则返回FALSE参数Str:in 用户输入的地址字符串lpDevAddr:in,out 用于保存地址信息的结构XProtocolImp:GetRegistersXPr
19、otocolImp:GetRegisters(const TCHAR* szDeviceName, LPVOID * ppRegs, int *pRegNum)类型:Public目的:得到由szDeviceName确定的寄存器的名字和个数返回值;成功返回TRUE,否则返回FALSE参数szDeviceNamein 设备的唯一名字ppRegout 返回寄存器信息的指针数组的指针。如果szDeviceName无效,则返回NULL。pRegNumout 返回寄存器的个数,如果szDeviceName无效,则返回0。XProtocolImp:ConvertUserConfigToVarXProtoco
20、lImp: ConvertUserConfigToVar( LPVOID lpDbItemItem, LPVOID lpVar)类型Public目的将用户的配置字符串转换为组态王变量结构返回值WORD:如果转换成功则返回0,否则返回非零的错误代码参数lpDbItemin 指向结构MiniDbItem的指针lpVarin,out 指向结构PLCVAR的指针,返回变量就存放在这里XProtocolImp:AddVarToPacketXProtocolImp: AddVarToPacket( LPVOID lpVar, int nVarAccessType, LPVOID lpPacket)类型Pu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组态 软件 驱动程序 开发
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。