×Ö½ÚÕûÐÍ£¬×Ö½ÚÊý×éλÖüÆÊý´Ó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´óÓÚÊý×éÉÏÏÞ
Ïà¹ØÍÆ¼ö£º