劉玉兵,王東明,胡建文
(天水鍛壓機床(集團)有限公司,甘肅 天水 741020)
隨著數字經濟、工業互聯網、智能制造等技術賦能傳統制造業轉型升級,用戶對新建項目設備自動化、信息化、智能化提出了更高要求,市場倒逼裝備制造企業提供的新設備具有網絡化、信息化通訊功能。為用戶提供的設備,首先需要與上下游設備,基礎自動化之間進行網絡連接與通訊,其次需要與車間級MES 系統進行網絡連接與通訊,提供現場級基礎數據。本文論述了基于西門子S7-1500 PLC 與折彎機專用數控系統VT19 實現TCP 通訊的原理、數據結構與定義及具體實現方法。
汽車懸臂吊車行業,由于汽車懸臂吊車生產向大型和重型化方向發展,對大噸位懸臂吊關鍵受力構件起重臂要求高,材料選用不僅要求有良好的綜合力學性能,還要有良好的工藝性能,如彎曲性、焊接性、切削加工性等[1]。數控吊臂折彎機實現的功能為,通過Y1,Y2電液比例軸控制滑塊同步與定位;控制前、后送料X1-X4伺服電機軸定位,每一個軸需要升降控制;控制27 個撓度補償伺服軸;需要與車間MES 系統進行通訊。
該系統以S7-1500 PLC 為主控系統,VT19 數控系統完成工件編程、Y1,Y2電液比例軸控制、工步自動計算,將4 個X 軸目標值數據,通過TCP 通訊傳輸到S7-1500 中,由S7-1500 完成X 軸運動定位與輔助控制、撓度補償控制、以及其它輔助液壓系統控制。由S7-1500 集成所有數據,統一與車間MES 系統實現通訊。其網絡架構是將S7-1500 PLC、VT19 數控系統、MES 系統作為網絡節點,該系統主要以太網交換機組成局域網,交換機將首先接收某一節點發來的數據再將數據轉發到另一個節點,通信節點只同交換機作數據交換而相互之間不直接進行數據通信,交換機在網絡之間只起到互連作用[2]。如圖1 所示。

圖1 數控吊臂折彎機控制系統及網絡架構框圖
(1)折彎機專用數控系統。VT19 數控系統是瑞士Cybelec 公司研發的折彎機專用數控系統,可實現對折彎機滑塊主油缸電液比例控制。數控系統+比例放大器+比例方向閥+油缸+滑塊位置檢測傳感器組成滑塊電液比例閉環位置控制系統。同時采用比例壓力閥,控制液壓系統壓力。VT19 數控系統中增加了Visitouch 工業4.0 插件,通過Cybelec 標準硬件接口,從VT19 數控系統中采集實時數據、并生成數據信息[3]。天水鍛壓生產的數控吊臂折彎機控制有信息化特殊要求,Cybelec 公司專門將X1-X4伺服軸目標位置數據,通過TCP 協議,以及當前產品號(折彎工件號)、折彎工步號、材質等信息傳輸到S7-1500中,由S7-1500 完成控制與數據管理,并打包傳輸到車間級MES 系統。
(2)S7-1500 以太網通訊協議。TCP 傳輸控制協議(Transmission Control Protocol)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。在S7-1500 開放式用戶通訊中,TCP 通訊協議是應用較為廣泛的一種協議形式。S7-1500 集成的內部指令通過數據分片、到達確認、超時重發、失序處理、數據校驗、流控等技術手段,保證數據能在客戶端和服務器端可靠傳輸,這些功能S7-1500 已經封裝到了TCP協議的通訊功能塊算法中[4]。其通訊塊程序塊分別是“建立連接并發送數據”塊(TSEND_C)、和“建立連接并接收數據”塊(TRCV_C)。發送和接受數據塊為“非優化的塊訪問”,系統自動記錄偏移量、方便絕對尋址,其中發送和接受數據塊為“數組數據類型”,即“Array[0..n] of Byte”數據類型。
(3)服務器端與客戶端的規劃。該系統將VT19作為TCP 協議的服務器端,S7-1500 為TCP 協議的客戶端。S7-1500 通過客戶端端口主動建立連接并向VT19 服務器端發送請求數據,VT19 在其服務器端口接收來自客戶端的訪問,VT19 根據訪問請求內容回復相應的數據[5]。VT19 服務器使用的IP 地址和端口號Port 由VT19 參數定義。S7-1500 客戶端使用的IP 地址和端口號Port 由S7-1500 參數定義。
S7-1500 與通訊伙伴VT19 之間數據結構如表1所示。

表1 通訊數據結構

表2 通訊ID定義
通訊流程圖如圖2 所示。

圖2 S7-1500 與VT19 通訊流程圖
在S7-1500 中打開組織塊main(OB1),從右側指令中分別拖拽TSEND_C 和TRCV_C 兩個指令到程序段中,在其“連接資源”下拉中直接單擊新建,自動生成“PLC_1_Receive_DB”數據塊[5]。定義一個全局數據塊DB244,作為發送請求數據塊,在DB244 塊內的結構體變量Static 內部分別定義X1至X4軸位置以及折彎參數等5 組數組,類型變量Array[0-271] ofByte,儲存發送給VT19 的請求數據。如圖3 所示。

圖3 數據發送塊[DB244]內X1 軸請求數據結構圖
定義一個全局數據塊DB245,作為接受VT19 響應的數據塊,接受VT19 應答X1-X4軸編程目標值數據。如圖4 所示。

圖4 接受數據塊[DB245]內接受的X1 軸實時數據
定義一個全局數據塊DB255,作為TCP 通訊接受數據塊,接受VT19 應答的折彎參數與X1-X4軸編程目標值數據。如圖5 所示。

圖5 [DB255]接受VT19 應答的折彎參數與X1 軸實時數據圖
在OB1 組織塊中創建TCP 通訊的數據發送指令TSEND_C 和接收指令TRCV_C,點擊調用指令右上角的組態圖標,進行通訊連接參數組態。在PLC 側選擇主動連接,本地端口號默認。伙伴端口設為5000,為VT19 設置端口。如圖6、7 所示。

圖6 OB1 中通訊模塊調用圖
在VT19 數控系統參數設置頁面設定IP 地址和通訊端口Port 號,設置完成后需要重啟系統。在VT19中運行通訊測試程序“Industry_4_0_1000_Simu”,設置數控系統的IP 地址和端口Port 號后,點擊Connect 按鈕,在右側的消息框中顯示連接成功的提示。如圖8 所示。

圖8 TCP 通訊連接實時測試圖
以讀取X1軸的目標位置數據為例,在圖9 左上方下拉菜單“3”選擇“Requestrian Axis Data”(軸數據請求)。圖中“X1”是軸號,通過TCP 通訊時“X1”的數據類型為字符串,需先將“X1”字符串轉換成ASCII碼,再將ASCII 轉換成十六進制數。字符串“X”轉換成ASCII 為“58”,字符串“1”轉換成ASCII 為“31”,再將轉換所得的ASCII 轉換為十六進制數為“5831”就是S7-1500 需要發送至VT19 的X1軸的軸名稱。測試顯示讀取的X1軸目標值數據是199392,其HEX 格式是30AE0,接受到的數據格式為0X1 0X0 0X0 0XE0 0XA 0X3 0X00。

圖9 X 軸數據實時測試圖
在S7-1500 系統中,由于發送和接受通訊塊不能同時被激活、多組發送或多組接受塊不能同時被激活,需要分別發送和讀取X1-X4軸的數據,程序中在同一掃描周期只能調用一個發送或一個接受通訊塊。其編程方法是使用輪流方法進行通訊,即在第一個通訊周期,將X1軸發送塊激活(REQ 端、CONT端),待數據發送(DATA)完成后,由X1軸的數據發送完成標志位(DONE)激活X1軸的數據接收塊,數據接收完成后,用X1軸接收結束標志位(DONE)啟動X2軸的發送請求,同時復位自身通訊連接(CONT端)。依次循環,分別完成X1軸-X4軸的發送與接收數據的過程。如圖10、11 所示。

圖10 多通訊模塊分時通訊時序圖

圖11 多模塊分時通訊實時時序效果圖
通過數控吊臂折彎機三臺套設備在用戶現場兩年多的使用證明,其通訊正常、可靠。采用S7-1500與VT19 數控系統進行TCP通訊,一方面滿足了S7-1500 對VT19 數控系統提供X1-X4軸控制數據的要求,另一方面滿足了S7-1500 為用戶MES 系統提供所需要基礎數據包的要求。