Bu alt-göreve atlandığında motor hızı 0’dan rampset değerine sabit bir ivme ile artırılır.
Alt-görev çağrıldığında dir bayrağının durumuna göre hareketin yönü belirlenir. dir = 1 ise REV dir = 0 ise FWD yönünde hareket başlatılacak.
Zorlanma algılanırsa rutinden hemen çıkılır. Zorlanma sonucu alt görevden dönülürse overloaded bayrağı 1 olarak dönülür.
busy ve itemstatus bayrakları bu görevlerden etkilenmez.
// SABIT RAMPALI HIZLANMA: (FWD/REV)
////////////////////////////////////////////////////////////////////////////
case 1100:
speedref = 50;
MDC = 50;
PID.controlcounter = 0;
PID.restart = 1;
PID.nocontrol = 0; // kalkış PID kontrol ile, bu önemli!
SetDir(); // sürücü yönünü belirle..
_PTEN = 1; // PWM'i başlat!
drive.status++;
break;
// her 40ms'de bir hizi biraz artirmak:
case 1101:
if (PID.controlcounter > 3)
{
speedref += 10;
drive.status++;
PID.controlcounter = 0;
}
// bu esnada aynı zamanda motor zorlanıyor mu diye de bakıyoruz:
if (PID.overloaded)
{
PID.nocontrol = 1; // zorlanma durumunda PID devre dışı
speedref = 0;
drive.status = drive.subindex; // ve hemen dönüyoruz..
}
break;
// referans degere ulastik mi sorgulamak:
case 1102:
if (speedref < rampset) drive.status = 1101;
else
{
speedref = rampset;
drive.status = drive.subindex;
}
break;
////////////////////////////////////////////////////////////////////////////////