CAN总线和Modbus总线,该如何选择
關鍵詞:CAN總線 現場總線 Modbus 實時性
摘要:CAN總線和Modbus總線是工控領域常用的兩種現場總線,簡單的說哪個好哪個不好是沒有意義的,要根據不同的應用場景來做選擇。CAN總線是無主結構,在通信方式上更加靈活,且是短幀發送,單幀數據消耗的總線帶寬更少,但傳輸大量數據時效率會降低。Modbus總線是主從結構,只有主站能發起通信,但每幀數據的數據量比較大,在傳輸大量數據時有優勢。實時性方面也不能單純地說哪個高哪個低,還是要看用戶的需求。系統集成怎么選、實時語音傳輸怎么選、傳輸故障停機信號怎么選,以3個小案例為基礎,描述了該如何在CAN總線和Modbus總線之間進行抉擇。
1.總述
CAN總線和Modbus總線是工控領域常用的兩種現場總線。經常會聽到有的同事說,CAN總線的實時性好,更加先進,Modbus總線太簡單,太low,孔丙火認為,這種說法不準確。不同的現場總線有不同的特性,適應的應用場景也不一樣,僅就使用面來講,Modbus總線用的更加多,很多PLC上都會自帶Modbus接口,但自帶CAN總線接口卻不是很多。因此,對兩種總線做一個比較,尤其是針對不同的應用場景(不同需求)做比較,能更清晰地看清本質,便于選擇。
2.系統集成怎么選
在工控領域,尤其是過程控制系統領域,經常會碰到系統集成的案例。有一些控制系統由多個子系統組成,每個子系統可能是不同時期實施的,或者是不同廠家設計的,但系統作為一個整體需要集中的信息展示與控制。舉個例子,系統1和系統2各自控制一些生產設備,各有自己的控制邏輯,有自己的控制器和傳感器,但它們之間也有順序控制關系,這時,可以把兩個系統的信息集成到一個平臺,并可以在平臺上實現兩個系統的順序控制關系。
這種系統集成的案例,信息傳輸若采用現場總線時,應該優先選擇Modbus,一個子系統的信息量是比較大的,若采用CAN總線傳輸,需要分成很多幀才能完成,傳輸效率太低,且每個幀都有ID部分,這種情況下也是一種總線帶寬的浪費。
3.實時語音傳輸怎么選
某些控制系統需要傳輸語音信號,有些是系統報警信號,有的是操作員時間的對講語音。傳統的語音信號是模擬傳輸的,這種方案容易實現,信號幾乎無延時,但缺點也很明顯,長距離傳輸信號幅值衰減會導致遠端語音音量小,缺少遠端設備的信息管理(若要增加管理,需要增加通信線路),因此,很多對于語音傳輸數字化改造的案例。數字語音采用何種現場總線進行傳輸,但就CAN總線和Modbus來選的話,應該選CAN總線。
這個要從語音信號的采樣編碼、壓縮講起,模擬語音信號經過采樣編碼變為數字信號,數字信號經過壓縮芯片壓縮后,發送到總線上。一般語音信號都要經過壓縮傳輸的,不然數據量太大,總線帶寬有限無法傳輸。例如,AMBE1000就是常用的一種壓縮芯片。采樣壓縮后的語音數據需要周期性地向總線發送,根據不同的壓縮比,周期不同,可以是20ms發送一次,也可以10ms甚至更短的時間。每個語音設備作為一個總線節點存在,都有可能隨時發送語音數據,因此,Modbus這種主從式的總線,是無法滿足要求的。在對音質要求不是太高的情況下(工業現場噪聲比較大,更注重音量,一般對音質要求不高),CAN總線一幀或兩幀數據就可以完成一次采樣數據的發送。對于語音信號的實時傳輸,采用CAN總線是合適的。
4.傳輸故障停機信號怎么選
所謂故障停機信號,就是當信號發生時,系統必須在最短的時間內停機,不然會引發安全事故。例如,當檢測到超越危險區域時,必須立即停機。如果這種信號采用現場總線的方式傳輸的,很顯然是不能采用Modbus的。Modbus的主從結構,決定了作為從站的傳感器不能在第一時間把需要傳輸的信息傳輸出去,它要等待主站的詢問。
這種信號若采用CAN總線傳輸,可以把這種信號的幀ID設為最高優先級,這樣,故障停機信號發生后,發生在總線傳輸階段的延時最多只有一個數據幀加幀間隔的時間。如圖1所示。
圖1
在工業過程控制常用的10kbps的通信速率下,47bit的時間是:4.7ms,這僅僅是傳輸方面的延時,當然還會有兩側節點信號轉換和處理的延時,但總的延時也遠小于一個繼電器的工作延時(20ms),因此這種情況應該是可以滿足實時性要求的。
這里說一個題外話,很多工程師在設計工控項目的時候,喜歡用硬接線的方式來處理急停信號,理由是硬接線反應快,其實,按照孔丙火上面的分析,CAN總線通信在處理穩定的情況下,要比一個繼電器的反應要快的多。
5.總結
Modbus總線是一個統稱,傳輸介質可以是雙絞線(串口)或網線(以太網),孔丙火在本文中比較的是以串口通信為基礎的Modbus,即Modbus-RTU或ASCII,以RTU最多。CAN總線和Modbus-RTU都以雙絞線為介質進行傳輸,這種比較才有意義。
系統集成怎么選、實時語音傳輸怎么選、傳輸故障停機信號怎么選,以3個小案例為基礎,描述了該如何在CAN總線和Modbus總線之間進行抉擇。對應用場景進行了一些延伸性的描述,有些啰嗦,只是為了更清晰地說明問題。
文章在公眾號(孔丙火)同步推出,歡迎查看更多系列文章。
單片機、ARM、現場總線、PLC、嵌入式軟硬件的設計經驗分享,秉承“點點滴滴皆智慧”的理念,以實際項目為單元闡述知識點,一起分享,共同交流。
總結
以上是生活随笔為你收集整理的CAN总线和Modbus总线,该如何选择的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统缺少steam_api.dll解决方
- 下一篇: 小白在MAC上装mixly,出现“未能启