在塑料機(jī)械行業(yè)中,運(yùn)動機(jī)構(gòu)的控制往往由液壓驅(qū)動來實現(xiàn),比如注塑機(jī)的開合模位置,注射位置,全自動中空吹塑機(jī)的移模位置等等。
這些運(yùn)動機(jī)構(gòu)的位置準(zhǔn)確性對于機(jī)器的整體性能和制品精度都有較大影響,比如,注塑機(jī)開模位置的準(zhǔn)確度,有利于機(jī)械手進(jìn)入取出成品,注射終的位置也會影響到注射量和成品的重復(fù)精度。
為了提高位置精度,比較有效的做法是提高執(zhí)行機(jī)構(gòu)的響應(yīng)和精確度,使用高精度的比例閥或伺服閥。MOOG,REXROTH,意大利的ATOS,都有相應(yīng)的液壓驅(qū)動產(chǎn)品。
然而,作為機(jī)器的中央控制單元 – 塑料機(jī)械的控制系統(tǒng),軟件內(nèi)的傳統(tǒng)做法是:檢測電子尺的位置反饋,判斷動作處于第幾個階段,決定輸出相應(yīng)的流量和壓力,或者是否要結(jié)束動作。
這種做法的缺點(diǎn)是,比如,控制系統(tǒng)檢測到模板位置已經(jīng)達(dá)到了設(shè)定的開模終的位置,然后流量和壓力才開始按照設(shè)定斜坡減速,再加上閥的響應(yīng)延時,等到模板停穩(wěn)之后,實際位置已經(jīng)遠(yuǎn)遠(yuǎn)超過了設(shè)定值。
圖1是普通注塑機(jī)控制系統(tǒng)控制開模位置的效果示意圖,可以看到,就算使用高響應(yīng)比例方向閥,過沖仍不可避免,而當(dāng)執(zhí)行機(jī)構(gòu)的響應(yīng)特性較差時,情況就更加糟糕。
GEFRAN(杰佛倫)是來自意大利的傳感器和自動化領(lǐng)域的先導(dǎo)者,有著三十多年的塑料機(jī)械行業(yè)經(jīng)驗。對于這樣的控制場合,GEFRAN控制系統(tǒng)采用面向?qū)ο蟮母呒壵Z言編程,軟件內(nèi)部集成了豐富的功能庫,這些功能庫,能分析運(yùn)動過程的速度,斜坡,和點(diǎn)到點(diǎn)的位置,做出特殊算法處理。
[align=center]

圖 2[/align]
以圖2 曲線為例,V1,V2,V3為三段恒定速度,Q1,Q2為兩點(diǎn)位置值,要實現(xiàn)這樣的點(diǎn)到點(diǎn)位置曲線,必須要考慮中間的加減速過程。圖例中為:先實現(xiàn)一段上升斜坡,然后再實現(xiàn)兩段下降斜坡。對于塑料機(jī)械來說,上升斜坡采用基于時間的類型就能滿足要求:(速度變化△V) * 程序運(yùn)行周期時間T_PLC / 加速時間T = 每隔一個程序運(yùn)行周期需要增加的速度輸出變化。這樣的基于時間的加速斜坡算法很輕易就能實現(xiàn),而對于下降斜坡,要準(zhǔn)確的停在Q1位置,必須提前一定位置就進(jìn)行減速,這個提前位置系數(shù),取決于執(zhí)行機(jī)構(gòu)的響應(yīng)速度,執(zhí)行機(jī)構(gòu)響應(yīng)越快,這個值就可以設(shè)得越小,否則必須增大提前位置系數(shù),從而延長運(yùn)動過程的執(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];
?。齟lse{
StartDecreaseOut [i] = 0;
}
OutPutTemp = StartDecreaseOut [i];
?。齟lse{
StartDecreaseOut [i] = Real_Output;
?。?
return(OutPutTemp);
?。?
這種算法和加速斜坡類似,但存在一個致命缺點(diǎn):由于起始下降的速度未定,就算機(jī)器出廠前設(shè)好了參數(shù),最終用戶更換模具,或者改變開模速度曲線,都需要重新尋找最佳的斜坡起始點(diǎn),因此,不能拿來用做控制。
第二種,基于位置斜坡

如圖所示,一旦提前點(diǎn)值確定,基于位置的斜率就可以確定下來了,因此不管開始準(zhǔn)備下降時流量設(shè)定是多少,斜率總是一定的,而真正開始執(zhí)行斜坡的位置,卻是不一定的,跟流量有關(guān)系,斜率確定如下:
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 :電子尺的當(dāng)前實際位置
startPos:開始執(zhí)行斜坡降速的電子尺位置
OutTemp:中間變量,流量
Real_Output:實際輸出流量
)
第三種,基于位置斜坡和數(shù)組陣列排點(diǎn)法
第三種算法是在第二種的基礎(chǔ)上加以改進(jìn)和優(yōu)化
在第二種控制方法中沒有解決開始執(zhí)行斜坡的位置確定問題,這可以借助數(shù)組陣列排點(diǎn)法解決。比如預(yù)先定義一個32點(diǎn)的數(shù)組,表內(nèi)的數(shù)值決定了最終運(yùn)動曲線的形狀,如果我們把每一個點(diǎn)在坐標(biāo)軸上列出來,就可以很清晰的看到它是一條線形的直線,上凸弧線,下凹弧線,或者是S型的曲線。比如16位的輸出最大點(diǎn)值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)語句,實時獲取預(yù)先定義好的斜坡曲線形狀,計算分段位置值,然后根據(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ù)組陣列排點(diǎn)的位置斜坡方式
AdvancePoint:提前開始降速的位置
TableTemp:獲取預(yù)定義數(shù)組的本地變量
TAB_POS:預(yù)先定義好的數(shù)組陣列
Temp1:中間變量,將提前位置按陣列數(shù)等分
Temp2:中間變量,將位置值映射成流量值
RealPos:電子尺的當(dāng)前實際位置
EndPos:最終開模位置
DeltaStop:剩余需要走完多少位置值
stepg:當(dāng)前采樣點(diǎn)模板位置處于第幾步陣列
restg:剩余采樣點(diǎn)共有幾步陣列
)
另外需要考慮的一點(diǎn)是,當(dāng)執(zhí)行程序的控制器的循環(huán)周期時間過長,陣列細(xì)分過少,或閥門開度不準(zhǔn)確等原因,造成速度下降至零時停止在了位置設(shè)定值之前,此時需要有一個最小速度值,保證在這種情況下,能夠繼續(xù)前進(jìn)至目標(biāo)位置。

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