ImageVerifierCode 换一换
格式:DOCX , 页数:56 ,大小:1.17MB ,
资源ID:6307285      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6307285.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(组态王驱动开发包用户手册docx.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

组态王驱动开发包用户手册docx.docx

1、组态王驱动开发包用户手册docx组态王驱动开发包用户手册北京亚控科技发展有限公司1.版权本开发包版权属于北京亚控科技发展有限公司,任何组织、团体、个人,未经亚控 公司允许,不得擅自拷贝,使用,对于购买本开发包的组织、团体、个人,只能内部使用, 不得擅自泄漏给第三方。2.概述本开发包采用微软标准的 COM组件技术,采用该技术, 在创建接口时,可以创建多个互相独立对象,每个对象都可以拥有自己的变量。最后的结果是一个 DLL文件。接口中的各函数,是被组态王的两个应用程序-TouchExplorer.exe 和TouchVew.exe调用的。如果这两个应用程序都不启动, 函数中的代码将永远没有机会执行

2、。组态王的驱动程序是组态王和硬件设备连接的桥梁,本开发包用于开发组态王的驱动 程序。只要拥有硬件的通讯协议,即可以使用本开发包开发组态王的驱动程序。本开发包只能使用 VC+开发。3.开发包3.0修订目的a)通用版和嵌入版统一到一套代码中,通用版和嵌入版实现同步更新。b)生成设备类,为多设备型号驱动提供解决方法。c)详尽、稳健的基类代码。d)完善的功能与向导。e)规范各类帮助函数。f)规范编码格式、统一使用英文版。g)修改部分功能的实现方法。4.开发包使用我们提供一个开发向导工具 “DriverToolKit3.000.exe ”,使用这个工具,能够自动地生成驱动代码框架。运行工具,如下图:请在

3、下页输入您的目标文件夹逵算实寰宜査lift “舸态王弓勵开发包3 0 Q.3的童装丈件买.黑场薦舗勰謎鑑鼾.曙穿暑嚮罷蠶勰问如夹单点击“安装”,开发包即安装完成。 使用开发包向导创建驱动的过程:启动 Visual Studio.NET 2003 。新建一个工程,项目类型”选择Visual C+项目”,模板”选择 “KingViewWizard ” ,在下面的编辑框中输入工程的名字以及存储路径,点击“确定” 。这个创建向导分 3页,第一页是“概述”,显示的是默认的设置信息,如果您不需要改变这些,直接点击“确定”即可成功的创建驱动框架。驱动类型:o 串口驱动(适用于查询式设备)这个类型,是我们一般

4、常用的,适合于普通的上位查询,设备应答的通讯类 型。o 串口驱动(适用于实时上发数据的设备,非重叠 10) 这种方式,适用于下位设备实时上发数据的情况, 驱动中需要创建一个线程来监视串口事件的通讯类型,采用非重叠 10方式。o 串口驱动(适用于实时上发数据的设备,重叠 10, WinCE不支持)这种方式,同上一种,也是适用于下位设备实时上发数据的情况,驱动中需 要创建一个线程来监视串口的通讯类型。与前一种不同的是:采用了重叠 I0方式。我们不推荐使用这种方式,因为 WINCE系统不支持这种方式,使用这种方式开发的驱动,将不能在 WINCE系统的嵌入式设备中运行。o 以太网驱动(TCP服务器端)

5、这是针对于TCP方式通讯的驱动,适用于设备为客户端,组态王为 Server,组态王查询,设备应答的通讯类型。如果遇到设备主动实时上发数据的情况, 驱动中提供了相应的函数, 可以直接调用函数,启动线程来监听网络事件。o 以太网驱动(TCP客户端)这是TCP方式通讯客户端的驱动,适用于组态王查询、设备应答的通讯类型。 这种方式需要驱动主动去连接设备。如果遇到设备主动实时上发数据的情 况,驱动中提供了相应的函数,可以直接调用函数,启动线程来监听网络事 件。o 以太网驱动(UDP服务器端)目前还没有实现,参考 TCP方式,代码中需要改动的地方有标注。o 以太网驱动(UDP客户端)目前还没有实现,参考

6、TCP方式,代码中需要改动的地方有标注。设备名称:默认的设备名称 是Namel,可以自由填写,但须注意应该 与设备列表中的设备名称保持一致。尝试连接类型:当组态王与设备通讯失败了,组态王会周期性的尝试与设备通讯,这个过程,我们称之为“尝试连接”。尝试连接,目前准备了如下几种类型:o 永远为True,常用于板卡驱动。o 程序员自由定义,常用于网络通讯或实时上发数据的设备。o 使用“ PACKET进行通讯,适用于普通的驱动。(5)第三页是“驱动基本信息,包含如下条目:驱动基本信息o 驱动名称o 版本o 描述 o 程序员 o 项目经理这些信息将被自动保存到历史文件( History.txt )中,同

7、时也是保存在工程的ReadMe文件中,可以随工程浏览。其他支持:o USB通讯 o ADO数据库操作(6 )点击“确定”后,将完成驱动工程的创建工作。5.工程转换工具我们要求通用版和嵌入版使用同一套代码, 做到通用版和嵌入版驱动实现同步更新这就需要一个工具来将通用版工程文件转换为嵌入版工程文件。同时,考虑到有的开发者习惯使用 Visual Studio 98进行开发编译,我们也要有一个工具来将 Visual Studio 2003 的工程文件转换成 Visual Studio 98 的工程文件。我们提供一个转换工具 kvdriver (包含 3 个文件,kvdriver.exe, vc7tov

8、c6.exe,vc7toevc.exe ),使用这个工具,可以根据 Visual Studio 2003的工程文件,创建成Visual Studio 98和EVC的工程文件,开发者可以在不同的开发环境间自由选择。驱动开发包安装完成后,这个工具存放在目录 Kin gViewDriver下。在使用的时候,可以把这个工具放在系统文件夹 C:WINDOWSsystem32中,这样可以在命令行中输入“ kvdriver ”,然后把需要转换的 Visual Studio 2003 工程文件 拖动过来运行即可,如下所示:6.驱动信息结构所有的结构都定义在文件 “Data类型.h ”中_DevAddr该结构定

9、义了设备地址格式UINT n DevAddr;TCHAR sDevAddrMAX_DEV_LEN; DEVADDR, * PDEVADDR;成员:sDevAddr:用户在组态王中输入的原地址格式字符串。nDevAddr:实际转换后的设备地址数字 ComDevice这是串口设置信息的结构体.truct ComDeviceshort nF lag;WORD deviceKi nd;TCHAR deviceName32; int baudRate;short dataBits;short stopBits;short parity;short timeOut;short failTimes;shor

10、t retryI nterval;short isRs232;成员:nFlag :串口标志,目前没有用到.DeviceKind :设备类型,1代表串口设备DeviceName逻辑名称=C0M1, COM2.BaudRate:波特率,范围是从 110到256000。DataBits :数据位StopBits :停止位.值描述ONESTOPBIT1停止位ONE5STOPBITS1.5停止位TWOSTOPBITS2停止位Parity :校验.值描述EVENPARITY偶校验MARKPARITY标志校验NOPARITY无校验ODDPARITY奇校验SPACEPARITY空格校验TimeOut:超时,单

11、位是毫秒FailTimes :失败次数Retryl nterval :尝试间隔isRs232 :通讯模式,1代表 RS232, 2 代表 RS422, 3 代表 RS485.PLCVAR该结构定义了用户变量的属性.类型 def struct varWORD wVarlD;WORD wVarType;TCHAR szVarName32;short n Device In dex;short nUni tNo;DEVADDR *pDevAddr;TCHAR *pszRegName;short n RegType;short n SubType;short n SubTypel;short n Su

12、bType2;short nNo;short n DataType;short n AccessMode;long nF reque ncy;long n TimerC ount;CWin Thread* pComThread;DDEValue maxRaw;DDEValue min Raw;short bCon verti on;short isBad;short isUn valid;PLCVAR, * PPLCVAR;成员: wvarlD:变量 ID wVarType:变量类型,为如下几种:Bit, byte, int, uint, BCD, l ong, float, I on gbc

13、d, stri ng szVarName变量名 nDeviceIndex:设备索引 nUnitNo:设备地址单元 pDevAddr:设备地址 pszRegName寄存器名称 nRegType;寄存器类型 nSubType: nSubType1: n SubType2:子类型,没有用到,如在驱动中有其他需要,可以自己定义使用。 nNo寄存器通道n DataType:数据类型 nAccessMode读写属性 nFrequency:采集频率 nTimerCount:超时次数 pComThread通讯线程 maxRaw最大原始值 mi nRaw最小原始值PACKET该结构定义了通讯包的属性 类型 de

14、f struct Packetshort n Device In dex;short nUni tNo;DEVADDR * pDevAddr; TCHAR * pszDevName;TCHAR *pszRegName;short n RegType; short n SubType; short n SubTypel; short n SubType2; int n StartNo; int nEn dNo;short n PacketType;CPtrList varList;PACKET,* PPACKET;成员:n Device In dex:设备索弓丨 nUnitNo:设备地址单元 p

15、DevAddr:设备地址结构指针 pszDevName设备地址 nRegType寄存器类型n SubType:nSubTypel:nSubType2子类型,没有用到,自己可以使用nStartNo:开始通道nEn dN o结束通道nPacketType:包读写类型VarList:变量列表,存储ID_NO和ID_NO2两种类型变量ID_NO该结构定义了老的接口的变量类型 def struct IdNoWORD wVarId;WORD wNo;WORD wDataType;BYTE Special4;PlcValue plcValue;ID_NO;成员:wVarId :变量 IDwNo通道wData

16、Type:数据类型Special:目前没有使用plcValue: PLCVAR结构体指针ID_NO2该结构定义了新的接口的变量类型 def struct IdNo2WORD wVarId;WORD wNo;WORD wData Type;PlcValue plcValue;BYTE Special4;WORD wQualities;FILETIME ftTimeStamps;ID_NO2;成员:wVarId :变量 IDwNo通道wDataType:数据类型Special:目前没有用到 plcValue: PLCVAF结构体指针 wQualities:质量戳,OxcO 代表 GOOD, 0代表

17、 BAD. ftTimeStamps:时间戳,在驱动中一般设置当前的时间DEVICENFO该结构定义了设备信息TCHAR sDeviceName32;DEVICE_INFO;成员:SDeviceName:设备名称,最大允许长度是 32,使用TCHAR字符REG_INFO该结构定义了寄存器信息类型 def struct reginfoTCHAR sRegName8;int n Low In dex;int n Upperl ndex;WORD wDataType;int n Data;REG_INFO;成员:sRegName寄存器名称n Low In dex:开始通道n Upper In dex

18、:结束通道7.接口函数7.1接口描述组态王与驱动交互,包括 2个 COM接口 : IprotocolImp( 老接口)和IProtocollmp2(新接口)IProtocollmp:StrToDevAddrXProtocolImp:StrToDevAddr(co nst TCHAR* str, LPVOID lpDevAddr) 类型:Public目的:实现对地址输入的整理, 判断用户输入的地址是否合法, 并将地址的数值传给组态王如果必要,也可以将地址以字符串的形式传给组态王。返回值:成功返回TRUE否则返回FALSE参数Str :in用户输入的地址字符串lpDevAddr:i n,out 用

19、于保存地址信息的结构XProtocolImp:GetRegistersXProtocollmp:GetRegisters(co nst TCHAR* szDeviceName,LPVOID * ppRegs, i nt *pRegNum )类型:Public目的:得到由szDeviceName确定的寄存器的名字和个数返回值;成功返回TRUE否则返回FALSE参数szDeviceNamein 设备的唯一名字ppRegout 返回寄存器信息的指针数组的指针。如果 szDeviceName无效,则返回NULL。pRegNumout 返回寄存器的个数,如果 szDeviceName无效,则返回0。XP

20、rotocollmp:ConvertUserConfigToVarXProtocolImp: Con vertUserCo nfigToVar( LPVOID IpDbltemltem, LPVOID IpVar) 类型Public目的将用户的配置字符串转换为组态王变量结构返回值WORD :如果转换成功则返回 0,否则返回非零的错误代码 参数lpDbItemin 指向结构MiniDbltem的指针lpVarin,out 指向结构PLCVAR的指针,返回变量就存放在这里XProtocollmp:AddVarToPacketXProtocolImp: AddVarToPacket( LPVOIDl

21、pVar, int nVarAccessType, LPVOID lpPacket)类型Public目的确认变量是否能够与一个包里的其他变量一起进行采集, 以进行变量的打包,如果可以加入返回TRUE并修改包的起止地址;否则返回FALSE。返回值BOOL : FALSE表示不能打包,否则能参数lpVarin 变量指针n VarAccessType in 读写方式 lpPacketout 包指针XProtocollmp:OpenComDeviceXProtocollmp:OpenComDevice( int nDeviceType, LPVOID lpInitData)类型Public目的初始化通

22、讯设备如:(串口或板卡等)返回值BOOL :成功则返回 TRUE,否则返回 FALSE参数nDevice Typein 设备类型Ipl ni tDatain 一个指向 COMM_CONFIG 结构的指针XProtocollmp:lnitialDeviceXProtocollmp:l ni tialDevice(co nst TCHAR* pDeviceName, int nUni tAddr,IpDevAddr)类型Public目的初始化设备,设置该设备的初始化状态返回值BOOL :如果szDeviceName有效,则返回 TRUE,否则返回 FALSE。参数pDeviceNamein 设备的

23、唯一名字nUni tAddrin 设备地址lpDevAddrin 应将此参数转换为结构-PDEVADDR。此结构详情参阅 DATA类型.H文件。XProtocolImp:ProcessPacketXProtocolImp: ProcessPacket(LPVOID lpPacket)类型Public目的根据协议及包状态信息进行相应的处理 ,例如进行读写处理,如果读成功则把数据写入pPac-varList。返回值BOOL :如果成功,返回 TRUE,否则,返回 FALSE。参数lpPacketIn, out 包指针XProtocolImp:CloseComDeviceXProtocollmp:C

24、loseComDevice() 类型:Public目的:关闭该通讯设备返回值BOOL :成功则返回 TRUE,否则返回 FALSE。 参数NullXProtocollmp:TryConnectXProtocollmp:TryCo nn ect(co nst TCHAR* pDeviceName, int nUni tAddr, LPVOIDIpDevAddr) 类型:Public目的:与地址为UnitAddr的设备尝试进行通讯,用于故障侦探及恢复尝试。返回值尝试通讯成功返回 TRUE否则返回FALSE参数pDeviceNamein 设备的唯一名字nUni tAddrin 需要进行故障侦探及恢复

25、尝试的设备的地址。lpDevAddrin 应将此参数转换为结构-PDEVADDR。此结构详情参阅 DATA类型.H文件。备注当ProcessPacket 失败后,”TryConnect将被组态王调用 2次,如果仍然失败,则该接口将按设定的尝试连接间隔被组态王调用。XProtocollmp:GetLastErrorXProtocollmp:GetLastError()类型Public目的返回最近一次的错误信息。 返回值将最近一次的错误信息。 参数无XProtocollmp2:GetTransXProtocolImp2:GetTra ns( LPVOID* pHcomm)类型Public目的获取驱

26、动打开的设备句柄,以便其他设备可以使用此句柄 返回值成功返回TRUE否则返回FALSE参数lpHcommout接受设备句柄的指针XProtocollmp2:SetTransXProtocollmp2:SetTra ns( LPVOID* pHcomm ) 类型:Public目的:将其他驱动打开的设备句柄传递给驱动 返回值:成功返回TRUE否则返回FALSE 参数IpHcommin 其他驱动打开的设备句柄。XProtocollmp2:ProcessPacket2XProtocollmp2: ProcessPacket2(LPVOID IpPacket)类型Public目的根据协议及包状态信息进行

27、相应的处理 ,例如进行读写处理,如果读成功则把数据写入pPac-varList。返回值BOOL :如果成功,返回 TRUE,否则,返回 FALSE。参数lpPacketin,o ut 包指针7.2接口函数的调用7.2.1开发环境7.2.1.1新建设备在向导页输入地址字符串时,程序加载驱动,并调用驱动的 StrToDevAddr当向导页转向下一页,也就是点击下一步时,组态王会调用 StrDevToAddr,并将用户输入传递给驱动。驱动的功能是进行地址转换,具体解释参见StrDevToAddr。7.2.1.2新建变量用户在变量字典里面点击新建变量时,会弹出如下建立变量的对话框,若用户有不是驱动使用

28、域填写有误或者有相关的域 (包括驱动使用域)没有填写,组态王将会给出相应的提示,即组态王不调用驱动,直接给出错误提示。当用户点击连接设备完成设备连接或者在设备组合框中选定设备时,组态王会调用 GetRegisters,组态王会将设备名称传递给驱动, 由驱动返回给组态王寄存器列表。具体解释参见 GetRegisters。所有用户必填域填写完毕,切换TAB页或者确定变量时,组态王会调用组态王会将驱动域的输入作为 MiniDbltem 传递给驱动, ConvertUserConfigToVar 将结果返回在组态王建立的变量 PLCV AR中。具体解释见 ConvertUserConfigToV ar

29、。721.3串口设备测试可以方便的使用 串口设备测试工具 进行测试用户进若用户使用的设备是串口设备, 入测试设备对话框,如下图所示:当用户进入此对话框时,组态王立刻调用 GetRegisters获取设备可以使用的寄存器列表。当用户点击添加或者加入变量时,组态王立刻调用 ConvertUserConfigToVar进行变量校验。当用户点击读取,组态王就开始变量采集。 所有采集步骤与运行环境一致, 只是这儿测试只是测试一个设备,而运行环境采集定义的所有的设备。7.2.2.运行环境以下步骤为特殊目的时,组态王对于每个设备都会调用一次此函数。722.1校验设备地址调用StrToDevAddr,对用户输入的地址字符串进行转换 若StrToDevAddr返回TRUE,转7222否则组态王提示用户地址格式不对,同时中止此设备的采集,不影响使用同一驱 动的其他设备。7.2.2.2打开设备调用OpenComDevice,若是串口设备,则驱动应在此中进行串口初始化 .若不是串口驱动,驱动可以在此中完成一次性的初始化工作 。若OpenComDevice返回TRUE,组态王会在信息窗口提示打开设备成功,并给出成功 的设备名称,同时转722.3。否则组态王会在信息窗口提示打开设备失败, 认为设备存在问题,若是串口设备,此串口下连接的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1