组态王驱动的编写
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组态王驱动
今天简单的总结下组态王驱动的添加和编写,主要是对整个驱动的流程做一个梳理,为具体的编写做个引导。
驱动的添加步骤:
1.将Debug里生成的dll文件复制到DRIVER里面
2.添加submit里的注册表项
3.添加设备:将Device Manage Tool里的devman.exe打开,新建设备,设备名称要和驱动名称一样,ID号为Readme.txt里的MBCS,描述不能为空,将生成的DevLst.Dat复制到组态王安装文件夹下,并运行DevLstUpdate.exe
4.打开组态王,新建工程,新建设备,新建变量(IO离散类型),建画面(离散输入(指从外设输入到组态王))
驱动的编写:
1.首先新建一个基于组态驱动的工程(VS2003),把设备类Dev……中的static DEVICE_INFO gsDeviceInfo[]=中的_T(……)写成文件名。
2.在static REG_INFO gsRegInfo[]=里添加寄存器的名字,地址,类型等,其次在下面的#define中添加宏定义,方便以后的调用。
3.总体顺序是这样的:
首先调用processPacket2,其中调用函数GetSendString,将要发送的数据打包,然后调用CopyMemory(m_bySndBuf,StrSend.GetBuffer(StrSend.GetLength()
),StrSend.GetLength())函数,将要发送的数据放到缓冲区。
其次调用Transmission函数,不用修改,主要作用是处理发送的过程。
然后调用PreProcessData,对接收到的数据进行处理,其中,接收数据调用CopyMemory(StrRecBuf.GetBufferSetLength(nExpectedLen),m_byR ecBuf,nExpectedLen);