- 艾寶物聯IOBOV? ─ 工業無線測控專家
RS485是串行傳輸標準,有點像RS232,但使用其他電信號。RS485的一個重要優點是可以將多個RS485設備放在同一總線上。因此,您不必在主機上乘以RS485接口來詢問多個設備。但是,有一個小技巧:在總線的每一端,你必須放一個總線端接器。有時這意味著您必須在端子上擰一個小電阻,或者只需將開關移到適當的位置即可。
RS485總線通常只由兩根導線和四極電阻組成......
RS485和RS232不直接兼容:您必須使用正確類型的接口,否則信號將無法通過。確實有RS232到RS485網關,但現在它們并不令人感興趣:它可以很容易地將RS485用于USB,以太網或直接用于GSM。它更便宜,而且系統中的組件少了一個。
使用RS485時的主要特點是交換數據的格式。使用RS232時,許多設備只使用文本(ASCII)協議,而RS485大多數設備使用MODBUS協議。因此,您必須知道最少的MODBUS才能連接RS485設備。
MODBUS是主機(主設備)和設備(從設備)之間的協議,用于訪問設備的配置和讀取措施。MODBUS消息對應于讀取和寫入16位字和二進制寄存器(通常稱為“線圈”)的相對簡單的操作。主機系統地啟動交換,“從”設備應答。從站在主機請求之前不發送任何消息。
由于RS485總線上可以并聯多個設備,因此每個從設備必須在總線上使用唯一的MODBUS從站ID。每個MODBUS請求都以目標設備的從站ID開始,每個答案都從發送它的從站的從站ID開始。因此,為了使MODBUS通信正常工作,您必須在設備配置中檢入其從站ID并在必要時進行更改。在途中,還要檢查通信速度和奇偶校驗(與RS232相同的原理)。
您無法輕松地“手動”制作MODBUS消息,就像您在RS232上使用的ASCII協議一樣:每個MODBUS消息以校驗和代碼結束,根據消息的全部內容計算。要交換MODBUS消息,您必須使用:
另請注意,MODBUS協議有兩種變體:MODBUS ASCII模式,其中消息作為十六進制代碼行交換; MODBUS RTU模式,其中消息直接作為二進制幀交換。要與MODBUS設備通信,必須使用與設備中配置的模式相同的模式。所有真正遵循該標準的設備都支持MODBUS RTU模式。在現實生活中,它始終使用后一種模式:MODBUS ASCII沒有任何優勢,因為所有消息在任何情況下都難以手動編碼。
一個小型溫度控制器,內置PID,模糊邏輯,......和RS485上的MODBUS接口
當你明白理論上如何交換信息,你還必須知道哪些登記以請求獲取措施,并登記變更配置設備。在這個級別,寄存器地址從一個設備更改為另一個設備,但有一些MODBUS約定有助于了解技術用戶指南,這些指南通常不像人們希望的那樣清晰。
有4種類型的MODBUS寄存器:
MODBUS設備的技術用戶指南通常包含按類型列出的所有可用寄存器的列表。對于每種類型的寄存器,對應一系列寄存器號,遵循以下約定:
請注意,當使用此約定時,每個類別的第一個寄存器始終以數字1結束(不使用零)。
有時,供應商不是指示唯一的寄存器編號,而是指示具有MODBUS功能標識符的寄存器類型,允許您讀取它們:
在這種情況下,它通常是指示其組中的寄存器的相對位置,第一個元素的位置為0。因此,04h函數的寄存器0對應于第一個輸入寄存器,您也可以調用寄存器30001.注意不要混淆不符合MODBUS函數標識符的寄存器范圍之間的不相干,以及相對的不相干性。頭寸從0開始,絕對倉位從1開始......
當您知道要訪問哪個寄存器時,您仍然必須知道如何解釋它。由于模擬寄存器使用16位編碼,因此通常有兩種約定。第一種方法是使用器件配置中定義的值范圍,并將0-65535寄存器值的線性映射到此值范圍。第二種是以十進制固定點直接存儲值,以工程單位表示:例如,2345表示23.45攝氏度。一些供應商同時提供兩種格式的值:例如,寄存器30001用于與定義范圍成比例的版本,寄存器31001用于十進制版本。