国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼

這篇具有很好參考價值的文章主要介紹了Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

網(wǎng)絡(luò)與串口二合一調(diào)試助手TCPCOM:

https://download.csdn.net/download/liuyuan_java/87454762

Modbus調(diào)試工具,模擬串口調(diào)試工具

https://download.csdn.net/download/liuyuan_java/87427475

Configure Virtual Serial Port Driver (VSPD) 串口模擬工具

https://download.csdn.net/download/liuyuan_java/87426831

Java實現(xiàn)DL/T645-2007協(xié)議報文的下發(fā)和上行報文的解析

https://download.csdn.net/download/liuyuan_java/87454726

Java版DLT645-2007電能表協(xié)議解析源碼(串口協(xié)議解析)

https://download.csdn.net/download/liuyuan_java/87454734

什么是Modbus協(xié)議

MODBUS OSI 模型第 7 層上的應(yīng)用層報文傳輸協(xié)議,它在連接至不同類型總線或網(wǎng)絡(luò)的設(shè)備
之間提供客戶機 / 服務(wù)器通信。

簡單地說,在我們的單片機之間互相通信,以及單片機和上位機通信中,規(guī)定了不同的內(nèi)容規(guī)范,這個規(guī)范是通信的雙方都需要遵守的,這樣就可以實現(xiàn)兩者的通信。

而這個協(xié)議規(guī)范可以有很多種,來適應(yīng)不同的設(shè)備以及通信要求等,我們常見的就有IIC SPI UART串口通信協(xié)議等等。而Modbus也是一個串行通信協(xié)議。

什么是RS-485 RS-232

我們在看Modbus的時候,經(jīng)常會看到485串口,232串口,這些是什么呢?

RS232,RS485是一種電平標準

數(shù)據(jù)在通信雙方之間傳輸,本質(zhì)是傳輸物理的電平?比方說傳輸5V的電壓 -1V的電壓信號,這些物理信號在傳輸過程中會受到很多干擾,比方說你傳輸一個5V的電壓,到了接收端可能就變成了4.8V,并且通信的雙方高低電平的參考電壓可能不同。

那么這個時候就需要一個電平標準,來判斷多少V的電壓是高電平 1,多少V的電壓是低電平 0 這就誕生了 RS-485 RS-232

RS232:是電子工業(yè)協(xié)會(Electronic Industries Association,EIA) 制定的異步傳輸標準接口,同時對應(yīng)著電平標準和通信協(xié)議(時序),其電平標準:+3V~+15V對應(yīng)0,-3V~-15V對應(yīng)1。

  • 全雙工
  • 邏輯1:-15V–5V
  • 邏輯0:+3V–+15V

    Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼

RS485:RS485是一種串口接口標準,為了長距離傳輸采用差分方式傳輸,傳輸?shù)氖遣罘中盘?,抗干擾能力比RS232強很多。兩線壓差為-2~6V表示0,兩線壓差為+2~6V表示1

  • 半雙工
  • 邏輯1:+2V–+6V
  • 邏輯0: -6V—2V
  • 注意485的電平指的是485-A和485-B兩根傳輸線,兩線間的電壓差。而不是傳輸線上的電壓

Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼

也就是RS-485電平標準確定傳輸過來的數(shù)據(jù)是0還是1,在此基礎(chǔ)上,這些字節(jié)數(shù)據(jù)根據(jù)modbus通信協(xié)議來進行數(shù)據(jù)的交互傳輸。

Modbus協(xié)議說明

Modbus誕生于1979年 莫迪康公司 后來被施耐德電氣公司收購。Modbus提供通用語言用于彼此通信的設(shè)備和設(shè)備。
Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標準,并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式。Modbus作為目前工業(yè)領(lǐng)域應(yīng)用最廣泛的協(xié)議

最簡單的說,Modbus就是一個總線通信協(xié)議,像IIC SPI這種,但是他不依賴于硬件總線

Modbus之所以使用廣泛,是有他的優(yōu)點的

  • Modbus協(xié)議標準開放、公開發(fā)表且無版權(quán)要求
  • Modbus協(xié)議支持多種電氣接口,包括RS232、RS485、TCP/IP等,還可以在各種介質(zhì)上傳輸,如雙絞線、光纖、紅外、無線等
  • Modbus協(xié)議消息幀格式簡單、緊湊、通俗易懂。用戶理解和使用簡單,廠商容易開發(fā)和集成,方便形成工業(yè)控制網(wǎng)絡(luò)

舉一個簡單的例子,我們常用的IIC通信協(xié)議,需要在物理上連接iic總線,然后加上拉電阻,規(guī)定好物理層的高低電平。
?

Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼


而 Modbus協(xié)議是一種應(yīng)用層報文傳輸協(xié)議,協(xié)議本身并沒有定義物理層,定義了控制器能夠認識和使用的消息結(jié)構(gòu),不管它們是經(jīng)過何種網(wǎng)絡(luò)進行通信的。?所以能夠適應(yīng)多種電氣接口,因此使用非常廣泛。

Modebus通信過程

注意Modbus是一主多從的通信協(xié)議

Modbus通信中只有一個設(shè)備可以發(fā)送請求。其他從設(shè)備接收主機發(fā)送的數(shù)據(jù)來進行響應(yīng),從機是任何外圍設(shè)備,如I/O傳感器,閥門,網(wǎng)絡(luò)驅(qū)動器,或其他測量類型的設(shè)備。從站處理信息和使用Modbus將其數(shù)據(jù)發(fā)送給主站。

也就是說,不能Modbus同步進行通信,主機在同一時間內(nèi)只能向一個從機發(fā)送請求,總線上每次只有一個數(shù)據(jù)進行傳輸,即主機發(fā)送,從機應(yīng)答,主機不發(fā)送,總線上就沒有數(shù)據(jù)通信。

從機不會自己發(fā)送消息給主站,只能回復(fù)從主機發(fā)送的消息請求。

Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼


并且,Modbus并沒有忙機制判斷,比方說主機給從機發(fā)送命令, 從機沒有收到或者正在處理其他東西,這時候就不能響應(yīng)主機,因為modbus的總線只是傳輸數(shù)據(jù),沒有其他仲裁機制,所以需要通過軟件的方式來判斷是否正常接收。

舉例

現(xiàn)在,我們來探討Modbus數(shù)據(jù)傳輸?shù)姆绞?,可以簡單地理解成打電話。并且是單向通信的打電?/span>

主機發(fā)送數(shù)據(jù),首先需要從機的電話號碼(區(qū)分每個從機,每個地址必須唯一),告訴從機打電話要干什么事情,然后是需要發(fā)送的內(nèi)容,最后再問問從機,我說的話你都聽清楚了沒有呀,沒有聽錯吧?
?

然后從機這里,得到了主機打過來的電話,從機回復(fù)主機需要的內(nèi)容,主機得到從機數(shù)據(jù),這樣就是一個主機到從機的通信過程

就好比老師和你打電話,老師撥通了你的電話號,然后老師跟你說,小王呀,我這里需要你給我發(fā)東西,發(fā)的內(nèi)容是上周的一周總結(jié),你說好的,然后打開你電腦的文件夾,把你的周報發(fā)給老師,這就是一個通信過程。

Modbus存儲區(qū)

既然從機存儲數(shù)據(jù),那么肯定要有一個存儲區(qū),那就需要文件操作,我們都知道這文件可以分為只讀(-r)和讀寫(-wr)兩種類型

并且存儲的數(shù)據(jù)類型可以分為 :布爾量 和 16位寄存器

  • 布爾量比如IO口的電平高低,燈的開關(guān)狀態(tài)等。
  • 16位寄存器比如 傳感器的溫度數(shù)據(jù),存儲的密碼等。

Modbus協(xié)議規(guī)定了4個存儲區(qū) 分別是0-4區(qū) 其中0區(qū)和4區(qū)是可讀可寫,1區(qū)和3區(qū)是只讀。

區(qū)號 名稱 讀寫 地址范圍
0區(qū) 輸出線圈 可讀可寫布爾量 00001-09999
1區(qū) 輸入線圈 只讀布爾量 10001-19999
2區(qū) 輸入寄存器 只讀寄存器 30001-39999
3區(qū) 保持寄存器 可讀可寫寄存器 40001-49999

并且Modbus還給每個區(qū)都劃分了地址范圍?主機向從機獲取數(shù)據(jù)時,只需要告訴從機數(shù)據(jù)的起始地址,還有獲取多少字節(jié)的數(shù)據(jù),從機就可以發(fā)送數(shù)據(jù)給主機

Modbus數(shù)據(jù)模型規(guī)定了具體的地址范圍,每一個從機,都有實際的物理存儲,跟modbus的存儲區(qū)相對應(yīng),主機讀寫從機的存儲區(qū),實際上就是對從機設(shè)備對應(yīng)的實際存儲空間進行讀寫。

Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼

Modbus協(xié)議類型

在上面我們已經(jīng)說明了Modbus可以在各種介質(zhì)上傳輸,那么他的傳輸模式也分為三種。包括ASCII、RTU(遠程終端控制系統(tǒng))、TCP三種報文類型

串行端口存在多個版本的Modbus協(xié)議,而最常見的是下面四種:

  • Modbus-Rtu
  • Modbus-Ascii
  • Modbus-Tcp
  • ModbusPlus

Modbus RTU是一種緊湊的,采用二進制表示數(shù)據(jù)的方式,Modbus ASCII是一種采用Ascii碼表示數(shù)據(jù),并且每個8Bit 字節(jié)都作為兩個ASCII字符發(fā)送的表示方式。
RTU格式后續(xù)的命令/數(shù)據(jù)帶有循環(huán)冗余校驗的校驗和,而ASCII格式采用縱向冗余校驗的校驗和。

Modbus協(xié)議使用串口傳輸時可以選擇RTU或ASCII模式,并規(guī)定了消息、數(shù)據(jù)結(jié)構(gòu)、命令和應(yīng)答方式并需要對數(shù)據(jù)進行校驗。ASCII 模式采用LRC校驗,RTU模式采用16 位CRC校驗。通過以太網(wǎng)傳輸時使用TCP,這種模式不使用校驗,因為TCP協(xié)議是一個面向連接的可靠協(xié)議。

Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼

當然常用的就是RTU模式,ASCII一般很少

舉一個簡單的例子,如果我們需要發(fā)送一個數(shù)字10?那么RTU模式下,只需要發(fā)送0x0A?而ASCII碼模式則需要發(fā)送0x31(1) 0x30(0)兩個字節(jié)數(shù)據(jù)。?詳細的我們等下再闡述

Modbus-RTU協(xié)議

Modbus報文幀結(jié)構(gòu)

一個報文就是一幀數(shù)據(jù),一個數(shù)據(jù)幀就一個報文: 指的是一串完整的指令數(shù)據(jù),本質(zhì)就是一串數(shù)據(jù)。

Modbus報文是指主機發(fā)送給從機的一幀數(shù)據(jù),其中包含著從機的地址,主機想執(zhí)行的操作,校驗碼等內(nèi)容

Modbus協(xié)議在串行鏈路上的報文格式如下所示:

從站地址 功能碼 數(shù)據(jù) CRC/LRC
1 byte 1 byte N bytes 2 bytes
  • 幀結(jié)構(gòu) = 從機地址 + 功能嗎 + 數(shù)據(jù) + 校驗
  • 從機地址:?每個從機都有唯一地址,占用一個字節(jié),范圍0-255,其中有效范圍是1-247,其中255是廣播地址(廣播就是對所有從機發(fā)送應(yīng)答)

  • 功能碼:?占用一個字節(jié),功能碼的意義就是,知道這個指令是干啥的,比如你可以查詢從機的數(shù)據(jù),也可以修改從機的數(shù)據(jù),所以不同功能碼對應(yīng)不同功能.

  • 數(shù)據(jù):?根據(jù)功能碼不同,有不同功能,比方說功能碼是查詢從機的數(shù)據(jù),這里就是查詢數(shù)據(jù)的地址和查詢字節(jié)數(shù)等。

  • 校驗:?在數(shù)據(jù)傳輸過程中可能數(shù)據(jù)會發(fā)生錯誤,CRC檢驗檢測接收的數(shù)據(jù)是否正確

Modbus功能碼

Modbus規(guī)定了多個功能,那么為了方便的使用這些功能,我們給每個功能都設(shè)定一個功能碼,也就是指代碼。

Modbus協(xié)議同時規(guī)定了二十幾種功能碼,但是常用的只有8種,用于對存儲區(qū)的讀寫,如下表所示:

功能碼 功能說明
01H 讀取輸出線圈
02H 讀取輸入線圈
03H 讀取保持寄存器
04H 讀取輸入寄存器
05H 寫入單線圈
06H 寫入單寄存器
0FH 寫入多線圈
10H 寫入多寄存器

當然我們用的最多的就是03和06 一個是讀取數(shù)據(jù),一個是修改數(shù)據(jù)。

CRC校驗

錯誤校驗(CRC)域占用兩個字節(jié)包含了一個16位的二進制值。CRC值由傳輸設(shè)備計算出來,然后附加到數(shù)據(jù)幀上,接收設(shè)備在接收數(shù)據(jù)時重新計算CRC值,然后與接收到的CRC域中的值進行比較,如果這兩個值不相等,就發(fā)生了錯誤。
比如主機發(fā)出01 06 00 01 00 17 98 04, 98 04 兩個字節(jié)是校驗位,那么從機接收到后要根據(jù)01 06 00 01 00 17 再計算CRC校驗值,從機判斷自己計算出來的CRC校驗是否與接收的CRC校驗(98 04主機計算的)相等,如果不相等那么說明數(shù)據(jù)傳輸有錯誤,這些數(shù)據(jù)就不能要。

CRC校驗流程:

1、預(yù)置一個16位寄存器為0FFFFH(全1),稱之為CRC寄存器。

2 、把數(shù)據(jù)幀中的第一個字節(jié)的8位與CRC寄存器中的低字節(jié)進行異或運算,結(jié)果存回CRC寄存器。

3、將CRC寄存器向右移一位,最高位填以0,最低位移出并檢測。

4 、如果最低位為0:重復(fù)第三步(下一次移位);如果最低位為1:將CRC寄存器與一個預(yù)設(shè)的固定值(0A001H)進行異或運算。

5、重復(fù)第三步和第四步直到8次移位。這樣處理完了一個完整的八位。

6 、重復(fù)第2步到第5步來處理下一個八位,直到所有的字節(jié)處理結(jié)束。

7、最終CRC寄存器的值就是CRC的值。

此外還有一種利用預(yù)設(shè)的表格計算CRC的方法,它的主要特點是計算速度快,但是表格需要較大的存儲空間,該方法此處不在闡述

Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼

下面我們來看詳細的發(fā)送和接收數(shù)據(jù):

1、主機對從機讀數(shù)據(jù)操作

主機發(fā)送報文格式如下:

從站地址 功能碼 起始(高) 起始(低) 數(shù)量(高) 數(shù)量(低) 校驗
0x01 0x03 0x00 0x01 0x00 0x01 0xD5 0xCA

含義:

0x01:從機的地址
0x03:查詢功能,讀取從機寄存器的數(shù)據(jù)
0x00 0x01: 代表讀取的起始寄存器地址.說明從0x0001開始讀取.
0x00 0x01: 查詢的寄存器數(shù)量為0x0001個 Modbus把數(shù)據(jù)存放在寄存器中,通過查詢寄存器來得到不同變量的值,一個寄存器地址對應(yīng)2字節(jié)數(shù)據(jù); 寄存器地址對應(yīng)著從機實際的存儲地址
0xD5 0xCA: 循環(huán)冗余校驗 CRC

從機回復(fù)報文格式如下:

從站地址 功能碼 字節(jié)計數(shù) 字節(jié)1 字節(jié)2 校驗
0x01 0x03 0x02 0x01 0x00 0x17

含義:

0x01:從機的地址
0x03:查詢功能,讀取從機寄存器的數(shù)據(jù)
0x02: 返回字節(jié)數(shù)為2個 一個寄存器2個字節(jié)
0x00 0x17:寄存器的值是0017
0xF8 0x4A: 循環(huán)冗余校驗 CRC

2、主機對從機寫數(shù)據(jù)操作

主機發(fā)送報文格式如下:

從站地址 功能碼 數(shù)據(jù)地址(高) 數(shù)據(jù)地址(低) 數(shù)據(jù)(高) 數(shù)據(jù)(低) 校驗
0x01 0x06 0x00 0x01 0x00 0x17 0x98 0x04

含義:

0x01:從機的地址
0x06:修改功能,修改從機寄存器的數(shù)據(jù)
0x00 0x01: 代表修改的起始寄存器地址.說明修改0x0001-0x0003的存儲內(nèi)容
0x00 0x17: 要修改的數(shù)據(jù)值為0017
0x98 0x04: 循環(huán)冗余校驗 CRC

從機回復(fù)報文格式如下:

從站地址 功能碼 數(shù)據(jù)地址(高) 數(shù)據(jù)地址(低) 數(shù)據(jù)(高) 數(shù)據(jù)(低) 校驗
0x01 0x06 0x00 0x01 0x00 0x17 0x98 0x04

含義:

0x01:從機的地址
0x06:修改功能,修改從機寄存器的數(shù)據(jù)
0x00 0x01: 代表修改的起始寄存器地址.說明是0x0000
0x00 0x17:修改的值為0017
0x98 0x04: 循環(huán)冗余校驗 CRC

從機的回復(fù)和主機的發(fā)送是一樣的,如果不一樣說明出現(xiàn)了錯誤

Modbus-ACSII協(xié)議

在消息中的每個字節(jié)都作為兩個ASCII字符發(fā)送

十六進制的0-F 分別對應(yīng)ASCII字符的0…9,A…F

也就是0x30~0x3A 0x41~0x46

下方是ascii的報文幀

  • 1個字節(jié)起始位

  • 2個字節(jié)地址位

  • 2個字節(jié)功能位

  • n個數(shù)據(jù)位,最小的有效位先發(fā)送

  • LRC(縱向冗長檢測)?注意校驗方式不同

  • 結(jié)束符CR LF

    Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼

可以看到數(shù)據(jù)部分更加繁瑣,正常我們使用都是用RTU格式,ASCII碼格式有了解即可。

Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼


總結(jié):
ModbusASCII有開始字符(和結(jié)束字符(CR LF),可以作為一幀數(shù)據(jù)開始和結(jié)束的標志,而ModbusRTU沒有這樣的標志,需要用時間間隔來判斷一幀報文的開始和結(jié)束,協(xié)議規(guī)定的時間為3.5個字符周期,就是說一幀報文開始前,必須有大于3.5個字符周期的空閑時間,一幀報文結(jié)束后,也必須要有3.5個字符周期的空閑時間否則就會出現(xiàn)粘包的情況。

注意:針對3.5個字符周期,其實是一個具體時間,但是這個時間跟波特率相關(guān)。
在串口通信中,1個字符包括1位起始位、8位數(shù)據(jù)位(一般情況)、1位校驗位(或者沒有)、1位停止位(一般情況下),因此1個字符包括11個位,那么3.5個字符就是38.5個位,波特率表示的含義是每秒傳輸?shù)亩M制位的個位,因此如果是9600波特率,3.5個字符周期=/960038.5=0.00401s1000=4.01ms

Modbus-TCP協(xié)議

我們首先看下Modbus-TCP和Modbus-ACSII的區(qū)別

Modbus-TCP并不需要從從機地址,而是需要MBAP報文頭

并且不需要差錯校驗,因為TCP本身就具有校驗差錯的能力

Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼

MBAP報文頭格式如下:

Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼文章來源地址http://www.zghlxwxcb.cn/news/detail-435300.html

到了這里,關(guān)于Modbus通信協(xié)議+Modbus串口調(diào)試工具+Java版協(xié)議解析源碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 串行通信 - Modbus協(xié)議

    串行通信 - Modbus協(xié)議

    Modbus協(xié)議采用的是主-從通信模式。 Modbus協(xié)議主要有Modbus RTU、Modbus ASCII和Modbus TCP三種。前兩者均支持RS-485總線協(xié)議。其中RTU采用二進制數(shù)據(jù)表達形式、數(shù)據(jù)結(jié)構(gòu)緊湊,通信效率高,應(yīng)用廣泛。 Modbus的三種傳輸模式 ASCII 模式:數(shù)據(jù)中每8bit的字節(jié)作為一個ASCII碼發(fā)送。字符發(fā)送

    2024年02月09日
    瀏覽(26)
  • C# Modbus通信從入門到精通(11)——調(diào)試軟件Modbus Slave和Modbus Poll的使用

    C# Modbus通信從入門到精通(11)——調(diào)試軟件Modbus Slave和Modbus Poll的使用

    我們在開發(fā)Modbus程序的時候,會需要測試以下我們寫的Modbus程序有沒有問題,這時候就需要使用到Modbus Slave和Modbus Poll這兩個軟件,Modbus Slave是模擬Modbus從站,Modbus Poll是模擬Modbus從站主站的, 一般情況下我們開發(fā)的Modbus主站程序,當我們沒有硬件作為從站的時候,我們可以

    2024年02月06日
    瀏覽(96)
  • 詳解 Modbus 通信協(xié)議(清晰易懂)

    詳解 Modbus 通信協(xié)議(清晰易懂)

    已剪輯自: https://mp.weixin.qq.com/s/dvo1l1GgJ2DtIHnPK5E1tA 本文總結(jié)關(guān)于 Modbus 相關(guān)的知識,淺顯易懂,旨在對 Modbus 有一個很直觀的了解。如有錯誤,歡迎修改意見和建議。 什么是協(xié)議 在了解什么是Modbus之前,我們先來看下什么是協(xié)議。 協(xié)議是一個漢語詞匯,讀音為xié yì,意思是共

    2024年02月02日
    瀏覽(24)
  • 詳解Modbus通信協(xié)議---清晰易懂

    詳解Modbus通信協(xié)議---清晰易懂

    本文旨在讓您對Modbus有一個很直觀的了解,總結(jié)關(guān)于Modbus相關(guān)的知識,非常適合初學(xué)的同學(xué),同時如有錯誤,歡迎修改意見和建議,將在第一時間修改 什么是協(xié)議 在了解什么是Modbus之前,我們先來看下 什么是 協(xié)議 協(xié)議是一個漢語詞匯,讀音為xié yì,意思是 共同計議,協(xié)

    2024年02月03日
    瀏覽(32)
  • Modbus TCP通信協(xié)議詳解

    一、Modbus TCP通信概述 MODBUS/TCP是簡單的、中立廠商的用于管理和控制自動化設(shè)備的MODBUS系列通訊協(xié)議的派生產(chǎn)品,顯而易見,它覆蓋了使用TCP/IP協(xié)議的“Intranet”和“Internet”環(huán)境中MODBUS報文的用途。協(xié)議的最通用用途是為諸如PLC,I/O模塊,以及連接其它簡單域總線或I/O模塊的

    2024年02月08日
    瀏覽(99)
  • C#串口 Modbus通訊工具類

    C#串口 Modbus通訊工具類

    一、安裝Modbus包 二、創(chuàng)建modbushelper類 1、打開串口 public bool IfCOMOpend; //用于實例內(nèi)的COM口的狀態(tài) public SerialPort OpenedCOM;//用于手動輸入的COM轉(zhuǎn)成SERIAL PORT /// summary /// 打開串口 /// /summary /// param name=\\\"COMname\\\"串口名稱/param /// param name=\\\"baudRate\\\"波特率/param /// param name=\\\"parity\\\"奇偶校驗

    2024年02月22日
    瀏覽(30)
  • 嵌入式通信協(xié)議【Modbus】Modbus TCP的幀格式

    嵌入式通信協(xié)議【Modbus】Modbus TCP的幀格式

    Client request:例: 19 B2 00 00 00 06 06 03 00 27 00 02 上面是modbus客戶端發(fā)出的報文內(nèi)容,為modbus tcp/ip協(xié)議格式,其前面的六個字節(jié)為頭字節(jié)( header handle); 19 B2 00 00 00 06 19 B2? 00 00 00 06 兩個Client發(fā)出的檢驗信息,Sever端只是需要將這兩個字節(jié)的內(nèi)容copy以后再放到response的報文的相應(yīng)位

    2024年02月05日
    瀏覽(151)
  • RS-485通信協(xié)議(ModBus版)

    RS-485通信協(xié)議(ModBus版)

    從機(設(shè)備)的通信參數(shù) 波特率 2400~115200bps,出廠默認9600bps。 數(shù)據(jù)位 7~9位,出廠默認8位。 停止位 1~2位,出廠默認1位。 奇偶校驗 無校驗,奇校驗,偶校驗。 RS485 ModBus 通信格式 主機向485總線發(fā)送問詢數(shù)據(jù)幀 地址碼 功能碼 寄存器起始地址 寄存器長度 校驗碼低8位 校驗碼

    2024年02月07日
    瀏覽(33)
  • Modbus協(xié)議詳解2:通信方式、地址規(guī)則、主從機通信狀態(tài)

    Modbus協(xié)議詳解2:通信方式、地址規(guī)則、主從機通信狀態(tài)

    首先我們要清楚:Modbus是一種串行鏈路上的主從協(xié)議,在通信線路上只能有一個主機存在,不會有多主機存在的情況。雖然主機只有一個,但是從機是可以有多個的。 Modbus的通信過程都是由主機發(fā)起的,從機在接收到主機的請求后再進行響應(yīng),從機不會主動進行數(shù)據(jù)的發(fā)送。

    2024年02月09日
    瀏覽(28)
  • C# Modbus通信從入門到精通(21)——Modbus TCP協(xié)議原理

    C# Modbus通信從入門到精通(21)——Modbus TCP協(xié)議原理

    Modbus TCP是走網(wǎng)口的,也可以在同一時間內(nèi)有多個從站訪問主站,并且通過Modbus事務(wù)處理標識來區(qū)分同一時刻的不同Modbus事務(wù),這是區(qū)別于Modbus ASCII和Modbus RTU的地方。 Modbus客戶端通常輸入Modbus服務(wù)器的IP地址和端口號來建立TCP連接,然后根據(jù)從站地址來確定具體訪問哪個從站

    2024年02月15日
    瀏覽(98)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包