99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

一口Linux
認證:優(yōu)質創(chuàng)作者
所在專題目錄 查看專題
藍牙BLE詳解,有這一篇就夠了
Modbus入門
SATA、mSATA、M.2、PCIe!SSD接口那點事
深入解析什么是磁盤陣列技術?常用的磁盤陣列有哪幾種?
家庭用電都是交流電,為何會有零線和火線的區(qū)別?
一分鐘讓你了解芯片工作的心臟——晶振
作者動態(tài) 更多
某通信公司筆試題,你會做幾道?
6天前
10種初學者最常見的c語言段錯誤實例及原因分析
05-30 12:13
linux系統(tǒng)監(jiān)控工具小神器:btop
05-17 17:37
有沒有權貴開后門讓子女做軟件開發(fā)人員?
05-10 23:36
一文包你學會網(wǎng)絡數(shù)據(jù)抓包
03-15 09:26

Modbus入門

Modbus基礎知識概念

Modbus通信協(xié)議由Modicon公司(現(xiàn)在的施耐德電氣Schneider Electric)于1979年為可編程邏輯控制(即PLC)通信而發(fā)表。目前,Modbus已經(jīng)成為工業(yè)領域通信協(xié)議的業(yè)界標準,并且現(xiàn)在是工業(yè)電子設備之間常用的連接方式。Modbus作為目前工業(yè)領域應用最廣泛的協(xié)議,與其他通信協(xié)議相比,有以下特點:

  • Modbus協(xié)議標準開放、公開發(fā)表且無版權要求。
  • Modbus協(xié)議支持多種電氣接口,包括RS232、RS485、TCP/IP等,還可以在各種介質上傳輸,如雙絞線、光纖、紅外、無線等。
  • Modbus協(xié)議消息幀格式簡單、緊湊、通俗易懂。用戶理解和使用簡單,廠商容易開發(fā)和集成,方便形成工業(yè)控制網(wǎng)絡 Modbus協(xié)議是一種應用層報文傳輸協(xié)議,包括ASCII、RTU、TCP三種報文類型,協(xié)議本身并沒有定義物理層,只是定義了控制器能夠認識和使用的消息結構。

Modbus協(xié)議使用串口傳輸時可以選擇RTU或ASCII模式,并規(guī)定了消息、數(shù)據(jù)結構、命令和應答方式并需要對數(shù)據(jù)進行校驗。

ASCII 模式采用LRC校驗,RTU模式采用16 位CRC校驗,通過以太網(wǎng)傳輸時使用TCP,這種模式不使用校驗,因為TCP協(xié)議是一個面向連接的可靠協(xié)議。

Modbus協(xié)議規(guī)定了4個存儲區(qū),這里以常用的5段長度進行說明,如下表所示:

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

工欲善其事,必先利其器,Modbus學習配合相關的調試軟件,可以達到事半功倍的效果。

Modbus學習必備的三大神器分別是Modbus Poll、Modbus Slave及VSPD,Modbus Poll軟件主要用于仿真Modbus主站或Modbus客戶端,Modbus Slave軟件主要用于仿真Modbus從站或Modbus服務器,而VSPD全稱Configure Virtual Serial Port Driver,是用來給電腦創(chuàng)建虛擬串口使用的。

ModbusRTU/ASCII協(xié)議分析

ModbusRTU與ModbusASCII在報文數(shù)據(jù)發(fā)送格式上幾乎一樣,但也存在一些區(qū)別,具體體現(xiàn)在:

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

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

2、兩者校驗方式不同,ModbusRTU是CRC循環(huán)冗余校驗,ModbusASCII是LCR縱向冗余校驗。

3、在Modbus標準中,RTU是必須要求的,而ASCII是可選項,即作為一個Modbus通信設備可以只支持RTU,也可以同時支持RTU和ASCII,但不能只支持ASCII。

下面針對具體報文進行分析,Modbus協(xié)議在串行鏈路上的報文格式如下所示:

讀取輸出線圈

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

發(fā)送報文含義:

讀取1號從站輸出線圈,起始地址為0x13=19,對應地址為00020,線圈數(shù)量為0x1B=27,即讀取1號從站輸出線圈,地址從00020-00046,共27個線圈的狀態(tài)值。

注意:協(xié)議中的起始地址指的是索引,后面的地址指的是具體地址,對于任意一個存儲區(qū),索引都是從0開始的,但是對應的具體地址,與存儲區(qū)是相關的,比如輸出線圈,0對應00001;輸入線圈,0對應10001;輸入寄存器,0對應30001;保持寄存器,0對應40001。

返回報文格式如下:

返回報文含義:

返回1號從站輸出線圈00020-00046,共27個線圈的狀態(tài)值,返回字節(jié)數(shù)為4個,分別為CD 6B B2 05。

CD=1100 1101 對應 00020-00027

6B=0110 1011 對應 00028-00035

B2=1011 0010 對應 00036-00043

05=0000 0101 對應 00044-00046

讀取輸入線圈

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

發(fā)送報文含義:

讀取1號從站輸入線圈,起始地址為0xC4=196,對應地址為10197,線圈數(shù)量為0x1D=29,即讀取1號從站輸入線圈,地址從10197-10225,共29個線圈的狀態(tài)值。返回報文格式如下:

返回報文含義:

返回1號從站輸入線圈10197-10225,共29個線圈的狀態(tài)值,返回字節(jié)數(shù)為4個,分別為CD 6B B2 05。

CD=1100 1101 對應 10197-10204

6B=0110 1011 對應 10205-10212

B2=1011 0010 對應 10213-10220

05=0000 0101 對應 10221-10225

讀取保持寄存器

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

發(fā)送報文含義:

讀取1號從站保持寄存器,起始地址為0x6B=107,對應地址為40108,寄存器數(shù)量為0x02=2,即讀取1號從站保持寄存器,地址從40108-40109,共2個寄存器的數(shù)值。返回報文格式如下:

返回報文含義:

返回1號從站保持寄存器40108-40109,共2個寄存器的數(shù)值,返回字節(jié)數(shù)為4個,分別為02 2B 01 06。

40108對應數(shù)值為0x022B,

40109對應數(shù)值為0x0106。

讀取輸入寄存器

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

發(fā)送報文含義:

讀取1號從站輸入寄存器,起始地址為0x6B=107,對應地址為30108,寄存器數(shù)量為0x02=2,即讀取1號從站輸入寄存器,地址從30108-30109,共2個寄存器的數(shù)值。返回報文格式如下:

返回報文含義:

返回1號從站輸入寄存器30108-30109,共2個寄存器的數(shù)值,返回字節(jié)數(shù)為4個,分別為02 2B 01 06。

30108對應數(shù)值為0x022B,

30109對應數(shù)值為0x0106。

預置單線圈

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

發(fā)送報文含義:

預置1號從站單個線圈的值,線圈地址為0x00AC=172,對應地址為00173,斷通標志0xFF00表示置位,0x0000表示復位,即置位1號從站輸出線圈00173。返回報文格式如下:

返回報文含義:

預置單輸出線圈原報文返回。

預置單寄存器

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

發(fā)送報文含義:

預置1號從站單個保持寄存器的值,寄存器地址為0x0087=135,對應地址為40136,寫入值為0x039E,即預置1號從站保持寄存器40136值為0x039E。

返回報文格式如下:

返回報文含義:

預置單保持寄存器原報文返回。

預置多線圈

發(fā)送報文格式如下:請忽略這張圖

發(fā)送報文含義:

預置1號從站多個線圈的值,線圈地址為0x0013=19,對應地址為00020,線圈數(shù)為0x0A=10,寫入值為0xCD00,即預置1號從站線圈00020-00027=0xCD=1100 1101,00028-00029=0x00=0000 0000。

返回報文格式如下:

返回報文含義:

預置多輸出線圈返回報文是在原報文基礎上除去字節(jié)數(shù)及具體字節(jié)后返回。

預置多寄存器

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

發(fā)送報文含義:

預置1號從站多個寄存器的值,寄存器地址為0x0087=135,起始地址為40136,寄存器數(shù)量為0x02=2,結束地址為40137,寫入值為0x0105和0x0A10,即預置1號從站寄存器40136=0x0105,40137=0x0A10。

返回報文格式如下:

返回報文含義:

預置多保持寄存器返回報文是在原報文基礎上除去字節(jié)數(shù)及具體字節(jié)后返回。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉載。授權事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 4
收藏 3
關注 181
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 99久久综合国产精品二区国产 | 最新的黄色网址 | 99在线国内在线视频22 | 国产亚洲女人久久久久毛片 | aaa亚洲精品一二三区 | 免费成人午夜视频 | 欧美性受ⅹ╳╳╳黑人a性爽 | 中文字幕亚洲色妞精品天堂 | 无码人妻一区二区三区免费N鬼沢 | 国产亚洲精品久久久999密壂 | 国产在线观看香蕉视频网 | 国产精品国产片 | 亚洲草草 | 国产精品色在线 | 在线A亚洲老鸭窝天堂 | 国产播放啪视频免费视频 | 2022色婷婷综合久久久 | 五月天国产成人av免费观看 | 亚洲永久精品ww.7491进入 | 久久精品网址 | 色偷偷色噜噜狠狠网站久久 | 亚洲免费视频一区二区 | 东京热无码av一区二区 | 蜜臀色欲AV无码国产精品 | 中出一区二区三区 | 亚洲国产精品无码专区影院 | 黄色大片一级片 | 久国久产久精永久网页 | 国产午夜成人AV在线播放 | 99ri国产精品 | 少妇高潮惨叫正在播放对白 | 男女一区二区三区 | 成人影院www在线观看 | 精品无码国产自产在线观看水浒传 | 免费A级毛片无码A∨中文字幕 | 国产真实乱对白精彩久久老熟妇女 | 日本爽快片18禁免费看 | 制服丝袜中文字幕无码自拍 | 91精品国产乱码久久久软件 | 亚洲精品尤物 | 国产一区成人在线 |