MCGS组态屏CRC16(Modbus)校验计算脚本
MCGS組態(tài)屏CRC16(Modbus)校驗計算腳本
說明:該腳本可對任意字節(jié)長度的字符型變量進行CRC校驗碼計算,首先在實時數(shù)據(jù)庫中新建以下變量:
inputString——字符型
stringLength——數(shù)值型
mid_n——數(shù)值型
CRCFull——數(shù)值型
CRCLSB——數(shù)值型
i——數(shù)值型
CRC1——字符型
CRC0——字符型
CRC碼——字符型
然后編寫腳本代碼:
stringLength=!len(inputString) '讀取字符串長度
mid_n=1 '計數(shù)變量
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
將該腳本嵌入策略或其他模塊,即可運行。
程序運行結(jié)果:
例如 inputString 為 “010600030001”,經(jīng)腳本計算,CRC碼為 “0AB8”
總結(jié)
以上是生活随笔為你收集整理的MCGS组态屏CRC16(Modbus)校验计算脚本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#学习笔记-Windows窗体自定义初
- 下一篇: 支付宝的一些小问题,注意事项等等,等用得