最初工廠通過所謂的大型微處理器的系統控制的“分布式控制系統”或“DCS”。一個中央控制系統控制的整個系統(在控制室)。所有傳感器和執行器的通過點到點的連線方式連接到控制系統?;蛘咴诰W絡拓撲中添加
為了減少成本Modicon公司(施耐德大型PLC的前身)發明了最完整的可編程邏輯控制器PLC
因為PLC需要共享數據,所以, Modicon 在1979 創造一個通訊協議: Modicon + fieldbus = MODBUS
Modbus協議基礎
Modbus協議
有不同類型Modbus協議(MODBUS ASCII,Modbus RTU,MODBUS TCP/ IP,Modbus Plus, Modbus Pemex...)
此培訓文檔主要介紹RTU和TCP / IP
Modbus 的分類
一種模式是ASCII(美國信息交換碼),
另一種模式是RTU(遠程終端設備)。
施耐德電氣最常用的是串口協議是Modbus RTU
Modbus RTU最常用的串口設備包括:RS232、RS422、RS485
RS232
由電子工業協會(Electronic Industries Association,EIA) 所制定的異步傳輸標準接口。通常 RS-232 接口以9個引腳 (DB-9) 或是25個引腳 (DB-25) 的型態出現
RS232主要的缺點只能點到點通訊.
傳輸速度最大10 M位/s.
電纜的理論長度為15米。在實踐中,通過使用質量好的電纜,有可能超過這個長度。只需使用屏蔽電纜(普通,或更好的雙絞線)能夠將通訊雙方的距離延長到25-30米。
RS422
RS-422(EIA RS-422-A標準)是歷史上的蘋果Macintosh計算機使用的串行連接。RS-422使用差分電信號,而不像RS-232對樣使用對地不平衡的信號。差分傳輸的發送和接收都使用兩根線,具有更好的抗噪性和更長的距離的信號。這些優勢使得RS-422更適合工業應用。
由于接收器采用高輸入阻抗和發送驅動器比RS232更強的驅動能力,故允許最多可接10個節點。即一個主設備(主),多個從設備(從),從設備之間不能通信,支持點對多的雙向通信。最大傳輸速率10 M位/s
通訊線長度和最高速度關系
12m = 10 M位s/sec
120m = 1 M位s/sec
1200m = 100 k位s/sec
RS485
RS485標準由電信行業協會和電子工業聯盟定義。使用該標準的數字通信網絡能在遠距離條件下以及電子噪聲大的環境下可以有效傳輸信號。RS-485使得廉價本地網絡以及多支路通信鏈路的配置成為可能。
RS485現在多采用的是兩線制接線方式,這種接線方式為總線式拓撲結構,只需兩根數據線和一個地線*。
對于主與多個從設備通訊,RS485是迄今為止最流行的方法。在無中繼器最多可支持32個節點,長度約1200米。
一個串行Modbus網絡有一個主設備和多個從設備,該通信是半雙工。
在不加重發器repeater的情況下,每個段最多32個站。
在干擾惡劣的環境下還應采用鎧裝型雙絞屏蔽電纜
在RS485通信網絡中一般采用的是主從通信方式,即一個主機帶多個從機。很多情況下,連接RS-485通信鏈路時只是簡單地用一對雙絞線將各個接口的“A”、“B”端連接起來,而忽略了信號地的連接,這種連接方法在許多場合是能正常工作的,但卻埋下了很大的隱患,原因1是共模干擾:RS-485接口采用差分方式傳輸信號方式,并不需要相對于某個參照點來檢測信號,系統只需檢測兩線之間的電位差就可以了,但容易忽視了收發器有一定的共模電壓范圍,RS-485收發器共模電壓范圍為-7到+12V,只有滿足上述條件,整個網絡才能正常工作;當網絡線路中共模電壓超出此范圍時就會影響通信的穩定可靠,甚至損壞接口;原因二是EMI的問題:發送驅動器輸出信號中的共模部分需要一個返回通路,如沒有一個低阻的返回通道(信號地),就會以輻射的形式返回源端,整個總線就會像一個巨大的天線向外輻射電磁波。
RS485的終端電阻和極化電阻
建議在通訊網絡的兩端加終端電阻120歐姆1nF,保證阻抗匹配。
極化電阻加在主站側,可有效提高主站帶從站的能力,一般在從站比較多的時候采用。
設備少距離短的情況下不加終端負載電阻整個網絡能很好的工作,但隨著距離的增加性能將降低。理論上,在每個接收數據信號的中點進行采樣時,只要反射信號在開始采樣時衰減到足夠低就可以不考慮匹配。但這在實際上難以掌握,美國MAXIM公司有篇文章提到一條經驗性的原則可以用來判斷在什么樣的數據速率和電纜長度時需要進行匹配:當信號的轉換時間(上升或下降時間)超過電信號沿總線單向傳輸所需時間的3倍以上時就可以不加匹配。
一般終端匹配采用終端電阻方法,RS-485應在總線電纜的開始和末端都并接終端電阻。終端電阻在RS-485網絡中取120Ω。相當于電纜特性阻抗的電阻,因為大多數雙絞線電纜特性阻抗大約在100~120Ω。這種匹配方法簡單有效,但有一個缺點,匹配電阻要消耗較大功率,對于功耗限制比較嚴格的系統不太適合。另外一種比較省電的匹配方式是RC匹配。利用一只電容C隔斷直流成分可以節省大部分功率。
RS485的串口配置
RS485總線上的每個設備都需要配置一些參數,TM241使用SoMachine配置,TM221要使用SoMachine basic的軟件。
Modbus從站地址在一條總線上不能重復,對于一些從站設備比如變頻器ATV320、340、伺服等還要求修改后重新上電!
RS485總線上所有設備的波特率、數據位、停止位、校驗方式必須都相同!
波特率是指單位時間內載波參數變化的次數,如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位,1個停止位,8個數據位),這時的波特率為240Bd,比特率為10位*240個/秒=2400bps。
數據位是指通信中實際數據位的參數,標準的值是5、6、7和8位。RTU自動是8位,其它設置是給ASII碼使用的
停止位是用來表示單個包的最后一位。典型的值為1,1.5和2位。停止位
校驗位在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。沒有校驗位也是可以的。
Modbus數據幀格式
MODBUS協議定義了一個與基礎通信層無關的簡單協議數據單元(PDU)。特定總線或網絡上的MODBUS協議映射能夠在應用數據單元(ADU)上引入一些附加域。
地址碼:第一個字節,每個從機都有具有唯一的地址碼,并且響應回送均以各自的地址碼開始。主機發送的地址碼表明將發送到的從機地址,而從機發送的地址碼表明回送的從機地址,地址碼為0時是廣播模式。
功能碼:通訊傳送的第二個字節。作為主機請求發送,通過功能碼告訴從機執行什么動作。作為從機響應,從機發送的功能碼與從主機發送來的功能碼一樣,并表明從機已響應主機進行操作。如果從機發送的功能碼的最高位為1(比如功能碼大與此同時127),則表明從機沒有響應操作或發送出錯。
數據區:數據區是根據不同的功能碼而不同。數據區可以是實際數值、設置點、主機發送給從機或從機發送給主機的地址。
差錯校驗:使用 CRC碼,它是二字節的錯誤檢測碼。
Modbus地址和數值
所有的電子設備的內部存儲區用于存儲不同類型的數據。它最初開發用于PLC與其他設備進行Modbus通信。在通常情況下,使用四個類型的連接傳感器和執行設備。
PLC需要存儲數據以便進行操作.
每個存儲區存儲不同的數值
Modbus的功能碼
功能碼:主機發送的功能碼告訴從機執行什么任務。
Modbus的校驗碼
校驗碼:Modbus通訊采用CRC-16循環冗余錯誤校驗 ,冗余循環碼CRC包含2個字節,即16位二進制。
CRC計算方法是:
1、 加載一值為0XFFFF的16位寄存器,此寄存器為CRC寄存器。
2、 把第一個8位二進制數據(即通訊信息幀的第一個字節)與16位的CRC寄存器的相異或,異或的結果仍存放于該CRC寄存器中。
3、 把CRC寄存器的內容右移一位,用0填補最高位,并檢測移出位是0還是1。
4、 如果移出位為零,則重復第三步(再次右移一位);如果移出位為1,CRC寄存器與0XA001進行異或。
5、 重復步驟3和4,直到右移8次,這樣整個8位數據全部進行了處理。
6、 重復步驟2和5,進行通訊信息幀下一個字節的處理。
7、 將該通訊信息幀所有字節按上述步驟計算完成后,得到的16位CRC寄存器的高、低字節進行交換
8、 最后得到的CRC寄存器內容即為:CRC校驗碼。
-
傳感器
+關注
關注
2562文章
52553瀏覽量
763641 -
DCS
+關注
關注
20文章
626瀏覽量
51122 -
MODBUS
+關注
關注
28文章
1998瀏覽量
78947 -
中央控制系統
+關注
關注
0文章
30瀏覽量
9334
發布評論請先 登錄
評論