1 引言
隨著工業化要求提高,分布式系統發展以及控制設備與監控設備之間通訊需要,組態軟體設計的監控系統逐步普及。現在組態軟體繁多,比如KingVieW(組態王)、 MCGS、WinCC等。KingView軟體基於Microsoft Windows XP,NT/2000作業系統.具有友好的人機操作界面、強大的IO設備埠驅動能力,可與各種PLC、智能儀表、智能模塊、板卡、變頻器等實時通訊。由 於在檢測大量模擬量的工業現場使用PLC與組態軟體通訊勢必增加產品成本。而單片機接口豐富,與A/D轉換模塊組合可以完成相同的工作,並且系統可靠、成本低。
2 組態王與單片機的串口通訊方法
目前,組態王與單片機的通信多是通過動態數據交換(DDE)或通過自己開發通訊驅動程序完成。DDE是Windows平臺上的一個完整的通信協 議,組態王通過該協議與其他應用程式交換數據。但不可靠和非實時。而自己開發通訊驅動程序會帶來設計困難,增加系統開發周期,可行性不高。組態王專門提供 一種與單片機多機串口通信方法,可滿足大多數系統需求。
3 PC機與單片機的硬體接口電路
圖1為上位PC機與下位單片機80C51的連接電路。PC機與單片機本身都自帶串行通訊接口,但由於在分布式系統中PC機與各單片機的分布不集 中,不能利用RS-232通訊傳輸,只能改用RS-485。RS-485採用差分式傳輸信號,最大傳輸距離為1 219 m.最大傳輸速率為10 Mb/s.對同時出現的兩條信號線A、B的幹擾有較強的抑制能力。當兩條線絞在一起時,被通信各種分布參數耦合過來的幹擾信號可平均地分配到這兩條線上, 因此對RS-485的差分式傳輸線路而言,用雙絞線可獲得較強的抗幹擾能力。RS-485採用二線與四線平衡傳輸方式,二線制可實現真正的多點雙向通信,但需要在傳輸線上接電阻(約120 Ω)。
由於80C51系列單片機STC89C52串行接口的,TTL電氣特性與RS-485電氣特性不相符,STC89C52不能與RS-485直接連接,需要電氣轉換。這裡採用Maxim公司的MAX485,圖2為其接口電路。
圖2中,MAX485的RE和DE南STC89C52單片機的P1.7控制。由於MAX485以半雙工的方式工作,因此由P1.7控制其發送與 接收。當 P1.7為高電平時,驅動器使能而接收器為高阻態,此時可發送數據;而當P1.7為低電平時.接收器使能而驅動器為高阻態,此時接收數據。另外由於PC機 的COM口是基於RS-232的串行通訊口.其電氣特性與RS-485不一致,因此也需電平轉換。
圖3為單片機地址設置電路,單片機STC89C52的P1口的低4位用於設定本機地址,通過4位DIP開關的組合最多可設定16種地址。如當4 位開關全部斷開時,對應的本機地址是11 11。下位單片機在開始工作前需先設定自己的地址,這樣,在開機自檢時下位單機片就能獲取本機地址。
4 系統通訊協議設計
組態王提供了通過PC機與單片機串口進行十六進位數據通訊的驅動,而驅動中已經規定好其通訊協議。
4.1 通訊參數
通訊參數包括數據位、停止位、波特率、校驗方式。其中,數據位、停止位、波特率由單片機決定。組態王中的設定和單片機一致即可。校驗方式參照「數據傳輸格式」部分。
4.2 數據傳輸格式與協議說明
格式1 組態王發送地址請求格式(檢驗位為1):
格式2單片機應答地址格式(檢驗位為0):
格式3組態王讀數據請求格式(檢驗位為0):
格式4單片機應答讀數據格式(正確)(檢驗位為O):[page]
格式5單片機應答讀數據格式(錯誤)(檢驗位為0):
格式6組態王寫數據請求格式(檢驗位為O):
格式7單片機應答寫數據格式(正確)(檢驗位為0):
協議具體說明如下:
ENQ(頭):H05,詢問,請求幀的開始代碼;
ACK(頭):H06,確認,ACK應答幀的開始代碼;
NAK(頭):H15,否認,NAK應答幀的開始代碼;
EOT(尾):H04,正文的結束,請求幀的結束ASCII代碼;
ETX(尾):H03,結束正文,應答幀的結束ASCII代碼;
數據傳輸:所有數據均為16進位數;
Sta:設備地址,1個字節,組態王設備地址範圍為0~255,此地址為單片機的地址,由單片機中的程序決定;
R:讀標誌,1個字節(0x52);
W:寫標誌,1個字節(0x57);
DataType:需要交換的數據類型,1位元組。其中「1」代表字節,「2」代表字,「3」代表浮點型;
DataNum:讀取數據的個數,1位元組;
DataAddr:數據偏移地址,2位元組,低字節在前,高字節在後;
Data:實際傳輸的數據,低字節在前,高字節在後;
DataLong:單片機返回Data的字節數,2位元組,低字節在前,高字節在後:
CRC:為從第1個字節至CRC前的所有字節的異或值,1位元組;
ErrorCode:錯誤代碼,「0」代表正確應答,「1」代表數據類型錯誤,「2」代表數據範圍超限,「3」代表指令無法識別。
5 單片機通訊程序流程設計
圖4為組態王程序流程,圖5為單片機通訊程序流程。80C51系列單片機多機通訊可歸納如下:
上位機的SM2=0,所有下位機的SM2=1,以便只接收上位機發來的地址;
上位機給下位機發送地址時,第9數據位應該為1,以指示下位機接收這個地址;
所有下位機在SM2=1,RB8=1和RI=0時,接收上位機發來的地址,進入相應中斷服務程序,並與本機地址相比較,以確認是否為被尋址的下位機;
被尋址下位機通過指令清除SM2,以便正常接收上位機發送來的數據,並向上位機發回接收到的地址以便核實。未被尋址的下位機保持SM2=1,並退出各自的中斷服務程序;
完成上位機和被尋址下位機之間的數據通信後,被尋址從機使SM2=1,並退出中斷服務程序,等待下次通信。
6 結束語
該系統實現組態王軟體與單片機多機的實時通信,已經在實際項目中得到應用。應用的結果表明該設計方法簡單有效,實時性好,成本低廉,可以在控制與監控系統中推廣應用。
關鍵字:RS485 單片機 多機串口通信 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/2015/0715/article_21042.html推薦閱讀
Modbus十六路繼電器輸出控制板一、應用場合工業控制需要擴展輸出口的場合PLC輸出接口擴展組態觸控螢幕控制簡要說明尺寸:長152mmX寬163mmX高25mm通訊協議:MODBUS_RTU模式工作電壓:直流12伏(另有24V)掉電後保存繼電器狀態有看門狗復位功能三、特點RS485標準接口16路輸出光電隔離控制繼電器。標準11.0592M晶振,9600波特率、八位數據位、一位停止位、一位校驗位(偶校驗)有上電復位和手動復位。MODBUS_RTU標準協議控制輸出16路繼電器LED指示。通過軟體指令設定地址等參數可控制交流220V/10A以下設備有程序下載口,可隨意更改程序。可按客戶要求定製協議註:顧客可以根據需要選擇相應的產品
發表於 2020-09-21
第1步:所需材料要構建此項目,您將需要執行以下操作。1)單片機(此處為 MSP430啟動板,帶有MSP430G2553)2) MAX485 用於RS485通信的晶片3) 120歐姆終端離子電阻器4)通用PCB或麵包板5) USB到RS485轉換器,用於與PC連接(例如USB2SERIAL V2.0)6)MSP430的RS485通信增強包(可選)步驟2:RS485部分第一件事要做的就是使用MAX485晶片構建RS485部分。MAX485晶片採用8引腳DIP封裝,可以很容易地安裝在通用PCB或麵包板上(如果您打算重複使用該晶片) )您可以將MAX485晶片焊接到一小塊通用PCB上,並將引腳引到凸形bergstrip
發表於 2020-09-15
RS485主從結構通信代碼,用於組網內部通信單片機源程序如下:#ifndef _485MON_H // 防止485Mon.h被重複引用#define _485MON_H#include <reg52.h>  
發表於 2020-08-21
在工業控制、電力通訊、智能儀表等領域,通常情況下是採用串口通信的方式進行數據交換。最初採用的方式是RS232接口,由於工業現場比較複雜,各種電氣設備會在環境中產生比較多的電磁幹擾,會導致信號傳輸錯誤。除此之外,RS232接口只能實現點對點通信,不具備聯網功能,最大傳輸距離也只能達到幾十米,不能滿足遠距離通信要求。而RS485則解決了這些問題,數據信號採用差分傳輸方式,可以有效的解決共模幹擾問題,最大距離可以到1200米,並且允許多個收發設備接到同一條總線上。隨著工業應用通信越來越多,1979年施耐德電氣制定了一個用於工業現場的總線協議Modbus協議,現在工業中使用RS485通信場合很多都採用Modbus協議,本節課我們要講解一下
發表於 2020-07-23
的程序是根據手把手教你51單片機的例程修改而來,能實現讀/寫操作(03,06碼),成功通過modbus調試精靈測試,讀寫通訊正常!由於剛接觸modbus通訊協議,之前一直出現通訊超時的問題,找了網上很多資料,都不得其解,所以把程序拿出來和大家分享。希望和大家相互學習、共同進步!單片機源程序如下:#include "rs485.h"#include "SysTick.h"#include "crc16.h"#include "led.h"
發表於 2020-07-13
Analog Devices, Inc. (ADI)推出ADM2867E系列強化iCoupler®隔離RS485 + 集成隔離式DC-DC轉換器。這些新器件具有低電磁輻射幹擾,能在儘量少的電路板返工和避免預算超支條件下滿足EMC合規要求。相比ADI前一代產品以及競爭對手目前提供的產品而言,這款收發器採用簡化的PCB布局,SOIC外形小巧,可以在空間有限的應用中集成更多功能。 這款隔離式RS485 + 集成式隔離電源收發器系列提供智能功能,可以縮短終端系統安裝和調試的時間,以及輕鬆校正與安裝有關的連接問題。憑藉iCoupler數字隔離和IEC 61000-4-2 ESD的值得信賴
發表於 2020-06-02