免费色播,亚洲国产欧美国产第一区二区三区,毛片看,日本精品在线观看视频,国产成人精品一区二区免费视频,日本黄色免费网站,一级毛片免费

基于W5100的數(shù)控系統(tǒng)組網(wǎng)設(shè)計(jì)與實(shí)現(xiàn)

來(lái)源:互聯(lián)網(wǎng)

點(diǎn)擊:2389

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞:W5100數(shù)控系統(tǒng) TCP/IP以太網(wǎng)

    0 引言

      制造業(yè)是國(guó)家綜合國(guó)力的基礎(chǔ),而數(shù)控技術(shù)又是其關(guān)鍵基礎(chǔ)技術(shù)。信息技術(shù)的快速發(fā)展,使得傳統(tǒng)制造業(yè)發(fā)生深刻變革,尤其是數(shù)控系統(tǒng)在智能化、網(wǎng)絡(luò)化和集成化上得到大力發(fā)展。發(fā)展先進(jìn)數(shù)控技術(shù),提高裝備制造水平,將是構(gòu)成企業(yè)制造系統(tǒng)現(xiàn)代化的關(guān)鍵,有利于提升企業(yè)在激烈的全球化經(jīng)濟(jì)條件下對(duì)市場(chǎng)環(huán)境的生存能力。因此,發(fā)展先進(jìn)數(shù)控技術(shù)對(duì)制造型企業(yè)的發(fā)展壯大起到關(guān)鍵作用。網(wǎng)絡(luò)數(shù)控技術(shù)即是一種將制造單元通過(guò)網(wǎng)絡(luò)技術(shù)互聯(lián),從而實(shí)現(xiàn)在制造過(guò)程中共享所需資源的技術(shù)。

      一方面,利用多個(gè)網(wǎng)絡(luò)數(shù)控系統(tǒng)可以構(gòu)建網(wǎng)絡(luò)化生產(chǎn)車(chē)間,中心服務(wù)器管理者可以詳細(xì)準(zhǔn)確監(jiān)視并記錄每一臺(tái)設(shè)備的運(yùn)行情況,可以實(shí)現(xiàn)遠(yuǎn)程控制,合理調(diào)度生產(chǎn)設(shè)備資源,提高企業(yè)生產(chǎn)效率,降低工人勞動(dòng)成本;另一方面,系統(tǒng)廠家可以通過(guò) Internet 與客戶中心服務(wù)器連接,及時(shí)跟蹤客戶需求反饋,有助于遠(yuǎn)程培訓(xùn)和維護(hù),減少維修人員的往來(lái)。隨著計(jì)算機(jī)輔助設(shè)計(jì)和制造系統(tǒng)大量應(yīng)用于實(shí)際加工過(guò)程,需要快速方便地與數(shù)控系統(tǒng)進(jìn)行大吞吐量數(shù)據(jù)交換,具備網(wǎng)絡(luò)功能的數(shù)控系統(tǒng)能夠很好地與辦公室中的 CAD/CAM系統(tǒng)聯(lián)系起來(lái),快速高效生產(chǎn)加工,及時(shí)修正加工問(wèn)題,實(shí)現(xiàn)網(wǎng)絡(luò)制造。目前,多家數(shù)控系統(tǒng)設(shè)備制造公司如德國(guó)西門(mén)子(Siemens)、日本山崎馬扎克(Mazak)相繼推出相關(guān)樣機(jī)和產(chǎn)品,很大程度上加快了數(shù)控系統(tǒng)網(wǎng)絡(luò)化的發(fā)展速度。

    1 網(wǎng)絡(luò)數(shù)控系統(tǒng)體系結(jié)構(gòu)

      網(wǎng)絡(luò)數(shù)控系統(tǒng)大體分為基礎(chǔ)部分和網(wǎng)絡(luò)部分,基礎(chǔ)部分即完成數(shù)控系統(tǒng)本身基本功能運(yùn)行,網(wǎng)絡(luò)部分與外部網(wǎng)絡(luò)設(shè)備連接完成交互數(shù)據(jù)的收發(fā)。

      本文所設(shè)計(jì)的數(shù)控系統(tǒng)采用的是 TI 公司 OMAPL138B 作為主控芯片,該芯片同時(shí)集成 ARM 和 DSP 核心,二者能夠無(wú)縫協(xié)調(diào)工作,減少了總線延遲。其中,ARM 核心負(fù)責(zé)完成顯示、人機(jī)交互(HMI)、文件資源管理、數(shù)控 NC 譯碼任務(wù)以及網(wǎng)絡(luò)通信傳輸;而 DSP 核心則發(fā)揮其運(yùn)算優(yōu)勢(shì),主要擔(dān)負(fù)數(shù)控系統(tǒng)核心插補(bǔ)算法、伺服驅(qū)動(dòng)控制以及 PLC 邏輯控制運(yùn)算。網(wǎng)絡(luò)電路接口則采用 WIZnet 公司生產(chǎn)的一款成熟且多功能的網(wǎng)絡(luò)芯片——W5100,實(shí)現(xiàn) TCP/IP 通信協(xié)議傳輸,很大程度簡(jiǎn)化了系統(tǒng)結(jié)構(gòu)設(shè)計(jì)。

      ARM 和 DSP 核心能夠同時(shí)工作于 456MHz,該芯片連接 DDR2 內(nèi)存芯片,比其它傳統(tǒng) SOC 連接 SDRAM 方式運(yùn)行速度更快。圖 1 所示描述了基于 OMAPL138B 和 W5100 的數(shù)控系統(tǒng)體系結(jié)構(gòu),包括 SOC 外圍系統(tǒng)電路和網(wǎng)絡(luò)通信電路。

    圖 1 網(wǎng)絡(luò)數(shù)控系統(tǒng)體系結(jié)構(gòu)圖

      1.1 OMAPL138B 處理器簡(jiǎn)介

      OMAPL138 DSP+ARM 處理器是一款基于一個(gè) ARM926EJ-S 和一個(gè) C674xDSP 核心的低功耗應(yīng)用處理器,甚至比 TMS320C6000 平臺(tái)的其它 DSP 產(chǎn)品消耗功率更低。其雙核架構(gòu)兼具了 RISC 和 DSP 技術(shù)的優(yōu)點(diǎn),并且采用流水線結(jié)構(gòu)設(shè)計(jì),因此能夠保證處理器和存儲(chǔ)器的所有部件有效運(yùn)作。ARM 核心擁有協(xié)處理器 CP15,具有獨(dú)立的 16KB 指令 Cache 和 16KB 數(shù)據(jù) Cache,同時(shí)集成了 8KB 內(nèi)部 RAM 和 64KB 內(nèi)部 ROM;DSP 內(nèi)核采用 2 級(jí)高速緩存架構(gòu),1 級(jí)分別由 32KB 指令(L1P)和數(shù)據(jù)(L2P)高速緩存組成,2 級(jí)則包含一個(gè) 256KB內(nèi)存空間,可由程序空間和數(shù)據(jù)空間共用。另外,ARM 和 DSP 之間有 128KB 的內(nèi)部共享 RAM,可以互相實(shí)現(xiàn)數(shù)據(jù)無(wú)縫訪問(wèn)。

      OMAPL138B 集成了豐富的電路接口,有助于系統(tǒng)電路設(shè)計(jì)簡(jiǎn)化。本文所用到的電路接口如下:

      1)DDR2/mDDR 內(nèi)存控制器;

      2)通用輸入/輸出接口(GPIO);

      3)LCD 控制器;

      4)擴(kuò)展存儲(chǔ)器接口(EMIFA);

      5)通用異步接收/發(fā)送裝置(UART);

      6)通用串行總線(USB)。

      1.2 W5100 網(wǎng)絡(luò)芯片簡(jiǎn)介

      W5100 是目前比較流行的一款多功能的以太網(wǎng)網(wǎng)絡(luò)接口芯片,內(nèi)部集成了 10/100 兆以太網(wǎng)控制器,能夠適用于高穩(wěn)定、高集成、高性能和低成本的嵌入式系統(tǒng)。其內(nèi)部集成了經(jīng)過(guò)多年市場(chǎng)應(yīng)用經(jīng)驗(yàn)驗(yàn)證、且全硬件的 TCP/IP 協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)以及物理層(PHY)。能夠支持普遍的以太網(wǎng)協(xié)議,如TCP、UDP、IPv4、ICMP、ARP、IGMP 和 PPPoE,使得用戶在使用 W5100 開(kāi)發(fā)時(shí)不用過(guò)多了解以太網(wǎng)控制知識(shí),主要具備簡(jiǎn)單的 Socket 編程基礎(chǔ)就能夠快速應(yīng)用,從而解決了軟件實(shí)現(xiàn)方式的穩(wěn)定性和可靠性問(wèn)題。簡(jiǎn)化的電路接口可以將 W5100 當(dāng)做外部存儲(chǔ)器一樣訪問(wèn),實(shí)現(xiàn)網(wǎng)絡(luò)通信功能。W5100 具備的突出特點(diǎn)如下:

      1) 支持自動(dòng)通信握手(全雙工和半雙工);

      2) 支持自動(dòng) MDI/MDIX,并自動(dòng)校正信號(hào)極性;

      3) 支持 ADSL 連接(支持 PPPoE 中的 PAP/CHAP 認(rèn)證模式);

      4) 支持 4 個(gè)獨(dú)立端口同時(shí)運(yùn)行;

      5) 內(nèi)部集成 16KB 數(shù)據(jù)收發(fā)緩存,默認(rèn)每一個(gè)端口 4KB 緩沖大小。

      通過(guò)訪問(wèn) W5100 內(nèi)部寄存器實(shí)現(xiàn)控制,內(nèi)部存儲(chǔ)器映射如表 1 所示:

    表 1 W5100 內(nèi)部存儲(chǔ)器映射

      公共寄存器主要對(duì)網(wǎng)絡(luò)配置、中斷控制、超時(shí)處理參數(shù)以及緩沖區(qū)分配等進(jìn)行設(shè)置,詳細(xì)信息如表 2所示。其中,本文用到中斷方式,W5100 提供 7 種中斷源,任意一個(gè)未屏蔽中斷觸發(fā)時(shí),中斷輸出引腳INT會(huì)保持低電平,CPU 通過(guò) IR 寄存器確定中斷源,得到處理后將 IR 相應(yīng)位清零,完成中斷處理狀態(tài)。

    表 2 W5100 公共寄存器功能描述

      端口寄存器針對(duì) 4 個(gè)內(nèi)部獨(dú)立的通信端口進(jìn)行設(shè)置,以 Sn_xx 的形式表示,主要描述了端口工作模式、端口號(hào)、端口目的物理地址和 IP 地址以及端口相關(guān)狀態(tài),具體功能可以參考有關(guān)用戶應(yīng)用手冊(cè)。

      1.3 硬件電路設(shè)計(jì)

      由于 W5100 可以當(dāng)做外部存儲(chǔ)器訪問(wèn),OMAPL138B 提供了一個(gè)外部存儲(chǔ)器接口(EMIFA,External MemoryInterface A),用于連接芯片到外部存儲(chǔ)器,比如同步動(dòng)態(tài)存儲(chǔ)器(SDRAM)、低功耗 ROM 存儲(chǔ)器和異步存儲(chǔ)器,提供 8 位寬和 16 位寬訪問(wèn)能力。網(wǎng)絡(luò)數(shù)控系統(tǒng)硬件電路設(shè)計(jì)主要涉及 EMIFA 與 W5100 連接,通過(guò)EMIFA 接口,使得 CPU 可以和 W5100 網(wǎng)絡(luò)芯片很方便地進(jìn)行數(shù)據(jù)傳輸。W5100 提供 3 種電路接口:間接并行總線、直接并行總線和 SPI 總線。間接并行總線只使用 ADDR[1:0]兩個(gè)引腳,首先 CPU 將要讀寫(xiě)的地址分別寫(xiě)入 IDM_AR0 和 IDM_AR1 寄存器,選中指定的寄存器,然后再?gòu)腎DM_DR 寄存器中讀寫(xiě)數(shù)據(jù)。因此訪問(wèn)單一寄存器時(shí),間接并行總線方式需要 3 個(gè)總線周期,而直接并行總線方式訪問(wèn)只需要一個(gè)總線周期,本文采用直接并行總線方式連接設(shè)計(jì)。OMAPL138B 與 W5100 相關(guān)接口以及硬件電路總體框圖如圖 2 所示。

    圖 2 硬件電路總體框圖

      EMIFA 接口中處于 EMA_CS[5 :2]范圍內(nèi)的區(qū)間屬于異步存儲(chǔ)器控制器,本方案選擇EMA_CS[2]作為W5100 片選,因此將 0x6000 0000~0x61FF FFFF(32MB)的地址空間分配給 W5100,基地址為 0x6000 0000。EMIFA 支持 8 位寬和 16 位寬訪問(wèn),由于 W5100 寄存器為 8 位位寬,所以將 EMA_A[14:0]與 ADDR[14:0]相連。W5100 中斷引腳低電平有效,與 OMAPL138 中斷引腳 INT0連接。為了縮小電路接口設(shè)計(jì)的面積,采用10/100Mb/s 的 13F-60 自帶網(wǎng)絡(luò)變壓器的 RJ45 以太網(wǎng)電路接口,W5100 的 RXIP 對(duì)應(yīng) RJ45 的 RD+,RXIN 對(duì)應(yīng) RD-,TXOP 對(duì)應(yīng) TD+,TXON 對(duì)應(yīng) TD-。

      EMIFA 默認(rèn)處于正常模式,訪問(wèn)時(shí)序有三個(gè)重要的階段:Setup、Strobe 和 Hold period,這些時(shí)間的設(shè)置關(guān)系到與外部存儲(chǔ)器進(jìn)行讀寫(xiě)操作的穩(wěn)定性和正確性。EMIFA 讀寫(xiě)時(shí)序圖如圖 3、4 所示,為了配合W5100 訪問(wèn),分別將三個(gè)階段設(shè)為 2、3、2 時(shí)間周期。在讀操作的 Setup 階段,地址總線引腳 EMA_A 開(kāi)始有效并且EMA_CS[2]片選引腳為低電平,片選使能外部存儲(chǔ)器設(shè)備;Strobe 階段,EMA_OE讀使能引腳為低電平,在該階段最后一個(gè)周期 EMIFA 開(kāi)始對(duì)數(shù)據(jù)總線引腳 EMA_D 進(jìn)行采樣并且EMA_OE變?yōu)楦唠娖?;Hold 階段是數(shù)據(jù)的保持,EMIFA 將數(shù)據(jù)讀取到內(nèi)部寄存器,并且在該階段最后一個(gè)周期地址總線引腳 EMA_A變?yōu)闊o(wú)效,EMA_CS[2]引腳變?yōu)楦唠娖浇Y(jié)束對(duì)外部存儲(chǔ)器設(shè)備的片選使能。三個(gè)階段時(shí)間周期通過(guò) EMIFA寄存器 CEnCFG 的 R_SETUP、R_STROBE 和 R_HOLD 三個(gè)域進(jìn)行設(shè)置,完成一次讀操作。

      在寫(xiě)操作的 Setup 階段,地址總線引腳 EMA_A 和數(shù)據(jù)總線引腳 EMA_D 開(kāi)始有效并且EMA_CS[2]片選引腳為低電平,片選使能外部存儲(chǔ)器設(shè)備;Strobe 階段,EMA_WE 寫(xiě)使能引腳為低電平,并將寄存器內(nèi)數(shù)據(jù)寫(xiě)入外部存儲(chǔ)器設(shè)備,在該階段最后一個(gè)周期變?yōu)楦唠娖?;Hold 階段最后一個(gè)周期地址總線引腳 EMA_A和數(shù)據(jù)總線引腳 EMA_D 變?yōu)闊o(wú)效,EMA_CS[2]引腳變?yōu)楦唠娖浇Y(jié)束對(duì)外部存儲(chǔ)器設(shè)備的片選使能。三個(gè)階段時(shí)間周期通過(guò) EMIFA 寄存器 CEnCFG 的 W_SETUP、W_STROBE 和 W_HOLD 三個(gè)域進(jìn)行設(shè)置,完成一次寫(xiě)操作。

    2 數(shù)控系統(tǒng)組網(wǎng)設(shè)計(jì)

      網(wǎng)絡(luò)數(shù)控把與制造過(guò)程有關(guān)的設(shè)備(如數(shù)控機(jī)床)、主控計(jì)算機(jī)、通信設(shè)施等按一定的結(jié)構(gòu)和層次組合起來(lái)成為一個(gè)整體,具有層次化的結(jié)構(gòu)特征。如圖 5 所示,網(wǎng)絡(luò)數(shù)控系統(tǒng)組網(wǎng)可以分為三個(gè)層次:企業(yè)車(chē)間層、企業(yè)管理中心層和系統(tǒng)廠家管理層。數(shù)控系統(tǒng)配套的加工機(jī)床設(shè)備位于企業(yè)生產(chǎn)車(chē)間,通過(guò)網(wǎng)絡(luò)鏈路設(shè)備有機(jī)連接起來(lái),每臺(tái)設(shè)備提供基本信息、系統(tǒng)狀態(tài)和控制信息等數(shù)據(jù)。企業(yè)管理中心層是數(shù)控系統(tǒng)數(shù)據(jù)中心,維護(hù)管理調(diào)度生產(chǎn)車(chē)間每一臺(tái)設(shè)備,對(duì)設(shè)備進(jìn)行有效管理。系統(tǒng)廠家管理層建立用戶數(shù)據(jù)信息庫(kù),通過(guò) Internet 與企業(yè)用戶進(jìn)行連接,實(shí)時(shí)跟蹤客戶需求及系統(tǒng)運(yùn)行狀況,必要時(shí)可以對(duì)客戶進(jìn)行遠(yuǎn)程培訓(xùn)和維修,一定程度上減少了系統(tǒng)廠家的生產(chǎn)成本。

    圖 5 網(wǎng)絡(luò)數(shù)控系統(tǒng)組網(wǎng)

      網(wǎng)絡(luò)數(shù)控系統(tǒng)組網(wǎng)與普通 PC 機(jī)局域網(wǎng)組網(wǎng)類(lèi)似,將網(wǎng)絡(luò)數(shù)控系統(tǒng)看成局域網(wǎng)內(nèi)的一個(gè)節(jié)點(diǎn)。鑒于生產(chǎn)車(chē)間環(huán)境比較惡劣,組網(wǎng)采用超五類(lèi)雙絞線作為傳輸介質(zhì),具有串?dāng)_少、衰減小并且具有較高的衰減與串?dāng)_的比值和信噪比,性能能夠得到很大提高。另外,需要額外的網(wǎng)絡(luò)連接設(shè)備來(lái)滿足服務(wù)器與多個(gè)數(shù)控系統(tǒng)客戶端的連接。通過(guò)對(duì)比集線器、中繼器和交換機(jī)性能,最后選用具有有效隔離沖突的交換機(jī)作為網(wǎng)絡(luò)連接設(shè)備,能夠?yàn)槊總€(gè)客戶端口提供專(zhuān)用帶寬,能夠滿足全雙工數(shù)據(jù)傳輸。

    3 軟件設(shè)計(jì)

      系統(tǒng)硬件架構(gòu)設(shè)計(jì)中,將 OMAPL138B 作為 W5100 的主控制芯片,系統(tǒng)軟件設(shè)計(jì)采用服務(wù)器/客戶端模式。以網(wǎng)絡(luò)數(shù)控系統(tǒng)作為客戶端,而 PC 機(jī)充當(dāng)服務(wù)器,接受客戶端的連接,PC 基于 Windows7 操作系統(tǒng)運(yùn)行,采用 Windows Socket 套接字網(wǎng)絡(luò)編程。在對(duì) W5100 網(wǎng)絡(luò)芯片控制之前,微處理器首先復(fù)位上電完成初始化任務(wù),主要完成系統(tǒng)及外部設(shè)備時(shí)鐘初始化、系統(tǒng)啟動(dòng)運(yùn)行模式及堆棧設(shè)置、中斷向量表及中斷控制器設(shè)置、GPIO 和 UART 等內(nèi)部集成電路模塊接口進(jìn)行配置、系統(tǒng)定時(shí)器及最重要的 EMIFA 控制器工作模式和時(shí)序配置。W5100 客戶端連接流程與 PC 服務(wù)器端軟件流程如圖 6、7 所示。

    圖6 W5100 客戶端連接流程

    圖7 PC 服務(wù)器端軟件流程

      3.1 W5100 驅(qū)動(dòng)程序設(shè)計(jì)

      W5100 驅(qū)動(dòng)程序設(shè)計(jì)主要包括初始化和 Socket 程序設(shè)計(jì)兩部分,初始化過(guò)程主要針對(duì)關(guān)鍵寄存器設(shè)置實(shí)現(xiàn)復(fù)位、工作模式、端口選擇及收發(fā)緩存大小設(shè)置等。初始化 W5100 關(guān)鍵步驟如下:

      1) 設(shè)置模式寄存器 MR 軟件復(fù)位位為 1,自動(dòng)清零所有內(nèi)部寄存器,同時(shí)設(shè)置 IP 地址、子網(wǎng)掩碼、物理地址等;

      2) 設(shè)置終端屏蔽寄存器 IMR 為 0xFF,開(kāi)啟提供的所有中斷,任何時(shí)候中斷寄存器 IR 對(duì)應(yīng)位置 1 時(shí),將中斷 CPU,通過(guò)訪問(wèn) IR 獲得中斷源;

      3) 設(shè)置發(fā)送 TMSR 和接收 RMSR 寄存器為 0x55,使每個(gè)端口發(fā)送和接收緩存大小為 2KB;

      4) 設(shè)置重發(fā)計(jì)數(shù)寄存器 RCR 為 8,設(shè)定傳輸過(guò)程中的重發(fā)次數(shù);

      5) 設(shè)置重發(fā)時(shí)間寄存器 RTR 為 0x07DD,即 200 毫秒,當(dāng)與服務(wù)器無(wú)法響應(yīng)超過(guò) 200 毫秒時(shí),將進(jìn)行重發(fā)處理;

      6) 設(shè)置端口模式寄存器 Sn_MR 為 0x21,關(guān)閉廣播功能并選用 TCP 模式;

      7) 設(shè)置端口命令寄存器 Sn_CR,實(shí)現(xiàn)端口初始化、建立/斷開(kāi)連接和數(shù)據(jù)傳輸;以上就是 W5100 初始化過(guò)程,其 Socket 編程主要涉及連接、讀數(shù)據(jù)和寫(xiě)數(shù)據(jù)操作,以下是三個(gè)關(guān)鍵函數(shù)實(shí)現(xiàn)。

      由于網(wǎng)絡(luò)數(shù)控系統(tǒng)作為客戶端,必須與服務(wù)器端先建立連接才能進(jìn)行通信,Socket_Connect 函數(shù)負(fù)責(zé)與服務(wù)器端建立連接。端口打開(kāi)完成連接命令后,需要等待端口終端判斷是否與遠(yuǎn)端服務(wù)器建立連接,可以參考 W5100 數(shù)據(jù)手冊(cè)的 Socket 中斷狀態(tài)。

      int Socket_Connect(int socket){ //端口號(hào),0~3 共四個(gè)端口可選  W5100_WREG(W5100_S0_MR, S_MR_TCP|S_MR_MC); // TCP 模式,ND/MC 位置  W5100_WREG(W5100_S0_PORT, 8080); //本機(jī)端口號(hào)為 8080  ServerIPAddrSet(W5100_S0_DIPR, “192.168.1.2); //服務(wù)器 IP 地址  W5100_WREG(W5100_S0_DPORT, 8080); //服務(wù)器端口號(hào)  W5100_WREG(W5100_S0_CR, S_CR_OPEN); //打開(kāi)端口  W5100_WREG(W5100_S0_CR, S_CR_CONNECT); //連接服務(wù)器  return true;  }

      W5100 讀操作首先從端口接收數(shù)據(jù)緩沖區(qū)讀取有效數(shù)據(jù),將接收的數(shù)據(jù)量與讀指針寄存器 Sn_RX_RD 的值相加再寫(xiě)回 Sn_RX_RD,最后將 RECV 讀命令操作標(biāo)志寫(xiě)入端口命令寄存器 Sn_CR,完成本次讀取操作,并等待下次接收。主要程序如下:

      unsigned int Socket_Receive(int socket, unsigned char *buf){  unsigned int i,rx_size,rx_offset;  unsigned char *ptr;  rx_size=W5100_RREG(W5100_S0_RX_RSR ); //讀取接收數(shù)據(jù)的字節(jié)數(shù)  rx_size+=W5100_RREG(W5100_S0_RX_RSR+1 );  rx_offset= W5100_RREG(W5100_S0_RX_RR); //獲取接收緩存區(qū)偏移量  rx_offset+= W5100_RREG(W5100_S0_RX_RR+1);  ptr=(unsigned char*)(W5100_RX+socket*S_RX_SIZE+rx_offset);  for(i=0; i<rx_size; i++){ //讀數(shù)據(jù)到緩存區(qū)  buf[i]=*ptr++;  }  W5100_WREG(W5100_S0_CR, S_CR_RECV); //設(shè)置接收命令,等待下一次接收  return rx_size; //返回接收的數(shù)據(jù)字節(jié)數(shù)  }

      W5100 發(fā)送數(shù)據(jù)操作時(shí),首先檢查發(fā)送緩沖區(qū)剩余空間大小 Sn_TX_FSR,將要發(fā)送數(shù)據(jù)寫(xiě)入端口發(fā)送數(shù)據(jù)緩沖區(qū)后,則將發(fā)送數(shù)據(jù)長(zhǎng)度與端口傳輸寫(xiě)指針寄存器 Sn_TX_WR 中的值相加并寫(xiě)入 Sn_TX_WR,最后寫(xiě)入發(fā)送命令 Sn_CR_SEND,完成本次發(fā)送。相關(guān)程序如下:

      unsigned int Socket_Send(int socket, unsigned char *buf, int size){  unsigned int i,tx_free_size,tx_offset;  unsigned char *ptr;  tx_free_size=W5100_RREG(W5100_S0_TX_FSR ); //讀取發(fā)送緩存區(qū)剩余字節(jié)  tx_free_size +=W5100_RREG(W5100_S0_TX_FSR +1 );  tx_offset= W5100_RREG(W5100_S0_TX_WR); //獲取發(fā)送緩存區(qū)偏移量  tx_offset+= W5100_RREG(W5100_S0_TX_WR +1);  ptr=(unsigned char*)( W5100_TX+socket*S_TX_SIZE+tx_offset);  for(i=0; i< size; i++){ //將數(shù)據(jù)寫(xiě)入發(fā)送緩存區(qū)  *ptr++= buf[i];  }  W5100_WREG(W5100_S0_CR, S_CR_SEND); //設(shè)置發(fā)送命令,將數(shù)據(jù)發(fā)送出去  return size; //返回發(fā)送的數(shù)據(jù)字節(jié)數(shù)  }

      3.2 PC 服務(wù)器軟件設(shè)計(jì)

      PC 機(jī)服務(wù)器端采用 Microsoft Visual ++ 6.0 MFC 作為應(yīng)用軟件框架開(kāi)發(fā)工具,網(wǎng)絡(luò)服務(wù)器部分采用Windows Socket 編程,建立服務(wù)器并監(jiān)聽(tīng)客戶端連接。

      Windows Socket 基于 TCP(面向連接)的服務(wù)器端程序首先創(chuàng)建套接字(socket)并將套接字綁定到一個(gè)本地地址和端口上(bind),同時(shí)將該套接字設(shè)置為監(jiān)聽(tīng)模式,準(zhǔn)備接受客戶端連接請(qǐng)求(listen);當(dāng)客戶端有連接請(qǐng)求時(shí),返回一個(gè)用于該客戶端有效通信連接的套接字(accept),利用該通信套接字與客戶端進(jìn)行通信(send/recv);最后,完成通信后關(guān)閉對(duì)應(yīng)客戶端的通信套接字(closesocket)。服務(wù)器端建立監(jiān)聽(tīng)線程,專(zhuān)門(mén)處理客戶連接,關(guān)鍵程序如下:

      ULONG WINAPI ListenThread(LPVOID p){ //監(jiān)聽(tīng)線程處理函數(shù)  SOCKET listenSocket; //服務(wù)器監(jiān)聽(tīng)套接字  BOOL bRet;  SOCKADDR_IN addrSrv;  SOCKADDR_IN addrClient;  int len = sizeof(SOCKADDR)  listenSocket = socket(AF_INET, SOCK_STREAM, 0); //創(chuàng)建監(jiān)聽(tīng)套接字  addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);  addrSrv.sin_family = AF_INET;  addrSrv.sin_port = htons(8080); //綁定端口  bind(listenSocket, (SOCKADDR *)&addrSrv, sizeof(SOCKADDR));  listen(listenSocket, 5); //設(shè)置監(jiān)聽(tīng)模式  while(1){ //以下阻塞等待客戶端連接  SOCKET dataSocket=accept(listenSocket,(SOCKADDR*)&addrClient, &len);  UserTransSaveSocket(dataSocket); //將客戶端通信套接字存儲(chǔ)  }  return 0;  }

      功能部分采用 MFC 進(jìn)行開(kāi)發(fā)設(shè)計(jì),與客戶端的通信傳輸主要采用數(shù)據(jù)包的形式。包頭第一個(gè)短整型是一個(gè)包標(biāo)識(shí)符,表明該數(shù)據(jù)包的屬性字符和標(biāo)識(shí)位,緊接著 4 字節(jié)為包有效數(shù)據(jù)長(zhǎng)度,最后跟著是有效數(shù)據(jù)區(qū),數(shù)據(jù)包格式如下所示。數(shù)據(jù)包屬性及服務(wù)器端功能如表 3 所示。

      本文數(shù)控系統(tǒng)組網(wǎng)驗(yàn)證采用兩臺(tái)數(shù)控系統(tǒng)通過(guò)路由器建立的局域網(wǎng)與 PC 機(jī)服務(wù)器連接,客戶端兩臺(tái)系統(tǒng) IP 地址分別為:192.168.1.101 和 192.168.1.102,服務(wù)器 IP 地址為 192.168.1.2。PC 機(jī)服務(wù)器端能夠與網(wǎng)絡(luò)數(shù)控系統(tǒng)客戶端進(jìn)行文件傳輸、DNC 在線加工、遠(yuǎn)程診斷和協(xié)助控制以及伺服參數(shù)在線監(jiān)控和修改。圖 8 所示為文件傳輸管理、DNC 在線加工和遠(yuǎn)程診斷協(xié)助控制部分功能軟件連接測(cè)試結(jié)果,證明本方案組網(wǎng)可行,能夠?qū)崿F(xiàn)數(shù)控系統(tǒng)網(wǎng)絡(luò)化管理。

    圖8 部分軟件功能測(cè)試

    4 結(jié)束語(yǔ)

      目前,工業(yè)自動(dòng)化的發(fā)展越來(lái)越多的依靠網(wǎng)絡(luò)技術(shù),數(shù)控系統(tǒng)必然走向智能化、網(wǎng)絡(luò)化、集成化,原先單一數(shù)控系統(tǒng)生產(chǎn)方式將逐漸淘汰。數(shù)控系統(tǒng)通過(guò)以太網(wǎng)、TCP/IP 通信協(xié)議和 Socket 編程技術(shù)進(jìn)行組網(wǎng),可以實(shí)現(xiàn)服務(wù)器與多臺(tái)數(shù)控系統(tǒng)進(jìn)行連接,滿足監(jiān)視和控制要求,進(jìn)一步促進(jìn)車(chē)間有效利用資源和提高生產(chǎn)效率。本文以此為出發(fā)點(diǎn),提出了具有網(wǎng)絡(luò)組網(wǎng)功能的數(shù)控系統(tǒng)體系結(jié)構(gòu)、硬件平臺(tái)和軟件設(shè)計(jì)相關(guān)方案,并驗(yàn)證了有關(guān)功能。該方案設(shè)計(jì)簡(jiǎn)單、集成度高并且軟件開(kāi)發(fā)過(guò)程短等優(yōu)點(diǎn),對(duì)數(shù)控系統(tǒng)網(wǎng)絡(luò)化應(yīng)用具有較高的參考價(jià)值。

    (審核編輯: 智匯胡妮)

    聲明:除特別說(shuō)明之外,新聞內(nèi)容及圖片均來(lái)自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請(qǐng)聯(lián)系我們刪除。