劉玉兵,王東明,胡建文
(天水鍛壓機(jī)床(集團(tuán))有限公司,甘肅 天水 741020)
隨著數(shù)字經(jīng)濟(jì)、工業(yè)互聯(lián)網(wǎng)、智能制造等技術(shù)賦能傳統(tǒng)制造業(yè)轉(zhuǎn)型升級,用戶對新建項(xiàng)目設(shè)備自動化、信息化、智能化提出了更高要求,市場倒逼裝備制造企業(yè)提供的新設(shè)備具有網(wǎng)絡(luò)化、信息化通訊功能。為用戶提供的設(shè)備,首先需要與上下游設(shè)備,基礎(chǔ)自動化之間進(jìn)行網(wǎng)絡(luò)連接與通訊,其次需要與車間級MES 系統(tǒng)進(jìn)行網(wǎng)絡(luò)連接與通訊,提供現(xiàn)場級基礎(chǔ)數(shù)據(jù)。本文論述了基于西門子S7-1500 PLC 與折彎機(jī)專用數(shù)控系統(tǒng)VT19 實(shí)現(xiàn)TCP 通訊的原理、數(shù)據(jù)結(jié)構(gòu)與定義及具體實(shí)現(xiàn)方法。
汽車懸臂吊車行業(yè),由于汽車懸臂吊車生產(chǎn)向大型和重型化方向發(fā)展,對大噸位懸臂吊關(guān)鍵受力構(gòu)件起重臂要求高,材料選用不僅要求有良好的綜合力學(xué)性能,還要有良好的工藝性能,如彎曲性、焊接性、切削加工性等[1]。數(shù)控吊臂折彎機(jī)實(shí)現(xiàn)的功能為,通過Y1,Y2電液比例軸控制滑塊同步與定位;控制前、后送料X1-X4伺服電機(jī)軸定位,每一個軸需要升降控制;控制27 個撓度補(bǔ)償伺服軸;需要與車間MES 系統(tǒng)進(jìn)行通訊。
該系統(tǒng)以S7-1500 PLC 為主控系統(tǒng),VT19 數(shù)控系統(tǒng)完成工件編程、Y1,Y2電液比例軸控制、工步自動計(jì)算,將4 個X 軸目標(biāo)值數(shù)據(jù),通過TCP 通訊傳輸?shù)絊7-1500 中,由S7-1500 完成X 軸運(yùn)動定位與輔助控制、撓度補(bǔ)償控制、以及其它輔助液壓系統(tǒng)控制。由S7-1500 集成所有數(shù)據(jù),統(tǒng)一與車間MES 系統(tǒng)實(shí)現(xiàn)通訊。其網(wǎng)絡(luò)架構(gòu)是將S7-1500 PLC、VT19 數(shù)控系統(tǒng)、MES 系統(tǒng)作為網(wǎng)絡(luò)節(jié)點(diǎn),該系統(tǒng)主要以太網(wǎng)交換機(jī)組成局域網(wǎng),交換機(jī)將首先接收某一節(jié)點(diǎn)發(fā)來的數(shù)據(jù)再將數(shù)據(jù)轉(zhuǎn)發(fā)到另一個節(jié)點(diǎn),通信節(jié)點(diǎn)只同交換機(jī)作數(shù)據(jù)交換而相互之間不直接進(jìn)行數(shù)據(jù)通信,交換機(jī)在網(wǎng)絡(luò)之間只起到互連作用[2]。如圖1 所示。
圖1 數(shù)控吊臂折彎機(jī)控制系統(tǒng)及網(wǎng)絡(luò)架構(gòu)框圖
(1)折彎機(jī)專用數(shù)控系統(tǒng)。VT19 數(shù)控系統(tǒng)是瑞士Cybelec 公司研發(fā)的折彎機(jī)專用數(shù)控系統(tǒng),可實(shí)現(xiàn)對折彎機(jī)滑塊主油缸電液比例控制。數(shù)控系統(tǒng)+比例放大器+比例方向閥+油缸+滑塊位置檢測傳感器組成滑塊電液比例閉環(huán)位置控制系統(tǒng)。同時采用比例壓力閥,控制液壓系統(tǒng)壓力。VT19 數(shù)控系統(tǒng)中增加了Visitouch 工業(yè)4.0 插件,通過Cybelec 標(biāo)準(zhǔn)硬件接口,從VT19 數(shù)控系統(tǒng)中采集實(shí)時數(shù)據(jù)、并生成數(shù)據(jù)信息[3]。天水鍛壓生產(chǎn)的數(shù)控吊臂折彎機(jī)控制有信息化特殊要求,Cybelec 公司專門將X1-X4伺服軸目標(biāo)位置數(shù)據(jù),通過TCP 協(xié)議,以及當(dāng)前產(chǎn)品號(折彎工件號)、折彎工步號、材質(zhì)等信息傳輸?shù)絊7-1500中,由S7-1500 完成控制與數(shù)據(jù)管理,并打包傳輸?shù)杰囬g級MES 系統(tǒng)。
(2)S7-1500 以太網(wǎng)通訊協(xié)議。TCP 傳輸控制協(xié)議(Transmission Control Protocol)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。在S7-1500 開放式用戶通訊中,TCP 通訊協(xié)議是應(yīng)用較為廣泛的一種協(xié)議形式。S7-1500 集成的內(nèi)部指令通過數(shù)據(jù)分片、到達(dá)確認(rèn)、超時重發(fā)、失序處理、數(shù)據(jù)校驗(yàn)、流控等技術(shù)手段,保證數(shù)據(jù)能在客戶端和服務(wù)器端可靠傳輸,這些功能S7-1500 已經(jīng)封裝到了TCP協(xié)議的通訊功能塊算法中[4]。其通訊塊程序塊分別是“建立連接并發(fā)送數(shù)據(jù)”塊(TSEND_C)、和“建立連接并接收數(shù)據(jù)”塊(TRCV_C)。發(fā)送和接受數(shù)據(jù)塊為“非優(yōu)化的塊訪問”,系統(tǒng)自動記錄偏移量、方便絕對尋址,其中發(fā)送和接受數(shù)據(jù)塊為“數(shù)組數(shù)據(jù)類型”,即“Array[0..n] of Byte”數(shù)據(jù)類型。
(3)服務(wù)器端與客戶端的規(guī)劃。該系統(tǒng)將VT19作為TCP 協(xié)議的服務(wù)器端,S7-1500 為TCP 協(xié)議的客戶端。S7-1500 通過客戶端端口主動建立連接并向VT19 服務(wù)器端發(fā)送請求數(shù)據(jù),VT19 在其服務(wù)器端口接收來自客戶端的訪問,VT19 根據(jù)訪問請求內(nèi)容回復(fù)相應(yīng)的數(shù)據(jù)[5]。VT19 服務(wù)器使用的IP 地址和端口號Port 由VT19 參數(shù)定義。S7-1500 客戶端使用的IP 地址和端口號Port 由S7-1500 參數(shù)定義。
S7-1500 與通訊伙伴VT19 之間數(shù)據(jù)結(jié)構(gòu)如表1所示。
表1 通訊數(shù)據(jù)結(jié)構(gòu)
表2 通訊ID定義
通訊流程圖如圖2 所示。
圖2 S7-1500 與VT19 通訊流程圖
在S7-1500 中打開組織塊main(OB1),從右側(cè)指令中分別拖拽TSEND_C 和TRCV_C 兩個指令到程序段中,在其“連接資源”下拉中直接單擊新建,自動生成“PLC_1_Receive_DB”數(shù)據(jù)塊[5]。定義一個全局?jǐn)?shù)據(jù)塊DB244,作為發(fā)送請求數(shù)據(jù)塊,在DB244 塊內(nèi)的結(jié)構(gòu)體變量Static 內(nèi)部分別定義X1至X4軸位置以及折彎參數(shù)等5 組數(shù)組,類型變量Array[0-271] ofByte,儲存發(fā)送給VT19 的請求數(shù)據(jù)。如圖3 所示。
圖3 數(shù)據(jù)發(fā)送塊[DB244]內(nèi)X1 軸請求數(shù)據(jù)結(jié)構(gòu)圖
定義一個全局?jǐn)?shù)據(jù)塊DB245,作為接受VT19 響應(yīng)的數(shù)據(jù)塊,接受VT19 應(yīng)答X1-X4軸編程目標(biāo)值數(shù)據(jù)。如圖4 所示。
圖4 接受數(shù)據(jù)塊[DB245]內(nèi)接受的X1 軸實(shí)時數(shù)據(jù)
定義一個全局?jǐn)?shù)據(jù)塊DB255,作為TCP 通訊接受數(shù)據(jù)塊,接受VT19 應(yīng)答的折彎參數(shù)與X1-X4軸編程目標(biāo)值數(shù)據(jù)。如圖5 所示。
圖5 [DB255]接受VT19 應(yīng)答的折彎參數(shù)與X1 軸實(shí)時數(shù)據(jù)圖
在OB1 組織塊中創(chuàng)建TCP 通訊的數(shù)據(jù)發(fā)送指令TSEND_C 和接收指令TRCV_C,點(diǎn)擊調(diào)用指令右上角的組態(tài)圖標(biāo),進(jìn)行通訊連接參數(shù)組態(tài)。在PLC 側(cè)選擇主動連接,本地端口號默認(rèn)?;锇槎丝谠O(shè)為5000,為VT19 設(shè)置端口。如圖6、7 所示。
圖6 OB1 中通訊模塊調(diào)用圖
在VT19 數(shù)控系統(tǒng)參數(shù)設(shè)置頁面設(shè)定IP 地址和通訊端口Port 號,設(shè)置完成后需要重啟系統(tǒng)。在VT19中運(yùn)行通訊測試程序“Industry_4_0_1000_Simu”,設(shè)置數(shù)控系統(tǒng)的IP 地址和端口Port 號后,點(diǎn)擊Connect 按鈕,在右側(cè)的消息框中顯示連接成功的提示。如圖8 所示。
圖8 TCP 通訊連接實(shí)時測試圖
以讀取X1軸的目標(biāo)位置數(shù)據(jù)為例,在圖9 左上方下拉菜單“3”選擇“Requestrian Axis Data”(軸數(shù)據(jù)請求)。圖中“X1”是軸號,通過TCP 通訊時“X1”的數(shù)據(jù)類型為字符串,需先將“X1”字符串轉(zhuǎn)換成ASCII碼,再將ASCII 轉(zhuǎn)換成十六進(jìn)制數(shù)。字符串“X”轉(zhuǎn)換成ASCII 為“58”,字符串“1”轉(zhuǎn)換成ASCII 為“31”,再將轉(zhuǎn)換所得的ASCII 轉(zhuǎn)換為十六進(jìn)制數(shù)為“5831”就是S7-1500 需要發(fā)送至VT19 的X1軸的軸名稱。測試顯示讀取的X1軸目標(biāo)值數(shù)據(jù)是199392,其HEX 格式是30AE0,接受到的數(shù)據(jù)格式為0X1 0X0 0X0 0XE0 0XA 0X3 0X00。
圖9 X 軸數(shù)據(jù)實(shí)時測試圖
在S7-1500 系統(tǒng)中,由于發(fā)送和接受通訊塊不能同時被激活、多組發(fā)送或多組接受塊不能同時被激活,需要分別發(fā)送和讀取X1-X4軸的數(shù)據(jù),程序中在同一掃描周期只能調(diào)用一個發(fā)送或一個接受通訊塊。其編程方法是使用輪流方法進(jìn)行通訊,即在第一個通訊周期,將X1軸發(fā)送塊激活(REQ 端、CONT端),待數(shù)據(jù)發(fā)送(DATA)完成后,由X1軸的數(shù)據(jù)發(fā)送完成標(biāo)志位(DONE)激活X1軸的數(shù)據(jù)接收塊,數(shù)據(jù)接收完成后,用X1軸接收結(jié)束標(biāo)志位(DONE)啟動X2軸的發(fā)送請求,同時復(fù)位自身通訊連接(CONT端)。依次循環(huán),分別完成X1軸-X4軸的發(fā)送與接收數(shù)據(jù)的過程。如圖10、11 所示。
圖10 多通訊模塊分時通訊時序圖
圖11 多模塊分時通訊實(shí)時時序效果圖
通過數(shù)控吊臂折彎機(jī)三臺套設(shè)備在用戶現(xiàn)場兩年多的使用證明,其通訊正常、可靠。采用S7-1500與VT19 數(shù)控系統(tǒng)進(jìn)行TCP通訊,一方面滿足了S7-1500 對VT19 數(shù)控系統(tǒng)提供X1-X4軸控制數(shù)據(jù)的要求,另一方面滿足了S7-1500 為用戶MES 系統(tǒng)提供所需要基礎(chǔ)數(shù)據(jù)包的要求。