<em id="ju2li"></em>

<style id="ju2li"><kbd id="ju2li"></kbd></style>

  • <style id="ju2li"></style>
    <acronym id="ju2li"><cite id="ju2li"></cite></acronym>
    <blockquote id="ju2li"></blockquote>
  • 国产av丝袜熟女一二三,国产精品国语对白露脸在线播放 ,中文字幕国产精品日韩,一区二区福利在线视频,日韩一区二区在线看精品,毛片无码一区二区三区,大屁股肥熟女流白浆,av中文字幕在线二区

    十分鐘弄懂Modbus協議

    2021/5/27 20:01:36 人評論 次瀏覽 分類:電子技術  文章地址:http://www.xzycr.cn/tech/3791.html

    Modbus協議由Modicon公司(現在的施耐德電氣Schneider Electric)于1979年為可編程邏輯控制(即PLC)通信而發表。目前,Modbus已經成為工業領域通信協議的業界標準,并且現在是工業電子設備之間常用的連接方式。

    Modbus協議特點

    Modbus作為目前工業領域應用最廣泛的協議,與其他通信協議相比,有以下特點:

    Modbus協議標準開放、公開發表且無版權要求。
    Modbus協議支持多種電氣接口,包括RS232、RS485、TCP/IP等,還可以在各種介質上傳輸,如雙絞線、光纖、紅外、無線等。
    Modbus協議消息幀格式簡單、緊湊、通俗易懂。

    Modbus協議

    用戶理解和使用簡單,廠商容易開發和集成,方便形成工業控制網絡Modbus協議是一種應用層報文傳輸協議,包括ASCII、RTU、TCP三種報文類型,協議本身并沒有定義物理層,只是定義了控制器能夠認識和使用的消息結構。


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

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

    Modbus協議規定了4個存儲區

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

    Modbus協議常用8種存儲區

    Modbus學習必備調試軟件
    工欲善其事,必先利其器,Modbus學習配合相關的調試軟件,可以達到事半功倍的效果。
    Modbus學習必備的三大神器分別是Modbus Poll、Modbus Slave及VSPD,Modbus Poll軟件主要用于仿真Modbus主站或Modbus客戶端,Modbus Slave軟件主要用于仿真Modbus從站或Modbus服務器,而VSPD全稱Configure Virtual Serial Port Driver,是用來給電腦創建虛擬串口使用的。

    Modbus RTU和Modbus ASCII協議分析

    ModbusRTU與ModbusASCII在報文數據發送格式上幾乎一樣,但也存在一些區別,具體體現在:
    1、ModbusASCII有開始字符(:)和結束字符(CR LF),可以作為一幀數據開始和結束的標志,而ModbusRTU沒有這樣的標志,需要用時間間隔來判斷一幀報文的開始和結束,協議規定的時間為3.5個字符周期,就是說一幀報文開始前,必須有大于3.5個字符周期的空閑時間,一幀報文結束后,也必須要有3.5個字符周期的空閑時間否則就會出現粘包的情況。
    注意:針對3.5個字符周期,其實是一個具體時間,但是這個時間跟波特率相關。在串口通信中,1個字符包括1位起始位、8位數據位(一般情況)、1位校驗位(或者沒有)、1位停止位(一般情況下),因此1個字符包括11個位,那么3.5個字符就是38.5個位,波特率表示的含義是每秒傳輸的二進制位的個位,因此如果是9600波特率,3.5個字符周期=1000/9600*38.5=4.01ms。

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


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


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

    Modbus協議在串行鏈路上的報文格式

    Modbus協議讀取輸出線圈

    讀取輸出線圈發送報文格式如下:

    讀取輸出線圈發送報文格式

    發送報文含義:讀取1號從站輸出線圈,起始地址為0x13=19,對應地址為00020,線圈數量為0x1B=27,即讀取1號從站輸出線圈,地址從00020-00046,共27個線圈的狀態值。
    注意:協議中的起始地址指的是索引,后面的地址指的是具體地址,對于任意一個存儲區,索引都是從0開始的,但是對應的具體地址,與存儲區是相關的,比如輸出線圈,0對應00001;輸入線圈,0對應10001;輸入寄存器,0對應30001;保持寄存器,0對應40001。

    讀取輸出線圈返回報文格式如下:

    讀取輸出線圈返回報文格式

    返回報文含義:返回1號從站輸出線圈00020-00046,共27個線圈的狀態值,返回字節數為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

    Modbus協議讀取輸入線圈

    讀取輸入線圈發送報文格式如下:



    發送報文含義:讀取1號從站輸入線圈,起始地址為0xC4=196,對應地址為10197,線圈數量為0x1D=29,即讀取1號從站輸入線圈,地址從10197-10225,共29個線圈的狀態值。

    讀取輸入線圈返回報文格式如下:


    讀取輸入線圈返回報文格式

    返回報文含義:返回1號從站輸入線圈10197-10225,共29個線圈的狀態值,返回字節數為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

    Modbus協議讀取保持寄存器

    讀取保持寄存器發送報文格式如下:

    讀取保持寄存器發送報文格式

    發送報文含義:讀取1號從站保持寄存器,起始地址為0x6B=107,對應地址為40108,寄存器數量為0x02=2,即讀取1號從站保持寄存器,地址從40108-40109,共2個寄存器的數值。

    讀取保持寄存器返回報文格式如下:


    讀取保持寄存器返回報文格式

    返回報文含義:返回1號從站保持寄存器40108-40109,共2個寄存器的數值,返回字節數為4個,分別為02 2B 01 06。
    40108對應數值為0x022B,
    40109對應數值為0x0106。

    Modbus協議讀取輸入寄存器
    讀取輸入寄存器發送報文格式如下:

    讀取輸入寄存器發送報文格式

    發送報文含義:讀取1號從站輸入寄存器,起始地址為0x6B=107,對應地址為30108,寄存器數量為0x02=2,即讀取1號從站輸入寄存器,地址從30108-30109,共2個寄存器的數值。

    讀取輸入寄存器返回報文格式如下:

    讀取輸入寄存器返回報文格式

    返回報文含義:返回1號從站輸入寄存器30108-30109,共2個寄存器的數值,返回字節數為4個,分別為02 2B 01 06。
    30108對應數值為0x022B,
    30109對應數值為0x0106。

    Modbus協議預置單線圈

    預置單線圈發送報文格式如下:

    預置單線圈發送報文格式

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

    預置單線圈返回報文格式如下:


    預置單線圈返回報文格

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

    Modbus協議預置單寄存器

    預置單寄存器發送報文格式如下:

    MODBUS預置單寄存器發送報文格式

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

    預置單寄存器返回報文格式如下:


    MODBUS預置單寄存器返回報文格式

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

    Modbus協議預置多線圈
    預置多線圈發送報文格式如下:請忽略這張圖

    MODBUS預置多線圈發送報文格式

    發送報文含義:預置1號從站多個線圈的值,線圈地址為0x0013=19,對應地址為00020,線圈數為0x0A=10,寫入值為0xCD00,即預置1號從站線圈00020-00027=0xCD=1100 1101,00028-00029=0x00=0000 0000。

    預置多線圈返回報文格式如下:


    MODBUS預置多線圈返回報文格式

    返回報文含義:
    預置多輸出線圈返回報文是在原報文基礎上除去字節數及具體字節后返回。

    Modbus協議預置多寄存器

    預置多寄存器發送報文格式如下:

    MODBUS預置多寄存器發送報文格式

    發送報文含義:預置1號從站多個寄存器的值,寄存器地址為0x0087=135,起始地址為40136,寄存器數量為0x02=2,結束地址為40137,寫入值為0x0105和0x0A10,即預置1號從站寄存器40136=0x0105,40137=0x0A10。

    預置多寄存器返回報文格式如下:


    MODBUS預置多寄存器返回報文格式

    返回報文含義:預置多保持寄存器返回報文是在原報文基礎上除去字節數及具體字節后返回。

    關于Modbus協議的專業知識就分享到這里。 

     
    相關閱讀

    深入了解Modbus TCP協議
    談談MODBUS協議的數據模型和地址模型

    共有訪客發表了評論 網友評論

      客戶姓名:
    郵箱或QQ:
    驗證碼: 看不清楚?
    主站蜘蛛池模板: 白丝乳交内射一二三区| 亚洲av无码精品蜜桃| 伊人在线视频| 日本AⅤ精品一区二区三区日| 嫩草亚洲小泬久久夂| 手机在线观看h中文字幕| 国产超碰无码最新上传| 国产成人一区二区三区视频免费| japanese无码中文字幕| 国产人妖ts在线观看网站| 亚洲愉拍一区二区三区| 黄wwwww| AV中文在线| 欧美高清第6页| 成年午夜无码av片在线观看| 男女色色小视频不用手遮挡的视频在线看网页在线看完整在线看免费 | 亚洲天堂激情av在线| AV在线操成人| 婷婷乱伦| 亚洲精品四区| 国产人妻人伦精品一区二区| 国产成人精彩在线视频| 这里只有精品在线播放| 人人爽人人爽人人片av东京热| 欧美日韩不卡视频合集| 视频区 国产 图片区 小说区| 午夜A理论片在线播放| 很很鲁很很很鲁在线视频播放| 狠狠躁夜夜躁人人爽天天5| 超碰人人摸| 中文无码一区二区不卡av| 久久99久久精品久久久久久| 亚洲国产欧美一区二区好看电影| 丁香五月网久久综合| 无码中文字幕久久久久久| 亚洲精品麻豆一二三区| 亚洲色无码中文字幕| 成人综合在线观看| 亚洲欧美高清在线精品一区二区| 国产尤物精品自在拍视频首页| 国产一区|