技術頻道

      基于高級語言的精確位置控制在塑料機械行業(yè)中的應用

        在塑料機械行業(yè)中,運動機構的控制往往由液壓驅(qū)動來實現(xiàn),比如注塑機的開合模位置,注射位置,全自動中空吹塑機的移模位置等等。

        這些運動機構的位置準確性對于機器的整體性能和制品精度都有較大影響,比如,注塑機開模位置的準確度,有利于機械手進入取出成品,注射終的位置也會影響到注射量和成品的重復精度。

        為了提高位置精度,比較有效的做法是提高執(zhí)行機構的響應和精確度,使用高精度的比例閥或伺服閥。MOOG,REXROTH,意大利的ATOS,都有相應的液壓驅(qū)動產(chǎn)品。

        然而,作為機器的中央控制單元 – 塑料機械的控制系統(tǒng),軟件內(nèi)的傳統(tǒng)做法是:檢測電子尺的位置反饋,判斷動作處于第幾個階段,決定輸出相應的流量和壓力,或者是否要結束動作。

        這種做法的缺點是,比如,控制系統(tǒng)檢測到模板位置已經(jīng)達到了設定的開模終的位置,然后流量和壓力才開始按照設定斜坡減速,再加上閥的響應延時,等到模板停穩(wěn)之后,實際位置已經(jīng)遠遠超過了設定值。

        圖1是普通注塑機控制系統(tǒng)控制開模位置的效果示意圖,可以看到,就算使用高響應比例方向閥,過沖仍不可避免,而當執(zhí)行機構的響應特性較差時,情況就更加糟糕。

        GEFRAN(杰佛倫)是來自意大利的傳感器和自動化領域的先導者,有著三十多年的塑料機械行業(yè)經(jīng)驗。對于這樣的控制場合,GEFRAN控制系統(tǒng)采用面向?qū)ο蟮母呒壵Z言編程,軟件內(nèi)部集成了豐富的功能庫,這些功能庫,能分析運動過程的速度,斜坡,和點到點的位置,做出特殊算法處理。


      圖 2

        以圖2 曲線為例,V1,V2,V3為三段恒定速度,Q1,Q2為兩點位置值,要實現(xiàn)這樣的點到點位置曲線,必須要考慮中間的加減速過程。圖例中為:先實現(xiàn)一段上升斜坡,然后再實現(xiàn)兩段下降斜坡。對于塑料機械來說,上升斜坡采用基于時間的類型就能滿足要求:(速度變化△V) * 程序運行周期時間T_PLC / 加速時間T = 每隔一個程序運行周期需要增加的速度輸出變化。這樣的基于時間的加速斜坡算法很輕易就能實現(xiàn),而對于下降斜坡,要準確的停在Q1位置,必須提前一定位置就進行減速,這個提前位置系數(shù),取決于執(zhí)行機構的響應速度,執(zhí)行機構響應越快,這個值就可以設得越小,否則必須增大提前位置系數(shù),從而延長運動過程的執(zhí)行時間。

        程序?qū)崿F(xiàn)這樣的減速過程,至少有三種不同的算法可能性,讓我們分析各自優(yōu)劣性。

        第一種,基于時間

        if (STOP_POSITION[i] == TIME_BASED){

        if( Realpos > startPos) {

        if (StartDecreaseOut[i] > TimeRampValue [i]) {

        StartDecreaseOut [i] = StartDecreaseOut [i] – TimeRampValue[i];

        }else{

        StartDecreaseOut [i] = 0;

        }

        OutPutTemp = StartDecreaseOut [i];

        }else{

        StartDecreaseOut [i] = Real_Output;

        }

        return(OutPutTemp);

        }

        這種算法和加速斜坡類似,但存在一個致命缺點:由于起始下降的速度未定,就算機器出廠前設好了參數(shù),最終用戶更換模具,或者改變開模速度曲線,都需要重新尋找最佳的斜坡起始點,因此,不能拿來用做控制。

        第二種,基于位置斜坡

        如圖所示,一旦提前點值確定,基于位置的斜率就可以確定下來了,因此不管開始準備下降時流量設定是多少,斜率總是一定的,而真正開始執(zhí)行斜坡的位置,卻是不一定的,跟流量有關系,斜率確定如下:

        if (STOP_POSITION == POSITION_RAMP_BASED){

        Position_Ramp = AdvancePoint * Real_Output / Maxout;

        If (Realpos > startPos) {

        OutTemp = Maxoutabs * (EndPos - RealPos) / Position_Ramp;

        if (Real_Output <= OutTemp) OutPutTemp = Real_Output;

        }

        return(OutPutTemp);

        }

        注釋(

        STOP_POSITION:斜坡方式選項

        POSITION_RAMP_BASED:基于位置斜坡方式

        AdvancePoint:提前開始降速的位置

        Position_Ramp:斜坡比例

        Realpos :電子尺的當前實際位置

        startPos:開始執(zhí)行斜坡降速的電子尺位置

        OutTemp:中間變量,流量

        Real_Output:實際輸出流量

        )

        第三種,基于位置斜坡和數(shù)組陣列排點法

        第三種算法是在第二種的基礎上加以改進和優(yōu)化

        在第二種控制方法中沒有解決開始執(zhí)行斜坡的位置確定問題,這可以借助數(shù)組陣列排點法解決。比如預先定義一個32點的數(shù)組,表內(nèi)的數(shù)值決定了最終運動曲線的形狀,如果我們把每一個點在坐標軸上列出來,就可以很清晰的看到它是一條線形的直線,上凸弧線,下凹弧線,或者是S型的曲線。比如16位的輸出最大點值32767,可以將其劃分成32段,

        EXTERN int TAB_POS [33]

        = { 0, 3913, 6330, 8242, 9882, 11331, 12651, 13875, 15012, 16076, 17092,

        18060, 18981, 19869, 20717, 21541, 22341, 23110, 23862, 24598, 25310, 25998,

        26679, 27343, 27991, 28631, 29247, 29863, 30463, 31056, 31632, 32200, 32767

        }

        程序內(nèi)可以用簡單的FOR循環(huán)語句,實時獲取預先定義好的斜坡曲線形狀,計算分段位置值,然后根據(jù)實際位置值,修正速度輸出。

        if (STOP_POSITION == POSITION_RAMP_ARRAY__BASED){

        For (int j = 0; j <= 32; j++) {

        TableTemp[j] = TAB_POS[j];

        }

        DeltaStop = EndPos – RealPos;

        Temp1 = AdvancePoint / 32;

        if (DeltaStop > AdvancePoint) {

        stepg = 31;

        restg = Temp1;

        } else {

        stepg = DeltaStop * 32 / AdvancePoint;

        restg = AdvancePoint / 32 * stepg;

        restg = DeltaStop - restg;

        }

        Temp2 = TableTemp [stepg+1] - TableTemp [stepg];

        OutPutTemp = restg * Temp2 / Temp1;

        OutPutTemp = OutPutTemp + TableTemp [stepg];

        return(OutPutTemp);

        }

        注釋(

        STOP_POSITION:斜坡方式選項

        POSITION_RAMP_ARRAY__BASED:基于數(shù)組陣列排點的位置斜坡方式

        AdvancePoint:提前開始降速的位置

        TableTemp:獲取預定義數(shù)組的本地變量

        TAB_POS:預先定義好的數(shù)組陣列

        Temp1:中間變量,將提前位置按陣列數(shù)等分

        Temp2:中間變量,將位置值映射成流量值

        RealPos:電子尺的當前實際位置

        EndPos:最終開模位置

        DeltaStop:剩余需要走完多少位置值

        stepg:當前采樣點模板位置處于第幾步陣列

        restg:剩余采樣點共有幾步陣列

        )

        另外需要考慮的一點是,當執(zhí)行程序的控制器的循環(huán)周期時間過長,陣列細分過少,或閥門開度不準確等原因,造成速度下降至零時停止在了位置設定值之前,此時需要有一個最小速度值,保證在這種情況下,能夠繼續(xù)前進至目標位置。

        圖3是應用了這種位置控制算法后的注塑機開模效果圖,控制系統(tǒng)的硬件載體是GEFRAN公司的VEDO控制器和GiLogik2分布式遠程IO,憑借GDnet確定性實時以太網(wǎng),輸入輸出信號能在100us內(nèi)完成一次刷新,從而可以保證PLC程序周期在1ms內(nèi)完成一個循環(huán),配合以上所述的位置算法和高精確度的執(zhí)行機構,可以控制注塑機開合模,托模,和注射單元的位置誤差在0.1mm范圍之內(nèi)。

      文章版權歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 麻豆视频一区二区三区| 糖心vlog精品一区二区三区| 精品国产一区二区三区久| 日韩人妻精品无码一区二区三区| 国模大尺度视频一区二区| 国产一区三区二区中文在线| 日韩制服国产精品一区| 无码人妻AV免费一区二区三区| 精品少妇ay一区二区三区 | 国产福利91精品一区二区| 久久精品无码一区二区无码| 久久一区二区三区精华液使用方法| 国内精品视频一区二区三区八戒| 日本精品一区二区三区在线视频一 | 伊人色综合网一区二区三区 | 一区二区三区无码高清| 亚洲色欲一区二区三区在线观看| 精品无码人妻一区二区三区 | 中文字幕一区二区三区在线播放| 农村乱人伦一区二区| 精品无码国产一区二区三区麻豆| 国产一区二区三区免费观在线| 麻豆亚洲av熟女国产一区二| 国产一区二区精品久久岳√| 国产福利精品一区二区| 日本一区二区三区日本免费| 果冻传媒一区二区天美传媒| 亚洲日韩中文字幕一区| 国产午夜精品一区二区三区小说 | AV无码精品一区二区三区宅噜噜 | 精品国产一区二区三区在线| 精品国产免费一区二区三区香蕉| 一区二区传媒有限公司| 亚洲一区二区三区在线观看精品中文| 亚洲日韩一区二区一无码| 日韩综合无码一区二区| 天堂成人一区二区三区| 日韩国产精品无码一区二区三区 | 香蕉视频一区二区三区| 日韩精品免费一区二区三区 | 中文字幕av人妻少妇一区二区|