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

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

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

Modbus功能碼/異常功能碼/錯(cuò)誤代碼

nmgdmdz ? 來(lái)源:nmgdmdz ? 作者:nmgdmdz ? 2023-06-25 09:20 ? 次閱讀

在大家通讀Modbus協(xié)議時(shí),總是會(huì)碰到一些容易混淆的名詞,從而導(dǎo)致對(duì)于協(xié)議的解讀出現(xiàn)問(wèn)題,在本文中,我們對(duì)于Modbus協(xié)議中可能會(huì)給大家造成困惑的名詞作相關(guān)的解釋。

1.功能碼:功能碼在modbus協(xié)議用于表示信息幀的功能,常用的功能碼有03,04,06,16等,其中03功能碼的作用是讀保持寄存器內(nèi)容,04功能碼的作用是讀輸入寄存器內(nèi)容(輸入寄存器和保持寄存器的區(qū)別看下文),06功能碼的內(nèi)容是預(yù)置單個(gè)保持寄存器,16功能碼的內(nèi)容則是預(yù)置多個(gè)保持寄存器。

2.輸入寄存器和保持寄存器:04功能碼的作用就是讀輸入寄存器,而03功能碼的作用則是讀保持寄存器,很多人在看到這兩個(gè)功能碼的時(shí)候總是希望找到這兩個(gè)功能碼的區(qū)別,保持寄存器和輸入寄存器到底是什么區(qū)別,modbus協(xié)議最開始是用來(lái)解決PLC通信協(xié)議問(wèn)題的,主要用于輸入輸出數(shù)字量信號(hào)以及模擬量信號(hào),所謂的輸入寄存器就是從模擬量信號(hào)輸入引申出來(lái)的,即輸入寄存器只能從模擬量信號(hào)輸入端改變寄存器,而主機(jī)則不能通過(guò)下發(fā)指令改變輸入寄存器的數(shù)據(jù),而保持寄存器則是用于輸出模擬量信號(hào)的,主機(jī)是可以改變寄存器數(shù)據(jù),也就是說(shuō)對(duì)于主機(jī)而言,輸入寄存器是只讀的,而保持寄存器是可以讀寫的,當(dāng)主機(jī)用06,16功能碼的指令去預(yù)置輸入寄存器的時(shí)候,設(shè)備會(huì)返回一個(gè)代碼為0x81的錯(cuò)誤代碼,即企圖寫只讀寄存器。

3.Modbus中的數(shù)據(jù)地址格式:在Modbus協(xié)議中,經(jīng)常會(huì)出現(xiàn)類似于3xxxx,4xxxx寄存器,這個(gè)表示的是寄存器支持的數(shù)據(jù)類型。我們用列表來(lái)說(shuō)明,還有Modbus數(shù)據(jù)地址格式是從0開始,比如以下一個(gè)寄存器40009,即表示保持寄存器,寄存器地址為00 08,類似的數(shù)據(jù)地址格式經(jīng)常在組態(tài)軟件以及PLC系統(tǒng)中用到。

映射地址 使用的功能碼 地址類型 存取方式 描述
0XXXX 01,05,15 離散輸出 讀寫 每個(gè)卷表示單個(gè)開關(guān)位
1XXXX 02 離散輸入 只讀 每個(gè)卷表示單個(gè)開關(guān)位
2XXXX 03,04,06,16 浮點(diǎn)寄存器 只讀/讀寫 兩個(gè)連續(xù)16位寄存器表示一個(gè)浮點(diǎn)數(shù)
3XXXX 04 輸入寄存器 只讀 每個(gè)寄存器表示一個(gè)16位無(wú)符號(hào)整數(shù)
4XXXX 03,06,16 保持寄存器 讀寫 每個(gè)寄存器表示一個(gè)16位無(wú)符號(hào)整數(shù)
5XXXX 03,04,06,16 ASCII字符 讀寫 每個(gè)寄存器表示兩個(gè)ASCII碼


4.Modbus RTU/ASCII/TCP:Modbus協(xié)議最開始是用于可編程邏輯控制器(PLC)之間的通訊,由于其具有的開放性,大量的用于現(xiàn)場(chǎng)智能儀表。Modbus協(xié)議有多個(gè)變種,其中最著名的是Modbus RTU/Modbus ASCII和Modbus TCP通信協(xié)議。其中RTU/ASCII協(xié)議是基于串行口通信,而TCP協(xié)議則是基于以太網(wǎng)通信。他們之間的區(qū)別和聯(lián)系請(qǐng)參考本站其他頁(yè)面內(nèi)容:Modbus RTU/TCP協(xié)議解析以及Modbus RTU/ASCII通信協(xié)議異同點(diǎn)。

5.Modbus錯(cuò)誤代碼表,modbus有功能碼,校驗(yàn)碼,異常功能碼和錯(cuò)誤代碼,其中異常功能碼和錯(cuò)誤代碼非常容易混淆,一般來(lái)說(shuō)異常功能碼指的是某個(gè)功能碼執(zhí)行的時(shí)候出現(xiàn)的相應(yīng)異常功能碼,一般都是在功能碼的基礎(chǔ)上加上0x80,比如03功能碼出現(xiàn)的異常碼是0x83異常功能碼,16功能碼對(duì)應(yīng)出現(xiàn)的異常功能碼則是0x90,而錯(cuò)誤代碼則是表示出現(xiàn)錯(cuò)誤的具體情況,比如寄存器地址不存在,不管是讀還是寫,如果該寄存器地址不存在的話,錯(cuò)誤代碼為02。具體情況請(qǐng)參閱本站其他頁(yè)面文章。

審核編輯黃宇

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

    關(guān)注

    5004

    文章

    13054

    瀏覽量

    461016
  • MODBUS
    +關(guān)注

    關(guān)注

    28

    文章

    1748

    瀏覽量

    76701
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    臺(tái)達(dá)PLC通信支持modbus協(xié)議的4號(hào)功能嗎?

    使用modbus協(xié)議的4號(hào)功能采集PH值,系統(tǒng)部署如下圖:本來(lái)這是個(gè)很簡(jiǎn)單的項(xiàng)目,可是在PLC的通訊編程中出現(xiàn)了問(wèn)題,DW-MC1無(wú)線監(jiān)控器采樣modbus協(xié)議的4號(hào)
    發(fā)表于 05-22 11:18

    Labview Modbus.vi 錯(cuò)誤代碼56

    本帖最后由 faxhui 于 2018-1-9 23:35 編輯 用的Labview的modbus 函數(shù),運(yùn)行之后就報(bào)錯(cuò),錯(cuò)誤代碼是56~~~這個(gè)好像是超時(shí),也添加了超時(shí)時(shí)間設(shè)置的函數(shù),怎么弄也不行~~~~有沒(méi)有高手用過(guò)這種方式,幫助解答一下,感激不盡?。。。?/div>
    發(fā)表于 01-09 23:33

    Modbus功能的回調(diào)函數(shù)如何編寫呢

    FreeModbus從站設(shè)計(jì)(10)-Modbus功能的回調(diào)函數(shù)如何編寫關(guān)鍵詞:FreeModbus CubeMX HAL庫(kù) 串口 功能
    發(fā)表于 02-16 07:31

    modbus功能錯(cuò)誤會(huì)返回什么錯(cuò)誤信息?

    modbus在通信的過(guò)程中功能錯(cuò)誤會(huì)返回什么錯(cuò)誤
    發(fā)表于 10-13 07:48

    modbus功能怎么用?

    modbus功能怎么用
    發(fā)表于 11-06 06:37

    MSN錯(cuò)誤代碼大全

    MSN錯(cuò)誤代碼大全  80004005   這是一個(gè)泛泛的錯(cuò)誤代碼,它意味著,“我知道出錯(cuò)了,但我不知道錯(cuò)誤是什么”。   第一步,我們可以試著重新注冊(cè)MSN所需的dll
    發(fā)表于 07-20 22:50 ?2846次閱讀

    IBM筆記本錯(cuò)誤代碼解釋及解決

    IBM筆記本錯(cuò)誤代碼解釋及解決     IBM的ThinkPad系列筆記本電腦在國(guó)內(nèi)有不少用戶,筆者收集到關(guān)于ThinkPad的錯(cuò)誤代碼解釋以及解決方
    發(fā)表于 01-23 14:12 ?866次閱讀

    2013LabVIEW錯(cuò)誤代碼

    2013LabVIEW錯(cuò)誤代碼介紹,通過(guò)查看錯(cuò)誤代碼可知錯(cuò)誤原因。
    發(fā)表于 02-25 15:00 ?9次下載

    LabVIEW錯(cuò)誤代碼

    labview__錯(cuò)誤代碼,感興趣的小伙伴們可以看一看。
    發(fā)表于 09-06 18:07 ?0次下載

    modbus協(xié)議功能及格式

    modbus協(xié)議功能及格式
    發(fā)表于 10-28 15:56 ?43次下載

    ABB的DCS功能中文說(shuō)明

    第一章 功能概述 一、專用術(shù)語(yǔ) 功能(Function Code): Symphony 系統(tǒng)提供了一系列完成不同功能的軟件模塊,并對(duì)每個(gè)
    發(fā)表于 11-23 17:26 ?0次下載
    ABB的DCS<b class='flag-5'>功能</b><b class='flag-5'>碼</b>中文說(shuō)明

    基于Modbus功能細(xì)粒度過(guò)濾算法的研究

    針對(duì)防火墻粗粒度過(guò)濾Modbus/TCP導(dǎo)致工控系統(tǒng)存在安全威脅的問(wèn)題,研究基于Modbus功能的細(xì)粒度過(guò)濾算法?;?b class='flag-5'>Modbus TCP
    發(fā)表于 01-16 15:32 ?0次下載
    基于<b class='flag-5'>Modbus</b><b class='flag-5'>功能</b><b class='flag-5'>碼</b>細(xì)粒度過(guò)濾算法的研究

    單片機(jī)程序中,Modbus功能的回調(diào)函數(shù)如何編寫--FreeModbus從站設(shè)計(jì)(10)

    FreeModbus從站設(shè)計(jì)(10)-Modbus功能的回調(diào)函數(shù)如何編寫關(guān)鍵詞:FreeModbus CubeMX HAL庫(kù) 串口 功能
    發(fā)表于 12-20 18:49 ?9次下載
    單片機(jī)程序中,<b class='flag-5'>Modbus</b><b class='flag-5'>功能</b><b class='flag-5'>碼</b>的回調(diào)函數(shù)如何編寫--FreeModbus從站設(shè)計(jì)(10)

    modbus協(xié)議功能分類 modbus協(xié)議功能是什么,有什么作用

    Modbus協(xié)議是一種用于工業(yè)領(lǐng)域常見(jiàn)的通信協(xié)議,它基于主從結(jié)構(gòu),用于在不同設(shè)備之間實(shí)現(xiàn)數(shù)據(jù)交換。Modbus協(xié)議的功能是決定數(shù)據(jù)交換類型和操作的重要部分。下面將詳細(xì)介紹
    的頭像 發(fā)表于 01-31 14:47 ?6073次閱讀

    介紹一些常見(jiàn)的Modbus IO通信錯(cuò)誤代碼及其含義

    Modbus IO通信協(xié)議中的錯(cuò)誤代碼通常用于標(biāo)識(shí)通信過(guò)程中出現(xiàn)的錯(cuò)誤異常情況。
    的頭像 發(fā)表于 03-06 09:03 ?2088次閱讀