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

下載本文檔

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

文檔簡(jiǎn)介

1、. .12/12組態(tài)王與單片機(jī)協(xié)議1通訊口設(shè)置: 通訊方式:RS-232,RS-485,RS-422均可。 波特率: 由單片機(jī)決定(2400,4800,9600and19200bps)。字節(jié)數(shù)據(jù)格式:由單片機(jī)決定。起始位數(shù)據(jù)位校驗(yàn)位停止位注意:在組態(tài)王中設(shè)置的通訊參數(shù)如波特率,數(shù)據(jù)位,停止位,奇偶校驗(yàn)必須與單片機(jī)編程中的通訊參數(shù)一致2在組態(tài)王中定義設(shè)備地址的格式格式:前面的兩個(gè)字符是設(shè)備地址,圍為0255,此地址為單片機(jī)的地址,由單片機(jī)中的程序決定 ;后面的一個(gè)字符是用戶設(shè)定是否打包,“0”為不打包、“1”為打包,用戶一旦在定義設(shè)備時(shí)確定了打包,組態(tài)王將處理讀下位機(jī)變量時(shí)數(shù)據(jù)打包的工作。3在組

2、態(tài)王中定義的寄存器格式寄存器名稱dd上限dd下限數(shù)據(jù)類型Xdd655350FLOAT/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ū)不可交叉定義不同數(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ī)中定義

3、從地址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è)備地址標(biāo)志數(shù)據(jù)地址數(shù)據(jù)字節(jié)數(shù)數(shù)據(jù)異或CR說明;字頭:1字節(jié)1個(gè)ASCII碼,40H設(shè)備地址: 1字節(jié)2個(gè)ASCII碼,0255(即00 x0ffH)標(biāo)志:1字

4、節(jié)2個(gè)ASCII碼,bit0bit7,bit0= 0:讀,bit0= 1:寫。bit1= 0:不打包。 bit3bit2 = 00,數(shù)據(jù)類型為字節(jié)。 bit3bit2 = 01,數(shù)據(jù)類型為字。 bit3bit2 = 1x,數(shù)據(jù)類型為浮點(diǎn)數(shù)。數(shù)據(jù)地址: 2字節(jié)4個(gè)ASCII碼,0 x00000 xffff數(shù)據(jù)字節(jié)數(shù):1字節(jié)2個(gè)ASCII碼,1100,實(shí)際讀寫的數(shù)據(jù)的字節(jié)數(shù)。數(shù)據(jù):為實(shí)際的數(shù)據(jù)轉(zhuǎn)換為ASCII碼,個(gè)數(shù)為字節(jié)數(shù)乘2。異或:異或從設(shè)備地址到異或字節(jié)前,異或值轉(zhuǎn)換成2個(gè)ASCII碼CR:0 x0d。通訊嘗試恢復(fù)命令(COMERROR),請(qǐng)求地址為0的一個(gè)BYTE數(shù)據(jù)31上位機(jī)發(fā)送讀命令字

5、頭設(shè)備地址標(biāo)志數(shù)據(jù)地址數(shù)據(jù)字節(jié)數(shù)異或CR下位機(jī)應(yīng)答:若正常:字頭設(shè)備地址數(shù)據(jù)字節(jié)數(shù)數(shù)據(jù)異或CR若不正常:字頭設(shè)備地址*異或CR例1:讀15號(hào)儀表,數(shù)據(jù)地址為15的數(shù)據(jù)。其中數(shù)據(jù)為100,數(shù)據(jù)類型為字節(jié),不打包。組態(tài)王所發(fā)數(shù)據(jù)為:403046433030303046303137320d字頭設(shè)備地址15標(biāo)志讀操作字節(jié)型不打包數(shù)據(jù)地址15數(shù)據(jù)字節(jié)數(shù)1異或若正確:4030463031363437350d字頭設(shè)備地址15數(shù)據(jù)字節(jié)數(shù)1數(shù)據(jù)100異或若不正確:4030462a2a37360d字頭設(shè)備地址15*異或例2:讀15號(hào)儀表,數(shù)據(jù)地址為15的數(shù)據(jù)。其中數(shù)據(jù)為100,數(shù)據(jù)類型為字節(jié),打包。組態(tài)王所發(fā)數(shù)據(jù)

6、為:403046433230303046303137300d字頭設(shè)備地址15標(biāo)志讀操作字節(jié)型打包數(shù)據(jù)地址15數(shù)據(jù)字節(jié)數(shù)1異或若正確:4030463031363437350d字頭設(shè)備地址15數(shù)據(jù)字節(jié)數(shù)1數(shù)據(jù)100異或若不正確:4030462a2a37360d設(shè)備地址15*異或3.2上位機(jī)發(fā)送寫命令字頭設(shè)備地址標(biāo)志數(shù)據(jù)地址數(shù)據(jù)字節(jié)數(shù)數(shù)據(jù)異或CR下位機(jī)應(yīng)答:若正常:字頭設(shè)備地址#異或CR若不正常:字頭設(shè)備地址*異或CR例1:寫15號(hào)儀表,數(shù)據(jù)地址為15。寫數(shù)據(jù)255,數(shù)據(jù)類型為字,不打包。組態(tài)王所發(fā)數(shù)據(jù)為:40304643353030304630323030464637340d字頭設(shè)備地址15標(biāo)志寫

7、操作字型不打包數(shù)據(jù)地址15數(shù)據(jù)字節(jié)數(shù)2數(shù)據(jù)255異或若正確:403046232337360d字頭設(shè)備地址15#異或若不正確:4030462a2a37360d字頭設(shè)備地址15*異或例2:寫15號(hào)儀表,數(shù)據(jù)地址為15。寫數(shù)據(jù)65535,數(shù)據(jù)類型為浮點(diǎn)型,打包。組態(tài)王所發(fā)數(shù)據(jù)為:40304643463030304630343130464646463030字頭設(shè)備地址15標(biāo)志寫操作浮點(diǎn)型打包數(shù)據(jù)地址15數(shù)據(jù)字節(jié)數(shù)4數(shù)據(jù)6553530300d異或若正確:403046232337360d字頭設(shè)備地址15#異或若不正確:4030462a2a37360d字頭設(shè)備地址15*異或5浮點(diǎn)數(shù)格式:4字節(jié)浮點(diǎn)數(shù) = 第

8、一字節(jié)高4位ASCII碼+第一字節(jié)低4位ASCII碼 +第二字節(jié)高4位ASCII碼+第二字節(jié)低4位ASCII碼 +第三字節(jié)高4位ASCII碼+第三字節(jié)低4位ASCII碼 +第四字節(jié)高4位ASCII碼+第四字節(jié)低4位ASCII碼第1字節(jié)低4位第2字節(jié)低4位第3字節(jié)低4位第4字節(jié)低4位XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX第1字節(jié)高4位第2字節(jié)高4位第3字節(jié)高4位第4字節(jié)高4位四字節(jié)浮點(diǎn)數(shù)格式:(1)第一字節(jié)(2)第二字節(jié)(3)第三字節(jié)(4)第四字節(jié)注:數(shù)符=0正,數(shù)符=1負(fù)階符=0正,階符=1負(fù)數(shù) 符階 符階 碼 D7 D6 D5 D0浮點(diǎn)數(shù)可表示圍:-12321232

9、數(shù)符:1位階符:1位階碼:6位例:流量積算控制儀表瞬時(shí)流量測(cè)量值數(shù)據(jù)=100.210轉(zhuǎn)換成浮點(diǎn)數(shù):100.210=270.7828125=0716+C816+6616+6616 =30ASCII+37ASCII+43ASCII+38ASCII+36ASCII+36ASCII+36ASCII+36ASCII小數(shù)部份:0.78281250.7828125256=200.40.4256=102.40.4256=102.4小數(shù)部分乘以256整數(shù)部份為第二字節(jié)(200)第二字節(jié)小數(shù)部分乘以256整數(shù)部份為第三字節(jié)(102)第三字節(jié)小數(shù)部分乘以256整數(shù)部份為第四字節(jié)(102)10進(jìn)制:007200102

10、102數(shù) 符階 符階 碼小 數(shù) 部 分小 數(shù) 部 分小 數(shù) 部 分第一字節(jié)第二字節(jié)第三字節(jié)第四字節(jié) 十六進(jìn)制: ASCII碼:007C86666303743( C )、38(8)36(6)、36(6)36(6)、36(6)第一字節(jié)第二字節(jié)第三字節(jié)第四字節(jié)傳輸格式如下:第1字節(jié)低4位第2字節(jié)低4位第3字節(jié)低4位第4字節(jié)低4位3037433836363636第1字節(jié)高4位第2字節(jié)高4位第3字節(jié)高4位第4字節(jié)高4位3、注: 儀表部數(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è)AS

11、CII碼高4位ASCII碼+低4位ASCII碼)。如:上述數(shù)據(jù)1F4H(16進(jìn)制),傳輸時(shí),轉(zhuǎn)化為ASCII碼則為30H、31H、46H、34H。6此浮點(diǎn)數(shù)格式的轉(zhuǎn)換:ASCII碼到浮點(diǎn)數(shù):/*in:char* c要轉(zhuǎn)化的ASII碼字符,應(yīng)為4個(gè)字符。Return :轉(zhuǎn)換后的浮點(diǎn)數(shù)。*/float C4toD(char * c)BYTE Hd30, Jiema30;float DTc30;float Decimal = 0;memset(Hd, 0, sizeof(Hd);memset(Jiema, 0, sizeof(Jiema);memset(DTc, 0, sizeof(DTc);flo

12、at returnflo = 0;BOOL ShuFU = FALSE, JieFU = FALSE; if(c7 0 x40) & (c7 0 x60) & (c7 0 x40) & (c6 0 x60) & (c6 0 x40) & (c5 0 x60) & (c5 0 x40) & (c4 0 x60) & (c4 0 x40) & (c3 0 x60) & (c3 0 x40) & (c2 0 x60) & (c2 0 x40) & (c1 0 x60) & (c1 0 x40) & (c0 0 x60) & (c0 3) 0;JieFU = (Jiema0 & 0 x04) 2) 0

13、;Jiema2 = (Jiema0 & 0 x03) * 16 + Jiema1;if(JieFU)returnflo = (float)pow(2, (-1) * Jiema2) * Decimal;elsereturnflo = (float)pow(2, Jiema2) * Decimal;if(ShuFU)returnflo = (-1) * returnflo;return returnflo;浮點(diǎn)數(shù)到ASCII碼:/*in:char * c:存儲(chǔ)浮點(diǎn)數(shù)轉(zhuǎn)換后的ASCII碼字符。Float d:要轉(zhuǎn)換的浮點(diǎn)數(shù)。Return : 無。*/void D4toC(char * c,floa

14、t d) BYTE i = 0, Jiema = 0;char inbyte130;BOOL ShuFu = FALSE, JieFu = FALSE;int inbyte2 = 0, inbyte3 = 0, inbyte4 = 0;char afterbyte230, afterbyte330, afterbyte430;float F_afterbyte2 = 0, F_afterbyte3 = 0, F_afterbyte4 = 0;memset(inbyte1, 0 x30, sizeof(inbyte1);memset(afterbyte2, 0 x30, sizeof(after

15、byte2);memset(afterbyte3, 0 x30, sizeof(afterbyte3);memset(afterbyte4, 0 x30, sizeof(afterbyte4);inbyte110 = 0 x0;afterbyte210 = 0 x0;afterbyte310 = 0 x0;afterbyte410 = 0 x0;if(d = 0)for(int j = 0; j 8; j+)cj = 0 x30;return;if(d 1)d =(float)(d / 2.0);i +;while(d = 0.5)JieFu = TRUE;d = (float)(d * 2.

16、0);i +;if(d = 1)for(int j = 2; j 8; j+)cj = 0 x46;elseinbyte2 = (int)(d * 256);F_afterbyte2 = (d * 256) - (int)(d * 256);inbyte3 = (int)(F_afterbyte2 * 256);F_afterbyte3 = (F_afterbyte2 * 256) - (int)(F_afterbyte2 * 256);inbyte4 = (int)(F_afterbyte3 * 256);F_afterbyte4 = (F_afterbyte3 * 256) - (int)

17、(F_afterbyte3 * 256);itoa(inbyte2, afterbyte2, 16);itoa(inbyte3, afterbyte3, 16);itoa(inbyte4, afterbyte4, 16);if(inbyte2 = 0)c2 = 0 x30;c3 = 0 x30;else if(inbyte2 16)c2 = 0 x30;c3 = afterbyte20;elsec2 = afterbyte20;c3 = afterbyte21;if(inbyte3 = 0)c4 = 0 x30;c5 = 0 x30;else if(inbyte3 16)c4 = 0 x30;c5 = afterbyte30;elsec4 = afterbyte30;c5 = afterbyte31;if(inbyte4 = 0)c6 = 0 x30;c7 = 0 x30;else if(inbyte

溫馨提示

  • 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. 人人文庫網(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)論