董 令,慕小喬,李巖,劉克平
(長春工業(yè)大學 控制科學與工程,長春 130012)
?
ANY指針編程在多變量大數(shù)據(jù)處理中的應用
董 令,慕小喬,李巖,劉克平
(長春工業(yè)大學控制科學與工程,長春130012)
摘 要:針對工業(yè)現(xiàn)場多變量大數(shù)據(jù)特點,提出了一種西門子可編程控制器ANY指針編程方法。與傳統(tǒng)邏輯控制編程方法相比,ANY指針編程可以對大量的數(shù)據(jù)進行批處理,速度快,實時性好,是對傳統(tǒng)控制更好的應用和創(chuàng)新。以某汽車公司側圍生產(chǎn)線為例,給出了ANY指針編程方法的應用實例,詳述了FB101功能塊創(chuàng)建、ANY指針引用和定義以及ARRAY、STRUCT、UDT及多背景數(shù)據(jù)塊的使用等方法,運用高級語言編程技巧顯示人機界面,直觀靈活的展現(xiàn)工業(yè)實時狀況,很好地實現(xiàn)了結構化編程。應用結果表明該系統(tǒng)性能穩(wěn)定,運行可靠,人機界面操作簡便。
關鍵詞:大數(shù)據(jù);ANY指針;可編程控制器編程;汽車生產(chǎn)線
西門子PLC廣泛應用于工業(yè)控制,尤其在汽車生產(chǎn)線上,汽車生產(chǎn)工藝越來越復雜,人機化要求越來越高,精度要求越來越苛刻,所需求的變量隨之增加,普通的一條生產(chǎn)線變量就要成千上萬個,批量數(shù)據(jù)的傳送與處理,給工業(yè)控制提出了難題,針對大數(shù)據(jù)多變量問題,設計可靠、方便、易讀的控制程序尤為重要,充分合理的利用PLC控制技術,是實現(xiàn)自動化汽車生產(chǎn)的關鍵。在此,對于多變量系統(tǒng),程序上進行了研究與驗證,傳統(tǒng)的PLC尋址方式[1],包括直接尋址,存儲器、寄存器間接尋址以及POINTER指針[2]數(shù)據(jù)類型都滿足不了多變量大數(shù)據(jù)的控制,而且傳統(tǒng)控制穩(wěn)定性低,停臺時間長等?;谀称噦葒a(chǎn)線上西門子PLC S7-400控制平臺,利用ANY數(shù)據(jù)指針作為變量,開發(fā)出一種新應用。
ANY指針數(shù)據(jù)類型是10字節(jié)指針類型,用來傳遞DB塊號、數(shù)據(jù)地址、數(shù)據(jù)數(shù)量以及數(shù)據(jù)類型。靈活采用高級編程語言中的一些技巧,實現(xiàn)變量的批量處理與控制,解決了傳統(tǒng)PLC編程難以實現(xiàn)此控制的難題[3]。
1.1側圍生產(chǎn)線簡介
側圍生產(chǎn)線為提高生產(chǎn)節(jié)拍是由若干個工位組成,每個工位根據(jù)生產(chǎn)工藝,成一定數(shù)量的沖壓件焊接,最后完成側圍生產(chǎn)的半自動生產(chǎn)線。由于側圍沖壓件多,為固定零件方便焊接,需要的氣缸數(shù)量龐大且種類繁多。每個氣缸需要檢測原位和終點信號。側圍生產(chǎn)線控制除了氣缸還有多種檢測信號,比如零件占位檢測,側圍外板檢測,氣源檢測等,而且需要人工參與的協(xié)調控制。
1.2側圍生產(chǎn)線硬件系統(tǒng)配置
某汽車側圍生產(chǎn)線包括左右兩側,38個工位,16塊觸摸屏,左右各8塊,選擇HMI 2為例,如表1HMI 2控制工位氣閥,表2HMI 2控制工位開關數(shù)量所示,HMI2控制三個工位,分別為AF03010,AF03015,AF03020,共96個氣缸,19個檢測信號,共需要211個輸入點,20個輸出點。從表中三個工位可以看出控制所需硬件和傳感器繁多。據(jù)不完全統(tǒng)計,此側圍生產(chǎn)線共需要1300個氣缸,180個檢測信號,4000多組報警顯示。
表1 HMI2控制工位氣閥
表2 HMI2控制工位開關
1.3側圍生產(chǎn)線軟件系統(tǒng)簡介
首先,滿足側圍生產(chǎn)工藝上的基本控制功能。要求人性化的HMI[3](人機操作界面)。清晰的實時狀態(tài)顯示。準確的故障診斷,縮短故障的排除時間,減少停臺時間[5]。這都大大增加了數(shù)據(jù)處理與傳送的繁瑣。在生產(chǎn)線中,各個工位的控制是相似的,因此對于所有工位的邏輯控制是一致的,可以將其提煉為一個公共的FB控制塊,在所有工位控制中調用此FB塊,實現(xiàn)邏輯控制。但由于各個工位在控制對象的數(shù)量、形式以及邏輯步驟之間的連接差異等,需要在調用FB塊時給出不同的形參值,為此設計了圖1工位控制參數(shù)設定畫面。所以上述功能的實現(xiàn)都需要以大量的數(shù)據(jù)交換作為基礎,為了達到上述目的,在程序中使用了ANY指針變量。
圖1 工位控制參數(shù)設定畫面
2.1軟件ANY指針聲明
ANY指針是一種傳遞指針[6]的形參數(shù)據(jù)類型,用于邏輯塊(FB、FC)之間傳遞參數(shù),可以傳遞DB塊號、數(shù)據(jù)地址、數(shù)據(jù)數(shù)量及數(shù)據(jù)類型。
在ANY數(shù)據(jù)類型參數(shù)中,數(shù)據(jù)區(qū)的含義如表3所示。
表3 數(shù)據(jù)區(qū)含義[2]
ANY指針由10個字節(jié)組成。其指針數(shù)據(jù)格式如表4所示,指針變量的數(shù)據(jù)格式,表5絕對(相對于地址等于0的地址指針對應指針數(shù)據(jù)格式的)地址分配。
表4 指針變量的數(shù)據(jù)格式
表5 絕對地址分配
2.2舉例說明ANY指針賦值形式
1)對數(shù)據(jù)類型參數(shù)進行賦值時可以選擇指針顯示方式直接賦值,與其他指針相比,ANY類型指針可以表示一段長度的數(shù)據(jù)。例如:P#DB10.DBX0.0 BYTE 654,表示指向DB10.DBB0~DB10.DBB654 654個字節(jié)。
2)當在FB FC接口中定義了輸入ANY指針變量時,指針按照指針的數(shù)據(jù)格式形式賦值。以模式命令指針為例:
3)I/O起始地址進行自定義指針#PLC_Use.HMI_ Setting.IO_Start_Address
3.1程序結構分析
針對側圍生產(chǎn)線大數(shù)據(jù)多變量的問題,程序采用結構化編程[4,7]和ANY指針實現(xiàn),在編程時需要規(guī)劃整體結構[8,9],采用層次化分別對每個工位進行控制,控制程序結構如圖2所示。以FC101為例,F(xiàn)C101對應于觸摸屏HMI2,可以實現(xiàn)AF03010,AF03015,AF03020工位的自動控制,與FB101,F(xiàn)B102,F(xiàn)B103分別對應,AF03010的控制包括FB95(Led_Exist_Sub),F(xiàn)B96 (Exist_check_Avail),F(xiàn)B97(Orig_Complete_sub),F(xiàn)B98(Orig_Valve_Control)等,其余FC102,F(xiàn)C103,F(xiàn)C104,F(xiàn)C105等為其他工位的控制。結構與FC101相似。
圖2 控制程序結構
3.2ANY指針interface
根據(jù)工位具體情況,每塊觸摸屏控制的工位數(shù)不同,側圍生產(chǎn)線操作員通過觸摸屏選擇,控制不同工位。
以HMI的設計為例說明ANY指針[10]的應用。HMI是生產(chǎn)線上的重要部件,主要完成指令的輸入和運行狀態(tài)的顯示及故障的報警輸出。從數(shù)據(jù)流[11]向來看分為從HMI到PLC CPU的控制指令輸出和從PLC CPU到HMI的顯示數(shù)據(jù)的輸入。在圖3[3]中,按鈕和模式選擇是到PLC的輸出數(shù)據(jù),各種狀態(tài)顯示及報警是輸入的數(shù)據(jù),因此在FB101的接口定義中定義了Mode_Command_P、Ex_ Var_Button_P等到PLC的輸出數(shù)據(jù)指針和LED_Point、HMI_IO_Dis_Point等到HMI的數(shù)據(jù)輸入指針。
FB101[12~14]調用過程如圖4所示。
在接口信號的輸入端設置HMI_IO_Dis_Point為ANY指針數(shù)據(jù)變量,數(shù)據(jù)長度設置為320 byte,此時的ANY指針為形參變量,由于PLC內部的邏輯運算需要定義相應的臨時變量,把臨時變量賦值給輸入的指針,使HMI_IO_Dis_Point 指針指向實際地址DB10. DBX1768.0,程序通過SFC20(塊傳送)把邏輯運算結果傳送至臨時變量temp T_HMI_IO_Dis_Point指針所指位置。并顯示至觸摸屏上。
圖4 功能塊FB101的調用
舉例說明,設置兩組閥分別設置4個氣缸,設置MZ11夾緊,MZ12松開,I/O狀態(tài)顯示變量設置為整型量,當數(shù)值為2時顯示黃色閃爍,代表氣缸伸出或縮回的過程中,當數(shù)值為3時黃色不閃爍,代表縮回到位,當數(shù)值為4時,代表氣缸報警。邏輯運算結果轉化成數(shù)字量送入指針地址寄存器。I/O狀態(tài)顯示[3]如圖5實例I/O狀態(tài)顯示所示。
圖5 實例I/O狀態(tài)顯示
某汽車側圍生產(chǎn)線采用ANY指針方法的控制程序兩年來得到了良好的效果,相比采用傳統(tǒng)[15]的控制方法,CPU的工作內存明顯減少,在CPU選型上可節(jié)省成本達25萬元,再者,甲乙兩班生產(chǎn)的停臺時間由原來的平均每班組30分鐘降低為5分鐘,按10分鐘兩臺側圍左右骨架計算,每個側圍骨架估價12000元,成本2000元。兩年因減少停臺而增加的利潤為(30-5)×2×30×12×2÷5×(12000-2000)=7200萬。
不僅在經(jīng)濟效益上有所提高,而且采用結構化和ANY指針編程的方法,易于調試,可移植性強,易讀性強,易于分析邏輯關系,程序代碼效率高,結構化編程和ANY指針的使用可簡化程序設計過程,減小代碼長度,提高編程效率,比較適合于較復雜自動化控制任務的設計。
參考文獻:
[1] 李琦.數(shù)據(jù)結構和指針在PLC編程中的靈活運用[J].儀器儀表學報,2002(23):125-130.
[2] 苗虎.POINTER指針在連續(xù)平壓機程序設計中的應用[J].木材加工機械,2014(2):27-29.
[3] 鄒偉,楊平,徐德.基于MCGS組態(tài)軟件的上位機控制系統(tǒng)設計[J].制造業(yè)自動化,2008,12,2007(9):1235-1255.
[4] 修志強,李陽,許國峰,任傳敏.礦用蓄電池電動機車PLC程序模塊化設計[J].工礦自動化,2010(9):102-104.
[5] 陸廣平,王秀琳.自動送料系統(tǒng)桶裝計量自控系統(tǒng)設計[J].計算機測量與控制,2009(11):2213-2215.
[6] 陳玉俊.指針在西門子S7系列PLC信號處理中的應用[J].冶金自動化,2011(2):832-836.
[7] Oscar Ljungkrantz,Knut Akesson,Martin Fabian,Amir Hossein Ebrahimi.An empirical study of control logic specifications for programmable logic controllers.Empirical software engineering 2014,19(3).
【】【】
[9] 李佳,王廣林.PLC編程中數(shù)據(jù)結構和指針的應用數(shù)字技術與應用[J].數(shù)字技術與應用,2013:44.
[10] 譚錦潔,程良鴻.嵌入式PLC梯形圖的一種數(shù)據(jù)結構描述方法[J].計算機工程,2004(10):85-87.
[11] 楊進才,楊雅琴.基于緩存與指針推進的混合移動性管理策略[J].計算機工程與應用,journal6,2007,43(8):46-48.
[12] 李明.制造業(yè)中多工步組合機床監(jiān)控系統(tǒng)設計[J].制造業(yè)自動化,2012(20).
[13] 裴元方,馮萍,康繼昌.PLC梯形圖的一種數(shù)據(jù)結構描述方法[J].計算機工程與科學,2009,31(12):87-89.
[14] 秦緒平,張萬忠.西門子S7系列可編程控制器應用技術[M].北京化學工業(yè)出版社,2011.
[15] 王志芳.指針邏輯的擴展與應用[D].中國科學技術大學,2009.
[16] 劉麗華,李笑.基于PLC與觸摸屏的玻璃清洗機控制系統(tǒng)設計[J].制造業(yè)自動化,2008(6),2012,48(14):68-73.
制造軟件
控制技術
ANY pointer programming in multivariable big data processing
DONG Ling, MU Xiao-qiao, LI Yan, LIU Ke-ping
中圖分類號:TP399
文獻標識碼:A
文章編號:1009-0134(2016)05-0001-04
收稿日期:2015-11-12
作者簡介:董令(1990 -),女,山東菏澤人,碩士,研究方向為工業(yè)機器人建模與控制。