




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度家政服務(wù)人員勞動(dòng)合同與意外傷害賠償協(xié)議
- 二零二五年度醫(yī)療健康企業(yè)自愿退股及醫(yī)療服務(wù)協(xié)議書
- 二零二五年度污水治理項(xiàng)目環(huán)境影響評(píng)估分包合同
- 二零二五年度智慧社區(qū)商品房屋租賃服務(wù)協(xié)議
- 農(nóng)村宅基地房屋贈(zèng)與協(xié)議書(2025年度)范本及案例分析
- 2025年度贍養(yǎng)老人個(gè)人所得稅扣除協(xié)議規(guī)范
- 疫情供餐合同范本
- 2025年度汽車保險(xiǎn)合作協(xié)議及附加險(xiǎn)種介紹
- 二零二五年度企業(yè)團(tuán)建服務(wù)與團(tuán)隊(duì)精神培育合同
- 二零二五年度城市地下空間使用權(quán)出讓合同
- GB/T 23694-2024風(fēng)險(xiǎn)管理術(shù)語
- 2025年北京青年政治學(xué)院高職單招高職單招英語2016-2024年參考題庫(kù)含答案解析
- 《典型的光器件AWG》課件
- 出血熱知識(shí)培訓(xùn)課件
- 廣東省汕頭市潮南區(qū)2024-2025學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量監(jiān)測(cè)英語試卷(無答案)
- 永輝超市存貨管理問題及優(yōu)化建議9700字
- 售后服務(wù)組織結(jié)構(gòu)及崗位職責(zé)
- 2024年度工業(yè)自動(dòng)化設(shè)備維護(hù)保養(yǎng)及上門維修合同3篇
- 2025年公司總經(jīng)理年終總結(jié)工作報(bào)告
- 安徽省“江淮十校”2024屆高考化學(xué)一模試卷含解析
- 圖書外借服務(wù)計(jì)劃
評(píng)論
0/150
提交評(píng)論