


版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、組態(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è)備地址,圍為 0 255,此地址為單片機(jī)的地址,由單片機(jī)中的程序決定;后面的一個(gè)字符是用戶(hù)設(shè)定是否打包,“0”為不打包、“ 1 ”為打包,用戶(hù)一旦在定義設(shè)備時(shí) 確定了打包,組態(tài)王將處理讀下位機(jī)變量時(shí)數(shù)據(jù)打包的工作。3 在組態(tài)王中
2、定義的寄存器格式寄存器名稱(chēng)dd上限dd下限數(shù)據(jù)類(lèi)型Xdd655350FLOAT/BYTE/UINT斜體字dd代表數(shù)據(jù)地址,此地址與單片機(jī)的數(shù)據(jù)地址相對(duì)應(yīng)注意:在組態(tài)王中定義變量時(shí),一個(gè) X寄存器根據(jù)所選數(shù)據(jù)類(lèi)型(BYTE,UINT,FLOAT)的不同分別占用一個(gè)、兩個(gè),四個(gè)字節(jié),定義不同的數(shù)據(jù)類(lèi)型要注意寄存器后面的地址,同一數(shù)據(jù)區(qū)不可交叉定義不同數(shù)據(jù)類(lèi)型的變量。為提高通訊速度建議用戶(hù)使用連續(xù)的數(shù)據(jù)區(qū)。例如,1、在單片機(jī)中定義從地址 0開(kāi)始的數(shù)據(jù)類(lèi)型為BYTE型的變量:則在組態(tài)王中定義相應(yīng)的變量的寄存器為X0、XI、X2、X3、X4oooooooo,數(shù)據(jù)類(lèi)型為BYTE,每個(gè)變量占一個(gè)字節(jié)2、在單
3、片機(jī)中定義從地址100開(kāi)始的數(shù)據(jù)類(lèi)型為UINT型的變量:則在組態(tài)王中定義相應(yīng)的變量的寄存器為 X100、X102、X104、X106、X108 oooooooo, 數(shù)據(jù)類(lèi)型UINT,每個(gè)變量占兩個(gè)字節(jié)3、在單片機(jī)中定義從地址200開(kāi)始的數(shù)據(jù)類(lèi)型為FLOAT型的變量:則在組態(tài)王中定義相應(yīng)的變量的寄存器為 X200、X204、X208、X212 o。, 數(shù)據(jù)類(lèi) 型FLOAT,每個(gè)變量占四個(gè)字節(jié)3 .組態(tài)王與單片機(jī)通訊的命令格式:讀寫(xiě)格式(除字頭、字尾外所有字節(jié)均為 ASCII碼)字頭設(shè)備地址標(biāo)志數(shù)據(jù)地址數(shù)據(jù)字節(jié)數(shù)數(shù)據(jù)異或CR說(shuō)明;字頭:1字節(jié)1個(gè)ASCII碼,40H設(shè)備地址:1字節(jié)2個(gè)ASCII碼
4、,0 255 (即0-0x0ffH )標(biāo)志:1 字節(jié) 2 個(gè) ASCII 碼,bit0bit7 ,bit0= 0:讀,bit0= 1:寫(xiě)。bit仁0 :不打包。bit3bit2 = 00,數(shù)據(jù)類(lèi)型為字節(jié)。bit3bit2 = 01,數(shù)據(jù)類(lèi)型為字。bit3bit2 = 1x,數(shù)據(jù)類(lèi)型為浮點(diǎn)數(shù)。數(shù)據(jù)地址:2字節(jié)4個(gè)ASCII碼,0x00000xffff數(shù)據(jù)字節(jié)數(shù):1字節(jié)2個(gè)ASCII碼,1 100,實(shí)際讀寫(xiě)的數(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: 0x0d 。通訊嘗試恢復(fù)命令(COMERROR ),
5、請(qǐng)求地址為0的一個(gè)BYTE數(shù)據(jù)3 . 1 .上位機(jī)發(fā)送讀命令字頭設(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ù)類(lèi)型為字節(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ù)地址為
6、15的數(shù)據(jù)。其中數(shù)據(jù)為100,數(shù)據(jù)類(lèi)型為字節(jié),打包組態(tài)王所發(fā)數(shù)據(jù)為:403046433230303046303137300d字設(shè)備地標(biāo)志數(shù)據(jù)地址15數(shù)據(jù)字異或頭址15讀操作 字節(jié)型 打包節(jié)數(shù)1若正確:4030463031363437350d字頭設(shè)備地址15數(shù)據(jù)字節(jié)數(shù)1數(shù)據(jù)100異或若不正確:4030462a2a37360d設(shè)備地址15*異或3.2 上位機(jī)發(fā)送寫(xiě)命令字頭設(shè)備地址標(biāo)志數(shù)據(jù)地址數(shù)據(jù)字節(jié)數(shù)數(shù)據(jù)異或CR下位機(jī)應(yīng)答:若正常:字頭設(shè)備地址#異或CR若不止常:字頭設(shè)備地址*異或CR例1:寫(xiě)15號(hào)儀表,數(shù)據(jù)地址為15。寫(xiě)數(shù)據(jù)255,數(shù)據(jù)類(lèi)型為字,不打包。組態(tài)王所發(fā)數(shù)據(jù)為:403046433530
7、30304630323030464637340d字頭設(shè)備地址15標(biāo)志 寫(xiě)操作 字型 不打包數(shù)據(jù)地址15數(shù)據(jù)字節(jié)數(shù)2數(shù)據(jù)255異或若正確:403046232337360d字頭設(shè)備地址15#異或若不正確:4030462a2a37360d字頭設(shè)備地址15*異或例2 :寫(xiě)15號(hào)儀表,數(shù)據(jù)地址為15。寫(xiě)數(shù)據(jù)65535,數(shù)據(jù)類(lèi)型為浮點(diǎn)型,打包。組態(tài)王所發(fā)數(shù)據(jù)為:40304643463030304630343130464646463030字頭設(shè)備地址15標(biāo)志寫(xiě)操作 浮點(diǎn)型 打包數(shù)據(jù)地址15數(shù)據(jù)字節(jié)數(shù)4數(shù)據(jù)6553530300d異或若正確:403046232337360d字頭設(shè)備地址15#異或若不正確:403
8、0462a2a37360d字頭設(shè)備地址15*異或5 浮點(diǎn)數(shù)格式:4字節(jié)浮點(diǎn)數(shù)第一字節(jié)高 4位ASCII碼+第一字節(jié)低 4位ASCII碼+第二字節(jié)高4位ASCII碼+第二字節(jié)低4 位 ASCII+第三字節(jié)咼4位ASCII碼+第三字節(jié)低4 位 ASCII+第四字節(jié)咼4位ASCII碼+第四字節(jié)低4 位 ASCII第位第4位第4位xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx第1字節(jié)高4位 第2字節(jié)高4位四字節(jié)浮點(diǎn)數(shù)格式:(1 )第一字節(jié)第3字節(jié)高4位第4字節(jié)高4位(2 )第二字節(jié)(3 )第三字節(jié)(4 )第四字節(jié)注:數(shù)符=0 正,數(shù)符=1 負(fù)階符=0 正,階符=1 負(fù)數(shù)符1階符階碼D
9、7D6D5 DO浮點(diǎn)數(shù)可表示圍:-1 X2321 X232數(shù)符:1位階符:1位階碼:6位例:流量積算控制儀表瞬時(shí)流量測(cè)量值數(shù)據(jù)=100.2 10轉(zhuǎn)換成浮點(diǎn)數(shù):100.2 10=2 7 0.7828125=0716+C8 16+66 16+66 16=30 ascii+37 ascii+43 ascii+38 ascii +36 ascii +36 ascii+36 ascii+36 ascii小數(shù)部份:0.78281250.7828125256=200.40.4 256=102.40.4 256=102.4整數(shù)部份為第三字節(jié)(102)小數(shù)部分|200第二字節(jié) 小數(shù)部分102第三字節(jié)小數(shù)部分 二
10、 |102第四字節(jié)第一字節(jié)0 1071C8第二字節(jié)166第三字節(jié)66卜六進(jìn)制:第四字節(jié)3037ASCII 碼:傳輸格式如下:第1字節(jié)低4位第2字節(jié)低4位 第3字節(jié)低4位第4字節(jié)低43037433836363636第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è)ASCII碼高4位ASCII碼+低4位ASCII碼)。34H。如口:上述數(shù)據(jù)1F4H (16進(jìn)制),傳輸時(shí),轉(zhuǎn)化為 ASCII碼則為30H、31H、4
11、6H、6 此浮點(diǎn)數(shù)格式的轉(zhuǎn)換:1)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);float retur nflo = 0;BOOL ShuFU = FALSE, JieFU = FALSE;if(c7 0x40)
12、 & (c7 0x60) & (c7 0x40) & (c 0x60) & (c6 0x40) & (c 0x60) & (c5 0x40) & (c4 0x60) & (c4 0x40) & (c3 0x60) & (c3 0x40) & (c2 0x60) & (c2 0x40) & (c1 0x60) & (c1 0x40) & (c0 0x60) & (c0 3) 0;JieFU = (Jiema0 & 0x04) 2) 0;Jiema2 = (Jiema0 & 0x03) * 16 + Jiema1;if(JieFU)returnflo = (float)pow(2, (-1) *
13、Jiema2) * Decimal; elseretur nflo = (float)pow(2, Jiema2) * Decimal;if(ShuFU)returnflo = (-1) * returnflo;return returnflo;2)浮點(diǎn)數(shù)到ASCII碼:/*in: char * c:存儲(chǔ)浮點(diǎn)數(shù)轉(zhuǎn)換后的ASCII碼字符。Float d:要轉(zhuǎn)換的浮點(diǎn)數(shù)。Retur n :無(wú)。*/void D4toC(char * c,float d)BYTEi = 0, Jiema = 0;charin byte130;BOOL ShuFu = FALSE, JieFu = FALSE;int
14、in byte2 = 0, i nbyte3 = 0, i nbyte4 = 0;char afterbyte230, afterbyte330, afterbyte430;float F_afterbyte2 = 0, F_afterbyte3 = 0, F_afterbyte4 = 0;memset(inbyte1,0x30, sizeof(inbyte1);memset(afterbyte2, 0x30, sizeof(afterbyte2);memset(afterbyte3, 0x30, sizeof(afterbyte3);memset(afterbyte4, 0x30, size
15、of(afterbyte4);in byte110 = 0x0;afterbyte210 = 0x0;afterbyte310 = 0x0;afterbyte410 = 0x0;if(d = 0)for(i nt j = 0; j 8; j+) cj = 0x30;return;if(d 1)d =(float)(d / 2.0);i +; while(d = 0.5)JieFu = TRUE;d = (float)(d * 2.0);i +; if(d = 1)for(i nt j = 2; j 8; j+)cj = 0x46; else in byte2 = (i nt)(d * 256)
16、;F_afterbyte2 = (d * 256) - (in t)(d * 256);in byte3 = (in t)(F_afterbyte2 * 256);F_afterbyte3 = (F_afterbyte2 * 256) - (in t)(F_afterbyte2 * 256);in byte4 = (in t)(F_afterbyte3 * 256);F_afterbyte4 = (F_afterbyte3 * 256) - (in t)(F_afterbyte3 * 256);itoa(inbyte2, afterbyte2, 16);itoa(inbyte3, afterbyte3, 16);itoa(inbyte4, afterbyte4, 16);if(in byte2 = 0)c2 = 0x30;c3 = 0x30;c2 = 0x30;c3 = afterbyte20; elsec2 = afterbyte20;c3 = afterbyte21; if(in byte3 = 0)c4 = 0x30;c5 = 0x30;else if(inbyte3 16)c4 = 0x30;c5 = afterbyte30; elsec4 = afterbyte30;if(in byte4 = 0)c6 = 0x30;c7 = 0x30;e
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位改造車(chē)棚合同范例
- 合作合同范本 英文
- 主播合同范本個(gè)人
- 化工藥劑供貨合同范本
- 公司內(nèi)勤合同范本
- 合租廠房合同范本
- 醫(yī)院大型設(shè)備合同范例
- 單獨(dú)設(shè)計(jì)合同范例
- 送貨付款合同范本模板
- 吳中區(qū)解約合同范例
- 《高分子物理》配套教學(xué)課件
- 年度應(yīng)急演練計(jì)劃表
- 英語(yǔ)板書(shū)設(shè)計(jì)(課件)
- 三年級(jí)勞動(dòng)課1ppt
- 建筑裝飾設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)
- 智能中臺(tái)數(shù)據(jù)底座解決方案
- 《財(cái)政與金融》課程教學(xué)大綱
- 《國(guó)際稅收》教案
- 傳統(tǒng)體育養(yǎng)生概論
- 公益性崗位保潔員保證書(shū)
- 行政許可執(zhí)法案卷自評(píng)表
評(píng)論
0/150
提交評(píng)論