在线观看免费黄色网址,一区二区视频,亚洲国产综合网,欧美VA免费高清在线观看

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

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

點擊:2510

A+ A-

所屬頻道:新聞中心

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

    0 引言

      制造業(yè)是國家綜合國力的基礎(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ì)條件下對市場環(huán)境的生存能力。因此,發(fā)展先進(jìn)數(shù)控技術(shù)對制造型企業(yè)的發(fā)展壯大起到關(guān)鍵作用。網(wǎng)絡(luò)數(shù)控技術(shù)即是一種將制造單元通過網(wǎng)絡(luò)技術(shù)互聯(lián),從而實現(xiàn)在制造過程中共享所需資源的技術(shù)。

      一方面,利用多個網(wǎng)絡(luò)數(shù)控系統(tǒng)可以構(gòu)建網(wǎng)絡(luò)化生產(chǎn)車間,中心服務(wù)器管理者可以詳細(xì)準(zhǔn)確監(jiān)視并記錄每一臺設(shè)備的運(yùn)行情況,可以實現(xiàn)遠(yuǎn)程控制,合理調(diào)度生產(chǎn)設(shè)備資源,提高企業(yè)生產(chǎn)效率,降低工人勞動成本;另一方面,系統(tǒng)廠家可以通過 Internet 與客戶中心服務(wù)器連接,及時跟蹤客戶需求反饋,有助于遠(yuǎn)程培訓(xùn)和維護(hù),減少維修人員的往來。隨著計算機(jī)輔助設(shè)計和制造系統(tǒng)大量應(yīng)用于實際加工過程,需要快速方便地與數(shù)控系統(tǒng)進(jìn)行大吞吐量數(shù)據(jù)交換,具備網(wǎng)絡(luò)功能的數(shù)控系統(tǒng)能夠很好地與辦公室中的 CAD/CAM系統(tǒng)聯(lián)系起來,快速高效生產(chǎn)加工,及時修正加工問題,實現(xiàn)網(wǎng)絡(luò)制造。目前,多家數(shù)控系統(tǒng)設(shè)備制造公司如德國西門子(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è)計的數(shù)控系統(tǒng)采用的是 TI 公司 OMAPL138B 作為主控芯片,該芯片同時集成 ARM 和 DSP 核心,二者能夠無縫協(xié)調(diào)工作,減少了總線延遲。其中,ARM 核心負(fù)責(zé)完成顯示、人機(jī)交互(HMI)、文件資源管理、數(shù)控 NC 譯碼任務(wù)以及網(wǎng)絡(luò)通信傳輸;而 DSP 核心則發(fā)揮其運(yùn)算優(yōu)勢,主要擔(dān)負(fù)數(shù)控系統(tǒng)核心插補(bǔ)算法、伺服驅(qū)動控制以及 PLC 邏輯控制運(yùn)算。網(wǎng)絡(luò)電路接口則采用 WIZnet 公司生產(chǎn)的一款成熟且多功能的網(wǎng)絡(luò)芯片——W5100,實現(xiàn) TCP/IP 通信協(xié)議傳輸,很大程度簡化了系統(tǒng)結(jié)構(gòu)設(shè)計。

      ARM 和 DSP 核心能夠同時工作于 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 處理器簡介

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

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

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

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

      3)LCD 控制器;

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

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

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

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

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

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

      2) 支持自動 MDI/MDIX,并自動校正信號極性;

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

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

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

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

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

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

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

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

      1.3 硬件電路設(shè)計

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

    圖 2 硬件電路總體框圖

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

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

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

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

      網(wǎng)絡(luò)數(shù)控把與制造過程有關(guān)的設(shè)備(如數(shù)控機(jī)床)、主控計算機(jī)、通信設(shè)施等按一定的結(jié)構(gòu)和層次組合起來成為一個整體,具有層次化的結(jié)構(gòu)特征。如圖 5 所示,網(wǎng)絡(luò)數(shù)控系統(tǒng)組網(wǎng)可以分為三個層次:企業(yè)車間層、企業(yè)管理中心層和系統(tǒng)廠家管理層。數(shù)控系統(tǒng)配套的加工機(jī)床設(shè)備位于企業(yè)生產(chǎn)車間,通過網(wǎng)絡(luò)鏈路設(shè)備有機(jī)連接起來,每臺設(shè)備提供基本信息、系統(tǒng)狀態(tài)和控制信息等數(shù)據(jù)。企業(yè)管理中心層是數(shù)控系統(tǒng)數(shù)據(jù)中心,維護(hù)管理調(diào)度生產(chǎn)車間每一臺設(shè)備,對設(shè)備進(jìn)行有效管理。系統(tǒng)廠家管理層建立用戶數(shù)據(jù)信息庫,通過 Internet 與企業(yè)用戶進(jìn)行連接,實時跟蹤客戶需求及系統(tǒng)運(yùn)行狀況,必要時可以對客戶進(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)類似,將網(wǎng)絡(luò)數(shù)控系統(tǒng)看成局域網(wǎng)內(nèi)的一個節(jié)點。鑒于生產(chǎn)車間環(huán)境比較惡劣,組網(wǎng)采用超五類雙絞線作為傳輸介質(zhì),具有串?dāng)_少、衰減小并且具有較高的衰減與串?dāng)_的比值和信噪比,性能能夠得到很大提高。另外,需要額外的網(wǎng)絡(luò)連接設(shè)備來滿足服務(wù)器與多個數(shù)控系統(tǒng)客戶端的連接。通過對比集線器、中繼器和交換機(jī)性能,最后選用具有有效隔離沖突的交換機(jī)作為網(wǎng)絡(luò)連接設(shè)備,能夠為每個客戶端口提供專用帶寬,能夠滿足全雙工數(shù)據(jù)傳輸。

    3 軟件設(shè)計

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

    圖6 W5100 客戶端連接流程

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

      3.1 W5100 驅(qū)動程序設(shè)計

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

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

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

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

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

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

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

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

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

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

      W5100 讀操作首先從端口接收數(shù)據(jù)緩沖區(qū)讀取有效數(shù)據(jù),將接收的數(shù)據(jù)量與讀指針寄存器 Sn_RX_RD 的值相加再寫回 Sn_RX_RD,最后將 RECV 讀命令操作標(biāo)志寫入端口命令寄存器 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ù)操作時,首先檢查發(fā)送緩沖區(qū)剩余空間大小 Sn_TX_FSR,將要發(fā)送數(shù)據(jù)寫入端口發(fā)送數(shù)據(jù)緩沖區(qū)后,則將發(fā)送數(shù)據(jù)長度與端口傳輸寫指針寄存器 Sn_TX_WR 中的值相加并寫入 Sn_TX_WR,最后寫入發(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ù)寫入發(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è)計

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

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

      ULONG WINAPI ListenThread(LPVOID p){ //監(jiān)聽線程處理函數(shù)  SOCKET listenSocket; //服務(wù)器監(jiān)聽套接字  BOOL bRet;  SOCKADDR_IN addrSrv;  SOCKADDR_IN addrClient;  int len = sizeof(SOCKADDR)  listenSocket = socket(AF_INET, SOCK_STREAM, 0); //創(chuàng)建監(jiān)聽套接字  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)聽模式  while(1){ //以下阻塞等待客戶端連接  SOCKET dataSocket=accept(listenSocket,(SOCKADDR*)&addrClient, &len);  UserTransSaveSocket(dataSocket); //將客戶端通信套接字存儲  }  return 0;  }

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

      本文數(shù)控系統(tǒng)組網(wǎng)驗證采用兩臺數(shù)控系統(tǒng)通過路由器建立的局域網(wǎng)與 PC 機(jī)服務(wù)器連接,客戶端兩臺系統(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é)助控制部分功能軟件連接測試結(jié)果,證明本方案組網(wǎng)可行,能夠?qū)崿F(xiàn)數(shù)控系統(tǒng)網(wǎng)絡(luò)化管理。

    圖8 部分軟件功能測試

    4 結(jié)束語

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

    (審核編輯: 智匯胡妮)

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

    韩国庄仕洋| 挂面是面食界的苹果 | 提高墙体楼板隔声性能| 原神爱可菲| 韩国庄仕洋| 黄霄雲方回应翻唱争议 | 李现又去公园打鸟了| 张檬称月子要坐满100天| 申请过国家助学贷款的同学注意了 | 金秀贤一边哭一边喝水| 赵雅芝儿子| 站姐愚人节团建预告| 沉浸式感受广西三月三| 梁洁造型师| 清明档预售前三名 | 沉浸式感受广西三月三| 4人入室抢婴案妈妈索赔600多万 | BLACKPINK未公开的物料 | 雁回时反转| 真正的智能座舱从不挑手机品牌| 航空创作计划| 张家界回应因台词又在韩国爆火 | 乘风2025四公帮唱组队征集| 沉浸式感受广西三月三| 郭德纲说我演不过秦霄贤| 愚人节站姐团建| 男子肝癌晚期只打一针获新生| 中医把脉称甲亢哥没有甲亢| 站姐愚人节团建预告| by2十六年后再穿出道战衣| 一年之计在于春专家教你如何减重| 钟南山提醒剩饭剩菜别强吃| 黄霄雲方回应翻唱争议| 甲亢哥成都行直播| 提高墙体楼板隔声性能| 清明档预售前三名| 白敬亭 宋轶| 站姐愚人节团建预告| 男子肝癌晚期只打一针获新生| 甲亢哥成都行直播| 张家界回应因台词又在韩国爆火 |