国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺談Modbus協(xié)議在智能儀表中的實現(xiàn)路徑

2019-10-17 11:50:16王新王鳳翔王燕郭學(xué)亮
中國設(shè)備工程 2019年19期
關(guān)鍵詞:智能儀表波特率字節(jié)

王新,王鳳翔,王燕,郭學(xué)亮

(中煤科工集團唐山研究院有限公司,河北 唐山 063012)

工業(yè)自動化程度越來越高,Modbus 串行通信協(xié)議以其先進性、開放性、成熟性的特點得到了廣泛應(yīng)用,當(dāng)前PLC(可編程邏輯控制器)及組態(tài)軟件都支持此協(xié)議。智能儀表作為自動化控制的源頭,支持此協(xié)議,將大大降低自動化工程設(shè)計人員的開發(fā)難度。

1 Modbus 協(xié)議簡介

Modbus 協(xié)議是定義在OSI 網(wǎng)絡(luò)模型第7 層(應(yīng)用層)的報文發(fā)送協(xié)議,它可以在不同類型的總線或網(wǎng)絡(luò)上連接的設(shè)備之間進行“客戶端/服務(wù)器”式的通信,它是主從式的串行通信協(xié)議。Modbus 協(xié)議利用RS485 或RS232 總線進行數(shù)據(jù)傳輸,同一條總線上只允許1 臺主機,從機數(shù)量從1 臺最多至247 臺,并且從機的地址是唯一的。Modbus 協(xié)議由主機發(fā)送命令及從機返回數(shù)據(jù)組成,有兩種傳輸模式:Modbus-RTU模式及Modbus-ASCII 模式。

1.1 Modbus-RTU 模式

數(shù)據(jù)以數(shù)值型式傳輸,其幀格式如下:

主機發(fā)送命令(表1)。

表1

從機返回數(shù)據(jù)(表2)。

1.2 Modbus-ASCII 模式

數(shù)據(jù)以16 進制數(shù)值再轉(zhuǎn)換為ASCII 碼型式傳輸,傳輸為字符‘0’~‘9’及字符‘A’~‘F’(即實際數(shù)據(jù)為16進制0x30~0x39 及0x41~0x46),其幀格式如下:

表2

表3

表4

主機發(fā)送命令(表3)。

從機返回數(shù)據(jù)(表4)。

Modbus 數(shù)據(jù)幀通過RS485 或RS232 總線進行串行通信,數(shù)據(jù)以字節(jié)型式傳輸,傳輸時低位在前,高位在后,串行通信采用固定波特率進行數(shù)據(jù)傳輸,常用波特率為2400bps、4800bps、9600bps、19200bps 等,本例中波特率采用最常用的9600bps(即每秒傳輸9600 位,每位傳輸時間約為104.167μs),8 位數(shù)據(jù)位,無校驗位,1 位停止位,則每個字節(jié)數(shù)據(jù)為10 位,每秒傳輸960 個字節(jié)。

2 單片機選用及編程注意事項

本例所用的智能儀表主芯片為TI 公司生產(chǎn)的MSP430F5438 超低功耗Flash 型單片機,擁有4 路USCI_A 型模塊可進行UART 串行通信,本例為了同時實現(xiàn)RTU 通信及ASCII 通信,使用USCI_A1 模塊進行RTU 模式編程,USCI_A3 模塊進行ASCII 模式編程,系統(tǒng)主時鐘采用12MHz晶振,其優(yōu)點是通信波特率在(600~19200)bps 范圍內(nèi),時鐘分頻為整數(shù),不需要做步進調(diào)整,不會產(chǎn)生誤碼。數(shù)據(jù)接收采用中斷方式,接收完畢后,單片機對接收數(shù)據(jù)進行處理,判斷是否為本機命令(由從機地址碼區(qū)分),進行校驗驗證數(shù)據(jù)準(zhǔn)確性,數(shù)據(jù)正確則根據(jù)命令返回相應(yīng)數(shù)據(jù),否則丟棄準(zhǔn)備下一次接收。

在編程中應(yīng)當(dāng)注意以下幾點:

(1)Modbus 的寄存器地址為1~9999,但實際發(fā)送數(shù)據(jù)為起始地址減1,例如從起始地址1 開始返回數(shù)據(jù),則發(fā)送數(shù)據(jù)為0x00、0x00(ASCII 為0x30、0x30、0x30、0x30)。

(2)Modbus 協(xié)議規(guī)定16 位數(shù)據(jù)采用高字節(jié)優(yōu)先傳輸,以本文的儀表通信為例,主機向地址為1的從機發(fā)送命令讀取起始地址為1 開始連續(xù)2 個寄存器數(shù)據(jù),則發(fā)送命令為:

RTU 模 式:0x01 0x03 0x00 0x00 0x00 0x02 0xC4 0x0B(8 字節(jié))

返回數(shù)據(jù):0x01 0x03 0x04 0x81 0x0A 0x43 0x34 0xC2 0xEA(9 字節(jié))

返回的四字節(jié)數(shù)據(jù)為float 型,由于Modbus 協(xié)議高字節(jié)先傳輸,所以數(shù)據(jù)實際為0x4334810A,即為浮點數(shù)180.504059。

ASCII 模 式:0x3A 0x30 0x31 0x30 0x33 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x32 0x46 0x41 0x0D 0x0A(17 字節(jié))

返回數(shù)據(jù):0x3A 0x30 0x31 0x30 0x33 0x30 0x38 0x38 0x31 0x30 0x41 0x34 0x33 0x33 0x34 0x46 0x32 0x0D 0x0A(19 字節(jié))

返回的8 個字節(jié)數(shù)據(jù)代表一個float 型數(shù)據(jù),數(shù)據(jù)需先進行16 進制處理為0x81 0x0A 0x43 0x34,再進行高低字節(jié)調(diào)換為0x4334810A,即浮點數(shù)180.504059。

(3)以上為正常的4 字節(jié)數(shù)據(jù)處理方式,還有一種數(shù)據(jù)傳輸方式稱為互換模式,即將存儲器中存儲的4 字節(jié)數(shù)據(jù)完全按照從最高字節(jié)到最低字節(jié)輸出,例如,內(nèi)存中的數(shù)據(jù)為0x0A(最低位)0x81 0x34 0x43(最高位),則輸出為0x43 0x34 0x81 0x0A。某些智能儀表采用此種方式傳輸數(shù)據(jù)。

(4)Modbus 協(xié)議規(guī)定幀與幀之間的時間間隔應(yīng)>3.5個位周期,數(shù)據(jù)傳輸位間隔應(yīng)<1.5 個位周期,以9600bps通信速率為例,則幀間隔應(yīng)>364.585μs,位間隔<165.25μs。編程時應(yīng)充分考慮數(shù)據(jù)處理所占時間,必要時增加延時。

3 與上位機通信

本例中以PC 機為主機,采用Modscan32 這款成熟的Modbus 通信測試軟件進行數(shù)據(jù)收發(fā),智能儀表作為從機接收PC 機命令,根據(jù)命令返回相應(yīng)數(shù)據(jù),PC 機和智能儀表之間通過RS485 總線連接。部分調(diào)試界面,見圖1、圖2。

圖2 Modbus-ASCII 通信界面

通過以上調(diào)試界面,實現(xiàn)了PC 機和智能儀表之間的modbus 通信,說明單片機嵌入式程序編寫是正確的。

4 結(jié)語

Modbus 協(xié)議是工業(yè)控制領(lǐng)域中最通用、最開放的通信協(xié)議之一,得到了眾多廠商的支持。通過Modbus 協(xié)議,不同廠商的設(shè)備可以方便地連成工業(yè)網(wǎng)絡(luò),進行相互通信。Modbus 的兩種傳輸模式相比,ASCII 方式更直觀,但傳輸相同數(shù)據(jù)需要的字節(jié)數(shù)更多,效率低;RTU 模式傳輸字節(jié)數(shù)少,效率更高,更適用于測控系統(tǒng)中數(shù)據(jù)的實時傳輸。

猜你喜歡
智能儀表波特率字節(jié)
No.8 字節(jié)跳動將推出獨立出口電商APP
智能儀表的抗干擾和故障診斷研究
CAN 總線波特率自適應(yīng)程序設(shè)計
智能制造(2020年5期)2020-07-03 06:24:00
No.10 “字節(jié)跳動手機”要來了?
智能儀表技術(shù)及工業(yè)自動化應(yīng)用發(fā)展分析
基于FPGA的異步串行通信波特率容錯設(shè)計
電子測試(2018年7期)2018-05-16 06:27:18
智能儀表在動態(tài)稱重系統(tǒng)中的應(yīng)用
智能儀表在工業(yè)自動化控制中的運用研究
電子制作(2017年14期)2017-12-18 07:08:00
簡談MC7字節(jié)碼
C*Core芯片SCI串口波特率容限優(yōu)化
淄博市| 泸溪县| 嘉峪关市| 顺平县| 泸西县| 岳阳市| 托克逊县| 玉门市| 长葛市| 综艺| 福州市| 和平县| 牙克石市| 宜宾市| 黄龙县| 抚顺市| 依安县| 柘城县| 五指山市| 格尔木市| 鄯善县| 丁青县| 汨罗市| 呼和浩特市| 正定县| 陇川县| 乐平市| 探索| 武威市| 佛冈县| 平泉县| 邮箱| 潮安县| 临西县| 始兴县| 基隆市| 娄底市| 台江县| 思茅市| 桓仁| 九寨沟县|