Debug und Control

1 Allgemein

Manueller Break

Funktionsbaustein Manueller Break

Programmgesteuerter Break

Funktionsbaustein Programmgesteuerter Break

Sprung Start

Funktionsbaustein Sprung Start

Sprung Ziel

Funktionsbaustein Sprung Ziel

2 Grundlagen – Programmablauf

Da die Funktionsbausteine dieser Bibliothek den Ablauf der Programmabarbeitung verändern können, soll hier kurz auf die Grundlagen des Programmablaufes eingegangen werden.

Der Ablauf eines Programms ist abhängig von der Bausteinnummerierung der Funktionsbausteine. Jeder Baustein mit einer Funktionalität im Zielsystem erhält eine so genannte Bausteinnummer. Beginnend mit der Bausteinnummer 1 werden die Bausteine in aufsteigender Reihenfolge abgearbeitet. Die Bausteine arbeiten mit den aktuell anliegenden Eingangswerten und geben neue Werte an den Ausgängen aus. Diese Ausgangswerte bleiben solange erhalten, bis im nächsten Programmzyklus eine neue Berechnung stattfindet.

Wie das Beispiel in der folgenden Abbildung zeigt, hat die Bausteinreihenfolge entscheidenden Einfluss auf Ergebnisse einer zusammengestellten Operation:

Die erste Subtraktion (Bausteinnummer 2) arbeitet sowohl mit einem aktuellen Wert aus dem Sinusgenerator als auch mit einem Wert, der von der Addition (Bausteinnummer 3) aus dem letzen Zyklus bereit gestellt wurde und erst nach der Subtraktion aktualisiert wird. Die zweite Subtraktion (Bausteinnummer 5) arbeitet immer mit Werten, die im aktuellen Programmzyklus erstellt wurden. Dadurch kommen die unterschiedlichen Ergebnisse zustande.

Mit den Sprungbausteinen dieser Bibliothek kann nun der Programmablauf weiter manipuliert werden, indem Sprünge innerhalb des Programms durchgeführt werden. Die Wirkung der Sprünge ist auch wieder von der Bausteinnummerierung (sowohl der Sprungbausteine als auch der anderen Funktionsbausteine) abhängig.

3 Beispiel Sprungbausteine

Anhand eines kleinen Beispiels sehen Sie hier, wie sich die Sprungbausteine auf den Programmablauf auswirken können.

In der ersten Abbildung sind keine Sprünge aktiv. Alle Funktionsbausteine arbeiten und liefern das gleiche Ergebnis.

In der folgenden Abbildung ist der Vorwärtssprung (A) aktiviert. Dadurch wird die zweite Addition (Bausteinnummer 4) übersprungen. Alle anderen Bausteine bleiben davon unberührt.

In der dritten Abbildung ist der Rückwärtssprung (B) aktiviert. Die ersten drei Additionen werden ausgeführt und dann erreicht das Programm die Sprungmarke und der Rücksprung wird durchgeführt. Ab diesem Zeitpunkt werden nur noch zwei Funktionsbausteine verarbeitet (Bausteinnummer 4 und 6).

Der Sprungbaustein ist so eingestellt, dass er innerhalb eines Zyklus 1000 Rücksprünge durchführt, bevor der aktuelle Programmzyklus unterbrochen wird und ein neuer Zyklus erlaubt wird. Ein neuer Zyklus setzt dann immer wieder bei der Zielmarke des Sprunges ein.

In der Darstellung des Sprungbausteines (C) ist der Pfeil grau dargestellt, da das Programm noch nie diesen Baustein abgearbeitet hat.

In der letzten Abbildung ist der Rücksprung (C) aktiviert. Das Programm läuft genau einmal durch bis der Sprungbaustein erreicht und der Sprung ausgeführt wird. Danach besteht der Programmablauf nur noch aus dem Sprung zwischen der Start- und Zielmarke dieses Sprunges (Bausteinnummer 10 und 9). Das Programm bewegt sich endlos in dieser Schleife und kein anderer Baustein wird mehr erreicht.