MODBUS是工業(yè)協(xié)議中比較歡迎的一種,它簡(jiǎn)單、通用性強(qiáng)并且使用方便,MODBUS的另一個(gè)優(yōu)點(diǎn)是它可以通過任何傳輸媒介進(jìn)行通訊,其中包括雙絞線、無線通訊、光導(dǎo)纖維、以太網(wǎng)、電話調(diào)制調(diào)解器、移動(dòng)電話以及微波等。它已經(jīng)成為通用的工業(yè)標(biāo)準(zhǔn),通過它不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。此協(xié)議定義了一個(gè)控制器能認(rèn)識(shí)使用的消息結(jié)構(gòu),支持傳統(tǒng)的Rs-232、Rs-485和以太網(wǎng)設(shè)備。PLC、DCS、智能儀表都在使用MODBUS協(xié)議作為他們之間的通訊標(biāo)準(zhǔn)。迪文作為以提供客戶高品質(zhì)人機(jī)交互產(chǎn)品和相關(guān)系統(tǒng)集成服務(wù)為主的高新技術(shù)企業(yè),其產(chǎn)品中也有相關(guān)的MODBUS配置操作,以下分別對(duì)MINI_DGUS、DGUS、DGUSII產(chǎn)品的MODBUS接口配置進(jìn)行說明。
(1)用戶接口指令集為 Modbus RTU 主機(jī)模式和Modbus RTU從機(jī)模式,同時(shí)支持 DGUS 指令集(同時(shí)支持串口圖片、字庫下載)。通過 22.BIN 字庫文件的 0x600~0x7FF 位置(1KB 空間大小,定義如下)。 注:通過UltraEdit打開22號(hào)文件,DGUS變量地址與UltraEdit上的地址存在2倍的關(guān)系,例如:DGUS 變量地址是:0X7F8,對(duì)應(yīng)到UltraEdit軟件上的地址是:0X7F8*2=0XFF0。
| | | | | | | 主機(jī)啟用:0X5AA5 從機(jī)啟用:0X5BB5 | | | | | | | 第1條 MODBUS 指令(16 字節(jié)) | | | | 第2條 MODBUS 指令(16 字節(jié)) |
| | | | | | | 第63條 MODBUS 指令(16 字節(jié)) |
|
|
|
|
|
表1
| | | | | | | | | | | | | | 讀寫數(shù)據(jù)長(zhǎng)度,0x00 表示本條指令無效,最多一次性讀取120個(gè)字節(jié) | | | 本條指令處理定時(shí)時(shí)間,4 位整數(shù),單位為 ms,最大 9999ms | | | 應(yīng)答 CRC 校驗(yàn)錯(cuò)誤,0xFF 應(yīng)答 CRC 校驗(yàn)正確。 | | | modbus 讀寫指令的發(fā)送方式,0x00:**** 所有頁面下均執(zhí)行指令; 0x01:Page_ID 僅在指定的頁面下執(zhí)行指令; 0x02:VP 僅在 VP 指向的變量緩沖區(qū)低字節(jié)內(nèi)容為 0x5A 才執(zhí)行指令; | | | 根據(jù)第8字節(jié)的填寫01或者是02,添加頁碼或者DGUS變量地址 | | | DGUS 屏變量存儲(chǔ)區(qū)的起始地址。如果地址高字節(jié)為 0xFF,表示讀取的數(shù)據(jù)將寫入 DGUS 曲線緩沖區(qū),此時(shí)低字節(jié)地址表示為曲線數(shù)據(jù)格式 | | | 本條指令讀寫的數(shù)據(jù)在modbus 設(shè)備上的數(shù)據(jù)起始地址。 | | | |
表2
圖1 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 從機(jī)標(biāo)示字節(jié)數(shù) | |
表3 - 基于Modbus主機(jī)接口的DGUS軟件應(yīng)用說明
升級(jí)程序名稱:DGUS_V71_MODBUS.BIN,對(duì)應(yīng)的DGUS版本是V71,支持K600+或DGUS內(nèi)核,用戶接口指令集為MODBUS RTU主機(jī)模式,串口不再支持標(biāo)準(zhǔn)的DGUS指令集(包括DWIN OS、串口仿真、串口圖片、字庫下載)。DWIN OS中,以下指令不再支持:
| | | 到COMO_Rx_FIFO讀取MODBUS數(shù)據(jù)幀 | | | | | | | | | | | | | | 到COMO_Rx_FIFO讀取DL/T645數(shù)據(jù)幀 |
表4 通過22.bin字庫文件的20KW-28KW(16KB空間大小,文件字節(jié)地址0x0A000--0x0DFFF)來定義Modbus運(yùn)行參數(shù),DGUS上電會(huì)自動(dòng)把這8KW配置文件解碼加載到變量緩沖區(qū)的最后8KW。 | | | | | | | | | | | 0X5A:保存DGUS變量緩沖區(qū)的MODBUS配置文件到22字庫 | | | | 0X5A:從22字庫加載MODBUS配置文件到DGUS變量緩沖區(qū) | | | | 3.1格式定點(diǎn)小數(shù)(115200bps=0X480) 單位為kbps,最大999.9kbps | | | | 0X00=8N1(無校驗(yàn)) ,0X01=8E1(偶校驗(yàn)EVEN),0X02=801(奇校驗(yàn)ODD),0X03=8N2(無校驗(yàn),2個(gè)停止位) | | | | | | | | 0X5A表示從22字庫相應(yīng)位置讀數(shù)據(jù)到DGUS指定變量空間 | | | | PS:PE PS、PE是DGUS變量空間開始、結(jié)束地址高字節(jié),低字節(jié)固定為0 | | | | | | | | | | | | | | | 第1023條 MODBUS 指令(16 字節(jié)) | |
|
|
|
|
表5
圖2 | | | | | | | | | | | | | | 讀寫數(shù)據(jù)長(zhǎng)度,0x00 表示本條指令無效,最多一次性讀取120個(gè)字節(jié) | | | 本條指令處理定時(shí)時(shí)間,4 位整數(shù),單位為 ms,最大 9999ms定時(shí)時(shí)間是從機(jī)響應(yīng)的最長(zhǎng)時(shí)間 | | | | | | modbus 讀寫指令的發(fā)送方式,0x00:**** 所有頁面下均執(zhí)行指令; 0x01:Page_ID 僅在指定的頁面下執(zhí)行指令; 0x02:VP 僅在 VP 指向的變量緩沖區(qū)低字節(jié)內(nèi)容為 0x5A 才執(zhí)行指令; | | | 根據(jù)第8字節(jié)的填寫01或者是02,添加頁碼或者DGUS變量地址 | | | DGUS 屏變量存儲(chǔ)區(qū)的起始地址。如果地址高字節(jié)為 0xFF,表示讀取的數(shù)據(jù)將寫入 DGUS 曲線緩沖區(qū),此時(shí)低字節(jié)地址表示為曲線數(shù)據(jù)格式 | | | 本條指令讀寫的數(shù)據(jù)在modbus 設(shè)備上的數(shù)據(jù)起始地址。 | | | 總線通信狀態(tài)反饋,寫指令始終為0X00,讀指令返回0X00(失�。�/0XFF(成功) | | | |
表6 注:MODBUS的位(線圈)變量是按照LSB定義的,而DGUS是按照MSB定義 - 基于Modbus從機(jī)接口的DGUS軟件應(yīng)用說明
升級(jí)程序名稱DGUS_V71_MODBUS_SLAVE.BIN,對(duì)應(yīng)的DGUS版本是V71,支持K600+或DGUS內(nèi)核,用戶接口指令集為MODBUS RTU從機(jī)模式,串口不再支持標(biāo)準(zhǔn)的DGUS指令集(包括DWIN OS串口仿真、串口圖片、字庫下載)。CONFIG.TXT配置文件的R3寄存器設(shè)置MODBUS從機(jī)地址,RA寄存器設(shè)置MODBUS串口格式,0X00=8N1(無校驗(yàn)) 0X01=8E1(偶校驗(yàn),EVEN),0X02=801(奇校驗(yàn),ODD),0X03=8N2(無校驗(yàn),2個(gè)停止位)。串口波特率設(shè)置R1、R5、R9,當(dāng)R1的值在00-10時(shí),R5和R9無效,可以選擇17檔固定波特率之一,如下表7(波特率單位為Kbps)。 表7
表8 當(dāng)R1取值為11時(shí),此時(shí)波特率由R5和R9決定,并由下式計(jì)算,R5:R9=6250000/波特率,R5:R9表示一個(gè)雙字節(jié)參數(shù),R5為高字節(jié),R9為低字節(jié),比如設(shè)定10000bps,R5:R9=6250000/10000=625=0X0271,R5為02,R9為71。 主要是T5UID1、T5UID2、T5UID3 平臺(tái)的MODBUS配置。MODUS主從機(jī)寫在了DWIN OS程序里面了,串口為UART4,使用T5_MODBUS OS程序,OS內(nèi)核程序升級(jí)到V21或以上版本。 用戶可通過 22.BIN 字庫文件 0x1C000~0x1FFFF 的 16KB 空間大小來定義 Modbus 運(yùn)數(shù);也可通過 T5 OS 直接訪問 0xE000~0xFFFF 的 8KW 變量空間來定義 Modbus 參數(shù)。 | | | | | | | | | | | 0X0000表示ModbusMaster,其它值表示ModbusSlave | | | | 單位是Kbps,1位定點(diǎn)小數(shù),例如:115200=0X480 | | | | 0X00=8N1(無校驗(yàn)) ,0X01=8E1(偶校驗(yàn)EVEN),0X02=801(奇校驗(yàn)ODD),0X03=8N2(無校驗(yàn),2個(gè)停止位) | | | | 從機(jī)下設(shè)備地址,默認(rèn)為0X005A | | | | | | | | | | | | | | | | | | | | |
|
| 第1023條 MODBUS 指令(16 字節(jié)) | |
表9
| | | | | | | | | | | | | | 讀寫數(shù)據(jù)長(zhǎng)度,0x00 表示本條指令無效,最多一次性讀取90字節(jié) | | | 本條指令處理定時(shí)時(shí)間,4 位整數(shù),單位為 ms,最大 9999ms等待時(shí)間是從機(jī)響應(yīng)的最長(zhǎng)時(shí)間 | | | | | | modbus 讀寫指令的發(fā)送方式,0x00:**** 所有頁面下均執(zhí)行指令; 0x01:Page_ID 僅在指定的頁面下執(zhí)行指令; 0x02:VP 僅在 VP 指向的變量緩沖區(qū)低字節(jié)內(nèi)容為 0x5A 才執(zhí)行指令,執(zhí)行完后自動(dòng)清零VP指向的內(nèi)容 | | | 根據(jù)第8字節(jié)的填寫01或者是02,添加頁碼或者DGUS變量地址 | | | DGUS 屏變量存儲(chǔ)區(qū)的起始地址(0X0000-0XDFFF)。 | | | 本條指令讀寫的數(shù)據(jù)在modbus 設(shè)備上的數(shù)據(jù)起始地址。 | | | 總線通信狀態(tài)反饋,0X0000=失敗,0X00FF=成功,OS讀取后需要清零 |
表10
圖3 在22號(hào)文件中配置成從機(jī)格式,設(shè)備默認(rèn)地址是0X5A,若設(shè)定值為0,則自動(dòng)恢復(fù)默認(rèn)ID。22號(hào)配置如下圖4。注:主機(jī)可讀寫數(shù)據(jù)變量范圍為 0x0000-0xDFFF,若超出此范圍,程序會(huì)將功能碼最高位置 1 并返回給主機(jī),表明通信錯(cuò)誤;主機(jī)可讀寫數(shù)據(jù)長(zhǎng)度上限為 90 個(gè)字,超出范圍則通信失��;各個(gè)平臺(tái)的CFG文件,必須設(shè)置為上電加載22文件。
圖4
完整的Word格式文檔51黑下載地址:
|