1. 引言
壓裝深度一直是伺服壓裝設備的技術關鍵,設置固定的壓裝深度不能滿足所有壓裝的工藝和質量要求,經常需要頻繁調整和修改。而一般的壓床沒有設置調整導管的壓裝深度的人機界面。當壓裝深度不滿足工藝要求時,只能通過編程器與611U數控聯機才能修改數控壓裝參數。一是這種方法操作難度較大,時間長,同時需要專業的自動化工程師來操作修改;二是修改值不能直接反應到人機界面上,有極大的質量風險。為了更方便的在最短時間內完成深度調整工作,在操作面板上開發增加一個壓裝深度調整界面,實現在人機界面上直接修改壓裝深度成為必要。
2、611U數控系統數據通訊格式
西門子611U數控系統通過PROFIBUS-DP總線與S7-300 CPU上的DP口來實現數據通訊,通訊采用RS485接口及支持9.6k~12Mbps波特率的高速數據傳輸,其中數據的報文頭尾主要是用于規定數據的功能碼、傳輸長度、奇偶校驗、發送應答等內容,主從站之間的數據讀寫核心是參數接口(簡稱PKW)和過程數據(簡稱PZD)。
PKW參數區域,用于讀、寫參數值;PZD過程數據區域,包括控制字、設定值、狀態字和實際值。如果PLC需要通過總線來讀、寫數控系統中的某個參數,就需要用到PKW區域;如果PLC要通過總線來控制數控系統運行或者讀取數控系統當前各種狀態值等就要用PZD區域。PKW和PZD的數據通訊格式共有五種:PPO1、PPO2、PPO3、PPO4、PPO5,其傳輸的字節長度及結構形式各不相同。在PLC和611U數控系統的通訊方式配置時要對PPO進行選擇,每一種類型的結構形式如表1。
表1 PKW和PDZ數據通訊格式類型的結構形式
以上5種不同的PPO類型是用不同的數據長度選擇的,而數據長度是由數控系統在自動化運行環境中需要完成的任務決定的。例如:PPO3和PPO4中不包含PKW區域數據,所以只能用于進行過程控制,不能對數控參數進行讀寫。
參數區域PKW的數據結構如下:PKE為一個字,0~10位是寫待讀寫的參數號;第11位是系統預留位;12~15位是寫作業報文ID號。
PKW區的第二個字IND,0~7位是表示子參數號也就是索引號;8~15位是系統預留位。
PWE為兩個字存放參數值。總線數據傳輸作業過程是:首先由PLC將作業報文ID發送到611U數控系統中,然后系統讀取到作業ID后根據作業ID的任務來更新(讀取或者寫入)參數區域的參數值,最后611U數控系統發給PLC一個與作業ID相對應的響應ID,PLC讀取到響應ID后,就說明參數讀寫作業已完成。
系統作業ID,其系統參數有幾種不同的形式,包括單字節參數、雙字節參數、另外還有帶索引下標的陣列參數等,對于不同的參數其讀寫方式也不一樣,不同參數的讀寫作業ID如表2。
表2 不同參數的讀寫作業ID
與作業ID號相對應的ID如表3。
表3 與作業ID號對應的相應ID
作業執行過程中如果出現錯誤導致作業無法完成,則系統返回ID號為7,具體錯誤類型代碼放在參數區的第四個字,代碼含義如表4。
表4 故障代碼含義
3、數控系統中導管壓裝程序塊格式
在611U數控系統中,壓裝導管的程序塊使用的是基本的定位指令。每個驅動軸最多可獨立編程達64個移動程序段,程序保存在參數中。一個程序段包含程序段號、指令、指令參數、方式、位置、速度、加速度修調、減速度修調和結束方式,如表5。
表5 基本定位指令程序段格式
上面程序段段號為3,PLC調用3號程序時,這段定位程序執行。定位程序無指令參數,方式選擇有兩種:ABSOLUTE為絕對位置定位方式;RELATIVE為相對位置定位方式。定位目標位置為200.000mm,運動速度為1500mm/min,加速度和減速度都為100%。程序段的結束方式一共有三種:END、CONTINUE WITH STOP、CONTINUE WITH FLYING:
END方式下程序運行完這個程序段后,就結束;
CONTINUE WITH STOP方式下程序運行完這個程序段后,軸減速停止,然后繼續執行下一個程序段;
CONTINUE WITH FLYING方式下程序運行完這個程序段后,軸不停止,然后繼續執行下一個程序段,后兩種方式程序段如表6;
表6 CONTINUE WITH方式下程序段
上面兩段程序執行過程中,速度與時間的曲線圖如圖1。
圖1 兩種方式下速度與時間的曲線圖
從上面的曲線圖中可以直觀的看出CONTINUE WITH STOP方式和CONTINUE WITH FLYING方式的區別。
4、數控系統中導管壓裝程序塊對應的參數
在611U數控系統中,每一個程序塊中的每一項都對應著一個參數,程序塊可以通過參數來修改,因此PLC通過總線數據的傳遞即可更改這些參數,實現PLC更改數控程序。
與程序塊對應的參數為80—87號,對應關系如表7。
表7 參數80-87對應關系
在611U數控系統中每個驅動軸有64個程序段,如何與64套單獨的參數相對應,系統通過索引下標區分這64個程序段對應的參數,即80—87號每個參數都要帶一個索引下標,下標范圍為0—63,共64個,用來區分不同的程序段。每一個程序段的每一個信息都有一個參數與之對應,PLC通過總線可以更改任意一個程序段的任何信息。
本機床需要更改壓裝導管的深度位置,必須知道壓裝導管程序中壓裝深度位置對應的參數,因壓床可以對兩種類型的零件進行壓裝,所以壓裝兩種類型的導管也有兩個程序,在611U程序塊中對應的是3號程序和13號程序,壓裝深度位置對應的參數是81號參數,因此要更改壓裝深度就要從PLC中更改參數81:3和參數81:13這兩個(3和13是參數81的索引下標)。
5、PLC讀寫數控壓裝深度參數的功能塊設計
考慮到程序應用的通用性,采用模塊化編程,設計出參數讀寫用的功能塊FC塊,通過功能塊接口變量進行參數傳遞,將數控系統地址、需要讀寫的參數號、參數索引地址等信息作為功能塊的接口變量,這樣通過調用同一個功能塊,寫入不同的接口變量就可以很方便的讀寫不同數控軸的不同參數。
首先確定參數讀寫FC的接口變量,IN輸入接口變量需要4個:PKW區域的起始地址;待讀寫的參數號;待讀寫參數的索引下標;讀或寫標志位。定義前三個接口變量的數據類型為INT整數型,第四個接口變量數據類型為BOOL位型,定義1為寫標志,表示PLC向611U數控系統寫數據, 0為讀標志,表示PLC從611U讀數據。
壓裝深度參數數值需要定義到IN-OUT輸入輸出接口變量中,因在FC塊調用過程中,需要對該參數進行讀或寫。
為了判斷讀寫功能的完成情況,FC塊執行參數讀寫任務完成以后,還需要反饋一個完成信號,因此在OUT輸出接口變量中定義一個讀寫完成信號。
FC程序塊的接口變量中還需要定義一些臨時變量,用于存放程序執行過程中臨時用到的一些變量。參數讀寫需要用到系統功能塊SFC14、15,這兩個系統功能塊的接口變量里有ANY類型的參數,需要一次對應8個字節的PKW區域所有,因此需要在臨時變量中定義:PKE兩個字節、IND兩個字節、PWE四個字節。另外還要定義兩個臨時變量來存放參數讀寫時的返回ID值,用來判斷參數讀寫完成后是否出錯:TypeRep一個字節; SFC14、15執行后的返回值:RET_V兩個字節。以上定義的接口變量如表8。
表8接口變量定義
通訊程序編寫時,先將需要讀寫參數的參數號及索引地址寫入PKW區域里的PKE和IND:
L #PAR_NO
T #PKE //寫入參數號
L #PAR_IND
T #IND //寫入參數下標
程序需要根據接口輸入變量PAR_W的狀態來判斷當前是讀參數還是寫參數,然后跳轉到相應的程序段執行:
A #PAR_W
JC _W //若為1則跳轉到寫參數程序段
從數控系統中讀出帶索引的參數值,作業ID號應該為6,需要將此ID號寫入PKE的高4位,用字或運算保留其他的位并且將高4位改為6;作業ID號6對應的返回ID應該為4號:
L W#16#6000 //讀參數作業ID號為6
L #PKE
OW //字或運算保留低12位
T #PKE //將作業ID號加入PKE中
L 4
T #TypeRep //讀參數返回ID應該為4
JU _C //直接跳轉到總線數據發送程序段
往系統中寫參數值的作業ID為8,返回ID為5,同時需要將寫入參數的數值寫到PWE中:
_W: NOP 0 //寫參數程序段標號
L W#16#8000 //寫參數作業ID號為8
L #PKE
OW //字或運算保留低12位
T #PKE //將作業ID號加入PKE中
L #PAR_V
T #PWE //將寫入參數的數值寫到PWE
L 5
T #TypeRep //寫參數返回ID應該為5
相關讀寫參數填寫完成后,調用系統功能塊SFC15來向總線發送數據,并對應寫入發送數據的總線地址、PKW區域的起始地址及長度:
_C: NOP 0
CALL SFC15 //往總線上傳送數據
LADDR :=#PKW_ADD //總線地址
RECORD :=P#L 0.0 BYTE 8 //PKW區域的起始地址及長度
RET_VAL:=#RET_V //SFC15執行的返回值
讀寫命令發送到總線上由系統執行,接著用系統功能塊SFC14從總線上讀出執行的結果來判斷執行情況、取回讀出的參數值等:
CALL SFC14 //從總線上讀入數據
LADDR :=#PKW_ADD //總線地址
RET_VAL:=#RET_V // SFC14執行的返回值
RECORD :=P#L 0.0 BYTE 8 // PKW區域的起始地址及長度
數據讀出來后要進行處理分析,檢查返回的ID號是否與之前寫入#TypeRep的值相等,如果相等說明讀寫任務成功完成,讀出來的參數值有效可用,同時將讀寫任務完成信號接通:
L #PKE //取PKE區的數據
L 2#1111000000000000 //高4位數據保留其余清零
AW //字與運算
SRW 12 //右移12位分離出返回ID號(高4位)
L #TypeRep //前面賦值的返回值
==I //比較
JCN _AL //如果不相等,出錯跳轉
L #PWE //取出讀出來的參數值
T #PAR_V
SET
= #ACT_OK //讀寫任務完成信號
_AL: NOP 0
讀寫參數的功能塊編寫完成后,在主程序中調用功能塊就可以實現不同參數的讀寫功能,調用功能塊如下。
6、人機界面開發
人機界面開發采用Wincc flexible,變量地址表如表9。
表9人機界面變量地址表
開發后的人機界面,壓裝部位選擇、讀寫命令控制、寫入參數的輸入等都可通過面板上的按鍵完成,實現面板操作直接更改611U數控系統的壓裝參數,更改壓裝深度,人機界面如圖2。
圖2 人機界面
7、結束語
改進后的人機界面使得原來只有通過編程器才能修改的壓裝深度值,能夠直觀的顯示當前設定的壓裝深度值,不僅可以直接在人機界面上修改,而且減輕了現場自動化工程師的工作量,同時還使得工藝人員可以對壓裝深度方便、直接的掌控,給操作和維修人員帶來了極大便捷,有效的控制了壓裝質量,降低了質量風險。
(審核編輯: 智匯小新)
分享