Herunterladen Inhalt Inhalt Diese Seite drucken

SEW IPOS plus Handbuch Seite 260

Inhaltsverzeichnis

Werbung

n
n
kVA
kVA
Compiler – Beispiele
18
f
f
Touch-Probe Interrupt-Verarbeitung
i
i
P
Hz
Hz
P
260
SSPOSSPEED tPosSpeed;
SSPOSRAMP tPosRamp;
/*=============================================
Interruptroutine Touchprobe
===============================================*/
Touchprobe()
{
lPosition = TpPos1_Mot + TP_Pos; //neue Zielposition berechnen
_TouchProbe( TP_DIS1 ); //Touchprobe deaktivieren
}
/*=============================================
Hauptfunktion (IPOS-Eintrittsfunktion)
===============================================*/
main()
{
//Initialisierung
State = 0;
// Initialisierung der Interruptroutine fuer den Touch Probe Eingang DI02
_SetInterrupt( SI_TOUCHP1,Touchprobe );
//Hauptprogramm-Schleife
while(1)
{
// Geschwindigkeit und Rampe setzen
tPosSpeed.CW = tPosSpeed.CCW = Speed *10; // Geschwindigkeit
tPosRamp.Up = tPosRamp.Down = Ramp; // Rampe
_SetSys(SS_POSRAMP, tPosRamp);
_SetSys(SS_POSSPEED, tPosSpeed);
switch(State)
{
case CALCTARGET:if(DI10)
case BUSSY:
case STOP_AKTIV:if(DI10) // DI10 = 1 -->
default :
}//switch(State)
}// while (1)
}// main
{
lPosition = ActPos_Mot + TP_Max_Pos;
_TouchProbe( TP_EN1_HI );
// Aktivierung auf steigende Flanke
State = BUSSY;
}
break;
_GoAbs( GO_NOWAIT,lPosition );
// _Go-Befehl auf lPosition
if(h473_ipos_in_position && !DI10)
// Achse in Position und DI10 = 0
State = CALCTARGET; // neue Zielposition berechnen
if (!h473_ipos_in_position
// Abbruch der Positionierung durch DI10 = 0
{
_AxisStop(AS_PSTOP);
State = STOP_AKTIV;
}
break;
break;
State = BUSSY;
break;
&& !DI10)
Positionierung fortsetzen
Handbuch – IPOSplus®

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis