亚洲?V永久无码精品国产精品,男女朋友床上视频免费拍拍拍一区二区,亚洲精品无码久久久久秋霞,国产女优公司在线,中文字幕av无码无卡免费,人人狠狠综合久久88成人

首頁
產(chǎn)品
卓越 ? 易用 ? 可靠
視頻
讓中國物聯(lián)網(wǎng)領(lǐng)先世界
搜索
歷史搜索
搜索發(fā)現(xiàn)

modbus通訊協(xié)議詳解,modbus通訊協(xié)議圖解

2022-12-07 10:04:26| 來源:聚英電子| | 0

  ModBus網(wǎng)絡(luò)是一種工業(yè)通信系統(tǒng),由可編程控制器與智能終端和計(jì)算機(jī)通過公用線路或本地專線連接而成。其系統(tǒng)結(jié)構(gòu)包括硬件和軟件??蓱?yīng)用于各種數(shù)據(jù)采集和過程監(jiān)控。

  ModBus 網(wǎng)絡(luò)只有一個(gè)主機(jī),所有通信都來自該主機(jī)。網(wǎng)絡(luò)最多可支持 247 個(gè)遠(yuǎn)程從控制器,但實(shí)際支持的從控制器數(shù)量取決于所使用的通信設(shè)備。使用該系統(tǒng),每臺(tái) PC 都可以與中央主機(jī)交換信息,而不會(huì)影響每臺(tái) PC 執(zhí)行自己的控制任務(wù)。

  了解Modbus通訊協(xié)議是怎么回事,現(xiàn)場可以使用各種第三方小軟件做通訊測試。

  

Modbus通訊協(xié)議


  Modbus協(xié)議包括ASCII、RTU、TCP等,不指定物理層。該協(xié)議定義了控制器可以識(shí)別和使用的消息結(jié)構(gòu),無論它們通過何種網(wǎng)絡(luò)進(jìn)行通信。標(biāo)準(zhǔn) Modicon 控制器使用 RS232C 實(shí)現(xiàn)串行 Modbus。 Modbus 的 ASCII 和 RTU 協(xié)議規(guī)定了消息、數(shù)據(jù)、命令和響應(yīng)方法的結(jié)構(gòu)。數(shù)據(jù)通訊采用Master/Slave方式。 Master發(fā)送數(shù)據(jù)請(qǐng)求消息,Slave收到正確的消息后可以向Master發(fā)送數(shù)據(jù)。響應(yīng)請(qǐng)求; Master也可以直接發(fā)送消息修改Slave上的數(shù)據(jù),實(shí)現(xiàn)雙向讀寫。

  Modbus 協(xié)議需要校驗(yàn)數(shù)據(jù)。串行協(xié)議中除了奇偶校驗(yàn)外,ASCII 模式采用 LRC 校驗(yàn),RTU 模式采用 16 位 CRC 校驗(yàn),但 TCP 模式不需要額外的校驗(yàn),因?yàn)?TCP 協(xié)議是面向連接的可靠協(xié)議。另外,Modbus采用主從模式定期發(fā)送和接收數(shù)據(jù)。在實(shí)際使用中,如果從站斷開(如故障或停機(jī)),主站可以進(jìn)行診斷,當(dāng)故障修復(fù)后,可以自動(dòng)連接網(wǎng)絡(luò)。因此,Modbus協(xié)議的可靠性更好。

  對(duì)于Modb對(duì)于我們的ASCII、RTU和TCP協(xié)議,TCP和RTU協(xié)議非常相似。我們只需要把RTU協(xié)議的兩字節(jié)校驗(yàn)碼去掉,然后在RTU協(xié)議的開頭加上5個(gè)0和一個(gè)6。它可以通過 TCP/IP 網(wǎng)絡(luò)協(xié)議發(fā)送出去。

  通訊傳輸方式:

  通信傳輸分為獨(dú)立的報(bào)頭和編碼數(shù)據(jù)發(fā)送。以下通信傳輸方式定義也兼容 ModBusRTU 通信協(xié)議:

  初始結(jié)構(gòu) = ≥4 字節(jié)時(shí)間

  地址碼 = 1 個(gè)字節(jié)

  功能碼 = 1 個(gè)字節(jié)

  \n數(shù)據(jù)區(qū)=N字節(jié)

  錯(cuò)誤檢查 = 16 位 CRC 碼

  結(jié)束結(jié)構(gòu) = ≥4 字節(jié)時(shí)間

  地址碼:地址碼是通訊傳輸?shù)牡谝粋€(gè)字節(jié)。該字節(jié)表示具有用戶設(shè)置的地址碼的從機(jī)將接收到主機(jī)發(fā)送的信息。并且每個(gè)從機(jī)都有一個(gè)唯一的地址碼,響應(yīng)回顯以各自的地址碼開始。主機(jī)發(fā)送的地址碼表示要發(fā)送到的從機(jī)地址,從機(jī)發(fā)送的地址碼表示返回的從機(jī)地址。

  功能碼:通訊傳輸?shù)牡诙€(gè)字節(jié)。 ModBus 通訊協(xié)議定義了從 1 到 127 的功能號(hào)。本儀器僅使用部分功能碼。它作為主機(jī)請(qǐng)求發(fā)送,功能碼告訴從機(jī)要執(zhí)行什么動(dòng)作。作為從機(jī)的響應(yīng),從機(jī)發(fā)送的功能碼與主機(jī)發(fā)送的功能碼相同,表示從機(jī)已經(jīng)響應(yīng)主機(jī)進(jìn)行操作。如果從機(jī)發(fā)送的功能碼最高位為1(例如功能碼較大同時(shí)為127),則表示從機(jī)不響應(yīng)操作或發(fā)送錯(cuò)誤。

  數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)根據(jù)功能碼的不同而不同。數(shù)據(jù)字段可以是從主站發(fā)送到從站或從站到主站的實(shí)際值、設(shè)定點(diǎn)、地址。

  CRC 碼:兩字節(jié)錯(cuò)誤檢測碼。

  2.modbus通訊協(xié)議詳解通訊協(xié)議:

  當(dāng)向儀器發(fā)送通訊命令時(shí),滿足相應(yīng)地址碼的設(shè)備會(huì)收到通訊命令,去除地址碼,讀取信息,如果沒有錯(cuò)誤,執(zhí)行相應(yīng)的任務(wù);然后將執(zhí)行結(jié)果返回給發(fā)送者.返回的信息包括地址碼、執(zhí)行動(dòng)作的功能碼、執(zhí)行動(dòng)作后的結(jié)果數(shù)據(jù)、錯(cuò)誤校驗(yàn)碼。如果出現(xiàn)錯(cuò)誤,則不會(huì)發(fā)送任何信息。

  1.modbus通訊協(xié)議詳解信息框架結(jié)構(gòu)

  地址碼 功能碼 數(shù)據(jù)區(qū)錯(cuò)誤校驗(yàn)碼

  8 位 8 位 N × 8 位 16 位

  地址碼:地址碼是信息幀的第一個(gè)字節(jié)(8位),從0到255。這個(gè)字節(jié)表示具有用戶設(shè)置的地址的從機(jī)將接收到主機(jī)發(fā)送的信息。每個(gè)從機(jī)必須有唯一的地址碼,只有匹配地址碼的從機(jī)才能響應(yīng)回顯。當(dāng)從機(jī)發(fā)回信息時(shí),對(duì)應(yīng)的地址碼表示信息的來源。

  功能碼:主機(jī)發(fā)送的功能碼告訴從機(jī)要執(zhí)行什么任務(wù)。表 1-1 中列出的功能碼具有特定的含義和操作。

  數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)包含從機(jī)需要執(zhí)行什么動(dòng)作或從機(jī)收集的返回信息。該信息可以是數(shù)值、參考地址等。例如,如果功能碼告訴從機(jī)讀取寄存器的值,則數(shù)據(jù)區(qū)必須包含要讀取的寄存器的起始地址和長度。對(duì)于不同的從機(jī),地址和數(shù)據(jù)信息是不同的。

  錯(cuò)誤校驗(yàn)碼:主機(jī)或從機(jī)可以使用校驗(yàn)碼來判斷接收到的信息是否錯(cuò)誤。有時(shí),由于電子噪聲或其他一些干擾,信息在傳輸過程中會(huì)發(fā)生細(xì)微的變化,錯(cuò)誤校驗(yàn)碼確保主機(jī)或從機(jī)不會(huì)對(duì)傳輸過程中出錯(cuò)的信息進(jìn)行處理。這提高了系統(tǒng)的安全性和效率。錯(cuò)誤校驗(yàn)采用CRC-16校驗(yàn)方式。

  注:信息幀的格式基本相同:地址碼、功能碼、數(shù)據(jù)區(qū)和錯(cuò)誤校驗(yàn)碼。

  2.錯(cuò)誤檢查

  冗余循環(huán)碼 (CRC) 由 2 個(gè)字節(jié)組成,即 16 位二進(jìn)制。 CRC 碼由發(fā)送設(shè)備計(jì)算并放置在發(fā)送消息的末尾。接收到信息的設(shè)備重新計(jì)算接收到的信息的CRC碼,并比較計(jì)算出的CRC碼是否與接收到的相匹配。如果兩者不匹配,則表示錯(cuò)誤。

  Modbus支持的功能碼

  

 Modbus支持的功能碼

  

Modbus支持的功能碼


  

  modbus通訊協(xié)議詳解功能碼指令:

  這些功能碼中使用的較長的是1和2、3、4、5、6功能碼,可以用來讀寫下位機(jī)的數(shù)字量和模擬量。

  1號(hào)指令01,讀寫數(shù)字寄存器(線圈狀態(tài)):

  電腦發(fā)送命令:【設(shè)備地址】【命令號(hào)01】【起始寄存器地址高8位】【低8位】【讀寄存器個(gè)數(shù)高8位】【低8位】【CRC校驗(yàn)低8位】 【CRC校驗(yàn)高8位】

  示例:[11][01][00][13][00][25][CRC 低][CRC 高]

  modbus通訊協(xié)議詳解含義如下:

  <1>設(shè)備地址:在一個(gè)485總線上可以連接多個(gè)設(shè)備,這里的設(shè)備地址表示你想和哪個(gè)設(shè)備通信。在示例中,我想與數(shù)字 17 通信(十進(jìn)制的 17 是十六進(jìn)制的 11)。

  <2>指令號(hào)01:讀取數(shù)字量的指令號(hào)固定為01。

  <3>起始地址的高8位和低8位:表示要讀取的開關(guān)的起始地址(起始地址為0)。例如,示例中的起始地址為 19。

  <4>寄存器號(hào)的高8位和低8位:表示從起始地址讀取了多少個(gè)開關(guān)。在示例中,有 37 個(gè)開關(guān)。

  <5>CRC校驗(yàn):從頭到尾校驗(yàn)。

  設(shè)備響應(yīng):[設(shè)備地址] [命令號(hào) 01] [返回的字節(jié)數(shù)] [數(shù)據(jù) 1] [數(shù)據(jù) 2]...[數(shù)據(jù) n] [CRC 校驗(yàn)的高 8 位] [CRC 校驗(yàn)和的低 8 位]

  .modbus通訊協(xié)議詳解示例:[11][01][05][CD][6B][B2][0E][1B] [CRC 高] [CRC 低]

  含義如下:

  <1>設(shè)備地址和命令號(hào)同上。

  <2>返回字節(jié)數(shù):表示數(shù)據(jù)的字節(jié)數(shù),即數(shù)據(jù)1、2...n中n的值。

  <3>數(shù)據(jù)1...n:由于每個(gè)數(shù)據(jù)是一個(gè)8位的數(shù)字,每個(gè)數(shù)據(jù)代表8個(gè)開關(guān)的值,每個(gè)位為0表示對(duì)應(yīng)的開關(guān)為關(guān)閉,為1表示關(guān)閉。例如在示例中,表示20號(hào)(索引號(hào)為19)的開關(guān)閉合,21號(hào)打開,22關(guān)閉,23關(guān)閉,24打開,25打開,26關(guān)閉,27關(guān)閉。 . 如果查詢到的開關(guān)量不是 8 的整數(shù)倍,則最后一個(gè)字節(jié)的高位部分無意義,設(shè)置為 0。

  <4>CRC校驗(yàn)同上。

  2號(hào)和05號(hào)指令,寫入數(shù)字量(線圈狀態(tài)):

  電腦發(fā)送命令:【設(shè)備地址】【命令號(hào)05】【要放置的寄存器地址高8位】【低8位】【數(shù)據(jù)低8位】【低8位】【CRC校驗(yàn)低8位】【 CRC校驗(yàn)高8位]

  示例:[ 11][05][00][AC][FF][00][CRC 高][CRC 低]

  含義如下:

  <1>設(shè)備地址同上。

  <2>命令號(hào):寫入數(shù)字量的命令號(hào)固定為05。

  <3>需要向下放置的寄存器地址的高8位和低8位:表示需要向下放置的開關(guān)地址。

  <4>低位數(shù)據(jù)的高8位和低8位:表示需要低位的開關(guān)狀態(tài)。在示例中,開關(guān)是閉合的。注意只有[FF][00]表示關(guān)閉[00][00]表示打開,其他值是非法的。

  <5>注意,該命令只能設(shè)置一種開關(guān)狀態(tài)。

  設(shè)備響應(yīng):如果計(jì)算機(jī)發(fā)送的命令按原樣返回,否則不響應(yīng)。

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

  電腦發(fā)送命令:【設(shè)備地址】【命令號(hào)03】【起始寄存器地址高8位】【低8位】【讀寄存器個(gè)數(shù)的高8位】【低8位】【CRC校驗(yàn)的高8位】 ] [CRC校驗(yàn)低8位]

  示例:[11][03][00][6B][00][03] [CRC 高][CRC 低]

  含義如下:

  <1>設(shè)備地址同上。

  <2>命令號(hào):讀取模擬量的命令號(hào)固定為03。

  <3>起始地址高 8 位、低 8 位:表示要讀取的模擬量的起始地址(起始地址為 0)。例如,示例中的起始地址為 107。

  <4>寄存器號(hào)的高8位和低8位:表示從起始地址讀取了多少模擬量。在示例中,有 3 個(gè)類似物。請(qǐng)注意,模擬需要在返回的信息中返回兩個(gè)字節(jié)。

  設(shè)備響應(yīng):[設(shè)備地址] [命令號(hào) 03] [返回的字節(jié)數(shù)] [數(shù)據(jù) 1] [數(shù)據(jù) 2]...[數(shù)據(jù) n] [CRC 校驗(yàn)和的高 8 位] [CRC 檢查低 8 位]

  示例:[11][03][06][02][2B][00][00][00][64] [CRC 高] [CRC 低]

  modbus通訊協(xié)議詳解含義如下:

  <1>設(shè)備地址和命令號(hào)同上。

  <2>返回字節(jié)數(shù):表示數(shù)據(jù)的字節(jié)數(shù),即數(shù)據(jù)1、2...n中n的值。示例中返回了 3 個(gè)模擬量的數(shù)據(jù),因?yàn)?1 個(gè)模擬量需要 2 個(gè)字節(jié),所以總共有 6 個(gè)字節(jié)。

  <3>Data 1...n:[Data 1][Data 2]分別是第一個(gè)模擬量的高8位和低8位,[Data 3][Data 4]是第二個(gè)高8位位和模擬量的低 8 位,依此類推。示例中返回的值分別為 555、0 和 100。

  <4>CRC校驗(yàn)同上。

  4號(hào)和06號(hào)命令,寫入單個(gè)模擬寄存器(保持寄存器):

  電腦發(fā)送命令:【設(shè)備地址】【命令號(hào)06】【要放置的寄存器地址高8位】【低8位】【數(shù)據(jù)低8位】【低8位】【CRC校驗(yàn)高8位】【 CRC校驗(yàn)的低8位]

  modbus通訊協(xié)議詳解示例:[11][06][00][01][00][03] [CRC 高] [CRC 低]

  含義如下:

  <1>設(shè)備地址同上。

  <2>指令號(hào):寫入模擬量的指令號(hào)固定為06。

  <3>要設(shè)置的寄存器地址的高8位和低8位:表示需要設(shè)置的模擬量寄存器的地址。

  <4>低位數(shù)據(jù)的高8位和低8位:表示需要低位的模擬數(shù)據(jù)。例如,在示例中,寄存器 1 的值設(shè)置為 3。

  <5>注意該指令只能設(shè)置一個(gè)模擬量的狀態(tài)。

  設(shè)備響應(yīng):如果計(jì)算機(jī)發(fā)送的命令按原樣返回,否則不響應(yīng)。

  命令 5 和 16,寫入多個(gè)模擬寄存器(保持寄存器):

  電腦發(fā)送指令:【設(shè)備地址】【指令號(hào)16】【要放置的寄存器地址高8位】【低8位】【數(shù)據(jù)號(hào)高8位】【數(shù)據(jù)號(hào)低8位】【低位數(shù)據(jù)高8位】 [低 8 位] […][…] [CRC 校驗(yàn)高 8 位] [CRC 校驗(yàn)和的低 8 位]

  示例:[11][16][00][01][00][01][00][05] [CRC 高] [CRC 低]

  modbus通訊協(xié)議詳解含義如下:

  <1>設(shè)備地址同上。

  <2>命令號(hào):寫入模擬量的命令號(hào)固定為16。

  <3>要放置的寄存器地址的高8位和低8位:表示需要放置的模擬寄存器的地址。

  <4>要向下設(shè)置的數(shù)據(jù)個(gè)數(shù)的高8位和低8位:表示要向下設(shè)置的數(shù)據(jù)量,這里為1。

  <5>低位數(shù)據(jù)的高8位和低8位:表示需要低位的模擬數(shù)據(jù)。例如,在示例中,寄存器 1 的值設(shè)置為 5。

  設(shè)備響應(yīng):如果計(jì)算機(jī)成功返回以下命令,否則不響應(yīng)。

  設(shè)備響應(yīng):【設(shè)備地址】【命令號(hào)16】【要放置的寄存器地址高8位】【低8位】【數(shù)據(jù)高8位】【數(shù)據(jù)低8位】【CRC校驗(yàn)高8位】 [CRC校驗(yàn)的低8位],如上例返回:

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


聯(lián)系銷售
銷售王經(jīng)理微信 銷售王經(jīng)理
微信公眾號(hào) 微信公眾號(hào)
服務(wù)熱線
400-6688-400
宁明县| 芜湖县| 宿迁市| 深泽县| 宁强县| 建水县| 碌曲县| 凌源市| 上林县| 舟山市| 凤阳县| 朝阳区| 宁安市| 三穗县| 韶山市| 宁海县| 亚东县| 武夷山市|