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

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

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

每個(gè)工控人都應(yīng)該了解的Modbus那些事兒

1X4o_GKB1508 ? 來源:lp ? 2019-04-11 17:42 ? 次閱讀

Modbus那些事兒

Modbus協(xié)議可以說是工業(yè)自動(dòng)化領(lǐng)域應(yīng)用最為廣泛的通訊協(xié)議,因?yàn)樗拈_放性、可擴(kuò)充性和標(biāo)準(zhǔn)化使它成為一個(gè)通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商產(chǎn)品可以簡(jiǎn)單可靠的接入網(wǎng)絡(luò),實(shí)現(xiàn)系統(tǒng)的集中監(jiān)控,分散控制功能。

目前Modbus規(guī)約主要使用的是ASCII, RTU, TCP等,并沒有規(guī)定物理層。目前Modbus常用的接口形式主要有RS-232C,RS485RS422,也有使用RJ45接口的,ModBus的ASCII, RTU協(xié)議則在此基礎(chǔ)上規(guī)定了消息、數(shù)據(jù)的結(jié)構(gòu)、命令和應(yīng)答的方式。ModBus數(shù)據(jù)通信采用Master/Slave方式(主/從),即Master端發(fā)出數(shù)據(jù)請(qǐng)求消息,Slave端接收到正確消息后就可以發(fā)送數(shù)據(jù)到Master端以響應(yīng)請(qǐng)求;Master端也可以直接發(fā)消息修改Slave端的數(shù)據(jù),實(shí)現(xiàn)雙向讀寫。

在串行通信中,用“波特率”來描述數(shù)據(jù)的傳輸速率。國(guó)際上規(guī)定了一個(gè)標(biāo)準(zhǔn)波特率系列:110、300、600、1200、1800、2400、4800、9600、14.4Kbps、19.2Kbps、28.8Kbps、33.6Kbps、56Kbps。例如:9600bps,指每秒傳送9600位,包含字符的數(shù)位和其它必須的數(shù)位,如起始位、停止位和奇偶校驗(yàn)位等。

在自動(dòng)化領(lǐng)域我們常用RTU模式,RTU 模式中每個(gè)字節(jié)的格式:

編碼系統(tǒng):8 位二進(jìn)制,十六進(jìn)制 0-9,A-F

數(shù)據(jù)位: 1 起始位

8 位數(shù)據(jù),低位先送

奇/偶校驗(yàn)時(shí) 1 位;無奇偶校驗(yàn)時(shí) 0 位

帶校驗(yàn)時(shí) 1 位停止位;無校驗(yàn)時(shí) 2 位停止位

錯(cuò)誤校驗(yàn)區(qū):循環(huán)冗余校驗(yàn)(CRC)

從站地址設(shè)置:信息地址包括 2 個(gè)字符(ASCII)或 8 位(RTU),有效的從機(jī)設(shè)備地址范圍 0-247(十進(jìn)制)。

功能碼設(shè)置:信息幀功能代碼包括字符(ASCII)或 8 位(RTU)。有效碼范圍 1-225(十進(jìn)制);

數(shù)據(jù)區(qū)的內(nèi)容:數(shù)據(jù)區(qū)有 2 個(gè) 16 進(jìn)制的數(shù)據(jù)位,數(shù)據(jù)范圍為 00-FF(16 進(jìn)制),根據(jù)網(wǎng)絡(luò)串行傳輸?shù)姆绞?,?shù)據(jù)區(qū)可由一對(duì) ASCII 字符組成或由一個(gè) RTU 字符組成。

RTU方式的消息幀:

Modbus的功能碼:

ModBus 功能碼與數(shù)據(jù)類型對(duì)應(yīng)表:

RTU 方式讀取整數(shù)據(jù)的例子:

解析一下:主機(jī)發(fā)送指令,訪問從站地址為1,使用功能碼03(讀保持寄存器),起始地址高8位、低8位:表示想讀取的模擬量的起始地址(起始地址為0)。比如例子中的起始地址為38,十進(jìn)制為:56。寄存器數(shù)量高8位、低8位:表示從起始地址開始讀多少個(gè)模擬量。例子中為1個(gè)模擬量。注意,在返回的信息中一個(gè)模擬量需要返回兩個(gè)字節(jié)。錯(cuò)誤校驗(yàn)為CRC校驗(yàn)。

從站應(yīng)答:設(shè)備地址和命令號(hào)和上面的相同。返回的字節(jié)數(shù):表示數(shù)據(jù)的字節(jié)個(gè)數(shù),也就是數(shù)據(jù)1,2...n中的n的值。例子中返回了1個(gè)模擬量的數(shù)據(jù),因?yàn)橐粋€(gè)模擬量需要2個(gè)字節(jié)所以共2個(gè)字節(jié)。數(shù)據(jù)高低字節(jié):41和24代表返回的1個(gè)模擬量的值,即十進(jìn)制的16676。錯(cuò)誤校驗(yàn)為CRC校驗(yàn)。

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

    關(guān)注

    28

    文章

    1757

    瀏覽量

    76762
  • 數(shù)據(jù)通信
    +關(guān)注

    關(guān)注

    2

    文章

    426

    瀏覽量

    33725
  • 自動(dòng)化
    +關(guān)注

    關(guān)注

    29

    文章

    5485

    瀏覽量

    79011

原文標(biāo)題:Modbus 通訊協(xié)議——每個(gè)工控人都應(yīng)該了解的事

文章出處:【微信號(hào):GKB1508,微信公眾號(hào):工控幫】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    調(diào)節(jié) PID 都應(yīng)該學(xué)習(xí)labview哪方面的內(nèi)容

    本人想做個(gè)上位機(jī) 可之前沒接觸過LABVIEW我要實(shí)現(xiàn)的功能就是顯示期望 與實(shí)際數(shù)據(jù)的曲線用來調(diào)節(jié) PID都應(yīng)該學(xué)習(xí)labview哪方面的內(nèi)容啊求指導(dǎo){:23:}
    發(fā)表于 09-22 14:38

    8層二階盲埋孔的板子,盲埋孔都應(yīng)該是哪幾層

    做一個(gè)8層二階盲埋孔的板子,盲埋孔都應(yīng)該是哪幾層算是二階的,一般建議做哪些層比較好價(jià)格比較便宜?
    發(fā)表于 11-03 10:09

    vi的引用是不是相當(dāng)于申請(qǐng)的內(nèi)存指針,每次使用完都應(yīng)該把它關(guān)掉?

    我想問下vi的引用是不是相當(dāng)于申請(qǐng)的內(nèi)存指針 每次使用完都應(yīng)該把它關(guān)掉 , 不論是調(diào)試的時(shí)候 還是做成EXE的時(shí)候
    發(fā)表于 05-25 16:33

    電源選型的那些事兒

    電路教程相關(guān)知識(shí)的資料,關(guān)于電源選型的那些事兒
    發(fā)表于 10-10 14:34 ?0次下載

    Linux的那些事兒之我是Sysfs

    Linux的那些事兒之我是Sysfs
    發(fā)表于 10-29 09:28 ?5次下載
    Linux的<b class='flag-5'>那些</b><b class='flag-5'>事兒</b>之我是Sysfs

    Linux的那些事兒之我是SCSI硬盤

    Linux的那些事兒之我是SCSI硬盤
    發(fā)表于 10-29 09:32 ?19次下載
    Linux的<b class='flag-5'>那些</b><b class='flag-5'>事兒</b>之我是SCSI硬盤

    Linux的那些事兒之我是Hub

    Linux的那些事兒之我是Hub
    發(fā)表于 10-29 09:37 ?7次下載
    Linux的<b class='flag-5'>那些</b><b class='flag-5'>事兒</b>之我是Hub

    Linux的那些事兒之我是Block層

    Linux的那些事兒之我是Block層
    發(fā)表于 10-29 09:43 ?9次下載
    Linux的<b class='flag-5'>那些</b><b class='flag-5'>事兒</b>之我是Block層

    整理了所有數(shù)據(jù)專家都應(yīng)該會(huì)的七款Python工具

    我咨詢了我們真正的數(shù)據(jù)專家,收集整理了他們認(rèn)為所有數(shù)據(jù)專家都應(yīng)該會(huì)的七款 Python 工具。The Galvanize Data Science 和 GalvanizeU 課程注重讓學(xué)生們花大
    的頭像 發(fā)表于 01-15 10:21 ?4201次閱讀

    硬件工程師都應(yīng)該掌握防反接電路,你都Get到了嗎?

    硬件工程師都應(yīng)該掌握的防反接電路,你都Get到了嗎?
    的頭像 發(fā)表于 02-03 15:05 ?4487次閱讀

    專業(yè)的人士都應(yīng)該且能夠記住這二十個(gè)基本模擬電路

    初級(jí)層次是熟練記住這二十個(gè)電路,清楚這二十個(gè)電路的作用。只要是電子愛好者,只要是學(xué)習(xí)自動(dòng)化、電子等電控類專業(yè)的人士都應(yīng)該且能夠記住這二十個(gè)基本模擬電路。
    的頭像 發(fā)表于 11-30 10:09 ?6263次閱讀

    MOS管的那些事兒.課件下載

    MOS管的那些事兒.課件下載
    發(fā)表于 12-06 15:14 ?0次下載

    每個(gè)電子工程師都應(yīng)該了解 TensorFlow

    谷歌為每個(gè)人發(fā)布了一個(gè)機(jī)器學(xué)習(xí)框架
    發(fā)表于 08-23 16:45 ?365次閱讀
    <b class='flag-5'>每個(gè)</b>電子工程師<b class='flag-5'>都應(yīng)該</b><b class='flag-5'>了解</b> TensorFlow

    每個(gè)程序員都應(yīng)該知道的內(nèi)存

    。不幸的是,兩者都沒有使用計(jì)算機(jī)的內(nèi)存子系統(tǒng)或CPU上的緩存的結(jié)構(gòu)和成本大多數(shù)程序員都很理解。本文解釋了現(xiàn)代商品硬件上使用的內(nèi)存子系統(tǒng)的結(jié)構(gòu),說明了為什么開發(fā)CPU緩存它們工作,以及程序應(yīng)該做什么來通過利用它們實(shí)現(xiàn)最佳性能
    發(fā)表于 11-23 16:55 ?0次下載

    RFID和NFC之間的那些事兒,你真的了解嗎?

    RFID和NFC之間的那些事兒,你真的了解嗎?
    的頭像 發(fā)表于 12-15 09:38 ?1215次閱讀
    RFID和NFC之間的<b class='flag-5'>那些</b><b class='flag-5'>事兒</b>,你真的<b class='flag-5'>了解</b>嗎?