开发主要分为以下6个步骤:1、分析通讯协议
需要确定数据包的格式,即驱动程序是接受怎么样的数据,怎么检验数据,并把它传给组态王,组态王又怎么根据得到的数据去解析各变量。如可以确定协议如下的类型
2、制定驱动规格
主要包括三部分:
定义设备选择(在组态王设备列表里面怎么找到这个设别)、
设备地址(设备地址的范围,在接口程序中有检测)、
寄存器列表说明(是接口函数主要传递的数据,由下位机采集传输给组态王,也可由组态王发送到下位机)如下为西门子S700的寄存器列表说明
3、编写代码
3.0提供了驱动的框架,包括数据、类和函数的定义,主要需要修改接口函数部分,以使得驱动和下位机、通信协议匹配。
主要的接口函数有以下几个:1、StrToDevAddr:将字符串转换为设备地址,传递给组态王
2、GetRegisters:确定寄存器的名字和个数;编程时需要在这里定义好设备的寄存器
3、ConvertUserConfigToVar:将用户配置的字符串转化为组态王的结构
4、AddVarToPacket:确定变量类型,打包(首先接受变量,其次打包传给组态王)
5、ProcessPacket2:根据包的状态信息进行处理,主要有数据的读入,物理传送和传递给组态王,是编程时需要重点编写的地方
4、添加设备列表
驱动程序编译通过之后形成的是.dll的文件,需要通过deaedit程序生成des文件,再通过驱动安装程序安装到组态王中,这样驱动才会显示到设备列表中;在此也可直接用设备列表维护工具“Devman.exe”来维护设备列表文件Devlst.dat,这个工具可在kingviewdriver目录中找到。
5、开发态测试
即在串口没有实际的工作之下,看到在添加设备和设置数据类型时实际调用的接口程序
6、运行态测试
可以采用虚拟串口或者实际串口调试,设备真实安装到了计算机上,通过设置断点可以检测到组态王运行时检测到的数据,可以看到主要通过ProcessPacket2的函数来传递数据。