国产在线精品一区二区不卡麻豆

  • <span id="615ww"></span>

  • <optgroup id="615ww"><li id="615ww"><source id="615ww"></source></li></optgroup>

      1. SEARCH
        Tastek Information
        了解更多塔石的訊息
        首頁 / 新聞資訊 / 技術交流
        News

        Modbus通信協議大全,它不僅僅只是個協議

        2021-03-10

        Modbus通信協議大全,它不僅僅只是個協議


        ModBus,分解開來翻譯成中文為移動的公交?

        哈哈哈,當然不是,其實ModBus網絡就是工業通信系統而已,它并不神奇,整體由PLC和智能終端的計算機通過公共線路或本地專用線路連接而成。

        系統結構由硬件和軟件組成。適用于各種類型的數據采集和過程監控。

        modBus網絡非常之專一,它有且僅有一個主人(主機),并且ModBus網絡所具備的全部通信系統都是通過這個唯一的主人(主機)而操作進行的。

        一網可支持247個遠程依賴器,但實際支持的依賴器數量取決于所使用的通信設備。

        使用該系統,每個電腦都可以在不影響自己控制任務的情況下與主機交換信息。

        Modbus通信協議大全

        在現場使用各種第三方app軟件也可以測試到Modbus通訊協議。

        該協議包括ASCII、RTU、TCP等,但沒有指定物理層。

        無論在哪個網絡上通信,控制器都可以識別和使用定義的信息結構。

        采用RS232C實現標準模型控制器串行模型。

        RTU協議中有Modbus的ASCII、數據結構、RTU協議中的回復方式和命令;

        數據通信采用Maser/Slave方式,在Master端發送數據請求信息,接著Slave端收到正確的信息時,將數據發送到Master端的串行協議中ASCII為LRC,RTU為16位CRC,TCP為面向連接的可靠協議TCP,檢查次數沒有增加。

        此外,ASCII采用基于16位數的CRC模式。

        另外,Modbus采用主從式定時收發數據。

        實際使用時,如果某個Slave站點斷開,Master端可以診斷,但網絡在故障排除后自動連接。

        因此,Modbus協議是可靠的。

        Modbus通信協議大全

        關于Modbus的ASCII、RTU和TCP協議,TCP和RTU協議非常相似,可以簡單地刪除RTU協議的兩個字節檢查代碼,在RTU協議的開始部分增加5個0、1個6,通過TCP/IP網絡協議發送。


        1.通信傳輸方式:


        通信傳輸分為獨立的發送頭和數據代碼。

        ModBusRTU通信法規也與通信傳輸模式兼容,定義如下:

        初始化的結構時間=≥4字節。

        地址代碼=1字節。

        功能代碼=1字節。

        data=N字節。

        錯誤報告=16位CRC碼。

        類型為≥4字節。

        地址代碼:地址代碼是通信傳輸的第一個字節。這個字節表示用戶設置地址代碼后從主機收到的信息。每個依賴設備都有唯一的地址代碼,回信的反應從各自的地址代碼開始。主機發送的地址代碼顯示要發送的從屬地址,主機發送的地址代碼顯示要返回的從屬地址。

        功能代碼:用于通信傳輸的第二個字節。ModBus通訊“規范在1到127之間定義了函數代碼。該裝置只有部分功能代碼。向主機發送請求,告訴從機執行的操作。舉個例子于從機響應,從機發送的函數代碼與從主機發送的函數代碼相同,表示從機響應到主機。如果從機發送的最大功能代碼為1(如同時127功能代碼),則表示從機沒有響應操作或發送錯誤。

        DataFlow:根據功能代碼的不同而不同。數據區可以是實際數值、設置點、主機向主機或主機發送的地址。

        crc代碼:雙字節錯誤。


        2.交流條約:


        通信指令送達儀器后,符合通信指令對應地址代碼的設備接收通信指令,清除地址代碼,讀取信息,如果沒有錯誤,采取相應的措施,將執行結果返執行結果。返回的資料包括地址代碼、作業功能、作業結果資料和作業后的錯誤檢查代碼。發生錯誤,沒有發送信息。


        ①信息系統的結構。

        地址碼功能代碼在數據區校驗代碼錯誤。

        8條8N×8條16條。

        在信息框中,地址代碼是第一個字節(8位),從0到255。這個字節表示用戶設定地址后收到的主機信息。每個機器必須有唯一的地址代碼,只有符合該地址代碼的機器才能回應。當信息在計算機上返回時,相應的地址代碼顯示信息源。

        功能代碼:宿主發送功能代碼,告訴機器如何運行。表1-1所列所有函數代碼都有特定的含義和功能。

        Designloads:設計區域包括需要在機器上操作或從機器上收集返回的返回信息。這些信息可以是數字、參考地址等。例如,函數代碼告訴你從機器讀取寄存器的值,數據區必須包含起始地址和讀取寄存器的長度。不同的機器有不同的地址和數據信息。

        錯誤檢查代碼:收到的信息可以通過主機或從機器提供的檢查代碼來判斷是否有錯誤。有時,由于電子噪音和其他干擾因素,信息在傳輸過程中會發生微小的變化,錯誤的檢查代碼可以保證機器和主機不能正常工作。這樣可以提高安全和系統效率。用CRC-16驗證法檢查錯誤。

        注:信息幀格式基本相同:地址代碼、數字、數據區、錯誤檢查代碼。


        ②錯誤的檢查。

        由兩個字節(即16位)構成的多馀循環代碼(CRC)。發送方計算CRC代碼,并將其放在發送信息的結尾。接收信息的設備將重新計算其CRC碼,比較計算所得的CRC碼是否與接收的信息一致,如果兩者不一致,則表示錯誤。


        3.Modbus支持的功能代碼:

        功能代碼。

        姓名。

        性能效果。

        Modbus通信協議大全

        1)讀取線圈狀態。

        取得當前邏輯線圈狀態(ON/OFF)。


        2)讀到狀態。

        取得開關輸入(輸出/輸出)集合的當前狀態。


        3)保留讀取閱讀器。

        取得一個或多個保留登錄的當前二進制數值。


        4)讀取輸入表。

        為一個或多個輸入寄存器獲得當前的二進制值。


        5)強制單線圈。

        強制切斷狀態的邏輯線圈。


        6)預定注冊日期。

        在保留寄存器中裝載特定的二進值。


        7)異常讀取。

        取得8個內圈的斷開狀態,由控制器決定地址。


        8)復診檢查法。

        為了評估通信處理過程,將診斷驗證信息發送到相關機器。


        9)編程(僅484)

        允許主機模擬器修改PC從機邏輯。


        10)對照查詢(僅484個)

        可以讓主機和執行長程序任務的從機進行通信,詢問從機是否完成了操作任務,發送包括功能代碼9的信息后再發送本功能代碼。


        11)在事件數量中閱讀。

        主機可以進行查詢,然后判斷操作是否成功,尤其是在命令或其他響應導致通信錯誤的情況下。


        12)閱讀通訊事件的記錄。

        但宿主會從網站上獲得每個ModBus事務處理的通訊事件記錄。完成交易處理后,記錄會出現相關錯誤。


        13)編程(184/38484584)

        允許主機模擬器改變電腦從機邏輯。


        14)咨詢文件184/38484584。

        允許托管和從機通信,允許從機定期控制程序,只有發送包含功能13的消息,才能發送功能代碼。


        15)高強度多線。

        一系列邏輯線圈的強連接。


        16)創建多個登錄。

        在一系列連續的保留存儲器中裝載特定的二進制數字。


        17)報告來自機器標志。

        主機可用于判斷網站的類型和網站運行指示燈的狀態。


        18)(884和MICRO84)

        完成主機模擬程序功能,可修改PC狀態邏輯。


        19)重建通信鏈接。

        當發生不可修改的錯誤時,它是打工,從機器復位到已知的重置狀態。


        20)通用閱讀參數(584L)

        顯示擴展內存文件中的數據信息。


        21)寫字常用參數(584L)

        將共同參數寫入擴展存儲文件或修改。


        22)~64)在擴展功能時,保留備用。


        65)~72)保持用戶特性。

        擴展代碼保留用戶功能。


        73)~119)非法功能。


        120)~127)保持住,就放在里面。


        128)~255)保持住。


        4.功能碼命令詳解:

        這類功能代碼中長期使用的是1,2,3,4,5,6號功能代碼,可實現低位機的數模讀寫操作。

        指令01.可讀取的數字存儲器(線圈狀態):

        電腦傳送指令:[設備地址][指令號01][起始寄存器地址高8位][低8位][讀取寄存器的數量高8位][低8位][CRC檢查低8位][CRC檢查高8位]

        舉例來說,[11][01][00][13][00][25][CRC較低][高]


        其含義:

        設備地址:485公共汽車可以連接多個設備,設備地址在此表示您希望與哪個設備通信。舉例來說,想要與17(10的17就是16的11)通信。

        命令號碼01:用于讀取數字的命令號碼固定為01。

        “3”的起始地址高8位,低8位:一個起始地址,表示要讀取的開關數量(0)。舉例來說,開始地址就是19。

        寄存器的個數,高8位,低8位:從起始地址讀取開關的數量。比如37個開關數量。

        CRC檢查:<5>從頭到尾。

        裝備反應:[設備地址][命令號01][返回字節數][數據1][數據2]...[數據n][CRC檢查高8位[低8位]

        舉例來說,[11][01][05][CD][6B][B2][0E][1B][CRC高[低]


        其含義:

        設備地址和命令號<1>與上面相同。

        返回的字節數<2>:表示數據的字節數,也就是數據1,2..n的n值。

        <3>數據1..n:每個都是8位數,所以每一個都顯示8個開關量的值,每一個0都顯示相應的斷開,每一個0都顯示關閉。

        舉例來說,開關在20(索引號為19),開關在21,關斷22,關斷23,關斷24,關斷25,關斷26,關斷27…如果問到開關的數量是否等于8,最后一個字節的上位值就毫無意義,變成了0。

        CRC檢測結果<4>相同。

        命令2,05,寫入數值(線圈狀態):

        電腦發出下列命令:[設備地址][命令號][8位高][8位高][8位高][8位低][8位高][CRC檢查低8位][8位高][8位高]

        [11][05][00][AC][FF][00][CRC高[低]


        其含義:

        設備地址和上面的1>設備相同。

        命令編號2>:對于寫入數值的命令編號,固定為05。

        “3”下的寄存器地址8位高,8位低:表示開關地址必須位于下面。

        <4>下圖中數據的8位高8位,下圖中數據的8位低:表示需要的開關。舉例來說,關閉此開關。

        要注意,這里只有[FF][00]表示關閉,[00][00]表示關閉,其他數字不一致。

        注意此命令只能放置一個開關數量的狀態。<5>

        設備響應:如果計算機發送的命令成功返回,則不響應。

        命令3,03,可讀可寫的模擬寄存器(寄存器保存):

        電腦發出指令:[設備地址][指令號03][起存地址8位][起存地址8位][起存編號8位][起存編號8位][起存編號8位][起存編號8位][起存編號8位]

        [11][03][00][6B][00][03][CRC高[低]


        其含義:

        設備地址和上面的1>設備相同。

        命令編號2>:讀取模擬量命令編號03。

        “3”的起始地址高8位,低8位:一個起始地址,它代表您想要讀取的模擬數量(0)。

        舉例來說,開始地址就是107。

        寄存器的個數,高8位,低8位:從起始地址讀取的模擬量的數量。

        例如,有三個模擬量。請注意,返回的信息中有一個mock量返回兩個字節。

        裝備反應:[設備地址][命令號03][返回字節數][數據1][數據2]...[數據n][CRC檢查高8位[低8位]

        舉例來說,[11][03][06][02][2B][00][64][CRC高[低]


        其含義:

        設備地址和命令號<1>與上面相同。

        返回的字節數<2>:表示數據的字節數,也就是數據1,2..n的n值。

        舉例來說,由于一個模擬需要2個字節,因此返回的模擬數據共有6個字節。

        [3]數據1..n:其中[數據1][數據2]分別是高8位和低8位,[數據3][數據4]分別是高8位和低2位,[數據3][數據4]。

        比如,返回值分別是555、0,100。

        CRC檢測結果<4>相同。

        命令4,06,寫入一個模擬量寄存器(寄存器保存)

        電腦發出下列命令:[設備地址][命令號06][高8位下載寄存器地址][高8位下載數據][高8位][高8位][高8位][低8位CRC檢查8位]

        [11][06][00][01][00][03][CRC高[低]


        其含義:

        設備地址和上面的1>設備相同。

        命令編號2>:用于編寫模擬量的命令編號固定為06。

        “3”下的寄存器地址8位高8位低:代表模擬寄存器地址在“3”下。

        <4>下圖中的數據高8位,低8位:代表需要模擬數據,如下。

        舉例來說,將第一個寄存器的值設置為3。

        注意此命令僅可下載模擬量的狀態。<5>

        設備響應:如果計算機發送的命令成功返回,則不響應。

        命令5,16,編寫多個模擬寄存器(寄存器保持)

        電腦發出指令:[設備地址][指令號碼16][要求以下寄存器地址高8位][較低8位][數據高8位][較低8位][較低8位][較低8位][較低8位][…][較低8位][CRC檢查8位][CRC檢查8位低8位]

        [11][16][00][01][00][01][00][05][CRC高[低]


        其含義:

        設備地址和上面的1>設備相同。

        命令編號2>:用于編寫模擬量的命令編號固定在16。

        “3”下的寄存器地址8位高8位低:代表模擬寄存器地址在“3”下。

        <4>要求下面的數據高8位,低8位:表示要求下面的數據高1位。

        “5”下的數據有8位高,有8位低:表示需要以下模擬數據。舉例來說,將第一個寄存器的值設置為5。

        設備響應:如果計算機的命令返回成功,則不響應。

        設備響應:[設備地址][命令號碼16][8位高][低8位][數據高][數據低8位][CRC檢查高8位][低8位][低8位][低8位][低8位]例如返回。

        [11][16][00][01][00][01][CRC高[低]



        以上便是由塔石物聯網提供的Modbus通信協議大全的全部內容分析。