姚 鵬,李楠楠,曹智軍,劉國寧,3
(1.鄭州大學(xué) 機(jī)械工程學(xué)院,鄭州 450001;2.河南職業(yè)技術(shù)學(xué)院,鄭州 450007;3.鄭州大學(xué) 工業(yè)物聯(lián)網(wǎng)研究所,鄭州 450000)
在經(jīng)歷了三次工業(yè)革命之后的今天,全球制造業(yè)在德國工業(yè)4.0、美國工業(yè)互聯(lián)網(wǎng)、中國“智能制造2025”的帶領(lǐng)下,向著第四次工業(yè)革命大步邁進(jìn)。“工業(yè)4.0”戰(zhàn)略的核心環(huán)節(jié)是建立數(shù)字化車間,實(shí)現(xiàn)生產(chǎn)過程的自動(dòng)化、柔性化、智能化、信息化。在工業(yè)數(shù)字化生產(chǎn)管理的發(fā)展要求中,實(shí)現(xiàn)數(shù)控機(jī)床的實(shí)時(shí)數(shù)據(jù)采集和遠(yuǎn)程監(jiān)控是推進(jìn)數(shù)字化車間發(fā)展的一個(gè)重要基礎(chǔ)[1]。計(jì)算機(jī)技術(shù)的快速發(fā)展和數(shù)控機(jī)床智能化技術(shù)的不斷進(jìn)步,使得數(shù)控機(jī)床遠(yuǎn)程監(jiān)控的需求實(shí)現(xiàn)可能。
本文以西門子數(shù)控系統(tǒng)為平臺(tái),在介紹了西門子數(shù)控系統(tǒng)結(jié)構(gòu)及手動(dòng)切換NC程序方法的基礎(chǔ)上,提出了一種基于PLC數(shù)據(jù)通信的上位機(jī)管理程序?qū)崿F(xiàn)遠(yuǎn)程切換NC程序的方案,并詳細(xì)介紹了該方法的實(shí)現(xiàn)技術(shù)及應(yīng)用實(shí)例。
目前,我國在普及型和高級(jí)型數(shù)控系統(tǒng)上基本依賴進(jìn)口,我國引進(jìn)的數(shù)控系統(tǒng)主要是FANUC,SIEMENS,MITSUBISHI等公司的產(chǎn)品[2]。SINUMERIK數(shù)控系統(tǒng)是西門子公司開發(fā)的數(shù)控系統(tǒng)產(chǎn)品,具有模塊化設(shè)計(jì)良好、系統(tǒng)開放性強(qiáng)、結(jié)構(gòu)統(tǒng)一緊湊和應(yīng)用靈活的特點(diǎn)。無論是普及型數(shù)控機(jī)床,還是標(biāo)準(zhǔn)型機(jī)床,或者是模塊化高端機(jī)床,SINUMERIK數(shù)控系統(tǒng)都為不同類型的機(jī)床提供了最佳解決方案[3]。
SINUMERIK 808是一款基于操作面板的普及型數(shù)控系統(tǒng)。結(jié)構(gòu)緊湊,使用方便,適用于車削和銑削應(yīng)用。具有完美的基本特征:操作簡(jiǎn)便,調(diào)試維修方便,成本最優(yōu)。
SINUMERIK 828數(shù)控系統(tǒng)適用于大批量加工、模塊化程度較低的標(biāo)準(zhǔn)機(jī)床。不論是 SINUMERIK 828D BASIC、SINUMERIK 828D還是SINUMERIK 828D ADVANCED,都是一款高性價(jià)比的數(shù)控系統(tǒng),結(jié)構(gòu)緊湊,數(shù)控性能高,便于調(diào)試。
SINUMERIK 840D sl具有極高的開放性和靈活性,是定制機(jī)床所用數(shù)控系統(tǒng)的最佳選擇。SINUMERIK 840D sl BASIC基于SINAMICS S120 Combi驅(qū)動(dòng)器,適用于具有模塊化和靈活配置選擇的六軸以內(nèi)的高端機(jī)床。
西門子數(shù)控系統(tǒng)中均采用PLC作為邏輯控制單元,SINUMERIK 808D和SINUMERIK 828D數(shù)控系統(tǒng)采用的是西門子S7-200系列的PLC,SINUMERIK 840D sl采用的是西門子S7-300系列的PLC。作為數(shù)控系統(tǒng)的重要組成部分,PLC采用接口變量及相應(yīng)的數(shù)據(jù)位的形式與NCK(數(shù)控核心)、MCP(控制面板)、HMI(人機(jī)界面)進(jìn)行控制和狀態(tài)信息的傳送,并按照系統(tǒng)的工作狀態(tài)和用戶編寫控制程序完成機(jī)床邏輯控制任務(wù)[4],PLC、NCK、HMI、MCP相互間信息傳遞的路徑和方向如圖1所示。
圖1 SINUMERIK數(shù)控系統(tǒng)內(nèi)部信號(hào)傳遞示意圖
SINUMERIK數(shù)控系統(tǒng)常規(guī)采用的是通過操作面板來選擇NC程序,其步驟為:
1)選擇操作區(qū)域“Program manager”(程序管理器),打開目錄概覽;
2)將光標(biāo)定位至包含待選NC程序的目錄上;
3)按下<input>鍵(或者按下<光標(biāo)向右>鍵),顯示目錄內(nèi)容;
4)將光標(biāo)定位到所需的程序上;
5)按下軟鍵“Select”(選擇),選擇程序。
成功選擇了程序后會(huì)自動(dòng)切換至“Machine”(加工)操作區(qū),打開循環(huán)啟動(dòng)后,數(shù)控機(jī)床即可進(jìn)入指定程序的自動(dòng)加工。
SINUMERIK數(shù)控系統(tǒng)提供了一種通過內(nèi)置PLC控制數(shù)控系統(tǒng)切換NC程序的方法,可以實(shí)現(xiàn)快速切換NC程序,其工作流程如圖2所示。用戶通過PLC程序?qū)⒄_的變量輸入到數(shù)控機(jī)床PLC的對(duì)應(yīng)的DB塊中,PLC對(duì)信號(hào)進(jìn)行分析處理,完成切換NC程序的任務(wù)。
圖2 PLC切換NC程序的工作流程
SINUMERIK數(shù)控系統(tǒng)在初始狀態(tài)時(shí),PLC程序列表是隱藏的,需要通過修改機(jī)床通用數(shù)據(jù)參數(shù),激活PLC程序列表。對(duì)于828D和840Dsl系統(tǒng),激活PLC程序列表的三個(gè)參數(shù)是相同的,均為:
MD51041:激活USER(用戶)區(qū)的PLC程序列表;
MD51042:激活I(lǐng)NDIVIDUAL(個(gè)體)區(qū)的PLC程序列表;
MD51043:激活MANUFACTURER(廠商)區(qū)的PLC程序列表。
參數(shù)的數(shù)據(jù)類型為字節(jié),值為1時(shí)有效。
PLC程序列表中最多可放置255個(gè)NC程序,分別對(duì)應(yīng)以上三種權(quán)限的程序:USER(用戶)區(qū)為1-100號(hào)程序,INDIVIDUAL(個(gè)體)區(qū)為101-200號(hào)程序,MANUFACTURER(廠商)區(qū)為201-255號(hào)程序。不同的程序列表中的NC程序在SINUMERIK Operate中是不同的控制文件,用戶區(qū)訪問級(jí)別為3,允許由用戶編輯,控制文件索引號(hào)是1;個(gè)體區(qū)訪問級(jí)別為2,控制文件索引號(hào)為2(840D sl的個(gè)體區(qū)列表未創(chuàng)建);廠商區(qū)訪問級(jí)別為1,只允許由制造商編輯,控制文件索引號(hào)為3。在程序列表中的程序號(hào)為PLC選擇NC程序文件的索引值。
在有機(jī)器人參與的自動(dòng)化高度集成的柔性生產(chǎn)線中,遇到更換加工工件類型時(shí),需要切換NC程序的操作,操作工使用操作面板手動(dòng)切換NC程序的常規(guī)方式不能滿足需求,需要一種能夠通過上位機(jī)遠(yuǎn)程控制機(jī)床切換NC程序的方案。針對(duì)西門子數(shù)控系統(tǒng)的開發(fā)環(huán)境,通過上位機(jī)讀寫PLC變量實(shí)現(xiàn)切換NC程序的方法適應(yīng)當(dāng)前需求。
通過PLC選擇NC程序,首先需要把需要切換的NC程序添加到相應(yīng)的程序列表中,例如:將AAA.MPF程序文件添加到用戶區(qū)程序列表的1號(hào)程序,將BBB.MPF程序文件添加到個(gè)體區(qū)程序列表的101號(hào)程序。
對(duì)于828D數(shù)控系統(tǒng),與PLC選擇NC程序相關(guān)的DB接口信號(hào)如表1和表2所示[5]。
從上表可知:DB1700.DBB1000.7為程序選擇信號(hào),DB1700.DBB1001為選擇程序的程序列表控制文件編號(hào),即USER、INDIVIDUAL、MANUFACTURER,其各自的值分別是129、130、131。(注:第7位總是為1,舉例MANUFACTURER區(qū)的索引為3,該字節(jié)用二進(jìn)制表示即為10000011,二進(jìn)制10000011轉(zhuǎn)化成十進(jìn)制即為131)。DB1700.DBB1002為選擇程序號(hào),即NC程序文件的索引值,如AAA.MPF即為1,BBB.MPF即為101。
DB1700.DBB2000為操作軟件反饋給PLC的信號(hào),表示程序處理的狀態(tài),第2位為1代表處理出錯(cuò),程序切換失敗。DB1700.DBB2001為錯(cuò)誤代碼。
表1 828D切換NC程序操作的PLC接口信號(hào)
表2 828D切換NC程序狀態(tài)反饋的PLC接口信號(hào)
調(diào)試過程:PLC程序中先將要調(diào)用的程序列表號(hào)和程序號(hào)分別送到接口DB1700.DBB1001和DB1700.DBB1002,然后選擇程序開始DB 1700.DBX1000.7即可。
通過查找實(shí)驗(yàn)設(shè)備的資料得知,機(jī)床操作面板上的預(yù)留功能按鍵1的輸入信號(hào)地址為I118.1,預(yù)留功能按鍵2的輸入信號(hào)地址為I118.2,實(shí)驗(yàn)?zāi)康模簩?shí)現(xiàn)按下按鍵1切換到1號(hào)程序即AAA.MPF程序文件,按下按鍵2切換到101號(hào)程序即BBB.MPF程序文件,編寫PLC控制切換NC程序的梯形圖如圖3所示。由于選擇程序指令DB1700.DBX1000.7需要在程序號(hào)輸入到DB1700.DBB1002后執(zhí)行,因此在梯形圖中加入一個(gè)計(jì)時(shí)器,使PLC在按下按鍵后,DB1700.DBX1000.7指令持續(xù)0.5s。
通過PLC執(zhí)行添加的梯形圖程序段,成功實(shí)現(xiàn)了按下按鍵快速切換到指定的NC程序,上位機(jī)通過向機(jī)床的PLC發(fā)送一個(gè)按鍵對(duì)應(yīng)的模擬輸入信號(hào),可實(shí)現(xiàn)機(jī)床切換NC程序的遠(yuǎn)程控制。但是這種方式卻并不能達(dá)到柔性自動(dòng)化制造的需要,當(dāng)有大量的NC程序需要實(shí)現(xiàn)快速切換功能時(shí),操作面板上預(yù)留的功能鍵就不能滿足我們的需求。
西門子數(shù)控系統(tǒng)提供了多種通信方式可供上位機(jī)與數(shù)控系統(tǒng)通信連接以實(shí)現(xiàn)數(shù)據(jù)交換,如OPC通信、WinCC等,但諸多功能需要專門授權(quán)和付費(fèi),且使用場(chǎng)景受限。SINUMERIK 808D、SINUMERIK 828D和SINUMERIK 840D sl均采用了西門子SIMATIC S7系列的PLC,這些類型的PLC均支持通過以太網(wǎng)接口,對(duì)存儲(chǔ)區(qū)的數(shù)據(jù)進(jìn)行直接讀寫。
圖3 PLC切換程序梯形圖
S7通信協(xié)議是一種在工業(yè)控制系統(tǒng)中應(yīng)用的網(wǎng)絡(luò)協(xié)議,是專門為西門子控制產(chǎn)品優(yōu)化設(shè)計(jì)的通信協(xié)議,應(yīng)用于西門子SIMATIC S7系列PLC[6]。當(dāng)PLC做服務(wù)端時(shí),上位機(jī)通過以太網(wǎng)通信與PLC 連接并通過S7協(xié)議發(fā)起請(qǐng)求,PLC作為服務(wù)端回復(fù)相應(yīng)格式的數(shù)據(jù),可實(shí)現(xiàn)讀寫整個(gè)PLC存儲(chǔ)器(輸入信號(hào)/輸出信號(hào)/DB數(shù)據(jù)塊/標(biāo)志量/計(jì)時(shí)器/計(jì)數(shù)器),完成上傳和下載數(shù)據(jù)塊操作,控制PLC啟停、設(shè)置安全等級(jí)等操作,如圖4所示。
圖4 PLC做服務(wù)器架構(gòu)時(shí)與上位機(jī)通訊方式
S7.NET是一個(gè)針對(duì).NET平臺(tái)語言開發(fā)的S7系列PLC開源通信類庫,遵循MIT license開源協(xié)議,采用C#語言編寫,可支持S7-200/300/400系列PLC以及最新的S7-1200/1500系列型號(hào),可以使用Socket與PLC進(jìn)行連接和斷開,可以通過給定起始地址和字節(jié)數(shù)對(duì)指定的存儲(chǔ)區(qū)域讀取和寫入字節(jié)。S7.NET是開源的,MIT許可證允許在商業(yè)應(yīng)用程序中使用它[7]。
本研究使用C#開發(fā)語言和S7.NET通信組件,編寫上位機(jī)與西門子數(shù)控系統(tǒng)的PLC通訊的程序,實(shí)現(xiàn)了通過輸入程序號(hào)快速切換到指定NC程序的目的。只需提前將想要切換的NC程序添加到程序列表中,即可遠(yuǎn)程切換到對(duì)應(yīng)的程序,并開啟循環(huán)啟動(dòng)。
本文實(shí)現(xiàn)遠(yuǎn)程切換NC程序的測(cè)試程序的關(guān)鍵代碼如下:
SINUMERIK 840D sl可通過與828D相同的方法實(shí)現(xiàn)
表3 840D sl切換NC程序操作的PLC接口信號(hào)
表4 840D sl切換NC程序操作的PLC接口信號(hào)
【】【】NC程序的快速切換,只在切換程序?qū)?yīng)的PLC接口信號(hào)地址有區(qū)別,其對(duì)應(yīng)的PLC接口信號(hào)如表3和表4所示[8]。
從上表可知:DB19.DBX13.7為程序選擇信號(hào),DB19.DBB16的值為選擇程序的程序列表控制文件編號(hào),即USER、MANUFACTURER,其對(duì)應(yīng)的值分別是129、131。(注:SINUMERIK 840D sl系統(tǒng)未預(yù)置INDIVIDUAL列表的控制文件)。DB19.DBB17的值為選擇程序號(hào),即NC程序文件的索引值。DB19.DBB26為操作軟件反饋給PLC的信號(hào),表示程序處理的狀態(tài),第2位的值為1時(shí)表示處理出錯(cuò),即程序切換失敗,DB19.DBB27的值為錯(cuò)誤代碼。
針對(duì)本文的研究需求,編寫遠(yuǎn)程切換NC程序的上位機(jī)測(cè)試程序,程序運(yùn)行流程如圖5所示。使用測(cè)試程序在SINUMERIK 828D數(shù)控系統(tǒng)試驗(yàn)臺(tái)和SINUMERIK 840D sl數(shù)控系統(tǒng)試驗(yàn)臺(tái)上分別進(jìn)行試驗(yàn)驗(yàn)證。驗(yàn)證結(jié)果證明,使用測(cè)試程序成功實(shí)現(xiàn)了NC程序的遠(yuǎn)程切換。
本文針對(duì)數(shù)控機(jī)床遠(yuǎn)程切換NC程序的需求,研究了西門子主流數(shù)控系統(tǒng)基于以太網(wǎng)通信和S7協(xié)議的遠(yuǎn)程切換NC程序的方法。實(shí)驗(yàn)結(jié)果表明,按照本文的研究方法,在控制端電腦上連接機(jī)床的PLC后,選擇程序列表類型并輸入程序號(hào)即可使機(jī)床端切換到指定的NC程序,操作簡(jiǎn)單,使用便捷。本文研究?jī)?nèi)容為西門子數(shù)控機(jī)床在自動(dòng)化柔性制造中的應(yīng)用,提供遠(yuǎn)程控制的基礎(chǔ)。
圖5 程序運(yùn)行流程圖
[1]劉濤.智能制造技術(shù)在工控自動(dòng)化領(lǐng)域的應(yīng)用[J].產(chǎn)業(yè)與科技論壇,2015(1):47-48.
[2]張宏帥.基于TCP/IP協(xié)議的FANUC-DNC系統(tǒng)研究與開發(fā)[D].鄭州大學(xué),2016.
[3]徐潔蘭.西門子數(shù)控系統(tǒng)概述[J].制造技術(shù)與機(jī)床,2005(2):100-102.
[4]王文磊,徐汀榮.PLC和PC基于工業(yè)以太網(wǎng)通信研究與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,22(13):43-45.
[5]SINUMERIK 828D NC變量和接口信號(hào)參數(shù)手冊(cè)[Z].西門子,2015,10:924-925.
[6]朱津津,申屠浩,鮑可進(jìn).基于.NET上位機(jī)與PLC工業(yè)以太網(wǎng)通信的實(shí)現(xiàn)[J].電子科技,2016,29(11):115-117.
[7]Mesta Automation. Communication with Siemens S7 PLC with C#and S7.Net PLC driver[EB/OL].2015.www.mesta-automation.com.
[8]SINUMERIK 840D sl NC變量和接口信號(hào)參數(shù)手冊(cè)[Z].西門子,2015,10:979-979.