0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ModBus RTU、ASCII、TCP,選哪種模式更好?

億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 2023-01-14 10:23 ? 次閱讀

ModBus是一種通信協(xié)議,用于連接自動化設(shè)備(如PLC、溫度控制器等)和計算機(jī)。它被廣泛應(yīng)用于工業(yè)控制系統(tǒng),支持多種通信方式,包括ModBus RTU、ModBus ASCII和ModBus TCP等。本文將主要解釋這三種通信方式的區(qū)別和應(yīng)用場景。

所有ModBus協(xié)議的基本結(jié)構(gòu)

無論變體如何,所有標(biāo)準(zhǔn)ModBus通信都遵循相同的消息傳遞結(jié)構(gòu)。一切都圍繞著將值存儲在寄存器中然后讀取它們。這里有幾種數(shù)據(jù)類型在起作用。例如,離散輸入可以存儲為單個位。更廣泛地說,輸入寄存器存儲基于 ModBus 的設(shè)備收集的值。將多個分立器件存儲為單個位,而模擬值甚至 ASCII 字符可能存儲在 8 位寄存器中(最低有效位為 0 位,最高有效位為 64 位)。不同類型的寄存器按用于輪詢它們的功能代碼進(jìn)行分類。功能代碼字段中的“1”用于“讀取線圈”(檢查控制繼電器的狀態(tài))?!?”表示“讀取離散輸入”(檢查離散輸入的狀態(tài))?!?”是“讀保持寄存器”(從多用途讀/寫寄存器收集數(shù)據(jù))。ModBus 規(guī)范中還有更多。寄存器由其“起始地址”請求,起始地址是一個 16 位值,用于唯一標(biāo)識設(shè)備中的每個寄存器。對RTU或其他設(shè)備的主控請求將始終引用要報告的所需寄存器。3f2e58ce-92a8-11ed-ad0d-dac502259ad0.png

3f371126-92a8-11ed-ad0d-dac502259ad0.png

ModBus RTU

ModBus RTU(Remote Terminal Unit)是ModBus協(xié)議最常見的實(shí)現(xiàn)方式,采用二進(jìn)制數(shù)據(jù)傳輸,具有較高的傳輸效率和穩(wěn)定性。它使用串行通信,支持RS232RS485兩種接口。在RTU模式下,每個字節(jié)可以傳輸兩位十六進(jìn)制字符。比如0xAB會直接以十六進(jìn)制0xAB(二進(jìn)制10101011)進(jìn)行發(fā)送。其消息幀格式由以下部分組成:
3f3cbcfc-92a8-11ed-ad0d-dac502259ad0.pngRTU模式采用16 位CRC校驗,后續(xù)的命令/數(shù)據(jù)帶有循環(huán)冗余校驗的校驗和。RTU模式比較常用,而ASCII一般很少用。

3f371126-92a8-11ed-ad0d-dac502259ad0.png

ModBus TCP

ModBus TCP(Transmission Control Protocol)是ModBus協(xié)議的一種擴(kuò)展,它使用TCP/IP協(xié)議進(jìn)行通信,可以在局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)之間傳輸數(shù)據(jù)。ModBus TCP支持多種網(wǎng)絡(luò)設(shè)備,包括計算機(jī)、服務(wù)器、交換機(jī)、路由器等。它適用于遠(yuǎn)程監(jiān)控和控制,常用于工業(yè)網(wǎng)絡(luò)和物聯(lián)網(wǎng)應(yīng)用。該協(xié)議的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層都是基于TCP協(xié)議,它只是在應(yīng)用層將ModBus協(xié)議封裝進(jìn)去。然后接收端將該TCP數(shù)據(jù)包拆包后,重新獲得原始ModBus幀,然后按照ModBus協(xié)議規(guī)范進(jìn)行解析,并將要返回的數(shù)據(jù)包重新封裝到TCP協(xié)議中,發(fā)回至發(fā)送端。與串行通信的傳輸格式不同,TCP模式去除了附加地址和校驗,增加報文頭,如下圖所示。
3f4f27de-92a8-11ed-ad0d-dac502259ad0.png通過以太網(wǎng)傳輸時使用TCP模式,不使用校驗,因為TCP協(xié)議是一個面向連接的可靠協(xié)議。ModBus RTU和ModBus TCP作為ModBus協(xié)議的兩個主要變體,傳統(tǒng)上,ModBus RTU(需要將信息傳送回ModBus主站或SCADA HMI的RTU)被許多不同類型的設(shè)備使用。ModBus RTU通常通過RS485串行發(fā)送。這種菊花鏈通信通道允許多個設(shè)備在主從配置中向單個HMI端口報告。每個從設(shè)備都能夠通過向主設(shè)備發(fā)送流量來說話。這使得ModBus網(wǎng)絡(luò)結(jié)構(gòu)保持相當(dāng)簡單。

3f371126-92a8-11ed-ad0d-dac502259ad0.png

ModBus ASCII

ModBus ASCII(American Standard Code for Information Interchange)采用ASCII碼傳輸文本信息,每個8Bit 字節(jié)都作為兩個ASCII字符發(fā)送。相對ModBus RTU而言,它的傳輸效率較低,但具有更好的可讀性。ModBus ASCII也使用串行通信,并支持RS232和RS485兩種接口,適用于短距離通信。在ASCII模式下,每個8位的字節(jié)拆分為兩個ASCII字符進(jìn)行發(fā)送,消息幀以英文冒號“:”開始,以回車和換行(CRLF)符號結(jié)束。例如十六進(jìn)制數(shù)0xAB,會被分解成ASCII字符“A”和“B”進(jìn)行發(fā)送。
3f5c6ef8-92a8-11ed-ad0d-dac502259ad0.pngASCII模式允許兩個字符之間長達(dá)1s的間隔時間而不引發(fā)通信故障,ASCII格式采用縱向冗余校驗(LRC)的校驗和。3f371126-92a8-11ed-ad0d-dac502259ad0.png

三者的區(qū)別

ModBus RTU和ModBus TCP的主要區(qū)別在于ModBus RTU使用菊花鏈網(wǎng)絡(luò),因此可以通過兩條線連接整個網(wǎng)絡(luò),并通過為每個節(jié)點(diǎn)提供唯一的地址來與每個設(shè)備進(jìn)行通信。ModBus TCP使用星形網(wǎng)絡(luò),其中每個節(jié)點(diǎn)都有一條稱為Cat 5或Cat 6的單獨(dú)電纜。它們可以使用路由器連接。它們還帶有網(wǎng)絡(luò)上每個節(jié)點(diǎn)唯一的個人地址。地址可以是 1 到 255,這意味著理論上,我們可以在同一網(wǎng)絡(luò)上擁有 254 臺設(shè)備。也可以通過互聯(lián)網(wǎng)使用ModBus TCP。在ModBus RTU和ModBus ASCII中,通信是通過串行接口進(jìn)行的,這意味著它們只能在較短的距離內(nèi)進(jìn)行通信。因此,如果需要在較遠(yuǎn)的距離進(jìn)行通信,則需要使用ModBus TCP。另一方面,ModBus RTU和ModBus ASCII使用二進(jìn)制和ASCII碼分別進(jìn)行數(shù)據(jù)傳輸,因此它們的傳輸效率和可讀性存在差異。在選擇ModBus通信方式時,需要考慮多種因素,包括通信距離、傳輸效率和可讀性。對于短距離通信,ModBus RTU和ModBus ASCII均可作為選擇。如果需要更高的傳輸效率,則可以選擇ModBus RTU;如果需要更好的可讀性,則可以選擇ModBus ASCII。對于遠(yuǎn)距離通信,則只能使用ModBus TCP。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • MODBUS
    +關(guān)注

    關(guān)注

    28

    文章

    1718

    瀏覽量

    76421
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78756
收藏 人收藏

    評論

    相關(guān)推薦

    Modbus網(wǎng)關(guān)實(shí)現(xiàn)Modbus RTUModbus TCP協(xié)議相互轉(zhuǎn)換

    鋇錸Modbus網(wǎng)關(guān)BL120是一款專注于Modbus協(xié)議轉(zhuǎn)換的通信設(shè)備,支持Modbus RTUModbus
    的頭像 發(fā)表于 08-02 15:13 ?353次閱讀
    <b class='flag-5'>Modbus</b>網(wǎng)關(guān)實(shí)現(xiàn)<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>和<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>協(xié)議相互轉(zhuǎn)換

    鋇錸Modbus RTU/TCP協(xié)議轉(zhuǎn)換網(wǎng)關(guān)BL120

    Modbus網(wǎng)關(guān)BL120是一款在工業(yè)自動化和物聯(lián)網(wǎng)領(lǐng)域廣泛應(yīng)用的通信設(shè)備,專注于Modbus協(xié)議之間的相互轉(zhuǎn)換。支持的下行采集協(xié)議和上行轉(zhuǎn)發(fā)協(xié)議有Modbus RTU
    的頭像 發(fā)表于 08-02 11:58 ?269次閱讀
    鋇錸<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>/<b class='flag-5'>TCP</b>協(xié)議轉(zhuǎn)換網(wǎng)關(guān)BL120

    PLC協(xié)議、Modbus RTU TCP 、DL T645、IEC101-104、BACnet 轉(zhuǎn)Modbus TCP RTU、OPC UA、MQTT、BACnet IP協(xié)議網(wǎng)關(guān)

    一、概述 BL110是一款物聯(lián)網(wǎng)無線工業(yè)智能網(wǎng)關(guān),支持各種PLC協(xié)議、Modbus RTU?、Modbus TCP、DL/T645、IEC101、IEC104、BACnet IP、BA
    的頭像 發(fā)表于 07-24 16:04 ?230次閱讀
    PLC協(xié)議、<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>  <b class='flag-5'>TCP</b> 、DL T645、IEC101-104、BACnet 轉(zhuǎn)<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> <b class='flag-5'>RTU</b>、OPC UA、MQTT、BACnet IP協(xié)議網(wǎng)關(guān)

    Modbus RTUModbus TCP轉(zhuǎn)MQTT網(wǎng)關(guān)實(shí)現(xiàn)Modbus設(shè)備與云平臺的無縫通信

    鋇錸Modbus轉(zhuǎn)MQTT網(wǎng)關(guān),簡而言之,就是通過將Modbus協(xié)議(包括Modbus RTUModbus
    的頭像 發(fā)表于 07-23 16:58 ?1502次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>、<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>轉(zhuǎn)MQTT網(wǎng)關(guān)實(shí)現(xiàn)<b class='flag-5'>Modbus</b>設(shè)備與云平臺的無縫通信

    ModbusRTU ASCII轉(zhuǎn)ModbusTCP協(xié)議轉(zhuǎn)化網(wǎng)關(guān)通訊解決方案

    /ASCII網(wǎng)絡(luò)中。 本網(wǎng)關(guān)連接到Modbus RTU/ASCII總線中做為主站使用,連接到MODBUS-TCP總線中做為主站(客戶端)或從
    的頭像 發(fā)表于 07-23 15:12 ?212次閱讀
    ModbusRTU <b class='flag-5'>ASCII</b>轉(zhuǎn)ModbusTCP協(xié)議轉(zhuǎn)化網(wǎng)關(guān)通訊解決方案

    esp32 idf支持modbus ascii協(xié)議的主機(jī)模式嗎?

    esp32 idf 支持 modbus ascii協(xié)議的主機(jī)模式嗎?
    發(fā)表于 06-25 06:25

    RS485轉(zhuǎn)以太網(wǎng)串口服務(wù)器Modbus網(wǎng)關(guān)連接調(diào)試方法

    ZP-8XXX 系列串口網(wǎng)關(guān)可讓您設(shè)備立刻聯(lián)網(wǎng),專為整合 Modbus RTU/ASCIIModbus TCP 網(wǎng)絡(luò)設(shè)計
    的頭像 發(fā)表于 06-13 10:09 ?1460次閱讀
    RS485轉(zhuǎn)以太網(wǎng)串口服務(wù)器<b class='flag-5'>Modbus</b>網(wǎng)關(guān)連接調(diào)試方法

    Modbus-RTU通訊協(xié)議是什么?

    Modbus-RTU通訊協(xié)議是一種串行通訊協(xié)議,它可以用于連接不同類型的設(shè)備,以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控和控制。Modbus協(xié)議包括RTU、ASCII、TCP
    的頭像 發(fā)表于 05-23 15:06 ?439次閱讀

    BL124采集Modbus RTUModbus TCP協(xié)議

    Modbus網(wǎng)關(guān)BL120是一款專注于Modbus協(xié)議之間相互轉(zhuǎn)換的通信設(shè)備。Modbus網(wǎng)關(guān)BL120支持多種下行采集協(xié)議,包括Modbus RT
    的頭像 發(fā)表于 04-29 16:28 ?313次閱讀
    BL124采集<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>和<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>協(xié)議

    Modbus TCPModbus RTU的區(qū)別

    Modbus是一種廣泛應(yīng)用于工業(yè)自動化領(lǐng)域的通信協(xié)議,用于不同廠商生產(chǎn)的設(shè)備之間的數(shù)據(jù)交換和通信。在Modbus協(xié)議中,ModbusTCP和ModbusRTU是兩種最為常見的通信方式。盡管它們都是
    的頭像 發(fā)表于 04-12 09:14 ?1260次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>與<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>的區(qū)別

    STM32L431RC通過命令切換到MODBUS/RTU模式,為什么RTU模式的CMF中斷一直在工作?

    我使用的芯片是STM32L431RC,用USART2和上位機(jī)通信。默認(rèn)使用MODBUS/ASCII模式,CMF字符匹配中斷工作沒有問題?,F(xiàn)在需要通過命令切換到MODBUS/
    發(fā)表于 03-27 06:01

    MODBUS RTU詳細(xì)解釋

    Modbus 一個工業(yè)上常用的通訊協(xié)議、一種通訊約定。Modbus 協(xié)議包括 RTU、ASCII、TCP。其中
    發(fā)表于 01-12 16:39 ?8次下載

    Modbus RTU轉(zhuǎn)Modbus TCP網(wǎng)關(guān)應(yīng)用技術(shù)

    通過Modbus RTU轉(zhuǎn)Modbus TCP網(wǎng)關(guān),設(shè)備之間的通信更加靈活便捷,大大提高了系統(tǒng)的可伸縮性和可靠性。此外,Modbus
    的頭像 發(fā)表于 12-05 09:04 ?686次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>轉(zhuǎn)<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>網(wǎng)關(guān)應(yīng)用技術(shù)

    modbus TCPmodbus RTU有什么區(qū)別?

    modbus TCPmodbus RTU有什么區(qū)別
    發(fā)表于 10-09 06:20

    詳解Modbus協(xié)議的RTU幀和ASCII幀(2)

    前面已經(jīng)分析過RTU幀和ASCII幀的報文區(qū)別,細(xì)心的朋友應(yīng)該會發(fā)現(xiàn)在兩種不同的報文傳輸模式下都有一個共同的組成部分——差錯校驗。
    發(fā)表于 10-01 10:38 ?763次閱讀
    詳解<b class='flag-5'>Modbus</b>協(xié)議的<b class='flag-5'>RTU</b>幀和<b class='flag-5'>ASCII</b>幀(2)