welcom ! Handel home

2014年12月30日 星期二

何謂 Modbus/nModbus ?







 
 何謂 Modbus 通訊協定?

Modbus 是由 MODICON 公司在 1979發展出來的一套通訊協定。它具有標準化、採開放式架構的特性,而且廣泛地被工業自動化產所使用的通訊協定。透過 Modbus,SCADA 和 HMI 軟體可以很容易地將許多串列設備整合在一起。
 
 back 
 何謂 Modbus/TCP 通訊協定?

Modbus/TCP 是 Modbus 的一種變形。它在 1999 年被發展出來,讓 SCADA/HMI 也可以透過 Modbus/TCP 存取網路上的設備。
 
 back 
 哪些軟體支援 Modbus 和 Modbus/TCP ?

大部分的 SCADA ( Supervisor Control And Data Acquisition ) 軟體和 HMI 都支援 Modbus 通訊協定,例如:Citect, ICONICS, iFIX, InduSoft, Intouch, Entivity Studio, Entivity Live, Entivity VLC, Trace Mode, Wizcon, Wonderware…等等。
 
 back 
 何謂 nModbus ?

nModbus 使用 C# 3.0 實做 Modbus 通訊協定。它是由一群志願者開發、維護的的軟件,並且可以免費提供給大眾使用。
ICP DAS 基於下面的官方發佈的版本,進行功能確認、改善。NModbus_net-2.0_1.11.0.0-source.zip.
程式開發員 (Programmers) 可以使用ICP DAS 所發佈的 DLL 版本,進行Windows 版 PC 或是 WinCE 版設備的 Modbus 程式開發。這個 DLL 具備下面功能
  1. Modbus/RTU Master/Slave
  2. Modbus/ASCII Master/Slave
  3. Modbus/TCP Master/Slave
  4. Modbus/UDP Master/Slave
下載 DLL 和範例程式
 
 back 
 
使用 Modbus 和 Modbus/TCP 有什麼好處?
  1. 完全開放,不需授權費
  2. 廣泛地被 SCADA 和 HMI 軟體支援
  3. 容易使用
  4. 不同的設備容易整合在一起
  5. 發展系統的時程縮短,成本降低
  6. 豐富的資源
 
 back 
 Modbus 資源http://www.modicon.com
Modbus 原創公司 MODICON 的網站
http://www.modbus.org
Modbus 社群網站

http://www.modbustools.com
Modbus (RTU/ASCII) 或是 Modbus/TCP 的 ActiveX 元件及測試工具

http://ftp.icpdas.com/pub/cd/8000cd/napdos/modbus/modbus_master_tool/
http://ftp.icpdas.com/pub/cd/winpac/napdos/wp-8x4x_ce50/system_disk/tools/modbus_master_tool/
由ICP DAS 提供的Modbus連線測試工具:Modbus Master Tool
 










簡介 [RS232 RS422 RS485]

一、串口簡介
  RS-232、RS-422與RS-485都是串行數據接口標準,最初都是由電子工業協會(EIA)製訂並發布的,RS-232在1962年發布,命名為EIA-232-E,作為工業標準,以保證不同廠家產品之間的兼容。RS-422由RS-232發展而來,它是為彌補RS-232之不足而提出的。為改進RS-232通信距離短、速率低的缺點,RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mb/s,傳輸距離延長到4000英尺(速率低於100kb/s時),並允許在一條平衡總線上連接最多10個接收器。RS-422是一種單機發送、多機接收的單向、平衡傳輸規範,被命名為TIA/EIA-422-A標準。為擴展應用範圍,EIA又於1983年在RS-422基礎上製定了RS-485標準,增加了多點、雙向通信能力,即允許多個發送器連接到同一條總線上,同時增加了發送器的驅動能力和衝突保護特性,擴展了總線共模範圍,後命名為TIA/EIA-485-A標準。由於EIA提出的建議標準都是以"RS"作為前綴,所以在通訊工業領域,仍然習慣將上述標準以RS作前綴稱謂。
  RS-232、RS-422與RS-485標準隻對接口的電氣特性做出規定,而不涉及接插件、電纜或協議,在此基礎上用戶可以建立自己的高層通信協議。因此在視頻界的應用,許多廠家都建立了一套高層通信協議,或公開或廠家獨家使用。如錄像機廠家中的Sony與鬆下對錄像機的RS-422控製協議是有差異的,視頻服務器上的控製協議則更多了,如Louth、Odetis協議是公開的,而ProLINK則是基於Profile上的。

二、RS-232串行接口標準
  目前RS-232是PC機與通信工業中應用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通訊中增加通訊距離的單端標準。RS-232采取不平衡傳輸方式,即所謂單端通訊。
  收、發端的數據信號是相對於信號地,如從DTE設備發出的數據在使用DB25連接器時是2腳相對7腳(信號地)的電平。典型的RS-232信號在正負電平之間擺動,在發送數據時,發送端驅動器輸出正電平在+5~+15V,負電平在-5~-15V電平。當無數據傳輸時,線上為TTL,從開始傳送數據到結束,線上電平從TTL電平到RS-232電平再返回TTL電平。接收器典型的工作電平在+3~+12V與-3~-12V。由於發送電平與接收電平的差僅為2V至3V左右,所以其共模抑製能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20kb/s。RS-232是為點對點(即隻用一對收、發設備)通訊而設計的,其驅動器負載為3~7kΩ。所以RS-232適合本地設備之間的通信。其有關電氣參數參見下表。
  
====================
[表1]


 
RS232  RS422  R485
工作方式  單端 差分 差分
節點數 1收、1發 1發10收 1發32收
最大傳輸電纜長度 50英尺 400英尺   400英尺
最大傳輸速率 20Kb/S 10Mb/s 10Mb/s
最大驅動輸出電壓  +/-25V -0.25V~+6V -7V~+12V
驅動器輸出信號電平
(負載最小值) 負載
+/-5V~+/-15V +/-2.0V +/-1.5V
驅動器輸出信號電平
(空載最大值) 空載    
+/-25V +/-6V  +/-6V
驅動器負載阻抗(Ω) 3K~7K    100  54
擺率(最大值) 30V/μs  N/A  N/A
接收器輸入電壓範圍  +/-15V -10V~+10V -7V~+12V
接收器輸入門限     +/-3V +/-200mV +/-200mV
接收器輸入電阻(Ω) 3K~7K  4K(最小)  ≥12K
驅動器共模電壓      N/A -3V~+3V -1V~+3V
接收器共模電壓    N/A -7V~+7V -7V~+12V



三、RS-422與RS-485串行接口標準
  1.平衡傳輸
  RS-422、RS-485與RS-232不一樣,數據信號采用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為A,另一線定義為B。
  通常情況下,發送驅動器A、B之間的正電平在+2~+6V,是一個邏輯狀態,負電平在-2~6V,是另一個邏輯狀態。另有一個信號地C,在RS-485中還有一"使能"端,而在RS-422中這是可用可不用的。"使能"端是用於控製發送驅動器與傳輸線的切斷與連接。當"使能"端起作用時,發送驅動器處於高阻狀態,稱作"第三態",即它是有別於邏輯"1"與"0"的第三態。
接收器也作與發送端相對的規定,收、發端通過平衡雙絞線將AA與BB對應相連,當在收端AB之間有大於+200mV的電平時,輸出正邏輯電平,小於-200mV時,輸出負邏輯電平。接收器接收平衡線上的電平範圍通常在200mV至6V之間。
  2.RS-422電氣規定
  RS-422標準全稱是"平衡電壓數字接口電路的電氣特性",它定義了接口電路的特性。實際上還有一根信號地線,共5根線。由於接收器采用高輸入阻抗和發送驅動器比RS232更強的驅動能力,故允許在相同傳輸線上連接多個接收節點,最多可接10個節點。即一個主設備(Master),其餘為從設備(Salve),從設備之間不能通信,所以RS-422支持點對多的雙向通信。接收器輸入阻抗為4k,故發端最大負載能力是10×4k+100Ω(終接電阻)。RS-422四線接口由於采用單獨的發送和接收通道,因此不必控製數據方向,各裝置之間任何必須的信號交換均可以按軟件方式(XON/XOFF握手)或硬件方式(一對單獨的雙絞線)實現。
  RS-422的最大傳輸距離為4000英尺(約1219米),最大傳輸速率為10Mb/s。其平衡雙絞線的長度與傳輸速率成反比,在100kb/s速率以下,才可能達到最大傳輸距離。隻有在很短的距離下才能獲得最高速率傳輸。一般100米長的雙絞線上所能獲得的最大傳輸速率僅為1Mb/s。
  RS-422需要一終接電阻,要求其阻值約等於傳輸電纜的特性阻抗。在矩距離傳輸時可不需終接電阻,即一般在300米以下不需終接電阻。終接電阻接在傳輸電纜的最遠端。
  RS-422有關電氣參數見表1
  3.RS-485電氣規定
  由於RS-485是從RS-422基礎上發展而來的,所以RS-485許多電氣規定與RS-422相仿。如都采用平衡傳輸方式、都需要在傳輸線上接終接電阻等。RS-485可以采用二線與四線方式,二線製可實現真正的多點雙向通信。
  而采用四線連接時,與RS-422一樣隻能實現點對多的通信,即隻能有一個主(Master)設備,其餘為從設備,但它比RS-422有改進, 無論四線還是二線連接方式總線上可多接到32個設備。
  RS-485與RS-422的不同還在於其共模輸出電壓是不同的,RS-485是-7V至+12V之間,而RS-422在-7V至+7V之間,RS-485接收器最小輸入阻抗為12k,RS-422是4k;RS-485滿足所有RS-422的規範,所以RS-485的驅動器可以用在RS-422網絡中應用。
  RS-485有關電氣規定參見表1。
  RS-485與RS-422一樣,其最大傳輸距離約為1219米,最大傳輸速率為10Mb/s。平衡雙絞線的長度與傳輸速率成反比,在100kb/s速率以下,才可能使用規定最長的電纜長度。隻有在很短的距離下才能獲得最高速率傳輸。一般100米長雙絞線最大傳輸速率僅為1Mb/s。
  RS-485需要2個終接電阻,其阻值要求等於傳輸電纜的特性阻抗。在矩距離傳輸時可不需終接電阻,即一般在300米以下不需終接電阻。終接電阻接在傳輸總線的兩端。

[Note] by Yahoo
======================================
所謂RS232/422/485係國際標準之非同步串列式通訊硬體規範(EIA)之編號名稱; 其資料內容信號基本上係以串列方式一個Bit接一個Bit的依序傳遞; 且其資料位元之0/1係以兩芯信號線間之相對電壓位準差值大小來表現. 最常見之RS232即為電腦之串列埠, 且多為9 Pin模式(舊型也有25 Pin的), 其主要之資料傳遞使用三芯信號線傳遞, 包括: Tx, Rx, 及Gnd, 另有一些控制接腳如: RTS, CTS, DTR等; 另25 Pin模式則是多了一些極罕用之控制接腳, 與預留之空接腳. RS232僅能以一對一之方式, 在兩設備間傳遞資料, 但可達到全雙工之通訊功能, 且因其將兩設備之Gnd連接在一起, 故電纜長度一般規範不宜大於十五公尺為佳. (事實上, 一般實務而言, 當採用的通訊速率愈高時, 有效的通訊距離便愈短)

¨ 目前通訊常見的硬體規格有: RS232、RS422、RS485等; 其中,  RS232、RS422、RS485間原則上皆可利用信號轉換器直接將其電氣規格相互轉換, 以連接不同規格之信號作通訊. (另外, 近來也已有廠商研發出RS232/422/485與EtherNet信號轉換之器材, 但那應是採用封包等之類的其他軟體手段而完成.)

¨ RS232之送/收信號, 可視為以Gnd對Tx及Gnd對Rx腳位之信號位準差值表示; 當然, 兩相連之設備除將Gnd腳位相連外, Tx與Rx接腳須與對方反接.

¨ RS422可謂為RS232之擴充, 其將送/收之信號完全分離為兩對傳輸線, 即: Tx+/Tx-及Rx+/Rx-四芯; 
因不同於RS232將兩端設備之Gnd直接接在一起, 故其傳輸線之長度一般可達到九百公尺以上(使用AWG18以上電纜), 且在一組傳輸線上, 可同時併掛多個通訊設備. 由於送/收信號仍是獨立分離, 故亦可形成一對一全雙工之通訊功能.

¨ RS422網路線上雖可併掛多個通訊設備, 但因送/收信號獨立分開, 故一般會被設計成-僕(Master-Slave)式之通訊架構, 即: 由一主控設備直接對多個終端設備通訊, 各終端設備間並不能直接相互傳遞資料(因各終端設備之Tx皆接在一起而接入主控設備之Rx, 各終端設備之Rx亦皆接在一起而與主控設備之Tx相接).

¨ RS485相當接近於RS422, 但其將送/收之信號線結合, 共同使用同一對傳輸線, 即L+/L-兩芯; 而傳輸線之總長度則更可達到1.5公里之譜. 一般而言, 將RS422之Tx+與Rx+併接、Tx-與Rx-併接, 亦可得到RS485之硬體效果. 由於RS485送/收信號共用同一對傳輸線, 所以它只能有半雙工的能力.

¨ RS485之送/收信號在一起, 故在網路線上之所有通訊設備均具有相同之地位(即: 對等通訊,Peer-to-Peer), 即任一設備送出之資料所有相連之設備均能接獲.

¨ RS485規格規範中有提及: 網路線上最多可併接64(32+32)個節點(通訊設備), 且傳輸線之連接應以一進一出之架構串聯所有設備, 並可於距離過遠時, 串上一個訊號增強器; 而實務上, 網路上之節點應可達256個(當然和傳輸線總長度等條件有關聯), 又由於常是以樹狀結構來連接所有設備, 因此雖然規範中還提及: 若信號不佳時, 可併聯終端電阻來改善, 但實務上很難找到併聯之適當位置與電阻值.

[Note2]================
Modbus是一種通訊協定(軟體)。

RS422、RS485是一種硬體的架構。

=====================================

RS422配線:會有RX+/-,TX+/-  共有4條線

RX  接收外部設備回傳線路
TX  發送給外部設備線路











RS485配線:會有D+/D-  共有2條線

傳送/接收,都是D+/D-在控制。








=====================================================

只看上面的圖示,可能會覺得RS422跟RS485好像是不一樣的,
但很多的控制都說可以同時兼容兩種,甚至都是用同樣的接腳!?

再看看下面的圖,就會懂了。










如果PLC(MASTER)端是RS422,外部裝置是RS485,就可以用上面的接法。
RS422是全雙工,四條線,可以同時傳送/接收,不會有問題。(不同線路)
RS485是半雙工,二條線,如果有其中一個裝置在發送資料,其他裝置就不可以發送。

RS-232, RS-422,和 RS-485序列通訊界面的快速比較@ NI

RS-232, RS-422,和 RS-485序列通訊界面的快速比較

問題: 

RS-232, RS-422, 和RS-485這些序列埠介面有什麼基本的不同?

解答:

RS-232是最普遍的serial介面,對大多數和Windows相容的桌上型電腦而言,是一個標準介面。RS-232在硬體連接上只能有一個發射器和一個接收器,以全雙工方式進行資料的傳輸。部分由NI所販賣的RS-232卡可支援高達1 Mbit / s的baud rate,但其他卡片的baud rate都被限制在115.2kbits / s。這邊需要特別注意的是大多數的IBM電腦上並沒有RS-422/RS-485的介面。

RS-422(EIA RS-422-A Standard)則是在蘋果麥金塔電腦上使用的serial介面。它提供了高達10 Mbits / s的數據傳輸量。 RS-422使用了2條線來進行傳輸以增加baud rate的最大值和cable的長度。RS-422被指定使用在只有一個發射器在發送訊號,而接收器多達10個的多點連接應用的情況。

RS-485是RS-422的改良版,擴展了RS-422的功能。 RS-485提高了RS-422在多點連接時的限制,它可以允許多達32個設備透過相同的傳輸線進行溝通。

任何一個RS-485的從設備(slave device)可以在不需要通過主設備(master device)的情況下與任何其他32個從設備溝通。且由於RS-422是一個RS-485的子集合,所以RS-485可以用來控制RS-422的設備。
這兩個通訊協定都可以多點連接,但RS-485最多可以連接32台設備,而RS-422最多可連接10台。對於這兩種通信協定,使用者應該提供自己的終止訊號。所有NI的RS-485板都可以支援RS-422的介面。
下面的圖表比較操作模式下,驅動器和接收器的數目、最大的cable長度以及最大的數據傳輸速率。


Specifications
RS-232
RS-422
RS-485
工作模式
單端點
差動
差動
驅動器與接收器總數(One
driver active at a time for
RS-485 networks)
1 Driver
1 Receiver
1 Driver
10 Receiver
32 Drivers
32 Receivers
最大Cable長度
50 ft (2500 pF)
4000 ft
4000 ft
最大傳輸速度 (40 ft -
4000 ft for RS-422/RS-485)
160 kbits/s (can
be up to 1MBit/s
10 MBit/s
10 MBit/s