現在很多人都混淆通訊接口和通訊協議的概念,很多人認為RS485就是通訊協議,這是一種誤解;RS485只不過是一個標準的通訊接口,而通訊協議是在不同設備間互相交換數據的數據格式、數據結構的定義和表述。
一、RS485通訊接口
RS485是一種通訊接口標準,不是一種協議,RS485接口標準可以承載多種協議,比如:Modbus RTU、BACnet
MS/TP、CAN總線等。
RS485由RS232和RS422發展而來,彌補了抗干擾能力差、通信距離短、速率低的缺點,增加了多點、雙向通信能力,即允許多個發送器連接在同一條主線上,同時增加了發送器的驅動能力和沖突保護特性,擴展了總線共模范圍。
RS485可以采用二線和四線兩種方式,四線制只能點對點通訊,所以很少用;二線制可以實現真正的多點雙向通信。其主要特點如下:
1、采用平衡驅動器和差分接收器的組合,抗共模干擾能力強,即抗噪聲干擾性好,因而通信距離遠,最大傳輸距離大約為1200m(備注:傳輸距離與速度成反比,傳輸越快,距離越近)
2、通訊速率快、最高可到10M b/s
3、總線站點多,最多可以帶255個站點
二、Modbus 協議
Modbus協議是應用于電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和設備之間可以通信。它已經成為一通用工業標準。有了它,不同廠商生產的控制設備可以連成工業網絡,進行集中監控。
Modbus協議是主從結構的協議,就是一條總線只能有一臺主機,其余全部是從機。通訊機制為輪詢機制,只有主機問到該從機,從機才可以和主機通訊。這就構成了從機多了通訊速度明顯變慢,如果總線上有一臺主機有問題,可能致使總線通訊停頓或停止。
1、Modbus具有以下幾個特點:
1)標準、開放,用戶可以免費、放心地使用Modbus協議,不需要交納許可證費,也不會侵犯知識產權。
2)Modbus可以支持多種電氣接口,如RS-232、RS-485、RJ45等,還可以在各種介質上傳送,如雙絞線、光纖、無線等。
3)Modbus的幀格式簡單、緊湊,通俗易懂。用戶使用容易,廠商開發簡單。
2、Modbus 寄存器種類說明
1) 線圈狀態:輸出端口,可設定端口的輸出狀態,也可以讀取該位的輸出狀態;
2)離散輸入狀態:輸入端口,通過外部設定改變輸入狀態,可讀但不可寫;
3)保持寄存器:控制器運行時被設定的某些參數,可讀可寫;
4)輸入寄存器:控制器運行時從外部設備獲得的某些參數,可讀不可寫。
3、Modbus 功能碼描述
功能碼可以分為位操作和字節操作,位操作的最小單位是Bit,字節操作的最小單位為2個字節(Byte)。Modbus有20幾種功能碼,用來讀寫和操作設備和寄存器。
(1)位操作指令:讀線圈狀態01H、讀離散輸入狀態02H、寫單個線圈05H、寫多個線圈0FH。
(2)字節操作指令:讀保存寄存器03H、讀輸入寄存器04H、寫單個保存寄存器06H、寫多個保存寄存器10H。
三、BACnet協議
BACnet協議由美國暖通、空調和制冷工程師協會(ASHRAE ) 組織的 標準項目委員會135P (Stand Project Committee即SPC 135P)歷經八年半時間開發的。BACnet協議是針對采暖、通風、空調、制冷控制設備所設計的,同時也為其他樓宇控制系統(例如照明、安保、消防等系統)的集成提供一個基本原則。
BACnet協議是多主、令牌結構的協議,總線上的所有控制器只要得到令牌可以作為主機,所有是點對點通訊的協議。BACnet遵循統一的標準協議,任何使用標準BACnet協議的產品,原則上是可以兼容、通用的。
1、BACnet具有以下幾個特點:
1)標準、開放,用戶可以免費、放心地使用BACnet協議,不需要交納許可證費,也不會侵犯知識產權。目前,支持BACnet協議的廠家超過幾千家,支持BACnet協議的產品超過幾萬種。
2)BACnet可以支持多種電氣接口,如RS-232、RS-485、RJ45等,還可以在各種介質上傳送,如雙絞線、光纖、無線等。
3)BACnet的幀格式復雜;用戶使用不容易,廠商開發比較難。
2、BACnet 對象、服務和功能組
在BACnet中,把對象的方法稱為服務,對象及其屬性提供了對一個樓宇自控設備“網絡可見信息”的抽象描述,而服務提供了如何訪問和操作這些信息的命令和方法。BACnet設備通過在網絡中傳遞服務請求和服務應答報文實現服務。BACnet定義了35種服務,并將其劃分為6個類別:
(1)報警與事件服務(Alarm and Event Services)包含8種服務處理環境狀態的變化,提供了BACnet設備預設的請求值改變通告、請求報警或事件狀態摘要、發送報警或事件通知、收到報警通知確認等方法;
(2)文件訪問服務(File Access Services)包含2種服務,提供讀寫文件的方法,包括上/下載控制程序和數據庫的能力;
(3)對象訪問服務(Object Access Services)包含9種服務,提供了讀、修改和寫屬性值以及增刪對象的方法;
(4)遠程設備管理服務(Remote Device Management Services)包含11種服務,提供對BACnet設備進行維護和故障檢測的工具、方法;
(5)虛擬終端服務(Virtual Terminal Services)包含3種服務,提供了一種面向字符的數據雙向交換機制,使其他具有專有特性的樓宇自控設備成為一個BACnet虛擬終端并使BACnet網絡能對其進行重構;
(6)網絡安全服務(Network Security Services)包含2種服務,提供對等實體驗證、數據源驗證、操作者驗證和數據加密等功能。
BACnet功能組規定了實現特定控制功能所需的對象和服務的組合。BACnet已定義了13個功能組,包括時鐘功能組、事件響應功能組、文件功能組、虛擬終端功能組、設備通信功能組等。
3、BACnet設備級別和設備等級說明
在實際的樓宇自動化系統中,沒有必要也不可能所有的設備都支持、包含上述所有的對象和服務。因此,BACnet定義了6個一致性類別(設備級別)。一致性類別的分級編號為1~6,最低級別是類別1。每個類別都規定了設備要實現的最小服務子集,且包含低級別的所有服務。
為了幫助用戶和工程人員確定不同BACnet設備之間的互操作性,需要廠商為每個設備提供標準格式文件以標識設備中己實現的BACnet標準的內容,即文件需包括設備符合BACnet等級的說明。這個文件就是PICS(Proto Implementation Conformance Statement),它包括:
(1)標識廠商和描述設備的基本信息;
(2)設備符合BACnet的級別;
(3)設備所支持的功能組;
(4)設備所支持的基于標準或專有的服務,設備啟動或響應服務請求的能力;
(5)設備所支持的基于標準或專有的對象類型及其屬性描述;
(6)設備支持的數據鏈路技術;
(7)設備支持的分段請求和響應。