工控網(wǎng)首頁
>

應(yīng)用設(shè)計(jì)

>

?知識(shí)分享 | Modbus的原理及使用

?知識(shí)分享 | Modbus的原理及使用

2023/10/7 11:25:41

1.jpg

Modbus是Modicon(施耐德)公司于1979年開發(fā)的串行通信協(xié)議。它最初設(shè)計(jì)用于公司的可編程邏輯控制器(PLC)。Modbus是一種開放式協(xié)議,支持使用RS232/RS485/RS422協(xié)議的串行設(shè)備,同時(shí)還支持調(diào)制解調(diào)器。

Modbus通過設(shè)備之間的串行線進(jìn)行數(shù)據(jù)傳輸。最簡單的設(shè)置是使用一根串行電纜連接兩個(gè)設(shè)備(主設(shè)備和從設(shè)備)上的串行端口。數(shù)據(jù)以稱為比特的1和0的序列發(fā)送。每個(gè)位都作為電壓發(fā)送。0被發(fā)送為正電壓,1被發(fā)送為負(fù)電壓。

最常用Modbus協(xié)議總共有以下四種:Modbus ASCII,Modbus RTU,Modbus Plus,Modbus TCP。

Modbus是一種串行通信協(xié)議,是應(yīng)用于電子控制器上的一種通用語言,由于其協(xié)議簡單易用,且沒有版權(quán)要求,目前已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的實(shí)施標(biāo)準(zhǔn)。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信;已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。

2.png

通過Modbus協(xié)議,控制器相互之間、或控制器經(jīng)由網(wǎng)絡(luò)(如以太網(wǎng))可以和其它設(shè)備之間進(jìn)行通信。Modbus協(xié)議使用的是主從通訊技術(shù),即由主設(shè)備主動(dòng)查詢和操作從設(shè)備。一般將主控設(shè)備方所使用的協(xié)議稱為Modbus Master,從設(shè)備方使用的協(xié)議稱為Modbus Slave。典型的主設(shè)備包括工控機(jī)和工業(yè)控制器等;典型的從設(shè)備如PLC可編程控制器等。Modbus通訊物理接口可以選用串口(包括RS232和RS485),也可以選擇以太網(wǎng)口。

翻譯一下:Modbus是用來通信的,是一種用于工業(yè)控制的協(xié)議,具有免費(fèi)使用、上手簡單、修改方便三大特點(diǎn),已被廣泛使用。

數(shù)據(jù)類型

Modbus以一系列具有不同特征表格上的數(shù)據(jù)模型為基礎(chǔ),四個(gè)基本表格如下表所示:

3.jpg

對(duì)于基本表格中任何一項(xiàng),協(xié)議都允許單個(gè)地洗擇 65536 個(gè)數(shù)據(jù)項(xiàng),而目設(shè)計(jì)那些項(xiàng)的讀寫操作可以越過多個(gè)連續(xù)數(shù)據(jù)項(xiàng)直到數(shù)據(jù)大小規(guī)格限制,這個(gè)數(shù)據(jù)大小規(guī)格限制與事務(wù)處理功能碼有關(guān)。

案例展示

數(shù)據(jù)模型這個(gè)概念有限抽象,讓我們通過以下兩個(gè)示例加深理解。

示例1: 有 4 個(gè)獨(dú)立塊的設(shè)備

示例描述:一個(gè)設(shè)備中的數(shù)據(jù)結(jié)構(gòu),含有數(shù)字量和模擬量、輸入量和輸出量。由于不同塊中的數(shù)據(jù)不相關(guān),每個(gè)塊是相互獨(dú)立。使用Modbus數(shù)據(jù)模型,按不同 Modbus功能碼訪問每人塊,實(shí)現(xiàn)原理如下所示:

4.png

以下是固高伺創(chuàng)的485通訊功能介紹:

首先要確定驅(qū)動(dòng)器的型號(hào)是否支持485 和 422 通訊。

l   只支持RTU通訊

l   支持的功能碼:0x03,、0x06、0x10

確定好型號(hào)之后需要確定接線定義。

422引腳定義如下:

5.png

485引腳定義如下:

6.png

驅(qū)動(dòng)器模式配置:

應(yīng)當(dāng)配置為輪廓位置模式

7.png

報(bào)文格式:

8.jpg

9.jpg

10.jpg

報(bào)文簡單示例

1.報(bào)文簡單示例:

驅(qū)動(dòng)器撥碼設(shè)置為1

功能碼 0x03 示例說明

讀取 0x2000 多圈編碼器數(shù)值,發(fā)送的報(bào)文如下:

串口發(fā)送報(bào)文(Hex 顯示):

01 03 20 00 00 02 CF CB

串口接收?qǐng)?bào)文(Hex 顯示): 

01 03 04 00 00 00 03 BA 32 //讀到數(shù)值是 0x0003

 

功能碼 0x06 示例說明

寫 0x2005 地址變量,發(fā)送的報(bào)文如下:

串口發(fā)送報(bào)文(Hex 顯示):

01 06 20 05 00 14 92 04 //寫的數(shù)據(jù)是 0x0014

串口接收?qǐng)?bào)文(Hex 顯示):

01 06 20 05 00 14 92 04

功能碼 0x10 示例說明

寫 0x607F 地址變量,發(fā)送報(bào)文如下:

串口發(fā)送報(bào)文(Hex 顯示):

01 10 60 7F 00 02 04 00 00 C3 50 4C 05

串口接收?qǐng)?bào)文(Hex 顯示):

01 10 60 7F 00 02 6E 10

Modbus實(shí)用示例1

2.Modbus實(shí)用示例:

(使用modbus通訊控制,進(jìn)行絕對(duì)運(yùn)動(dòng))

以下為操作步驟:

a.再設(shè)模式為01

11.png

b.讀取模式是否為01

12.png

先設(shè)置用戶模式,必須在總線控制下,之后再上使能。

c.先設(shè)控制字06

13.png

d.再設(shè)控制字07

14.png

e.再設(shè)控制字0F

15.png

以上三步為使能步驟

f.再設(shè)目標(biāo)位置,加速度,減速度,速度

(此示例沒有設(shè)置速度)

16.png

g.再設(shè)置控制字1F觸發(fā)運(yùn)動(dòng)

17.png

Modbus實(shí)用示例2

3. Modbus實(shí)用示例:

(使用modbus通訊控制,進(jìn)行速度運(yùn)動(dòng))

以下為操作步驟:

a.先設(shè)置模式為03

18.png

b.再讀取模式是否為03

19.png

c.再設(shè)控制字06→07→0F(使能)

20.png

d.再設(shè)置速度

21.png

速度分別為1000,10000,0(比如輸入分辨率設(shè)置 p=10000,那么當(dāng)控制器寫 60FF 是 20000 時(shí),對(duì)于的速度 v=20000pulse/s,轉(zhuǎn)換為 r/s,就是 n=v/p(2 r/s))。

如果設(shè)置的輸入分辨率為10000,相當(dāng)于速度分別為6rpm,60rpm,0。

審核編輯(
王靜
)
投訴建議

提交

查看更多評(píng)論
其他資訊

查看更多

嚴(yán)正聲明|固高科技禁止網(wǎng)絡(luò)銷售的聲明

固高科技強(qiáng)勢亮相2024武漢光博會(huì)

固高科技誠邀您共赴2024武漢光博會(huì)

閃耀SEMICON CHINA | 固高科技半導(dǎo)體行業(yè)解決方案

新品推介 | 固高GSLD系列經(jīng)濟(jì)型交流伺服驅(qū)動(dòng)器