n
n
kVA
kVA
Compiler – Beispiele
18
f
f
Compiler Programmgerüst
i
i
P
Hz
Hz
P
/*=============================================
= Funktion: fnPositioning()
= Positionierbetrieb
===============================================*/
fnPositioning()
{
// Instruktionen beim Eintritt in den Hauptzustand "Positioning"
// Unterzustand definieren
lSubStatePositioning = POSITIONING_STOPPED;
// Betriebsart quittieren
_BitSet(lPE_StatusWord,11);
_BitSet(lPE_StatusWord,12);
// zyklische Bearbeitung, solange Hauptzustand "Positioning" aktiv
do
{
// PA Daten einlesen
_GetSys( tPA.BusType ,GS_PODATA );
switch (lSubStatePositioning)
{
case POSITIONING_STOPPED:if (MY_START_POSITIONING)
case POSITIONING_STARTED:if (MY_START_POSITIONING)
}
}while (lGlobalStateMachine==POSITIONING);
// Instruktionen beim Verlassen des Hauptzustands "Positioning"
// Antrieb stoppen
if (lSubStatePositioning==POSITIONING_STARTED)
_AxisStop( AS_PSTOP );
// Betriebsart ablöschen
_BitClear(lPE_StatusWord,11);
_BitClear(lPE_StatusWord,12);
}// Ende fnPositioning()
272
{
tPosVelocities.CW = tPosVelocities.CCW = tPA.PO2;
_SetSys( SS_POSSPEED, tPosVelocities );
TargetPos = (lScalingNumerator * tPA.PO3)
/ lScalingDenominator;
lSubStatePositioning = POSITIONING_STARTED;
}
break;
{
tPosVelocities.CW = tPosVelocities.CCW = tPA.PO2;
_SetSys( SS_POSSPEED, tPosVelocities );
TargetPos = (lScalingNumerator * tPA.PO3)
/ lScalingDenominator;
}
else
{
_AxisStop( AS_PSTOP );
lSubStatePositioning = POSITIONING_STOPPED;
}
break;
Handbuch – IPOSplus®