日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MCGS组态屏CRC16(Modbus)校验计算脚本

發布時間:2023/12/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MCGS组态屏CRC16(Modbus)校验计算脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MCGS組態屏CRC16(Modbus)校驗計算腳本
說明:該腳本可對任意字節長度的字符型變量進行CRC校驗碼計算,首先在實時數據庫中新建以下變量:
inputString——字符型
stringLength——數值型
mid_n——數值型
CRCFull——數值型
CRCLSB——數值型
i——數值型
CRC1——字符型
CRC0——字符型
CRC碼——字符型

然后編寫腳本代碼:
stringLength=!len(inputString) '讀取字符串長度
mid_n=1 '計數變量
CRCFull=65535 '0XFFFF
while(mid_n<=stringLength)
i=0
CRCFull=!BitXor(CRCFull,!Hex2I(!mid(inputString,mid_n,2))) '按位異或
while(i<8)
CRCLSB=!BitAnd(CRCFull,1)
IF CRCLSB=1 THEN
CRCFull=!BitAnd(!BitRShift(CRCFull,1),32767)
CRCFull=!BitXor(CRCFull,40961) 'A001對應40961
ELSE
CRCFull=!BitAnd(!BitRShift(CRCFull,1),32767)
ENDIF
i=i+1
endwhile
mid_n=mid_n+2
endwhile

CRC1=!I2Hex(!BitAnd(!BitRShift(CRCFull,8),255)) '高八位
CRC0=!I2Hex(!BitAnd(CRCFull,255)) '低八位
CRC碼=CRC1+CRC0

將該腳本嵌入策略或其他模塊,即可運行。
程序運行結果:
例如 inputString 為 “010600030001”,經腳本計算,CRC碼為 “0AB8”

總結

以上是生活随笔為你收集整理的MCGS组态屏CRC16(Modbus)校验计算脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。