北京昆仑通态自动化软件科技有限公司-1-脚本驱动V2.0使用指导手册版本号:0.1北京昆仑通态自动化软件科技有限公司-2-目录错误!未找到图形项目表。北京昆仑通态自动化软件科技有限公司-3-第一章新脚本驱动说明一.脚本驱动适用范围1.脚本驱动适用的版本A.MCGS嵌入式组态软件;版本号:6.5(01.0010)注:此版本以上为新版本,以下为旧版本B.MCGS通用版的定制版组态软件C.MCGS网络版的定制版组态软件2.脚本驱动适用的设备A.独立板卡设备B.串口通信设备3.脚本驱动适用的协议二.脚本驱动兼容性1.旧版本脚本驱动兼容新版本组态软件2.新版本脚本驱动不兼容旧版本的组态软件,旧版本组态软件无法识别新版本脚本驱动三.脚本驱动新增内容1.脚本驱动新增功能新增加生成向导功能,具体参照第三章内容。2.脚本驱动新增函数(1)数据解析函数1.!SvrGetByteFromByteArr(ByRefByteArr,start,ByRefn,Flag)2.!SvrGetShortFromByteArr(ByRefByteArr,start,ByRefn,Flag)3.!SvrGetIntFromByteArr(ByRefByteArr,start,ByRefn,Flag)4.!SvrGetSingleFromByteArr(ByRefByteArr,start,ByRefx,Flag)5.!SvrGetByteFromHexStr(str,ByRefn,Flag)6.!SvrGetShortFormHexStr(str,ByRefn,Flag)7.!SvrGetIntFromHexStr(str,ByRefn,Flag)8.!SvrGetSingleFromHexStr(str,ByRefx,Flag)(2)数据校验函数1.!SvrByteArraySum(ByRefByteArr,start,length)2.!SvrStrSum(str,Flag)3.!SvrByteArrayXOR(ByRefByteArr,start,length)4.!SvrStrXOR(str,Flag)5.!SvrStrModbusCRC(ByRefByteArr,start,length)6.!SvrStrModbusLRC(str,start,length)北京昆仑通态自动化软件科技有限公司-4-7.!OpenLog()8.!CloseLog()(3)字节数组操作函数1.!HStr2HByre(str,arByte)2.!HByte2HStr(arByte,str)北京昆仑通态自动化软件科技有限公司-5-第二章基础概念讲解一.通讯协议1.ACSII码通讯协议(字符型协议)通讯信息按照ASCII码方式解析得到的参数信息称为ASCII码通讯。比如:主站接收到从站发送的4个字符:0x310x340x2E0x36,用ASCII码表示为14.6。2.HEX通讯协议(字节数组协议)通讯信息按照十六进制方式解析得到的参数信息称为十六进制通讯。比如:主站接收到从站发送的4个字符:0x310x340x2E0x36,用HEX表示为0x31342E363.ASCII码通讯与HEX通讯的区别1)ASCII码通讯传送的字符能清楚的了解发送命令和接收信息,但是传送的信息速度量少;十六进制通讯发送的字符信息速度量大,但是发送命令和接收信息不明了。2)ASCII码的通讯帧1个字占4个字符,而HEX的通讯帧1个字占2个字符。如:发送0x1427信息,ASCII码发送4个字符:0x310x340x320x37,而HEX只需要发送2个字符:0x140x27。二.北京昆仑通态自动化软件科技有限公司-6-第三章向导使用说明一.完全适用向导的协议1.ASCII码协议,多条命令通讯示例1.1步骤1:协议分析通讯命令1:模仿ADAM4018协议,协议格式如下:发送命令:#xx\r帧头:长1个字符,固定为#地址:固定长2个字符帧尾:长1个字符,为回车接收命令:#+xxx.xx+xxx.xx+xxx.xx+xxx.xx+xxx.xx+xxx.xx+xxx.xx+xxx.xx\r帧头:长1个字符,固定为#数据体:共8个数据体,每个数据体固定长7个字符,按ASCII码方式解析帧尾:长1个字符,为回车模拟数据:发送命令1:#01\r接收命令1:#+11.111+22.222+33.333+44.444+55.555+66.666+77.777+88.888\r通讯命令2:自己定义,解析数据非等长通讯协议,分两种情况:数据长度已知;数据长度未知。下面以数据长度未知,数据之间用分隔符分离的协议,协议格式如下:发送命令:#xxxxxx\r帧头:长1个字符,固定为#,参与校验地址:固定长2个字符,参与校验校验:长2个字符,累加和校验结束符号:长1个字符,固定为回车接收命令:#xxAA,BBB,CCCC,DDDDD,EEEE,FFF,GG,HHHHxx\r帧头:长1个字符,固定为#数据体:8个数据体,以“,”分隔校验:长2个字符,累加和校验结束符号:长1个字符,固定为回车模拟数据:发送命令:#0184\r接收命令:#11,222,3333,44444,5555,666,77,8888E3\r北京昆仑通态自动化软件科技有限公司-7-1.2步骤2:新建工程进入向导新建工程后进入新建工程模式,如图3-1-1-1所示。图3-1-1-11.选择“使用向导新建工程”,则进入向导界面,如图3-1-1-2所示。2.选择“不使用向导新建工程”,流程和原来一样,直接生成示例脚本。图3-1-1-2设置脚本驱动的名称和注释内容整个脚本配置分为4个步骤,前一个步骤不执行,不允执行下个步骤北京昆仑通态自动化软件科技有限公司-8-1.3步骤3:配置驱动属性图3-1-1-31.添加属性,添加除“设备地址”和“通讯延时”以外的属性,当所添加属性的数据类型选择枚举型时,属性范围处填写枚举量,并用“;”隔开,如图3-1-1-4所示。2.删除属性,对多余的属性进行删除,其中“设备地址”和“通讯延时”为默认属性,不允许删除。3.设置属性,修改设置已添加的属性。图3-1-1-4北京昆仑通态自动化软件科技有限公司-9-1.4步骤4:配置通道图3-1-1-51.添加通道,可进行批量添加操作。2.删除通道,对多余的通道进行删除,可批量删除(按住Ctrl键,选择要删除的通道,点击“删除通道”按钮即可),其中“通讯状态”为默认通道,不允许删除。3.设置通道,修改设置已添加的通道,设置通道中不能修改通道个数。北京昆仑通态自动化软件科技有限公司-10-1.5步骤5:配置通讯帧图3-1-1-65.1添加收发通讯帧根据协议分析知,2组通讯帧结构信息配置分别如图3-1-1-7,图3-1-1-8所示。图3-1-1-7北京昆仑通态自动化软件科技有限公司-11-图3-1-1-8北京昆仑通态自动化软件科技有限公司-12-5.2设置收发通讯帧图3-1-1-9对于ASCII码通讯帧的数据体设置主要有以下几种情况:1.无特别属性,数据内容为可见ASCII字符,如图图3-1-1-10所示。图3-1-1-101.进入设置数据属性画面,设置每个数值的属性2.设置过的选项,将显示设置内容和相应的属性3.命令预浏功能,直观的查看收发命令的格式数据类型:ASCII字符数据数据长度:1字符数据内容:#数据属性:无当此数据体参与校验时,需要选择。北京昆仑通态自动化软件科技有限公司-13-2.无特别属性,数据内容为不可见ASCII字符,如图图3-1-1-11所示。图3-1-1-113.数值不确定的数据体,配置“设备属性”中的某个属性获得其值,如图图3-1-1-12所示。图3-1-1-12数据类型:字节数据[HEX格式]数据长度:1字节,用2个字符表示数据内容:0D,注意一定以HEX格式填写,无空格数据属性:无注释:提供ASCII表,可以方便的直接选择不可见的ASCII字符数据类型:ASCII字符数据数据长度:2字符数据内容:无数据属性:设备属性中的设备地址对于相同的数据体,设置好一个后,其他可选择默认设置,设置与前一个相同的参数北京昆仑通态自动化软件科技有限公司-14-4.数据解析1)可知长度的解析,如图3-1-1-13所示。图3-1-1-132)未知长度的解析,如图3-1-1-14所示。图3-1-1-14数据类型:ASCII字符数据数据长度:1字符,此处数据长度为“解析数据间分隔符号”的长度数据内容:无数据属性:解析数据中的ASCII码数据[未知长度],解析数据间分隔符号是“,”。数据类型:ASCII字符数据数据长度:7字符数据内容:无数据属性:解析数据中的ASCII码数据[可知长度]北京昆仑通态自动化软件科技有限公司-15-5.校验,如果命令中的数据都是确定的,那么可以直接计算出校验值,如图3-1-1-15所示。图3-1-1-156.预览功能,命令信息设置完之后,可点击“命令预览”查看命令格式,如图3-1-1-16所示。图3-1-1-167.对于各属性同前一个的数据体,点击“默认设置”即可。1.此处需校验的数据是选择了“是否参与校验”的数据体。2.可选框无效,如:即使不选择“帧头”,它也参与校验。北京昆仑通态自动化软件科技有限公司-16-1.6步骤6:配置预览在此预览通道和解析数据的匹配关系,并检查配置是否正确,如果正确就可以,完成配置生成驱动,否则不完成配置生成代码。图3-1-1-17北京昆仑通态自动化软件科技有限公司-17-1.7步骤7:完成配置,进行调试1.代码的生成与编译。(1)配置都正确后,可以“完成配置”直接生成脚本代码,如图3-1-1-18所示。图3-1-1-18(2)编译生成的代码。选择“调试”“检查整个驱动”,若没有问题输出窗口会提示“设备编辑检查通过”,如图3-1-1-19所示。图3-1-1-192.配置“串口参数”。(1)创建虚拟串口,如图3-1-1-20所示,串口COM2和COM3虚拟串口。组建命令帧发送命令帧并接收数据,对接收数据进行校验对接收的数据进行解析,并设置通道值北京昆仑通态自动化软件科技有限公司-18-图3-1-1-20(2)配置脚本驱动中的串口参数选择“设置”“串口父设备配置”,配置串口参数,如图3-1-1-21所示。图3-1-1-21(3)设置串口转发工具SmartCom.exe。首先,设置串口,如图3-1-1-22所示。图3-1-1-221.除串口号外,其他需要与脚本驱动中串口参数一致2.数据格式选择ASCII北京昆仑通态自动化软件科技有限公司-19-其次,设置模拟设备,串口设置完后,打开串口,选择“使能”,添加收发帧,如图3-1-1-23所示。图3-1-1-23然后,将2组命令帧的模拟数据分别添加进去,选择启动,如图3-1-1-24所示。图3-1-1-253.进行调试。在脚本驱动中,选择“调试”“定时通道采集”进行调试,如图3-1-1-26所示。北京昆仑通态自动化软件科技有限公司-20-图3-1-1-26北京昆仑通态自动化软件科技有限公司-21-2.HEX码协议,单条命令通讯示例2.1步骤1:协议分析通讯命令:模仿ModbusRTU协议,协议格式如下:发送命令:从4区寄存器地址0开始,连续读8个16位无符号二进制地址:长1BYTE,内容从属性“设备地址”中获得命令码:长1BYTE,固定为0x03起始地址:长2BYTE,固定为0x0000连续元件个数:长2BYTE,固定为0x0008校验:长2BYTE,CRC校验接收命令:地址:长1BYTE,内容不重要命令码长1BYTE,内容预计为0x03回收字节长度:长1BYTE,内容预计为0x10数据体00:长2BYTE,内容由回收数据解析获得,解析方式为16位无符号二进制数据数据体01:长2BYTE,内容由回收数据解析获得,解析方式为16位无符号二进制数据数据体02:长2BYTE,内容由回收数据解析获得,解析方式为16位无符号二进制数据数据体03:长2BYTE,内容由回收数据解析获得,解析方式为16位无符