在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Modbus協(xié)議的ZigBee/工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計(jì)

            基于Modbus協(xié)議的ZigBee/工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計(jì)

            作者: 時(shí)間:2016-12-20 來源:網(wǎng)絡(luò) 收藏

            3.2 地址映射

            對(duì)于ZigBee 設(shè)備,有其IEEE 地址和16 位短地址。設(shè)計(jì)中將ZigBee16 位短地址與Modbus 從站地址綁定,從而實(shí)現(xiàn)Modbus 主、從各節(jié)點(diǎn)之間地址定向。具體是將一系列Modbus 從 站地址和ZigBee 短地址以配置文件config.txt 下裝到FLASH,網(wǎng)關(guān)在初始化時(shí),讀取配置文件 內(nèi)容,存儲(chǔ)在數(shù)組中。數(shù)組形式為:

            char ModbusZigbee_Addr[ ][3]=

            [{ModbusAddr0,shortAdd0H, shortAdd0L},……{ ModbusAddrn,shortAddnH,shortAddnL}]

            接收UDP 報(bào)文后,讀取報(bào)文中的Modbus 從站地址,檢索數(shù)組得到與之匹配的 ModbusAddrx(ModbusAddr0 到ModbusAddrn 中查找),從而讀取該從站ZigBee 短地址 shortAddxH、 shortAddxL。該短地址將附加在所接收的UDP 報(bào)文之前,一同作為串行通信 口的轉(zhuǎn)發(fā)報(bào)文。

            config.txt 文件中,Modbus 從站地址和ZigBee 短地址在存儲(chǔ)時(shí)以空格間隔,文件以#結(jié) 束。數(shù)組的第一維長(zhǎng)度在讀取文件后確定,定義為Device_Number。檢索ZigBee 短地址函 數(shù)如下:

            int ZigBee_Search(char Modbusaddr)

            {int i=0;

            For(i=0;i

            {If(Addr[i][0]== ModbusAddr)

            return i ;

            }

            return Device_Number }

            Addr[i][1]、Addr[i][2]為對(duì)應(yīng)的ZigBee 短地址。返回值為Device_Number 表示未檢索到。

            3.3 緩沖區(qū)設(shè)計(jì)及數(shù)據(jù)接收轉(zhuǎn)發(fā)

            為了解決以太網(wǎng)口和串行通信口速度配合上,以及解除串口與以太網(wǎng)口耦合,設(shè)計(jì)了兩 個(gè)環(huán)形隊(duì)列作為UDP 接收緩沖區(qū)和串口接收緩沖區(qū)(用宏Buffer_Size 定義)。緩沖區(qū)仿雙口 RAM 思想、按照先進(jìn)先出(FIFO)原則設(shè)計(jì)。 UDP 接收緩沖區(qū)同時(shí)是串口發(fā)送數(shù)據(jù)區(qū)。 緩沖區(qū)結(jié)構(gòu)為:

            char UDP_ReceiveBuffer[Buffer_Size]=

            [SendNumber1,shortAddxH,shortAddxL,ModbusAddrx,F(xiàn)uncodex,……

            ……SendNumbern,shortAddxH,shortAddxL,ModbusAddrx,F(xiàn)uncodex]

            ModbusAddrx 開始為所接收的UDP 報(bào)文,即完整的Modbus/RTU 數(shù)據(jù)。shortAddxH 和shortAddxL 為ZigBee 短地址,SendNumberx 為UDP 報(bào)文長(zhǎng)度加2,即串口要轉(zhuǎn)發(fā)的數(shù)據(jù)長(zhǎng) 度。每次接收的UDP 報(bào)文都附加ZigBee 短地址和SendNumberx 這3 個(gè)字節(jié)存放在緩沖區(qū) 中。UDP 接收緩沖區(qū)設(shè)置了當(dāng)前存儲(chǔ)數(shù)據(jù)指針(int UDP_Location),始終指向當(dāng)前存儲(chǔ)數(shù)據(jù) 尾部。類似,針對(duì)串口轉(zhuǎn)發(fā),設(shè)置了當(dāng)前發(fā)送數(shù)據(jù)指針(int Serial_Location)始終指向已經(jīng) 發(fā)送數(shù)據(jù)尾部。系統(tǒng)默認(rèn)Modbus/RTU 數(shù)據(jù)幀長(zhǎng)度不大于256。指針大于Buffer_Size 以后 均回零,此后,原來的報(bào)文陸續(xù)被覆蓋?!按诎l(fā)送”任務(wù)判斷兩指針是否重合,決定是否 啟動(dòng)串口轉(zhuǎn)發(fā)。UDP 口接收?qǐng)?bào)文部分程序如下。

            點(diǎn)擊放大圖片

            串口接收緩沖區(qū)設(shè)計(jì)類似。由于數(shù)據(jù)通過固定的端口和IP 地址轉(zhuǎn)發(fā),存儲(chǔ)數(shù)據(jù)中不再 包含類似于Zigbee 地址的數(shù)據(jù)項(xiàng)。

            3 結(jié)束語

            本文設(shè)計(jì)適當(dāng)調(diào)整可以用于更多場(chǎng)合。如,動(dòng)態(tài)管理地址綁定數(shù)組,可以適應(yīng)動(dòng)態(tài)組網(wǎng);數(shù)組中增加IP 地址、端口號(hào)等可適應(yīng)其他類型報(bào)文;調(diào)整緩沖區(qū)大小可以適應(yīng)不同尺寸報(bào) 文收發(fā)等。 經(jīng)過多年的重點(diǎn)扶持,我國工業(yè)以太網(wǎng)研究已經(jīng)取得大量成果并廣泛應(yīng)用。目前,工業(yè) 無線通信技術(shù)也列為我國“十一五”863 重點(diǎn)研究項(xiàng)目,ZigBee 等技術(shù)也將逐步廣泛應(yīng)用于 工業(yè)自動(dòng)化領(lǐng)域。本系統(tǒng)開發(fā)基于市場(chǎng)現(xiàn)有的通用技術(shù),對(duì)中小型控制系統(tǒng)開發(fā)和改造有借 鑒意義。

            文章創(chuàng)新點(diǎn):提出了一種簡(jiǎn)潔方便的 Zigbee/以太網(wǎng)接入方案,應(yīng)用地址映射、環(huán)形緩 沖隊(duì)列等解決了Zigbee 通信與以太網(wǎng)通信速度協(xié)調(diào)技術(shù)。


            上一頁 1 2 下一頁

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉