資源描述:
《modbus通信vb源程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、用VisualBasic編寫的Modbus通信源程序以下是PC機(jī)與PLC進(jìn)行Modbus通信的VB源程序,提供給大家做個(gè)參考。1)模塊文件:modCRC,其中包含了CRC校驗(yàn)的函數(shù)。'data待校驗(yàn)的數(shù)組名稱'no數(shù)組中元素個(gè)數(shù)'btLoCRC算出的CRC高字節(jié)'btHiCRC算出的CRC低字節(jié)PublicFunctionCalCRC16Fast(data()AsByte,noAsInteger,btLoCRCAsByte,btHiCRCAsByte)AsStringDimCLAsByte,CHAs
2、Byte'多項(xiàng)式碼&HA001DimSaveHiAsByte,SaveLoAsByteDimiAsIntegerDimFlagAsIntegerbtHiCRC=&HFFbtLoCRC=&HFFCL=&H1CH=&HA0Fori=0To(no-1)btHiCRC=btHiCRCXordata(i)'每一個(gè)數(shù)據(jù)與CRC寄存器進(jìn)行異或ForFlag=0To7SaveHi=btLoCRCSaveLo=btHiCRCbtLoCRC=btLoCRC2'高位右移一位btHiCRC=btHiCRC2'低位右移一
3、位If((SaveHiAnd&H1)=&H1)Then'如果高位字節(jié)最后一位為1btHiCRC=btHiCRCOr&H80'則低位字節(jié)右移后前面補(bǔ)1EndIf'否則自動(dòng)補(bǔ)0If((SaveLoAnd&H1)=&H1)Then'如果LSB為1,則與多項(xiàng)式碼進(jìn)行異或btLoCRC=btLoCRCXorCHbtHiCRC=btHiCRCXorCLEndIfNextFlagNextiDimReturnData(1)AsByteReturnData(0)=btHiCRC'CRC高位ReturnData(1)=
4、btLoCRC'CRC低位CalCRC16Fast=ReturnDataEndFunctionPublicFunctionCalCRC16Tbl(data()AsByte,noAsInteger,btLoCRCAsByte,btHiCRCAsByte)AsStringDimbtLoCRCAsByteDimbtHiCRCAsBytebtLoCRC=&HFFbtHiCRC=&HFFDimiAsIntegerDimiIndexAsLongFori=0To(no-1)iIndex=btHiCRCXordat
5、a(i)btHiCRC=btLoCRCXorGetCRCLo(iIndex)'低位處理btLoCRC=GetCRCHi(iIndex)'高位處理NextiDimReturnData(1)AsByteReturnData(0)=btHiCRC'CRC高位ReturnData(1)=btLoCRC'CRC低位CalCRC16Tbl=ReturnDataEndFunction'CRC低位字節(jié)值表FunctionGetCRCLo(IndAsLong)AsByteGetCRCLo=Choose(Ind+1,_
6、&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&H41,&H1,&HC0,_&H80,&H41,&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&H41,_&H0,&HC1,&H81,&H40,&H0,&HC1,&H81,&H40,&H1,&HC0,_&H80,&H41,&H1,&HC0,&H80,&H41,&H0,&HC1,&H81,&H40,_&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&H41,&H0,&HC1,_&H81,&H40,
7、&H1,&HC0,&H80,&H41,&H1,&HC0,&H80,&H41,_&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&H41,&H0,&HC1,_&H81,&H40,&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&H41,_&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&H41,&H1,&HC0,_&H80,&H41,&H0,&HC1,&H81,&H40,&H0,&HC1,&H81,&H40,_&H1,&HC0,&H80,&H41,
8、&H1,&HC0,&H80,&H41,&H0,&HC1,_&H81,&H40,&H1,&HC0,&H80,&H41,&H0,&HC1,&H81,&H40,_&H0,&HC1,&H81,&H40,&H1,&HC0,&H80,&H41,&H1,&HC0,_&H80,&H41,&H0,&HC1,&H81,&H40,&H0,&HC1,&H81,&H40,_&H1,&HC0,&H80,&H41,&H0,&HC1,&H81,&H40,&H1,&HC0,_&H80,&H41,&H1