組態(tài)王與單片機多機串口通信的設計
Sta:設備地址,1個(gè)字節,組態(tài)王設備地址范圍為0~255,此地址為單片機的地址,由單片機中的程序決定;
R:讀標志,1個(gè)字節(0x52);
W:寫(xiě)標志,1個(gè)字節(0x57);
DataType:需要交換的數據類(lèi)型,1字節。其中“1”代表字節,“2”代表字,“3”代表浮點(diǎn)型;
DataNum:讀取數據的個(gè)數,1字節;
DataAddr:數據偏移地址,2字節,低字節在前,高字節在后;
Data:實(shí)際傳輸的數據,低字節在前,高字節在后;
DataLong:單片機返回Data的字節數,2字節,低字節在前,高字節在后:
CRC:為從第1個(gè)字節至CRC前的所有字節的異或值,1字節;
ErrorCode:錯誤代碼,“0”代表正確應答,“1”代表數據類(lèi)型錯誤,“2”代表數據范圍超限,“3”代表指令無(wú)法識別。本文引用地址:http://dyxdggzs.com/article/173621.htm
5 單片機通訊程序流程設計
圖4為組態(tài)王程序流程,圖5為單片機通訊程序流程。80C51系列單片機多機通訊可歸納如下:
上位機的SM2=0,所有下位機的SM2=1,以便只接收上位機發(fā)來(lái)的地址;
上位機給下位機發(fā)送地址時(shí),第9數據位應該為1,以指示下位機接收這個(gè)地址;
所有下位機在SM2=1,RB8=1和RI=0時(shí),接收上位機發(fā)來(lái)的地址,進(jìn)入相應中斷服務(wù)程序,并與本機地址相比較,以確認是否為被尋址的下位機;
被尋址下位機通過(guò)指令清除SM2,以便正常接收上位機發(fā)送來(lái)的數據,并向上位機發(fā)回接收到的地址以便核實(shí)。未被尋址的下位機保持SM2=1,并退出各自的中斷服務(wù)程序;
完成上位機和被尋址下位機之間的數據通信后,被尋址從機使SM2=1,并退出中斷服務(wù)程序,等待下次通信。
6 結束語(yǔ)
該系統實(shí)現組態(tài)王軟件與單片機多機的實(shí)時(shí)通信,已經(jīng)在實(shí)際項目中得到應用。應用的結果表明該設計方法簡(jiǎn)單有效,實(shí)時(shí)性好,成本低廉,可以在控制與監控系統中推廣應用。
評論