組態(tài)王上位機(jī)與單片機(jī)通信協(xié)議_第1頁
組態(tài)王上位機(jī)與單片機(jī)通信協(xié)議_第2頁
組態(tài)王上位機(jī)與單片機(jī)通信協(xié)議_第3頁
組態(tài)王上位機(jī)與單片機(jī)通信協(xié)議_第4頁
組態(tài)王上位機(jī)與單片機(jī)通信協(xié)議_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——組態(tài)王上位機(jī)與單片機(jī)通信協(xié)議一、通訊參數(shù):

通訊參數(shù)包括數(shù)據(jù)位,中止位,波特率、校驗(yàn)方式。

數(shù)據(jù)位、中止位、波特率由單片機(jī)決定。組態(tài)王中的設(shè)定和單片機(jī)一致即可。校驗(yàn)方式參照“數(shù)據(jù)傳輸格式〞中相關(guān)部分。二、數(shù)據(jù)傳輸格式:

格式1、組態(tài)王發(fā)送地址請(qǐng)求格式:(此時(shí)檢驗(yàn)位為1)ENQStaEOTCRC格式2、單片機(jī)應(yīng)答地址格式:(此時(shí)檢驗(yàn)位為0)ACKStaETXCRC格式3、組態(tài)王讀數(shù)據(jù)請(qǐng)求格式:(此時(shí)檢驗(yàn)位為0)ENQRDataTypeDataAddrDataNumEOTCRC格式4、單片機(jī)應(yīng)答讀數(shù)據(jù)格式(正確):(此時(shí)檢驗(yàn)位為0)ACKDataLongData?.ETXCRC格式5、單片機(jī)應(yīng)答讀數(shù)據(jù)格式(錯(cuò)誤):(此時(shí)檢驗(yàn)位為0)NAKErrorCodeETXCRC格式6、組態(tài)王寫數(shù)據(jù)請(qǐng)求格式:(此時(shí)檢驗(yàn)位為0)ENQData?.WEOTDataTypeDataAddrCRC格式7、單片機(jī)應(yīng)答寫數(shù)據(jù)格式(正確):(此時(shí)檢驗(yàn)位為0)ACK三、時(shí)序:讀數(shù)據(jù):組態(tài)王單片機(jī)ErrorCodeETXCRC第一步:格式1其次步:格式2第三步:格式3第四步:格式4或格式5第五步:假使第四步單片機(jī)執(zhí)行格式4,終止。否則,執(zhí)行格式1。第六步:格式2第七步:格式3第八步:格式4或格式5寫數(shù)據(jù):

組態(tài)王第一步:格式1第三步:格式6第五步:假使第四步單片機(jī)執(zhí)行格式7的ErrorCode=0,終止。否則,執(zhí)行格式1。第七步:格式6四、協(xié)議說明:

數(shù)據(jù)傳輸:所有數(shù)據(jù)均為16進(jìn)制數(shù)ENQ(頭)ACK(頭)NAK(頭)EOT(尾)ETX(尾)H05H06H15H04H03詢問確認(rèn)否認(rèn)正文的終止終止正文請(qǐng)求幀的開始代碼ACK應(yīng)答幀的開始代碼NAK應(yīng)答幀的開始代碼請(qǐng)求幀的終止ASCII代碼應(yīng)答幀的終止ASCII代碼單片機(jī)其次步:格式2第四步:格式7第六步:格式2第八步:格式7Sta::設(shè)備地址1字節(jié)R:讀標(biāo)志1字節(jié)(0x52)W:寫標(biāo)志1字節(jié)(0x57)

DataType;需要交換的數(shù)據(jù)類型,1字節(jié)。1,字節(jié);2,字,3,浮點(diǎn)型。DataType的值123含義字節(jié)字浮點(diǎn)數(shù)DataNum:要讀取的數(shù)據(jù)的數(shù)量,1字節(jié)。

DataAddr;為數(shù)據(jù)偏移地址2字節(jié),低字節(jié)在前,高字節(jié)在后Data:實(shí)際傳輸?shù)臄?shù)據(jù),低字節(jié)在前,高字節(jié)在后

DataLong:單片機(jī)返回Data的字節(jié)數(shù),2字節(jié),低字節(jié)在前,高字節(jié)在后CRC:為從第一個(gè)字節(jié)至CRC前的所有字節(jié)的異或值,1字節(jié)ErrorCode:ErrorCode數(shù)值01234

含義正確應(yīng)答數(shù)據(jù)類型錯(cuò)誤數(shù)據(jù)范圍超限指令無法識(shí)別,應(yīng)為R或W。校驗(yàn)錯(cuò)誤1.通訊口設(shè)置:

通訊方式:RS-232,RS-485,RS-422均可。

波特率:由單片機(jī)決定(2400,4800,9600and19200bps)。字節(jié)數(shù)據(jù)格式:由單片機(jī)決定。起始位

注意:在組態(tài)王中設(shè)置的通訊參數(shù)如波特率,數(shù)據(jù)位,中止位,奇偶校驗(yàn)必需與單片機(jī)編程中的通訊參數(shù)一致

2.在組態(tài)王中定義設(shè)備地址的格式格式:##.#

前面的兩個(gè)字符是設(shè)備地址,范圍為0-255,此地址為單片機(jī)的地址,由單片機(jī)中的程序決定;

后面的一個(gè)字符是用戶設(shè)定是否打包,“0〞為不打包、“1〞為打包,用戶一旦在定義設(shè)備時(shí)確定了打包,組態(tài)王將處理讀下位機(jī)變量時(shí)數(shù)據(jù)打包的工作。

3.在組態(tài)王中定義的寄放器格式寄放器名稱Xdd數(shù)據(jù)位校驗(yàn)位中止位dd上限65535dd下限0數(shù)據(jù)類型FLOAT/BYTE/UINT斜體字dd代表數(shù)據(jù)地址,此地址與單片機(jī)的數(shù)據(jù)地址相對(duì)應(yīng)。

注意:在組態(tài)王中定義變量時(shí),一個(gè)X寄放器根據(jù)所選數(shù)據(jù)類型

(BYTE,UINT,FLOAT)的不同分別占用一個(gè)、兩個(gè),四個(gè)字節(jié),定義不同的數(shù)據(jù)類型要注意寄放器后面的地址,同一數(shù)據(jù)區(qū)內(nèi)不可交織定義不同數(shù)據(jù)類型的變量。為提高通訊速度建議用戶使用連續(xù)的數(shù)據(jù)區(qū)。

例如,

1、在單片機(jī)中定義從地址0開始的數(shù)據(jù)類型為BYTE型的變量:

則在組態(tài)王中定義相應(yīng)的變量的寄放器為X0、X1、X2、X3、X4。。。。。。。。,數(shù)據(jù)類型為BYTE,每個(gè)變量占一個(gè)字節(jié)

2、在單片機(jī)中定義從地址100開始的數(shù)據(jù)類型為UINT型的變量:則在組態(tài)王中定義相應(yīng)的變量的寄放器為X100、X102、X104、X106、X108。。。。。。。。,數(shù)據(jù)類型UINT,每個(gè)變量占兩個(gè)字節(jié)3、在單片機(jī)中定義從地址200開始的數(shù)據(jù)類型為FLOAT型的變量:

則在組態(tài)王中定義相應(yīng)的變量的寄放器為X200、X204、X208、X212。。。。。。。,數(shù)據(jù)類型FLOAT,每個(gè)變量占四個(gè)字節(jié)

3.組態(tài)王與單片機(jī)通訊的命令格式:

讀寫格式(除字頭、字尾外所有字節(jié)均為ASCII碼)

字頭設(shè)備地址說明;

字頭:1字節(jié)1個(gè)ASCII碼,40H

設(shè)備地址:1字節(jié)2個(gè)ASCII碼,0—255(即00x0ffH)標(biāo)志:1字節(jié)2個(gè)ASCII碼,bit0~bit7,bit0=0:讀,bit0=1:寫。bit1=0:不打包。

bit3bit2=00,數(shù)據(jù)類型為字節(jié)。bit3bit2=01,數(shù)據(jù)類型為字。

標(biāo)志數(shù)據(jù)地址數(shù)據(jù)字節(jié)數(shù)數(shù)據(jù)?異或CR

3、注:

儀表內(nèi)部數(shù)據(jù)為十六進(jìn)制表示的十進(jìn)制數(shù)。如:實(shí)時(shí)測(cè)量值為500,則用十六進(jìn)制表示為1F4H。儀表通訊傳輸是將上述十六進(jìn)制數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)ASCII碼(即一字節(jié)的16進(jìn)制數(shù)轉(zhuǎn)化為2個(gè)ASCII碼──高4位ASCII碼+低4位ASCII碼)。

如:上述數(shù)據(jù)1F4H(16進(jìn)制),傳輸時(shí),轉(zhuǎn)化為ASCII碼則為30H、31H、46H、34H。

此浮點(diǎn)數(shù)格式的轉(zhuǎn)換:1)ASCII碼到浮點(diǎn)數(shù):

floatC4toD(char*c){

BYTEHd[30],Jiema[30];floatDTc[30];floatDecimal=0;

memset(Hd,0,sizeof(Hd));

memset(Jiema,0,sizeof(Jiema));memset(DTc,0,sizeof(DTc));

floatreturnflo=0;

BOOLShuFU=FALSE,JieFU=FALSE;

if((c[7]>0x40)elseif((c[7]>0x60)else

Hd[7]=((c[7]-0x30)

if((c[6]>0x40)elseif((c[6]>0x60)else

Hd[6]=((c[6]-0x30)

DTc[2]=(float)(((float)(Hd[6]*16.0)+(float)(Hd[7]))/256.0);

if((c[5]>0x40)elseif((c[5]>0x60)else

Hd[5]=((c[5]-0x30)

if((c[4]>0x40)elseif((c[4]>0x60)else

Hd[4]=((c[4]-0x30)

DTc[1]=(float)((((float)(Hd[4]*16.0)+(float)Hd[5])+DTc[2])/256.0);

if((c[3]>0x40)elseif((c[3]>0x60)else

Hd[3]=((c[3]-0x30)

if((c[2]>0x40)elseif((c[2]>0x60)else

Hd[2]=((c[2]-0x30)

Decimal=(float)(((float)(Hd[2]*16)+(float)(Hd[3])+DTc[1])/256.0);

if((c[1]>0x40)elseif((c[1]>0x60)else

Jiema[1]=((c[1]-0x30)

if((c[0]>0x40)elseif((c[0]>0x60)else

Jiema[0]=((c[0]-0x30)

ShuFU=((Jiema[0]JieFU=((Jiema[0]

Jiema[2]=(Jiema[0]

if(JieFU)

returnflo=(float)pow(2,(-1)*Jiema[2])*Decimal;else

returnflo=(float)pow(2,Jiema[2])*Decimal;

if(ShuFU)

returnflo=(-1)*returnflo;

returnreturnflo;}

2)浮點(diǎn)數(shù)到ASCII碼:

voidD4toC(char*c,floatd){

BYTEi=0,Jiema=0;charinbyte1[30];

BOOLShuFu=FALSE,JieFu=FALSE;intinbyte2=0,inbyte3=0,inbyte4=0;

charafterbyte2[30],afterbyte3[30],afterbyte4[30];

floatF_afterbyte2=0,F_afterbyte3=0,F_afterbyte4=0;

memset(inbyte1,0x30,sizeof(inbyte1));

memset(afterbyte2,0x30,sizeof(afterbyte2));memset(afterbyte3,0x30,sizeof(afterbyte3));

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論