資源描述:
《VB編寫的ModbusRTU協(xié)議通訊源程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、VB編寫的ModbusRTU協(xié)議通訊源程序VB編寫的ModbusRTU協(xié)議通訊源程序sunwu建議刪除該貼??!丨收藏丨回復(fù)修改
2、2005-12-0912:37:09樓主modbusrtu協(xié)議叮以算是一種事實(shí)上的工業(yè)標(biāo)準(zhǔn)協(xié)議,為許多儀表、PLC等所支持。以前有幾個(gè)用戶問如何使用VB編程來(lái)與我們的KND-K3系列PLC通訊,于是整了一個(gè)demo程序。這次把這個(gè)demo共享,希望能給大家一點(diǎn)幫助。1)模塊文件:modCRC,其中包含了CRC校驗(yàn)的函數(shù)。'delta待校驗(yàn)的數(shù)組名稱'no數(shù)組中元素個(gè)數(shù)'btLoCRC算出的CRC高字節(jié)'btHiCRC算出的CRC低字節(jié)PublicFunction
3、CalCRC16Fast(data()AsByte,noAsInteger,btLoCRCAsByte,btHiCRCAsByte)AsStringDimCLAsByte,CHAsByte&HA001DimSaveHiAsByte,SaveLoAsByteDimiAsIntegerDimFlagAsIntegerbtHiCRC=&HFFbtLoCRC二&HFFCL=&H1CH二&HA0Fori=0To(no-1)btHiCRC器進(jìn)行異或btHiCRCXordata(i)J每一個(gè)數(shù)據(jù)與CRC寄存ForFlag=0To7SaveHi=btLoCRCSaveLo=btHiCRCbtLoCRC=
4、btLoCRC2btHiCRC二btHiCRC2'高位右移一位'低位右移一位一位為1前面補(bǔ)1If((SaveHiAnd&H1)二&H1)Then'如果高位字節(jié)最后btHiCRC二btHiCRCOr&H80'則低位字節(jié)右移后EndIf'否則自動(dòng)補(bǔ)0If((SaveLoAnd&II1)=&1I1)Then'如果LSB為1,則與多項(xiàng)式碼進(jìn)行異或btLoCRC=btLoCRCXorCHbtHiCRC二btHiCRCXorCLEndIfNextFlagNextiDimReturnData(l)AsByteReturnData(O)=btHiCRCReturnData(l)二btLoCRCCal
5、CRC16Fast=ReturnDataEndFunctionPublicFunctionCalCRC16Tbl(data()AsByte,noAsInteger,btLoCRCAsByte,btlliCRCAsByte)AsStringDimbtLoCRCAsByteDimbtlliCRCAsBytebtLoCRC二&HFFbtHiCRC=&HFFDimiAsIntegerDimilndexAsLongFori=0To(no一1)訂ndex二btHiCRCXordata(i)btHiCRC二btLoCRCXorGetCRCLo(ilndex)'低位處理'高位btLoCRC=GetCRC
6、Hi(ilndex)處理NextiDimReturnData(1)AsByteReturnData(0)=btHiCRCReturnData(1)二btLoCRCCalCRC16Tbl=ReturnDataEndFunction'CRC低位字節(jié)值表FunctionGetCRCLo(IndAsLong)AsByteGetCRCLo=Choose(Ind+1,&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&H41,&H1,&HC0,_&H80,&H41,&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&H41,_&H0,&HC1,&H81,&H40,&H
7、0,&HC1,&H81,&II40,&1I1,&IIC0,_&II80,&II41,&II1,&IIC0,&II80,&1I41,&II0,&HC1,&H81,&H40,_&II0,&IIC1,&II81,&II40,&II1,&IIC0,&II80,&H41,&H0,&HC1,_&H81,&H40,&H1,&HC0,&H80,&H41,&H1,&IIC0,&1I80,&II41,_&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&H41,&H0,&HC1,_&II81,&II40,&II0,&IIC1,&II81,&II40,&II1,&HC0,&H80,&H41,_
8、&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&II41,&1I1,&IIC0,_&II80,&II41,&II0,&IIC1,&II81,&II40,&II0,&HC1,&H81,&H40,_&II1,&IIC0,&II80,&II41,&II1,&IIC0,&II80,&H41,&H0,&HC1,&H81,&H40,&H1,&HCO,&H80,&H41,&H0,&HC1,&H81,&H40,&II0,&IIC