Modbus協議和串口通訊協議有什么不同
2018-05-03 13:46:59
諾塔斯智能科技
920
最近有人問Modbus協議的讀卡器。在這里主要想說一下Modbus協議和串口通訊協議都有232 485通訊 。但Modbus協議和串口通訊協議這兩者不是一個類別的概念,串口通訊指的是兩個設備之間通過485或232串口連接,在串口信道上實現數據通訊。modbus指的是一種工業標準的數據對話協議,對于保持寄存器,輸入寄存器,輸出寄存器,線圈寄存器等不同的寄存器數值的讀寫,均定義了專門的指令和數據交換規范。modbus協議需要在與modbus標準的工業設備進行數據通訊時使用,既可以通過串口實現連接,也可以通過TCP以太網鏈接。
Modbus 協議
Modbus協議是應用于電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它已經成為一通用工業標準。有了它,不同廠商生產的控制設備可以連成工業網絡,進行集中監控。此協議定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的。它描述了一控制器請求訪問其它設備的過程,如何回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內容的公共格式。
當在一Modbus網絡上通信時,此協議決定了每個控制器須要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。如果需要回應,控制器將生成反饋信息并用Modbus協議發出。在其它網絡上,包含了Modbus協議的消息轉換為在此網絡上使用的幀或包結構。這種轉換也擴展了根據具體的網絡解決節地址、路由路徑及錯誤檢測的方法。
此協議支持傳統的RS-232、RS-422、RS-485和以太網設備。許多工業設備,包括PLC,DCS,智能儀表等都在使用Modbus協議作為他們之間的通訊標準。
特點
Modbus具有以下幾個特點:
(1)標準、開放,用戶可以免費、放心地使用Modbus協議,不需要交納許可證費,也不會侵犯知識產權。目前,支持Modbus的廠家超過400家,支持Modbus的產品超過600種。
(2)Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質上傳送,如雙絞線、光纖、無線等。
(3)Modbus的幀格式簡單、緊湊,通俗易懂。用戶使用容易,廠商開發簡單。
Modbus網絡傳輸
標準的Modbus口是使用RS-232-C兼容串行接口,它定義了連接口的針腳、電纜、信號位、傳輸波特率、奇偶校驗。控制器能直接或經由Modem組網。
控制器通信使用主—從技術,即僅一設備(主設備)能初始化傳輸(查詢)。其它設備(從設備)根據主設備查詢提供的數據作出相應反應。典型的主設備:主機和可編程儀表。典型的從設備:可編程控制器。
主設備可單獨和從設備通信,也能以廣播方式和所有從設備通信。如果單獨通信,從設備返回一消息作為回應,如果是以廣播方式查詢的,則不作任何回應。Modbus協議建立了主設備查詢的格式:設備(或廣播)地址、功能代碼、所有要發送的數據、一錯誤檢測域。
從設備回應消息也由Modbus協議構成,包括確認要行動的域、任何要返回的數據、和一錯誤檢測域。如果在消息接收過程中發生一錯誤,或從設備不能執行其命令,從設備將建立一錯誤消息并把它作為回應發送出去。
其它類型傳輸
在其它網絡上,控制器使用對等技術通信,故任何控制器都能初始化和其它控制器的通信。這樣在單獨的通信過程中,控制器既可作為主設備也可作為從設備。提供的多個內部通道可允許同時發生的傳輸進程。
在消息位,Modbus協議仍提供了主—從原則,盡管網絡通信方法是“對等”。如果一控制器發送一消息,它只是作為主設備,并期望從從設備得到回應。同樣,當控制器接收到一消息,它將建立一從設備回應格式并返回給發送的控制器。
查詢回應周期
(1)查詢
查詢消息中的功能代碼告之被選中的從設備要執行何種功能。數據段包含了從設備要執行功能的任何附加信息。例如功能代碼03是要求從設備讀保持寄存器并返回它們的內容。數據段必須包含要告之從設備的信息:從何寄存器開始讀及要讀的寄存器數量。錯誤檢測域為從設備提供了一種驗證消息內容是否正確的方法。
(2)回應
如果從設備產生一正常的回應,在回應消息中的功能代碼是在查詢消息中的功能代碼的回應。數據段包括了從設備收集的數據:像寄存器值或狀態。如果有錯誤發生,功能代碼將被修改以用于指出回應消息是錯誤的,同時數據段包含了描述此錯誤信息的代碼。錯誤檢測域允許主設備確認消息內容是否可用。
傳輸方式編輯
在ModBus系統中有2種傳輸模式可選擇。這2種傳輸模式與從機PC通信的能力是同等的。選擇時應視所用ModBus主機而定,每個ModBus系統只能使用一種模式,不允許2種模式混用。一種模式是ASCII(美國信息交換碼),另一種模式是RTU(遠程終端設備)。
用戶選擇想要的模式,包括串口通信參數(波特率、校驗方式等),在配置每個控制器的時候,在一個Modbus網絡上的所有設備都必須選擇相同的傳輸模式和串口參數。所選的ASCII或RTU方式僅適用于標準的Modbus網絡,它定義了在這些網絡上連續傳輸的消息段的每一位,以及決定怎樣將信息打包成消息域和如何解碼。在其它網絡上(像MAP和Modbus Plus)Modbus消息被轉成與串行傳輸無關的幀。
★RS232接口
RS-232接口符合美國電子工業聯盟(EIA)制定的串行數據通信的接口標準,原始編號全稱是EIA-RS-232(簡稱232,RS232)。它被廣泛用于計算機串行接口外設連接。連接電纜和機械、電氣特性、信號功能及傳送過程。
特點
RS-232是現在主流的串行通信接口之一。由于RS232接口標準出現較早,難免有不足之處,主要有以下四點:
(1)接口的信號電平值較高,易損壞接口電路的芯片。RS232接口任何一條信號線的電壓均為負邏輯關系。即:邏輯“1”為-3— -15V;邏輯“0”:+3— +15V ,噪聲容限為2V。即要求接收器能識別高于+3V的信號作為邏輯“0”,低于-3V的信號作為邏輯“1”,TTL電平為5V為邏輯正,0為邏輯負。與TTL電平不兼容故需使用電平轉換電路方能與TTL電路連接。
(2)傳輸速率較低,在異步傳輸時,波特率為20Kbps;因此在51CPLD開發板中,綜合程序波特率只能采用19200,也是這個原因。
(3)接口使用一根信號線和一根信號返回線而構成共地的傳輸形式,這種共地傳輸容易產生共模干擾,所以抗噪聲干擾性弱。
(4)傳輸距離有限,最大傳輸距離標準值為50英尺,實際上也只能用在15米左右
。
分類:DB9、DB25、DB25轉DB9
在RS-232標準中,字符是以一串行的比特串來一個接一個的串行(serial)方式傳輸,優點是傳輸線少,配線簡單,傳送距離可以較遠。最常用的編碼格式是異步起停(asynchronousstart-stop)格式,它使用一個起始比特后面緊跟7或8 個數據比特(bit),然后是可選的奇偶校驗比特,最后是一或兩個停止比特。所以發送一個字符至少需要10比特,帶來的一個好的效果是使全部的傳輸速率,發送信號的速率以10劃分。一個最平常的代替異步起停方式的是使用高級數據鏈路控制協議(HDLC)。
在RS-232標準中定義了邏輯1和邏輯0電壓級數,以及標準的傳輸速率和連接器類型。信號大小在正的和負的3-15v之間。RS-232規定接近0的電平是無效的,邏輯1規定為負電平,有效負電平的信號狀態稱為傳號marking,它的功能意義為OFF,邏輯0規定為正電平,有效正電平的信號狀態稱為空號spacing,它的功能意義為ON。根據設備供電電源的不同,±5、±10、±12和±15這樣的電平都是可能的。
mark和space是從電傳打字機中來的術語。電傳打字機原始的通信是一個簡單的中斷直流電路模式,類似與圓轉盤電話撥號的中的信號。Marking狀態是指電路是斷開的,spacing狀態就是指電路是接通的。一個space就表明有一個字符要開始發送了,相應的停止的時候,停止位就是marking。當線路中斷的時候,電傳打字機不打印任何有效字符,周期性的連續收到全0信號
RS-232設計之初是用來連接調制解調器做傳輸之用,也因此它的腳位意義通常也和調制解調器傳輸有關。RS-232的設備可以分為數據終端設備(DTE,Data Terminal Equipment, Forexample, PC)和數據通信設備(DCE,Data Communication Equipment)兩類,這種分類定義了不同的線路用來發送和接受信號。一般來說,計算機和終端設備有DTE連接器,調制解調器和打印機有DCE連接器。但是這么說并不是總是嚴格正確的,用配線分接器測試連接,或者用試誤法來判斷電纜是否工作,常常需要參考相關的文件說明。
RS-232指定了20個不同的信號連接,由25個D-sub(微型D類)管腳構成的DB-25連接器。很多設備只是用了其中的一小部分管腳,出于節省資金和空間的考慮不少機器采用較小的連接器,特別是9管腳的D-sub或者是DB-9型連接器被廣泛使用絕大多數自IBM的AT機之后的PC機和其他許多設備上。DB-25和DB-9型的連接器在大部分設備上是雌型,但不是所有的都是這樣。最近,8管腳的RJ-45型連接器變得越來越普遍,盡管它的管腳分配相差很大。EIA/TIA561標準規定了一種管腳分配的方法,但是由DaveYost發明的被廣泛使用在Unix計算機上的Yost串連設備配線標準("Yost Serial Device WiringStandard")以及其他很多設備都沒有采用上述任一種連線標準。
★RS485
智能儀表是隨著80年代初單片機技術的成熟而發展起來的,現在世界儀表市場基本被智能儀表所壟斷。究其原因就是企業信息化的需要,企業在儀表選型時其中的一個必要條件就是要具有聯網通信接口。最初是數據模擬信號輸出簡單過程量,后來儀表接口是RS232接口,這種接口可以實現點對點的通信方式,但這種方式不能實現聯網功能。隨后出現的RS485解決了這個問題。
特點
1.RS-485的電氣特性:采用差分信號負邏輯,邏輯"1”以兩線間的電壓差為+(2~6)V表示;邏輯"0"以兩線間的電壓差為-(2~6)V表示。接口信號電平比RS-232-C降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL電路連接。
2.RS-485的數據最高傳輸速率為10Mbps。
3.RS-485接口是采用平衡驅動器和差分接收器的組合,抗共模干擾能力增強,即抗噪聲干擾性好。
4.RS-485最大的通信距離約為1219m,最大傳輸速率為10Mbps,傳輸速率與傳輸距離成反比,在100KbpS的傳輸速率下,才可以達到最大的通信距離,如果需傳輸更長的距離,需要加485中繼器。RS-485總線一般最大支持32個節點,如果使用特制的485芯片,可以達到128個或者256個節點,最大的可以支持到400個節點。
接口
RS485接口組成的半雙工網絡,一般是兩線制(以前有四線制接法,只能實現點對點的通信方式,現很少采用),多采用屏蔽雙絞線傳輸。這種接線方式為總線式拓撲結構在同一總線上最多可以掛接32個結點。在RS485通信網絡中一般采用的是主從通信方式,即一個主機帶多個從機。很多情況下,連接RS-485通信鏈路時只是簡單地用一對雙絞線將各個接口的“A”、“B”端連接起來。RS485接口連接器采用DB-9的9芯插頭座,與智能終端RS485接口采用DB-9(孔),與鍵盤連接的鍵盤接口RS485采用DB-9(針)。
另有一個問題是信號地,上述連接方法在許多場合是能正常工作的,但卻埋下了很大的隱患,這有二個原因:(1)共模干擾問題: RS-485接口采用差分方式傳輸信號,并不需要相對于某個參照點來檢測信號,系統只需檢測兩線之間的電位差就可以了。但人們往往忽視了收發器有一定的共模電壓范圍,RS-485收發器共模電壓范圍為-7~+12V,只有滿足上述條件,整個網絡才能正常工作。當網絡線路中共模電壓超出此范圍時就會影響通信的穩定可靠,甚至損壞接口。(2)EMI(電磁兼容性)問題:發送驅動器輸出信號中的共模部分需要一個返回通路,如沒有一個低阻的返回通道(信號地),信號中的共模部分就會以輻射的形式返回源端,整個總線就會像一個巨大的天線向外輻射電磁波。
由于PC機默認的只有RS232接口,有兩種方法可以得到PC上位機的RS485電路:
1)通過RS232/RS485轉換電路將PC機串口RS232信號轉換成RS485信號,對于情況比較復雜的工業環境最好是選用防浪涌帶隔離柵的產品。
2)通過PCI多串口卡,可以直接選用輸出信號為RS485類型的擴展卡。