Herunterladen Inhalt Inhalt Diese Seite drucken

Start Von Funktionen In Zyklischen Tasks Immer Abfragen; Wartezeiten In Zyklischen Tasks - Siemens SIMOTION SCOUT Funktionshandbuch

Vorschau ausblenden Andere Handbücher für SIMOTION SCOUT:
Inhaltsverzeichnis

Werbung

Fehlerquellen und effizientes Programmieren
11.1 Fehlerquellen bei der Programmierung
11.1.3

Start von Funktionen in zyklischen Tasks immer abfragen

TO-Funktionen, z. B. Funktionen zum Positionieren von Achsen, sollten Sie in zyklischen
Tasks nur dann absetzen, wenn sie nicht bereits laufen. Wenn Sie dies nicht tun, werden die
Befehle in Ihrem Programm bei jedem neuen Zyklusdurchlauf erneut abgesetzt.
Den Start einer TO-Funktion in zyklischen Tasks können Sie von einer Bedingung abhängig
machen, z. B. vom Inhalt einer Hilfsvariablen, die bei Befehlsausführung gesetzt wird.
Tabelle 11- 1 Beispiel für den korrekten Start einer TO-Funktion in einer zyklischen Task
//...
IF myStart = 0 THEN
END_IF;
//...
IF myAxis.positioningState.actualPosition = position_1 THEN
END_IF;
//...
11.1.4

Wartezeiten in zyklischen Tasks

Wenn Sie für Systemfunktionen in zyklischen Tasks, z. B. für den Befehl
Befehlsweiterschaltung an Bedingungen knüpfen, kann dies zu einer
Zykluszeitüberschreitung und damit zum Stopp der CPU führen.
Dies kann bei allen Systemfunktionen auftreten, bei denen der Parameter
einen Wert ungleich IMMEDIATELY annimmt, z. B. den Wert WHEN_MOTION_DONE.
Die Zykluszeitüberschreitung tritt auf, wenn die in SIMOTION SCOUT projektierte Zykluszeit
durch eine Weiterschaltbedingung aber auch durch programmierte Wartezeiten, z. B. mittels
_waitTime
Hinweis
Sie sollten in zyklischen Tasks keine Befehle mit Wartezeiten, z. B
Verwenden Sie für Systemfunktionen in zyklischen Tasks nur den Eingabeparameter
nextCommand := IMMEDIATELY.
474
myStart := 1;
myCommandID := _getCommandId ();
myFC := _pos (axis := myAxis, // Funktion ausführen
position
nextCommand
commandID
myStart := 0;
, überschritten wird.
// Wenn Hilfsvariable noch nicht gesetzt
// Hilfsvar. setzen (Funktion gestartet)
:= position_1,
:= IMMEDIATELY,
:= myCommandID);
// Hilfsvariable zurücksetzen, wenn
// Funktionsausführung erwünscht.
_pos
, die
nextCommand
. _waitTime
verwenden.
Basisfunktionen
Funktionshandbuch, 05/2009

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis