MCGS脚本驱动开发工具使用指导手册_第1页
MCGS脚本驱动开发工具使用指导手册_第2页
MCGS脚本驱动开发工具使用指导手册_第3页
MCGS脚本驱动开发工具使用指导手册_第4页
MCGS脚本驱动开发工具使用指导手册_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北京昆仑通态自动化软件科技有限公司脚本驱动V2.0使用指导手册版本号:0.1目 录第一章 新脚本驱动说明一 脚本驱动适用范围1. 脚本驱动适用的版本A. MCGS嵌入式组态软件;版本号:6.5(01.0010)注:此版本以上为新版本,以下为旧版本B. MCGS通用版的定制版组态软件C. MCGS网络版的定制版组态软件2. 脚本驱动适用的设备A. 独立板卡设备B. 串口通信设备3. 脚本驱动适用的协议二 脚本驱动兼容性1. 旧版本脚本驱动兼容新版本组态软件2. 新版本脚本驱动不兼容旧版本的组态软件,旧版本组态软件无法识别新版本脚本驱动三 脚本驱动新增内容1. 脚本驱动新增功能新增加生成向导功能,

2、具体参照第三章内容。2. 脚本驱动新增函数(1) 数据解析函数1.!SvrGetByteFromByteArr(ByRef ByteArr, start, ByRef n, Flag)2.!SvrGetShortFromByteArr(ByRef ByteArr, start, ByRef n, Flag)3.!SvrGetIntFromByteArr(ByRef ByteArr, start, ByRef n, Flag)4.!SvrGetSingleFromByteArr(ByRef ByteArr, start, ByRef x, Flag)5.!SvrGetByteFromHexStr

3、(str, ByRef n, Flag)6.!SvrGetShortFormHexStr(str, ByRef n, Flag)7.!SvrGetIntFromHexStr(str, ByRef n, Flag)8.!SvrGetSingleFromHexStr(str, ByRef x, Flag)(2) 数据校验函数1.!SvrByteArraySum(ByRef ByteArr, start, length)2.!SvrStrSum(str, Flag)3.!SvrByteArrayXOR(ByRef ByteArr, start, length)4.!SvrStrXOR(str, Fl

4、ag)5.!SvrStrModbusCRC(ByRef ByteArr, start, length)6.!SvrStrModbusLRC(str, start, length)7.!OpenLog()8.!CloseLog()(3) 字节数组操作函数1.!HStr2HByre(str, arByte)2.!HByte2HStr(arByte, str)第二章 基础概念讲解一 通讯协议1. ACSII码通讯协议(字符型协议)通讯信息按照ASCII码方式解析得到的参数信息称为ASCII码通讯。比如:主站接收到从站发送的4个字符:0x31 0x34 0x2E 0x36,用ASCII码表示为14.6

5、。2. HEX通讯协议(字节数组协议)通讯信息按照十六进制方式解析得到的参数信息称为十六进制通讯。比如:主站接收到从站发送的4个字符:0x31 0x34 0x2E 0x36,用HEX表示为0x31342E363. ASCII码通讯与HEX通讯的区别1) ASCII码通讯传送的字符能清楚的了解发送命令和接收信息,但是传送的信息速度量少;十六进制通讯发送的字符信息速度量大,但是发送命令和接收信息不明了。2) ASCII码的通讯帧1个字占4个字符,而HEX的通讯帧1个字占2个字符。如:发送0x1427信息,ASCII码发送4个字符:0x31 0x34 0x32 0x37,而HEX只需要发送2个字符:

6、0x14 0x27。二第三章 向导使用说明一 完全适用向导的协议1. ASCII码协议,多条命令通讯示例1.1 步骤1:协议分析通讯命令1:模仿ADAM4018协议,协议格式如下:发送命令:#xxr帧头:长1个字符,固定为#地址:固定长2个字符帧尾:长1个字符,为回车接收命令:#+xxx.xx+xxx.xx+xxx.xx+xxx.xx+xxx.xx+xxx.xx+xxx.xx+xxx.xxr帧头:长1个字符,固定为#数据体:共8个数据体,每个数据体固定长7个字符,按ASCII码方式解析帧尾:长1个字符,为回车模拟数据:发送命令1:#01r接收命令1:#+11.111+22.222+33.333

7、+44.444+55.555+66.666+77.777+88.888r通讯命令2:自己定义,解析数据非等长通讯协议,分两种情况:数据长度已知;数据长度未知。下面以数据长度未知,数据之间用分隔符分离的协议,协议格式如下:发送命令:#xxxxxxr帧头:长1个字符,固定为#,参与校验地址:固定长2个字符,参与校验校验:长2个字符,累加和校验结束符号:长1个字符,固定为回车接收命令:#xxAA,BBB,CCCC,DDDDD,EEEE,FFF,GG,HHHHxxr帧头:长1个字符,固定为#数据体:8个数据体,以“,”分隔校验:长2个字符,累加和校验结束符号:长1个字符,固定为回车模拟数据:发送命令:

8、#0184r接收命令:#11,222,3333,44444,5555,666,77,8888E3r1.2 步骤2:新建工程进入向导新建工程后进入新建工程模式,如图3-1-1-1所示。图3-1-1-11. 选择“使用向导新建工程”,则进入向导界面,如图3-1-1-2所示。2. 选择“不使用向导新建工程”,流程和原来一样,直接生成示例脚本。整个脚本配置分为4个步骤,前一个步骤不执行,不允执行下个步骤设置脚本驱动的名称和注释内容图3-1-1-21.3 步骤3:配置驱动属性图3-1-1-31. 添加属性,添加除“设备地址”和“通讯延时”以外的属性,当所添加属性的数据类型选择枚举型时,属性范围处填写枚举

9、量,并用“;”隔开,如图3-1-1-4所示。2. 删除属性,对多余的属性进行删除,其中“设备地址”和“通讯延时”为默认属性,不允许删除。3. 设置属性,修改设置已添加的属性。图3-1-1-41.4 步骤4:配置通道图3-1-1-51. 添加通道,可进行批量添加操作。2. 删除通道,对多余的通道进行删除,可批量删除(按住Ctrl键,选择要删除的通道,点击“删除通道”按钮即可),其中“通讯状态”为默认通道,不允许删除。3. 设置通道,修改设置已添加的通道,设置通道中不能修改通道个数。1.5 步骤5:配置通讯帧图3-1-1-65.1 添加收发通讯帧根据协议分析知,2组通讯帧结构信息配置分别如图3-1

10、-1-7,图3-1-1-8所示。图3-1-1-7图3-1-1-85.2 设置收发通讯帧1. 进入设置数据属性画面,设置每个数值的属性2. 设置过的选项,将显示设置内容和相应的属性3. 命令预浏功能,直观的查看收发命令的格式图3-1-1-9对于ASCII码通讯帧的数据体设置主要有以下几种情况:1. 无特别属性,数据内容为可见ASCII字符,如图图3-1-1-10所示。数据类型:ASCII字符数据数据长度:1字符数据内容:#数据属性:无当此数据体参与校验时,需要选择。图3-1-1-102. 无特别属性,数据内容为不可见ASCII字符,如图图3-1-1-11所示。对于相同的数据体,设置好一个后,其他

11、可选择默认设置,设置与前一个相同的参数数据类型:字节数据HEX格式数据长度:1字节,用2个字符表示数据内容:0D,注意一定以HEX格式填写,无空格数据属性:无注释:提供ASCII表,可以方便的直接选择不可见的ASCII字符图3-1-1-113.数值不确定的数据体,配置“设备属性”中的某个属性获得其值,如图图3-1-1-12所示。数据类型:ASCII字符数据数据长度:2字符数据内容:无数据属性:设备属性中的设备地址图3-1-1-124. 数据解析1)可知长度的解析,如图3-1-1-13所示。数据类型:ASCII字符数据数据长度:7字符数据内容:无数据属性:解析数据中的ASCII码数据可知长度图3

12、-1-1-132)未知长度的解析,如图3-1-1-14所示。数据类型:ASCII字符数据数据长度:1字符,此处数据长度为“解析数据间分隔符号”的长度数据内容:无数据属性:解析数据中的ASCII码数据未知长度,解析数据间分隔符号是“,”。图3-1-1-145. 校验,如果命令中的数据都是确定的,那么可以直接计算出校验值,如图3-1-1-15所示。1. 此处需校验的数据是选择了“是否参与校验”的数据体。2. 可选框无效,如:即使不选择“帧头”,它也参与校验。图3-1-1-156. 预览功能,命令信息设置完之后,可点击“命令预览”查看命令格式,如图3-1-1-16所示。图3-1-1-167. 对于各

13、属性同前一个的数据体,点击“默认设置”即可。1.6 步骤6:配置预览在此预览通道和解析数据的匹配关系,并检查配置是否正确,如果正确就可以,完成配置生成驱动,否则不完成配置生成代码。图3-1-1-171.7 步骤7:完成配置,进行调试1.代码的生成与编译。(1)配置都正确后,可以“完成配置”直接生成脚本代码,如图3-1-1-18所示。组建命令帧发送命令帧并接收数据,对接收数据进行校验对接收的数据进行解析,并设置通道值图3-1-1-18(2)编译生成的代码。选择“调试” “检查整个驱动”,若没有问题输出窗口会提示“设备编辑检查通过”,如图3-1-1-19所示。 图3-1-1-192. 配置“串口参

14、数”。(1)创建虚拟串口,如图3-1-1-20所示,串口COM2和COM3虚拟串口。图3-1-1-20(2)配置脚本驱动中的串口参数选择“设置” “串口父设备配置”,配置串口参数,如图3-1-1-21所示。 图3-1-1-21(3)设置串口转发工具SmartCom.exe。首先,设置串口,如图3-1-1-22所示。1. 除串口号外,其他需要与脚本驱动中串口参数一致2. 数据格式选择ASCII图3-1-1-22其次,设置模拟设备,串口设置完后,打开串口,选择“使能”,添加收发帧,如图3-1-1-23所示。图3-1-1-23然后,将2组命令帧的模拟数据分别添加进去,选择启动,如图3-1-1-24所

15、示。图3-1-1-253. 进行调试。在脚本驱动中,选择“调试” “定时通道采集”进行调试,如图3-1-1-26所示。图3-1-1-262. HEX码协议,单条命令通讯示例2.1 步骤1:协议分析通讯命令:模仿ModbusRTU协议,协议格式如下:发送命令: 从4区寄存器地址0开始,连续读8个16位无符号二进制地址:长1BYTE,内容从属性“设备地址”中获得命令码:长1BYTE,固定为0x03起始地址:长2BYTE,固定为0x0000连续元件个数:长2BYTE,固定为0x0008校验:长2BYTE,CRC校验接收命令:地址:长1BYTE,内容不重要命令码长1BYTE,内容预计为0x03回收字节

16、长度:长1BYTE,内容预计为0x10数据体00:长2BYTE,内容由回收数据解析获得,解析方式为 16位无符号二进制数据数据体01:长2BYTE,内容由回收数据解析获得,解析方式为16位无符号二进制数据数据体02:长2BYTE,内容由回收数据解析获得,解析方式为16位无符号二进制数据数据体03:长2BYTE,内容由回收数据解析获得,解析方式为16位无符号二进制数据数据体03:长2BYTE,内容由回收数据解析获得,解析方式为16位无符号二进制数据数据体05:长2BYTE,内容由回收数据解析获得,解析方式为16位无符号二进制数据数据体06:长2BYTE,内容由回收数据解析获得,解析方式为16位无

17、符号二进制数据数据体07:长2BYTE,内容由回收数据解析获得,解析方式为16位无符号二进制数据校验:长2BYTE,内容不重要2.2 步骤2:新建工程进入向导新建工程后进入新建工程模式,如图3-1-2-1所示。图3-1-2-11. 选择“使用向导新建工程”,则进入向导界面,如图图3-1-2-2所示。2. 选择“不使用向导新建工程,流程和原来一样,直接生成示例脚本。 图3-1-2-22.3 步骤3:配置驱动属性图3-1-2-31. 添加属性,添加除“设备地址”和“通讯延时”以外的属性,当所添加属性的数据类型选择枚举型时,属性范围处填写枚举量,并用“;”隔开,如图3-1-2-4所示。2. 删除属性

18、,对多余的属性进行删除,其中“设备地址”和“通讯延时”为默认属性,不允许删除。3. 设置属性,修改设置已添加的属性。图3-1-2-42.4 步骤4:配置通道图3-1-2-51. 添加通道,可进行批量添加。2. 删除通道,对多余通道进行删除,可批量删除,其中“通讯状态”为默认通道,不允许删除。3. 设置通道,修改设置已添加的通道,设置通道中不能修改通道个数。2.5 步骤5:配置通讯帧图3-1-2-65.1 添加收发通讯帧根据协议分析知,通讯帧结构信息配置分别如图3-1-2-7所示。图3-1-2-75.2 设置收发通讯帧图3-1-2-8对于HEX格式命令帧的数据体设置主要有以下几种情况:(注释:对

19、于HEX格式的命令帧,其各帧数据体的数据类型均为字节数据HEX格式)1. 无特别属性,如图3-1-2-9所示。图3-1-2-92.数值不确定的数据体,配置“设备属性”中的某个属性获得其值,如图3-1-2-10所示。图3-1-2-103. 解析属性数据,数据内容为不需要填写,由回收数据解析获得,如图3-1-2-11所示。图3-1-2-114. 校验,如果命令中的数据都是确定的,那么可以直接计算出校验值,如图3-1-2-12所示。图3-1-2-125. 预览功能,命令信息设置完之后,可点击“命令预览”查看命令格式,如图3-1-2-13所示。图3-1-2-132.6 步骤6:配置预览在此预览通道和解

20、析数据的匹配关系,并检查配置是否正确,如果正确就可以,完成配置生成驱动,否则不完成配置生成代码。图3-1-2-142.7 步骤7:完成配置1.代码的生成与编译。(1)配置都正确后,可以“完成配置”直接生成脚本代码,如图3-1-2-15所示。组建命令帧发送命令帧并接收数据,对接收数据进行校验对接收的数据进行解析,并设置通道值图3-1-2-15(2)编译生成的代码。选择“调试” “检查整个驱动”,若没有问题输出窗口会提示“设备编辑检查通过”,如图3-1-2-16所示。 图3-1-2-162. 配置“串口参数”。(1)创建虚拟串口,如图3-1-2-17所示,串口COM2和COM3虚拟串口。图3-1-

21、2-17(2)配置脚本驱动中的串口参数选择“设置” “串口父设备配置”,配置串口参数,如图3-1-2-18所示。 图3-1-2-18(3)设置Modbus串口转发工具mbslave.exeA. 打开mbslave.exe,选择“Connection” “Connect”进行设置,如图3-1-2-19所示。图3-1-2-19B. 选择“Setup” “Slave Definition”进行设置,如图3-1-2-20所示。图3-1-2-20C. 选择“Connection” “Quick connect”运行,并设置各地址数据。3. 进行调试。在脚本驱动中,选择“调试” “定时通道采集”进行调试,

22、如图3-1-2-22所示。图3-1-2-22二 不完全适用向导1. 步骤1:协议分析设备命令:模仿三菱Q系列串口协议,协议格式如下:发送命令:从D寄存器地址0开始,连续读8个16位无符号二进制帧头:长1个字符,固定为ENQ即0x05帧识别号:长2个字符,固定为FB本地站号:长2个字符,内容从设备属性中获得上位站号(即设备地址):长2个字符,内容从设备属性中获得命令码:长1个字符,固定为2寄存器地址:长2个字符,固定为D*起始地址:长6个字符,固定为000000软元件个数:长4个字符,固定为0008累加和校验:长2个字符,通过自动计算获得接收命令:帧头:长1个字符,内容不重要帧识别号:长2个字符

23、,内容不重要本地站号:长2个字符,内容不重要上位站号:长2个字符,内容不重要数据体0007:长4个字符,内容由回收数据解析获得,解析方式为 16位无符号二进制数据帧尾:长1个字符,内容不重要校验:长2个字符,内容不重要分析:由协议格式所知,脚本驱动向导无法生成此协议格式,但是此协议可以由脚本驱动实现,因此,我们先通过脚本驱动向导生成框架,然后在生成的代码中修改即可。2. 步骤2:根据向导生成模板向导使用步骤在此不在介绍,主要说明需注意的几部分:1. 配置属性由协议知,本地站号也需要通过设备属性获得,因此设备属性添加“本地站号”,如图3-2-1所示。图3-2-12. 配置通讯帧A. 配置通讯帧结

24、构信息,如图3-2-2所示。图3-2-2B. 设置收发通讯帧,如图3-2-3所示。图3-2-3注释:1. 由于“本地站号”用向导无法生成,因此需要在代码中修改;帧识别号是固定值,可在向导中添加(合在帧头中),也可在代码中修改。2. 由于接收命令只需要各部分的数据长度,因此:帧头为帧头+帧识别号;地址为本地站号+设备地址3. 步骤3:修改向导生成的代码1. 根据向导生成的代码如下所示。2. 根据步骤2所知,组帧部分代码需要修改,添加“本地站号”和“帧识别号”,修改完代码如下所示。4. 步骤4:进行调试调试过程与ASCII码协议的调试相同,此处不再介绍。第四章 新增函数使用说明一 数据解析函数1.

25、!SvrGetByteFromByteArr(ByRef ByteArr, start, ByRef n, Flag)函数意义:将字节数组ByteArr中从start位置开始的内容输出到变量n中,输出格式为1个字节整数,字节数组位置计数从1开始。返 回 值:整型,判断输出是否正常。0:正常小于0:错误,具体意义如下:-1:起始索引start小于1;-2:起始索引start大于数组上限;-3:字节数组长度不足;-4:n不是整型变量;-5:其他错误。参数:ByteArr:传址型,字节型数组。start:整型,输出的首位置,从1开始。n:传址型,长整型。Flag:长整型,解析方式0:8位无符号;1:

26、8位有符号;2:8位BCD码。实例: !SvrGetByteFromByteArr(BA, 2, A, 1),字节数组为:00 01 02 03 04 05 06 07 08 09 00,则A=1。2.!SvrGetShortFromByteArr(ByRef ByteArr, start, ByRef n, Flag)函数意义:将字节数组ByteArr中从start位置开始的内容输出到变量n中,输出的格式为2字节整型,字节数组位置计数从1开始。返 回 值:整型,判断是输出是否正常:0:正常;小于0:错误,具体意义如下:-1:启始索引start小于1;-2:启始索引start大于数组上限;-3

27、:字节数组长度不足;-4:n 不是整型变量;-5:其他错误。参数:ByteArr:传址型,字节型数组。start:整型,输出的首位置,从1开始。n:传址型,长整型。Flag:长整型,解析方式0:16位无符号;1:16位有符号;2:16位BCD码。实例:!SvrGetByteFromByteArr (BA, 2, A, 1),字节数组为:00 01 02 03 04 05 06 07 08 09 00 00,则A=513。3.!SvrGetIntFromByteArr(ByRef ByteArr, start, ByRef n, Flag)函数意义:将字节数组ByteArr中从start位置开始

28、的内容输出到变量n中,输出的格式为4字节整型,字节数组位置计数从1开始。返 回 值:整型,判断是输出是否正常:0:正常;小于0:错误,具体意义如下:-1:启始索引start小于1;-2:启始索引start大于数组上限;-3:字节数组长度不足;-4:n 不是整型变量;-5:其他错误。参 数:ByteArr:传址型,字节型数组。start:整型,输出的首位置,从1开始。n:传址型,长整型。Flag:长整型,解析方式0:32位无符号;1:32位有符号;2:32位BCD码。实 例:!SvrGetByteFromByteArr (BA, 2, A, 1),字节数组为:00 01 02 03 04 05

29、06 07 08 09 00 00,则A=513。4.!SvrGetSingleFromByteArr(ByRef ByteArr, start, ByRef x, Flag)函数意义:将字节数组ByteArr中从start位置开始的内容输出到变量x中,输出的格式为4字节数值型,字节数组位置计数从1开始。返 回 值:整型,判断是输出是否正常:0:正常;小于0:错误,具体意义如下:-1:启始索引start小于1;-2:启始索引start大于数组上限;-3:字节数组长度不足;-4:n 不是浮点型变量;-5:其他错误。参 数:ByteArr:传址型,字节型数组。start:整型,输出的首位置,从1开

30、始。n:传址型,长整型。Flag:长整型,对应4种解码次序0:“”;1:“”;2:“”;3:“”。实 例:!SvrGetByteFromByteArr (BA, 1, x, 3),字节数组为:00 00 08 40 04 05 06 07 08 09 00 00,则A=4.05.!SvrGetByteFromHexStr(str, ByRef n, Flag)函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为1字节数值型,从头取2个字符转换成一个字节HEX值返 回 值:整型,判断是输出是否正常:0:正常;小于0:错误,具体意义如下:-1:解析字符长度不足,至少长度为2字符-

31、2:解析字符长度一定为偶数个-3:解析字符长度大于2个,只取左边2字符解析-4:变量类型,不是整形-5:其他错误参 数:str,字符数据。n,传址型,长整型;Flag, 长整型,解析方式0:8位无符号;1:8位有符号;2:8位BCD码实 例:! SvrGetByteFromHexStr (str,n,0),str为:“0102030405060708” 则n = 16.!SvrGetShortFormHexStr(str, ByRef n, Flag)函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为2字节数值型,从头取4个字符转换成2个字节短整型值返 回 值:整型,判断是

32、输出是否正常:0:正常;小于0:错误,具体意义如下:-1:解析字符长度不足,至少长度为2字符-2:解析字符长度一定为偶数个-3:解析字符长度大于2个,只取左边2字符解析-4:变量类型,不是整形-5:其他错误参 数:str,字符数据。n,传址型,长整型;Flag, 长整型,解析方式0:16位无符号;1:16位有符号;2:16位BCD码实 例:!SvrGetShortFromHexStr (str,n,0),str为:“0102030405060708” 则n = 5137.!SvrGetIntFromHexStr(str, ByRef n, Flag)函数意义:获得将HEX表示的字符数据的内容输

33、出到变量x中,输出的格式为4字节数值型,从头取8个字符转换成4个字节整型值返 回 值:整型,判断是输出是否正常:0:正常;小于0:错误,具体意义如下:-1:解析字符长度不足,至少长度为2字符-2:解析字符长度一定为偶数个-3:解析字符长度大于2个,只取左边2字符解析-4:变量类型,不是整形-5:其他错误参 数:str,字符数据。n,传址型,长整型;Flag, 长整型,解析方式0:32位无符号;1:32位有符号;2:32位BCD码实 例:! SvrGetIntFromHexStr (str,n,0),str为:“10200000030405060708” 则n = 5138.!SvrGetSin

34、gleFromHexStr(str, ByRef x, Flag)函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为4字节数值型,从头取8个字符转换成4个字节单精度浮点值返 回 值:整型,判断是输出是否正常:0:正常;小于0:错误,具体意义如下:-1:解析字符长度不足,至少长度为2字符-2:解析字符长度一定为偶数个-3:解析字符长度大于2个,只取左边2字符解析-4:变量类型,不是浮点型变量-5:其他错误参 数:str,字符数据。x,传址型,数值型;Flag, 长整型,对应4种解码次序0:“”;1:“”;2:“”;3:“”实 例:! SvrGetSingleFromHexSt

35、r (str,x,3),str为:“000008400102030405060708” 则x = 4.0二 数据校验函数1.!SvrByteArraySum(ByRef ByteArr, start, length)函数意义:从数组中start索引开始,连续length个字节,按求和方式计算返回校验结果返 回 值:整型,返回正确的校验值/判断是输出是否正常:=0:校验结果;小于0:错误,具体意义如下:-1:启始索引start小于1-2:启始索引start大于数组上限-3:校验数组长度小于等于零-4:字节数组长度不足-5:其他错误参 数:ByteArr,传址型,字节型数组。start,长整型,检

36、验数据的启始字节在数组中length, 长整型,连续校验数据的个数实 例:n = !SvrByteArraySum(ByteArr,1,4) ByteArr为:00 01 02 03 04 05 06 07 则n = 62.!SvrStrSum(str, Flag)函数意义:返 回 值:字符型,返回正确的校验值/判断是输出是否正常:错误返回值: -1:校验字符串长度为0-2:校验的字符串长度必须为偶数参 数:str,字符型,需要校验数据Flag,长整型,0:按2个字符形成1BYTE HEX值进行校验;1:直接按ASCII字符值进行校验。实 例:strRe = !SvrStrSum(str,0)

37、 str为:“0001020304050607”则strRe = “06”3.!SvrByteArrayXOR(ByRef ByteArr, start, length)函数意义:从数组中start索引开始,连续length个字节,按异或方式计算返回校验结果返 回 值:整型,返回正确的校验值/判断是输出是否正常:=0:校验结果;小于0:错误,具体意义如下:-1:启始索引start小于1-2:启始索引start大于数组上限-3:校验数组长度小于等于零-4:字节数组长度不足-5:其他错误参 数:ByteArr,传址型,字节型数组。start,长整型,检验数据的启始字节在数组中length, 长整型

38、,连续校验数据的个数实 例:n = !SvrByteArraySum(ByteArr,1,4) ByteArr为:00 01 02 03 04 05 06 07则n = 04.!SvrStrXOR(str, Flag)函数意义: 返 回 值:字符型,返回正确的校验值/判断是输出是否正常:错误返回值:-1:校验字符串长度为0-2:校验的字符串长度必须为偶数参 数:str,字符型,需要校验数据Flag,长整型,0:按2个字符形成1BYTE HEX值进行校验;1:直接按ASCII字符值进行校验实 例:strRe = !SvrStrSum(str,0) str为:“0001020304050607”则

39、strRe = “00”5.!SvrStrModbusCRC(ByRef ByteArr, start, length)函数意义: 从数组中start索引开始,连续length个字节,按异或方式计算返回校验结果返 回 值:整型,返回正确的校验值/判断是输出是否正常:=0:校验结果;小于0:错误,具体意义如下:-1:启始索引start小于1-2:启始索引start大于数组上限-3:校验数组长度小于等于零-4:字节数组长度不足-5:其他错误参 数:ByteArr,传址型,字节型数组。start,长整型,检验数据的启始字节在数组中length, 长整型,连续校验数据的个数实 例:n = ! SvrStrModbusLRC (ByteArr,1,4) ByteArr为:010300000008则n = 0x0c446.!SvrStrModbusLRC(str, start, length)函数意义: 返 回 值:字符型,返回正确的校验值/判断是输出是否正常: 错误返回值:-1:启始索引start小于1-2:启始索引start大于数组上限-3:校验数组长度小于等于零-4:字节数组长度不足参 数:str,字符型,需要校验数据start,长整型,检验数据的启始字节在数组中lengt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论