Download 20 - SEW-Eurodrive
Transcript
Task-Verwaltung und Interrupts
Interrupts bei MOVIDRIVE® A und B
Fehler-Interrupt
4
Die Interrupt-Routine wird ein Mal vollständig durchlaufen, wenn ein Fehler ansteht.
Nach einem Durchlauf wird ein Assembler-Befehl von Task1 bearbeitet, bevor geprüft
wird, ob der Fehler immer noch ansteht. Steht der Fehler immer noch an, wird wieder
die Interrupt-Routine bearbeitet. Um die Interrupt-Routine erst dann zu verlassen, wenn
der Fehler nicht mehr ansteht, muss sie also eine Schleife auf diese Bedingung enthalten.
Je nachdem welche Fehlerreaktion in Parametergruppe 83x oder mit dem Befehl
_FaultReaction bzw. SETFR eingestellt wurde, ergibt sich folgendes Verhalten:
•
Es wird auf einen bestimmten Fehler kein Interrupt ausgelöst, wenn die Fehlerreaktion dieses Fehlers auf KEINE REAKTION eingestellt ist.
•
Ist die Fehlerreaktion eines Fehlers xy auf "... und Warnung" eingestellt, wird Task 1
nach Fehler-Reset an der unterbrochenen Stelle fortgesetzt.
•
Ist die Fehlerreaktion eines Fehlers xy auf "... und Fehler" eingestellt, wird IPOS nach
Fehler-Reset neu gestartet und die Variablen mit den Werten aus dem EPROM neu
initialisiert. Hinweis: Sie können in diesem Fall vor dem Fehler-Reset wichtige Variablenwerte netzausfallsicher mit dem MEM- oder dem MOVLNK-Befehl speichern.
Beachten Sie dabei, dass die Anzahl der zulässigen Schreibzugriffe nicht überschritten wird (siehe MEM bzw. _Memorize() ).
Beispiel
fnErrorInterrupt()
{
H2++;
while( !(StatusWord & 0b10))
{
//while-Schleife erst verlassen, wenn Antrieb fehlerfrei
H1++;
}
}
main()
{
_SetInterrupt(SI_ERROR, fnErrorInterrupt);
while(1)
{
H0++;
}
}
H0 wird inkrementiert, so lange der Umrichter fehlerfrei ist. Im Fehlerfall wird H2 um eins
erhöht und H1 so lange inkrementiert bis der Umrichter fehlerfrei ist. Danach wird abhängig von der eingestellten Fehlerreaktion mit den aktuellen Werten in Task1 weitergearbeitet oder IPOS mit den Werten aus dem EPROM neu gestartet.
Handbuch – IPOSplus®
31