四川丰满少妇被弄到高潮,亚洲AV秘 片一区二区三区水牛,中文人妻熟妇精品乱又伧老牛在线 ,91精品国产综合久久久久
您正在瀏覽:首頁 香川新聞 公司新聞  

運(yùn)用ModBus通信協(xié)議,實(shí)現(xiàn)電子秤

作者:admin  日期:2013/4/13 8:53:24  閱讀:1923

【摘 要】 本文介紹了在工業(yè)控制系統(tǒng)中廣泛使用的ModBus通信協(xié)議。以ModBusASCII

式為例,剖析了ModBus的指令結(jié)構(gòu),著重說明基于ModBus通信協(xié)議的設(shè)備之間如何進(jìn)行數(shù)據(jù)通

信、如何使用ModBus通信協(xié)議把衡器接入PLC系統(tǒng),并簡單介紹了PLC系統(tǒng)與局域網(wǎng)的互聯(lián)。

在衡器行業(yè)中,但凡涉及串行通信時(shí),工程師們都會(huì)有一種無奈,就是通信協(xié)議問題。由于我

國衡器廠眾多,各自采用自己的通信協(xié)議,使得通信協(xié)議五花八門,互不兼容。由于是自成一體,

也為后續(xù)與其他系統(tǒng)聯(lián)網(wǎng)、維修、儀表配件互換等留有后遺問題。若采用一種工業(yè)控制領(lǐng)域的主流

協(xié)議,各衡器廠的通信協(xié)議都與這個(gè)主流協(xié)議兼容,那么上述問題自然迎刃而解。這個(gè)主流協(xié)議首

ModBus。

一、什么是ModBus

ModBus是一種通信協(xié)議,是由Modicon公司發(fā)表于1979年,主要用于PLC(可編程邏輯控

制器)系統(tǒng)。目前,在工業(yè)自動(dòng)化設(shè)備通信連接中,ModBus已是相當(dāng)常見的一種連接方式。

二、ModBus與其他通信協(xié)議比較

1、物理層簡單、價(jià)廉:ModBus可以在常用且廉價(jià)的RS232RS485等物理媒介上運(yùn)行,不像

CanBusProfiBus、BitBus等需昂貴的專用芯片支持。

2、免費(fèi):ModBus是一種公開的,可以無償使用的協(xié)議。而使用ProfiBus則需要向有關(guān)國際組

織登記繳費(fèi)。

3、使用普及:ModBus是當(dāng)前工業(yè)控制中使用最廣的一種通信協(xié)議,基于這點(diǎn),具有ModBus

的設(shè)備接入工控系統(tǒng)相對容易。

4、維護(hù)方便:由于接入ModBus總線相對其他工控總線而言,比較簡單。一般具有RS232、

RS485等串行口的PC機(jī)都可以接入,使用PC機(jī)自帶的超級(jí)終端軟件或其他串行控制軟件,就能

觀察ModBus通信過程,可以很方便地查出故障站點(diǎn)。

三、ModBus的主要型式

ModBus主要有四種型式:ASCII、RTUTCP/IPPlus。

1ASCII型式:采用ASCII碼進(jìn)行數(shù)據(jù)交換,使用縱向冗余校驗(yàn)的校驗(yàn)和(LRC)進(jìn)行數(shù)據(jù)

校驗(yàn)。

2、RTU型式:采用二進(jìn)制碼進(jìn)行數(shù)據(jù)交換,使用循環(huán)冗余校驗(yàn)的校驗(yàn)和(CRC)進(jìn)行數(shù)據(jù)校

驗(yàn)。

3、TCP/IP型式:主要用于以太網(wǎng),不使用校驗(yàn)和進(jìn)行數(shù)據(jù)校驗(yàn)。

4Plus型式:該型式為Modicon公司專有,采用專門的協(xié)處理器進(jìn)行數(shù)據(jù)處理。

目前,使用最廣泛的型式是ASCIIRTU,主要采用RS232、RS422RS485進(jìn)行物理連接,

其中RS485使用最多。

四、ModBus的結(jié)構(gòu)

ModBus協(xié)議是一個(gè)master(主)/slave(從)架構(gòu)的協(xié)議。有一個(gè)節(jié)點(diǎn)是master節(jié)點(diǎn),其他使

Modbus協(xié)議參與通信的節(jié)點(diǎn)是slave節(jié)點(diǎn)。每一個(gè)slave設(shè)備都有一個(gè)唯一的地址。ModBus

通信比較簡單,由master發(fā)通信指令,指令中含有欲于之通信的slave站號(hào)。當(dāng)master發(fā)指令時(shí),

所有slave都處于收聽狀態(tài),一旦slave收聽到與自己地址相同的站號(hào)時(shí),立刻執(zhí)行指令的內(nèi)容,并

回傳執(zhí)行的結(jié)果。

五、ASCII型式的ModBus通信協(xié)議的格式

ModBus上通信時(shí),各站點(diǎn)的通信參數(shù)必須一致,如:波特率、奇偶校驗(yàn)。

通信時(shí),一個(gè)信息字節(jié)中的每8位分為兩個(gè)ASCII字符進(jìn)行傳輸,允許字符傳輸間隔在1秒之

內(nèi)。

1、ASCII型式每一字節(jié)的格式

16進(jìn)制編碼,ASCII字符(0-9、A-F),即:0x30-0x39、0x41-0x46。

1位開始位、7位數(shù)據(jù)位(先低后高)、1位奇偶校驗(yàn)(無奇偶校驗(yàn)時(shí)為0)、1位停止位。

2、數(shù)據(jù)錯(cuò)誤校驗(yàn)采用縱向冗余校驗(yàn)(LRC

3、通信幀格式(ModBus命令格式)

一個(gè)基本的ModBus命令,除了開始、校驗(yàn)、結(jié)束字符外,還必須有地址項(xiàng)及功能項(xiàng)。地址—

—也就是站號(hào),想要被操作的對象(slave站號(hào));功能——想要被操作的對象完成的任務(wù)。ModBus

命令可以沒有數(shù)據(jù)項(xiàng)。

被操作的對象,在完成所要求的操作后,必須回傳一幀信息,傳遞操作結(jié)果;貍餍畔⒌母袷

與命令格式相同,只是數(shù)據(jù)內(nèi)容為操作的結(jié)果。

六、利用ModBus,實(shí)現(xiàn)PLC與電子稱重設(shè)備的通信

為了使大家對Modbus有更進(jìn)一步的了解,下面用例子方式說明如何把電子稱重設(shè)備接入PLC

控制系統(tǒng)的Modbus總線網(wǎng)絡(luò)。例子中的稱重儀表為上海彩信電子科技有限公司生產(chǎn)的XK315A1

增強(qiáng)型儀表。本例中,1臺(tái)PLC作為主機(jī)(master),10臺(tái)電子秤作為從機(jī)(slave),使用XK315A1

增強(qiáng)型儀表作為電子秤顯示儀表,從機(jī)地址為70、71、72....79。通過RS485連接PLC和各儀

表,采用ModBus ASCII通信協(xié)議。PLC可以對各臺(tái)儀表進(jìn)行置零、去皮、讀取重量等多項(xiàng)操作。

稱重系統(tǒng)示意圖如圖1所示,圖中的計(jì)算機(jī)是在系統(tǒng)調(diào)試時(shí)接入RS485總線的,用以觀察RS485

中傳輸?shù)臄?shù)據(jù),正常工作時(shí)是移除的。

上述系統(tǒng)可實(shí)現(xiàn)以下功能:

1、正常工作時(shí),PLC每隔10秒輪詢一次,獲取每臺(tái)秤的重量。

2、當(dāng)秤臺(tái)上重量異常時(shí),PLC會(huì)發(fā)出警告信息,提示控制室人員注意。

3、控制人員可以通過PLC,對某臺(tái)秤發(fā)出置零、去皮等操作指令。

4、PLC可對各臺(tái)秤的稱量,進(jìn)行各項(xiàng)統(tǒng)計(jì),生成必要的統(tǒng)計(jì)報(bào)表。

七、ModBus與局域網(wǎng)互連

現(xiàn)在,很多PLC都具有局域網(wǎng)接口,通過該接口,就可以遠(yuǎn)程控制稱重系統(tǒng)了。當(dāng)然,也可

以通過接在Modbus總線上的PC機(jī),利用PC機(jī)的軟、硬件資源,編制相應(yīng)的軟件,將重量信號(hào)傳

送到局域網(wǎng)上。若局域網(wǎng)通過路由器接入因特網(wǎng),很顯然重量數(shù)據(jù)就可以在因特網(wǎng)上傳輸了。本系

統(tǒng)是通過PLCDH+網(wǎng)絡(luò)接入局域網(wǎng)的。當(dāng)然,網(wǎng)絡(luò)部分使用的協(xié)議,首推TCP/IP、NetBEUI

Modbus也有相關(guān)的TCP/IP型式,這里就不再贅述了,大家可以參考相關(guān)的書籍。

上述的稱重系統(tǒng)只是PLC的一個(gè)子系統(tǒng),是后期改造的一個(gè)項(xiàng)目。其整個(gè)PLC系統(tǒng)(見圖2

是采用美國ROCKWELL公司的PLC,共有5臺(tái)PLC機(jī)箱(采用PLC5系列)、4臺(tái)工控機(jī)和2臺(tái)

服務(wù)器、若干臺(tái)PC組成的。PLC采用ROCKWELL公司的DH+網(wǎng)絡(luò)連接,使用DF1協(xié)議;其中1

臺(tái)PLC與稱重系統(tǒng)采用RS485連接,使用Modbus協(xié)議;DH+網(wǎng)絡(luò)通過1臺(tái)作為連接橋的工控機(jī),

連入局域網(wǎng)。工控機(jī)上的監(jiān)控軟件是RSVIEW32,操作人員通過該軟件的人機(jī)界面,觀察各項(xiàng)數(shù)據(jù),

發(fā)出各項(xiàng)指令,當(dāng)然也包括稱重?cái)?shù)據(jù)及指令。另外,局域網(wǎng)上的PC機(jī)也安裝了RSVIEW32軟件,

只不過取消了操作指令,但可以通過該軟件觀察各項(xiàng)數(shù)據(jù),便于其他相關(guān)人員關(guān)注設(shè)備運(yùn)行情況。

2 PLC系統(tǒng)圖

八、結(jié)束語

本文簡單介紹了ModBus通信協(xié)議,例舉了電子秤采用RS485串行接口接入PLC系統(tǒng),用

ModBus通信協(xié)議,實(shí)現(xiàn)與PLC的實(shí)時(shí)通信。由于水平有限,如有錯(cuò)誤的地方,望諒解。

PLC程序采用的是梯形圖,其中有對串行口進(jìn)行操作的梯形圖,設(shè)置圖中的相關(guān)屬性,如波特

率、奇偶校驗(yàn),把相關(guān)的Modbus操作命令寫入其中即可。有關(guān)PLC的編程請參閱ROCKWELL

司的《PLC5指令系統(tǒng)與使用說明》。

關(guān)于XK315A1增強(qiáng)型儀表的ModBus協(xié)議及指令舉例,請看附錄。

附錄:

XK315A1增強(qiáng)型儀表的ModBus協(xié)議格式

首址:4個(gè)ASCII碼,讀寫數(shù)據(jù)的位置。

數(shù)據(jù)量:4個(gè)ASCII碼,讀寫數(shù)據(jù)的數(shù)量。

數(shù)據(jù)值:讀寫的數(shù)據(jù)。

校驗(yàn)碼:2個(gè)ASCII碼,采用LRC校驗(yàn)。

LRC校驗(yàn)碼運(yùn)算:報(bào)頭(:)不參與運(yùn)算,LRC在數(shù)據(jù)之后,在\CR\LF之前。參加運(yùn)算的是報(bào)

頭之后,LRC之前的所有數(shù)據(jù)。LRC為參加運(yùn)算的數(shù)據(jù)之和的補(bǔ)碼,舍去進(jìn)位。

當(dāng)儀表執(zhí)行指令出錯(cuò)時(shí),會(huì)回傳錯(cuò)誤碼,并將功能碼的最高位置1

錯(cuò)誤碼:

 00--接收到的功能碼出錯(cuò);

 01--數(shù)據(jù)地址錯(cuò);

 02--數(shù)據(jù)數(shù)量錯(cuò);

 03--數(shù)據(jù)值錯(cuò),如:預(yù)置皮重大于最大稱量FS;

 04--稱量為負(fù)時(shí)去皮;

 05--不在稱重狀態(tài)時(shí)置零;

 06--稱量不穩(wěn)定時(shí)置零;

 07--稱量>2%FS時(shí)置零;

 08--稱量<-2%FS時(shí)置零。

接下來以地址為7816進(jìn)制為4E)號(hào)的儀表為例,詳述每條指令。PLC作為master,發(fā)送指

令;電子秤儀表作為slave,接收指令,并回傳執(zhí)行結(jié)果。

例中:站號(hào)4E,即78號(hào);功能碼04表示要讀取重量數(shù)據(jù);儀表的重量數(shù)據(jù)專門放置在重量

數(shù)據(jù)單元,其地址從00000006,共7個(gè)字節(jié)。其中0000:狀態(tài)數(shù)據(jù);0001-0003:顯示值;0004-0006

皮重值。讀取重量數(shù)據(jù)時(shí),可以單獨(dú)讀,也可以2個(gè)一起讀或全部讀。首址0000表示從重量數(shù)據(jù)

0000地址開始讀;數(shù)據(jù)量0007表示共要讀取7字節(jié)數(shù)據(jù);校驗(yàn)碼A7表示校驗(yàn)和LRC=A7

當(dāng)PC發(fā)出指令后,每個(gè)從站儀表都會(huì)接收,只有與指令中指定的站號(hào)相同的儀表,才會(huì)響應(yīng),

回傳所需信息。

78號(hào)地址的儀表,收到上述指令后,會(huì)回傳“:4E0407120003E70000CAE1\CR\LF

其中“120003E70000CA”是PC想得到的78號(hào)站的重量信息。

12--狀態(tài)數(shù)據(jù),表示當(dāng)前顯示為正、重量穩(wěn)定、顯示值是凈重,當(dāng)前數(shù)據(jù)包含2位小數(shù);

0003E7--顯示值,同狀態(tài)數(shù)據(jù)結(jié)合考慮,即:當(dāng)前的顯示是凈重9.99kg;

0000CA--皮重值,即:當(dāng)前的皮重是2.02kg。

數(shù)據(jù)校驗(yàn):所有被參與校驗(yàn)的數(shù)據(jù)+校驗(yàn)碼=0(舍去進(jìn)位)。

 0x4E+0x04+0x00+0x00+0x00+0x07+0xA7=0x100,舍去進(jìn)位1后,等于0,表示數(shù)

據(jù)檢驗(yàn)正確。

點(diǎn)擊這里給我發(fā)消息