Herunterladen Diese Seite drucken

IFM Electronic ecomat mobile Programmierhandbuch Seite 120

Werbung

ifm
Programmierhandbuch
ecomatmobile
ifm-Funktionselemente
>
SET_INTERRUPT_I
Baustein-Typ = Funktionsbaustein (FB)
Baustein ist enthalten in Bibliothek ifm_CR0303_Vxxyyzz.LIB
Symbol in CODESYS:
>
Beschreibung
SET_INTERRUPT_I organisiert das Ausführen eines Programmteils durch eine Interrupt-Anforderung
über einen Eingangskanal.
In der klassischen SPS ist die Zykluszeit das Maß der Dinge für Echtzeitbetrachtungen. Gegenüber
kundenspezifischen Steuerungen ist die SPS damit im Nachteil. Auch ein "Echtzeit-Betriebssystem"
ändert nichts an dieser Tatsache, wenn das gesamte Anwendungsprogramm in einem einzigen
unveränderlichen Block abläuft.
Ein möglicher Lösungsansatz wäre, die Zykluszeit kurz zu halten. Dieser Weg führt oft dazu, die
Anwendung auf mehrere Steuerungszyklen zu verteilen. Die Programmierung wird dadurch jedoch
unübersichtlich und schwierig.
Eine andere Möglichkeit besteht darin, einen bestimmten Programmteil nur auf Anforderung durch
einen Eingangsimpuls unabhängig vom Steuerungszyklus aufzurufen:
Der zeitkritische Teil des Anwendungsprogramms wird vom Anwender in einen Baustein vom Type
PROGRAMM (PRG) zusammengefasst. Dieser Baustein wird zur Interrupt-Routine deklariert, indem
einmalig (zur Initialisierungszeit) SET_INTERRUPT_I aufgerufen wird. Das hat zur Folge, dass dieser
Programmteil immer dann ausgeführt wird, wenn eine Flanke am Eingang CHANNEL erkannt wird.
Werden Ein- und Ausgänge in diesem Programmteil genutzt, werden diese ebenfalls in der Interrupt-
Routine, ausgelöst durch die Eingangs-Flanke, gelesen oder beschrieben. Über die Eingänge
READ_INPUTS, WRITE_OUTPUTS oder ANALOG_INPUTS kann das Lesen oder Schreiben
unterbunden werden.
Innerhalb des Programmteils können also alle zeitkritischen Ereignisse bearbeitet werden, indem
Eingänge oder globale Variablen verknüpft und Ausgänge beschrieben werden. So können auch
Bausteine nur genau dann ausgeführt werden, wenn sie durch ein Eingangssignal angefordert
werden.
HINWEIS
Damit der per Interrupt aufgerufene Programmteil nicht zusätzlich zyklisch aufgerufen wird, sollte er
(mit Ausnahme des Initialisierungsaufrufes) im Zyklus übersprungen werden.
Der Eingang (CHANNEL), der zum Auslösen des Interrupt überwacht wird, kann in der Interrupt-
Routine nicht initialisiert und weiter verarbeitet werden.
Die Eingänge müssen in der Betriebsart IN_FAST sein, sonst können die Interrupts nicht gelesen
werden.
Die Laufzeit des Hauptzyklus plus die Summe der Laufzeiten aller per Interrupt aufgerufenen
Programmteile muss stets innerhalb der max. zulässigen Zykluszeit bleiben!
Für die Datenkonsistenz zwischen Hauptprogramm und den im Interrupt laufenden Programmteilen ist
der Anwender zuständig!
CabinetController (CR0303) Laufzeitsystem V05b
120
2015-06-23
ifm-Bausteine für das Gerät CR0303
2381
11573
281

Werbung

loading

Diese Anleitung auch für:

Ecomat 100Cr0303