好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

组态王软件驱动程序开发.doc

44页
  • 卖家[上传人]:博****1
  • 文档编号:475794087
  • 上传时间:2022-12-22
  • 文档格式:DOC
  • 文档大小:928KB
  • / 44 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 组态王驱动开发包用户手册北京亚控科技发展有限公司1. 版权本开发包版权属于北京亚控科技发展有限公司,任何组织、团体、个人,未经亚控 公司允许,不得擅自拷贝,使用,对于购买本开发包的组织、团体、个人,只能内部使用, 不得擅自泄漏给第三方2. 概述本开发包采用微软标准的 COMfi件技术,采用该技术, 在创建接口时,可以创建多个互相独立对象,每个对象都可以拥有自己的变量最后的结果是一个 DLL文件接口中的各函数,是被组态王的两个应用程序---TouchExplorer.exe 和TouchVew.exe调用的如果这两个应用程序都不启动, 函数中的代码将永远没有机会执行组态王的驱动程序是组态王和硬件设备连接的桥梁,本开发包用于开发组态王的驱动 程序只要拥有硬件的通讯协议,即可以使用本开发包开发组态王的驱动程序本开发包只能使用 VC++开发3. 开发包3.0修订目的a) 通用版和嵌入版统一到一套代码中,通用版和嵌入版实现同步更新b) 生成设备类,为多设备型号驱动提供解决方法c) 详尽、稳健的基类代码d) 完善的功能与向导e) 规范各类帮助函数f) 规范编码格式、统一使用英文版g) 修改部分功能的实现方法。

      4. 开发包使用我们提供一个开发向导工具 “DriverToolKit3.000.exe ”,使用这个工具,能够自动地生成驱动代码框架运行工具,如下图:请在下页输入您的目标文件夹9齟誉王斐动开发包3.0.Q.3宜装lift “筠态王弓勤开发包3 0 a.3-的童装丈件买.黑场薦舗勰謎鑑髒.曙穿聶嚮聲蠶証问娟夹,目転交件妄血 yLlts^KscawDrivtr所焉空间3.1WE 町用充间L.4EB学习参考(1)(2)(3)(4)第二页是“驱动类型和编译选项”,包含如下部分:点击“安装”,开发包即安装完成 使用开发包向导创建驱动的过程:启动 Visual Studio.NET 2003 新建一个工程,"项目类型”选择“ Visual C++项目”,"模板”选择“ KingView Wizard ” ,在下面的编辑框中输入工程的名字以及存储路径,点击“确定” 这个创建向导分 3页,第一页是“概述”,显示的是默认的设置信息,如果 您不需要改变这些,直接点击“确定”即可成功的创建驱动框架驱动类型:o 串口驱动(适用于查询式设备)这个类型,是我们一般常用的,适合于普通的上位查询,设备应答的通讯类 型。

      o 串口驱动(适用于实时上发数据的设备,非重叠 10)这种方式,适用于下位设备实时上发数据的情况, 驱动中需要创建一个线程来监视串口事件的通讯类型,采用非重叠 10方式o 串口驱动(适用于实时上发数据的设备,重叠 10, WinCE不支持)这种方式,同上一种,也是适用于下位设备实时上发数据的情况,驱动中需 要创建一个线程来监视串口的通讯类型与前一种不同的是:采用了重叠 I0方式我们不推荐使用这种方式,因为 WINCE系统不支持这种方式,使用这种方式开发的驱动,将不能在 WINCE系统的嵌入式设备中运行o 以太网驱动(TCP服务器端)这是针对于TCP方式通讯的驱动,适用于设备为客户端,组态王为 Server,组态王查询,设备应答的通讯类型如果遇到设备主动实时上发数据的情况, 驱动中提供了相应的函数,可以直接调用函数,启动线程来监听网络事 件o 以太网驱动(TCP客户端)这是TCP方式通讯客户端的驱动,适用于组态王查询、设备应答的通讯类型 这种方式需要驱动主动去连接设备如果遇到设备主动实时上发数据的情 况,驱动中提供了相应的函数,可以直接调用函数,启动线程来监听网络事 件o 以太网驱动(UDP服务器端)目前还没有实现,参考 TCP方式,代码中需要改动的地方有标注。

      o 以太网驱动(UDP客户端)目前还没有实现,参考 TCP方式,代码中需要改动的地方有标注设备名称:默认的设备名称 是“ Namel,可以自由填写,但须注意应该 与设备列表中的设备名称保持一致尝试连接类型:当组态王与设备通讯失败了,组态王会周期性的尝试与设备通讯,这个过程,我们称之为“尝试连接”尝试连接,目前准备了如下几种类型:o 永远为True,常用于板卡驱动o 程序员自由定义,常用于网络通讯或实时上发数据的设备o 使用“ PACKET进行通讯,适用于普通的驱动5)第三页是“驱动基本信息”,包含如下条目:驱动基本信息o 驱动名称o 版本o 描述o 程序员o 项目经理这些信息将被自动保存到历史文件( History.txt )中,同时也是保存在工程的ReadMe文件中,可以随工程浏览其他支持:o USB通讯o ADO数据库操作(6 )点击“确定”后,将完成驱动工程的创建工作5. 工程转换工具我们要求通用版和嵌入版使用同一套代码, 做到通用版和嵌入版驱动实现同步更新这就需要一个工具来将通用版工程文件转换为嵌入版工程文件同时,考虑到有的开发者习惯使用 Visual Studio 98进行开发编译,我们也要有一个工具来将 Visual Studio 2003 的工程文件转换成 Visual Studio 98 的工程文件。

      我们提供一个转换工具 kvdriver (包含 3 个文件,kvdriver.exe, vc7tovc6.exe,vc7toevc.exe ),使用这个工具,可以根据 Visual Studio 2003的工程文件,创建成Visual Studio 98和EVC的工程文件,开发者可以在不同的开发环境间自由选择驱动开发包安装完成后,这个工具存放在目录 Kin gViewDriver下在使用的时候,可以把这个工具放在系统文件夹 C:\WINDOWS\system32中,这样可以在命令行中输入“ kvdriver ”,然后把需要转换的 Visual Studio 2003 工程文件拖动过来运行即可,如下所示:6. 驱动信息结构所有的结构都定义在文件 “Data类型.h ”中_DevAddr该结构定义了设备地址格式.类型 def struct _DevAddr{ -UINT n DevAddr;TCHAR sDevAddr[MAX_DEV_LEN];}DEVADDR, * PDEVADDR;成员:sDevAddr:用户在组态王中输入的原地址格式字符串nDevAddr:实际转换后的设备地址数字 •ComDevice这是串口设置信息的结构体.struct ComDeviceshort nF lag;WORD deviceKind;TCHAR deviceName[32]; int baudRate;short dataBits;short stopBits;short parity; short timeOut; short failTimes;—short retryI nterval; short isRs232;};成员:nFlag :串口标志,目前没有用到•DeviceKind :设备类型,’1'代表串口设备DeviceName逻辑名称=={C0M1, COM2...}BaudRate:波特率,范围是从 110到256000。

      DataBits :数据位StopBits :停止位.值描述ONESTOPBIT:1停止位ONE5STOPBITS1.5停止位TWOSTOPBITS2停止位Parity :校验.值描述EVENPARITY偶校验MARKPARITY标志校验NOPARITY:无校验ODDPARITY奇校验SPACEPARITY空格校验TimeOut:超时,单位是毫秒FailTimes :失败次数RetryI nterval :尝试间隔isRs232 :通讯模式,’1'代表 RS232, '2'代表 RS422, 3 代表 RS485.PLCVAR该结构定义了用户变量的属性WORD wVarType;TCHAR szVarName[32];short n Device In dex;short nUni tNo;DEVADDR *pDevAddr;TCHAR *pszRegName;short short short shortn RegType; n SubType; nSubType1;n SubType2;shortshort short long longnNo;n DataType;n AccessMode;nF reque ncy;n TimerC ount;maxRaw; min Raw;bCon verti on; isBad;isUn valid;CWin Thread* pComThread;DDEValueDDEValue short short short}PLCVAR, * PPLCVAR; 成员: wvarID:变量 IDwVarType:变量类型,为如下几种:Bit, byte, int, uint, BCD, long, float, longbcd, string szVarName变量名n Device In dex:设备索弓丨nUnitNo:设备地址单元 pDevAddr:设备地址 pszRegName寄存器名称 nRegType;寄存器类型 n SubType: nSubType1:nSubType2:子类型,没有用到,如在驱动中有其他需要,可以自己定义使用。

      nNo寄存器通道nDataType:数据类型 nAccessMode读写属性 nFrequency:采集频率 nTimerCount:超时次数 pComThread通讯线程 maxRaw最大原始值 mi nRaw最小原始值PACKET该结构定义了通讯包的属性 类型 def struct Packet{short 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;成员:nDevicelndex:设备索引nUnitNo:设备地址单元 pDevAddr:设备地址结构指针 pszDevName设备地址 nRegType寄存器类型 n SubType: nSubType1:nSubType2子类型,没有用到,自己可以使用nStartNo:开始通道nEn dN o结束通道nPacketType:包读写类型VarList:变量列表,存储ID_N0和ID_NO2两种类型变量ID_NO该结构定义了老的接口的变量类型 def struct IdNo{WORD wVarI。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.