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