• <strong id="227bx"></strong>

  • <label id="227bx"></label>
    <ol id="227bx"><code id="227bx"><noframes id="227bx">
  • 關于RS485和MODBUS的快速教程

    什么是RS485?


    RS485是串行傳輸標準,有點像RS232,但使用其他電信號。RS485的一個重要優點是可以將多個RS485設備放在同一總線上。因此,您不必在主機上乘以RS485接口來詢問多個設備。但是,有一個小技巧:在總線的每一端,你必須放一個總線端接器。有時這意味著您必須在端子上擰一個小電阻,或者只需將開關移到適當的位置即可。 

    RS485總線通常只由兩根導線和四極電阻組成......
    RS485總線通常只由兩根導線和四極電阻組成......


    RS485和RS232不直接兼容:您必須使用正確類型的接口,否則信號將無法通過。確實有RS232到RS485網關,但現在它們并不令人感興趣:它可以很容易地將RS485用于USB,以太網或直接用于GSM。它更便宜,而且系統中的組件少了一個。 

    使用RS485時的主要特點是交換數據的格式。使用RS232時,許多設備只使用文本(ASCII)協議,而RS485大多數設備使用MODBUS協議。因此,您必須知道最少的MODBUS才能連接RS485設備。 
     

    什么是MODBUS?


    MODBUS是主機(主設備)和設備(從設備)之間的協議,用于訪問設備的配置和讀取措施。MODBUS消息對應于讀取和寫入16位字和二進制寄存器(通常稱為“線圈”)的相對簡單的操作。主機系統地啟動交換,“從”設備應答。從站在主機請求之前不發送任何消息。 

    由于RS485總線上可以并聯多個設備,因此每個從設備必須在總線上使用唯一的MODBUS從站ID。每個MODBUS請求都以目標設備的從站ID開始,每個答案都從發送它的從站的從站ID開始。因此,為了使MODBUS通信正常工作,您必須在設備配置中檢入其從站ID并在必要時進行更改。在途中,還要檢查通信速度和奇偶校驗(與RS232相同的原理)。 

    您無法輕松地“手動”制作MODBUS消息,就像您在RS232上使用的ASCII協議一樣:每個MODBUS消息以校驗和代碼結束,根據消息的全部內容計算。要交換MODBUS消息,您必須使用: 

    • 設備供應商提供的特定程序,兼容接口;
    • 或帶有編程庫的簡單RS485接口,編程和解碼MODBUS消息;
    • 或智能RS485接口,能夠自行編碼和解碼MODBUS消息,例如Yocto-RS485。


    另請注意,MODBUS協議有兩種變體:MODBUS ASCII模式,其中消息作為十六進制代碼行交換; MODBUS RTU模式,其中消息直接作為二進制幀交換。要與MODBUS設備通信,必須使用與設備中配置的模式相同的模式。所有真正遵循該標準的設備都支持MODBUS RTU模式。在現實生活中,它始終使用后一種模式:MODBUS ASCII沒有任何優勢,因為所有消息在任何情況下都難以手動編碼。 
     

    一個小型溫度控制器,內置PID,模糊邏輯,......和RS485上的MODBUS接口
    一個小型溫度控制器,內置PID,模糊邏輯,......和RS485上的MODBUS接口


     

    訪問MODBUS寄存器


    當你明白理論上如何交換信息,你還必須知道哪些登記以請求獲取措施,并登記變更配置設備。在這個級別,寄存器地址從一個設備更改為另一個設備,但有一些MODBUS約定有助于了解技術用戶指南,這些指南通常不像人們希望的那樣清晰。 

    有4種類型的MODBUS寄存器:

    • 線圈,對應于開/關二進制輸出,例如繼電器。
    • 輸入比特,對應于二進制輸入(只讀)。
    • 所述輸入寄存器中,對應于模擬輸入(只讀)。
    • 保持寄存器,對應于可以改變模擬參數。


    MODBUS設備的技術用戶指南通常包含按類型列出的所有可用寄存器的列表。對于每種類型的寄存器,對應一系列寄存器號,遵循以下約定: 

    • 線圈從00001起編號
    • 輸入比特是從10001向前編號
    • 輸入寄存器,從30001向前編號
    • 保持寄存器從40001向前編號


    請注意,當使用此約定時,每個類別的第一個寄存器始終以數字1結束(不使用零)。 

    有時,供應商不是指示唯一的寄存器編號,而是指示具有MODBUS功能標識符的寄存器類型,允許您讀取它們: 

    • 01H線圈
    • 輸入位02h
    • 04h輸入寄存器
    • 03h保持寄存器


    在這種情況下,它通常是指示其組中的寄存器的相對位置,第一個元素的位置為0。因此,04h函數的寄存器0對應于第一個輸入寄存器,您也可以調用寄存器30001.注意不要混淆不符合MODBUS函數標識符的寄存器范圍之間的不相干,以及相對的不相干性。頭寸從0開始,絕對倉位從1開始...... 

    當您知道要訪問哪個寄存器時,您仍然必須知道如何解釋它。由于模擬寄存器使用16位編碼,因此通常有兩種約定。第一種方法是使用器件配置中定義的值范圍,并將0-65535寄存器值的線性映射到此值范圍。第二種是以十進制固定點直接存儲值,以工程單位表示:例如,2345表示23.45攝氏度。一些供應商同時提供兩種格式的值:例如,寄存器30001用于與定義范圍成比例的版本,寄存器31001用于十進制版本。 

    国产AV无码专区亚洲AV|欧美色中文字幕在线|欧美a级毛欧美|亚洲国产激情一区二区|亚洲gv天堂gv无码男同
  • <strong id="227bx"></strong>

  • <label id="227bx"></label>
    <ol id="227bx"><code id="227bx"><noframes id="227bx">