昆仑通态脚本开发函数

字节整型,字节数组位置计数从1开始。 返 回 值:整型,判断是输出是否正常: 0: 正常; 小于0: 错误,具体意义如下: -1:启始索引start小于1 -2:启始索引start大于数组上限 -3:字节数组长度不足 -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。

!SvrGetIntFromByteArr(ByRef ByteArr ,start, ByRef n, Flag)

函数意义:将字节数组ByteArr中从start位置开始的内容输出到变量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码] 实 例:! SvrGetIntFromByteArr (BA,2, A,1),字节数组为:00 01 02 03 04 05 06 07 08 09 00 00 则A=67305985 。

!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开始。 n,传址型,长整型;

Flag, 长整型,对应4种解码次序[数值范围:0~3]

实 例:SvrGetSingleFromByteArr(BA,1, x,3) 字节数组为:00 00 80 40 04 05 06 07 08 09 00 00 则A=4.0。

!SvrGetByteFromHexStr(str, ByRef n, Flag)

函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为1字节数值型,从头取2个字符转换成一个字节HEX值 返 回 值:整型,判断是输出是否正常: 0: 正常; 小于0: 错误,具体意义如下: -1:解析字符长度不足,至少长度为2字符 -2:解析字符长度一定为偶数个 -3:解析字符长度大于2个,只取左边2字符解析 -4:变量类型,不是整形 -5:其他错误

参 数:str,字符数据。 n,传址型,长整型;

Flag, 长整型,解析方式[0:8位无符号;1:8位有符号;2:8位BCD码] 实 例:! SvrGetByteFromHexStr (str,n,0),str为:“0102030405060708” 则n = 1。

!SvrGetShortFromHexStr(str, ByRef n, Flag)

函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为2字节数值型,从头取4个字符转换成2个字节短整型值 返 回 值:整型,判断是输出是否正常: 0: 正常; 小于0: 错误,具体意义如下: -1:解析字符长度不足,至少长度为4字符 -2:解析字符长度一定为偶数个 -3:解析字符长度大于2个,只取左边2字符解析 -4:变量类型,不是整形 -5:其他错误

参 数:str,字符数据。 n,传址型,长整型;

Flag, 长整型,解析方式[0:16位无符号;1:16位有符号;2:16位BCD码] 实 例:!SvrGetShortFromHexStr (str,n,0) str为:“0201030405060708” 则n = 513

!SvrGetIntFromHexStr(str, ByRef n, Flag)

函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为4字节数值型,从头取8个字符转换成4个字节整型值 返 回 值:整型,判断是输出是否正常:

0: 正常; 小于0: 错误,具体意义如下: -1:解析字符长度不足,至少长度为8字符 -2:解析字符长度一定为偶数个 -3:解析字符长度大于2个,只取左边2字符解析 -4:变量类型,不是整形 -5:其他错误

参 数:str,字符数据。 n,传址型,长整型;

Flag, 长整型,解析方式[0:32位无符号;1:32位有符号;2:32位BCD码] 实 例:! SvrGetIntFromHexStr (str,n,0),str为:“00000201030405060708” 则n = 513。

!SvrGetSingleFromHexStr(str, ByRef x, Flag)

函数意义:获得将HEX表示的字符数据的内容输出到变量x中,输出的格式为4字节数值型,从头取8个字符转换成4个字节单精度浮点值 返 回 值:整型,判断是输出是否正常: 0: 正常; 小于0: 错误,具体意义如下: -1:解析字符长度不足,至少长度为8字符 -2:解析字符长度一定为偶数个 -3:解析字符长度大于2个,只取左边2字符解析 -4:变量类型,不是浮点型变量 -5:其他错误

参 数:str,字符数据。 x,传址型,数值型;

Flag, 长整型,对应4种解码次序[数值范围:0~3]。 实 例:! SvrGetSingleFromHexStr (str,x,3),str为:“000080400102030405060708” 则x = 4.0。

!SvrByteArraySum(ByRef ByteArr,start, length)

函数意义: 从数组中start索引开始,连续length个字节,按求和方式计算返回校验结果 返 回 值:整型,返回正确的校验值/判断是输出是否正常: >=0: 校验结果; 小于0: 错误,具体意义如下: -1:启始索引start小于1 -2:启始索引start大于数组上限 -3:校验数组长度小于等于零 -4:字节数组长度不足 -5:其他错误

参 数:ByteArr,传址型,字节型数组。 start,长整型,检验数据的启始字节在数组中 length, 长整型,连续校验数据的个数

实 例:n = !SvrByteArraySum(ByteArr,1,4) ByteArr为:00 01 02 03 04 05 06 07 则n = 0x06。

!SvrStrSum(str,Flag)

函数意义:对字符串str按求和方式计算返回校验结果

返 回 值:字符型,返回正确的校验值/判断是输出是否正常: 错误返回值: ”-1”校验字符串长度为0 ”-2”校验的字符串长度必须为偶数 参 数:str,字符型,需要校验数据 Flag,长整型,0:按2个字符形成1BYTE HEX值进行校验;1:直接按ASCII字符值进行校验

实 例:strRe = !SvrStrSum(str,0), str为:\则strRe = “1C”。。

!SvrByteArrayXOR( ByRef ByteArr,start, length)

函数意义: 从数组中start索引开始,连续length个字节,按异或方式计算返回校验结果 返 回 值:整型,返回正确的校验值/判断是输出是否正常: >=0: 校验结果; 小于0: 错误,具体意义如下: -1:启始索引start小于1 -2:启始索引start大于数组上限 -3:校验数组长度小于等于零 -4:字节数组长度不足 -5:其他错误

参 数:ByteArr,传址型,字节型数组。 start,长整型,检验数据的启始字节在数组中 length, 长整型,连续校验数据的个数

实 例:n = !SvrByteArraySum(ByteArr,1,4) ByteArr为:00 01 02 03 04 05 06 07则n = 0。

!SvrStrXOR(str,Flag)

函数意义:对字符串str按异或方式计算返回校验结果

返 回 值:字符型,返回正确的校验值/判断是输出是否正常: 错误返回值: ”-1”校验字符串长度为0 ”-2”校验的字符串长度必须为偶数 参 数:str,字符型,需要校验数据 Flag,长整型,0:按2个字符形成1BYTE HEX值进行校验;1:直接按ASCII字符值进行校验

实 例:strRe = !SvrStrSum(str,0) str为:“0001020304050607”则strRe = “00”。

!SvrByteArrayModbusCRC(ByteArr,start, length)

函数意义: 从数组中start索引开始,连续length个字节,按ModbusCRC方式计算返回校验结果

返 回 值:整型,返回正确的校验值/判断是输出是否正常: >=0: 校验结果; 小于0: 错误,具体意义如下: -1:启始索引start小于1 -2:启始索引start大于数组上限

联系客服:779662525#qq.com(#替换为@)