home

SCHLEICHER
Systemauswahl

P03

(1) Start online

Synchron/Echtzeit

(2) Diagnose-
fenster

Folgevariablen

Diagnosefenster
sichern

Diagnosefenster
laden

Diagnose
löschen

(3) Werteingabe

Forcing

online Diagnose

(1) Diagnose START

Voraussetzung: Sie haben eine Verbindung zur CPU der P03 Steuerung. Im Editor ist das Projekt geladen, welches auch in der Steuerung ist.
Drücken Sie die F4 Taste, um online zu gehen
Sie sollten jetzt etwa folgende Darstellung sehen:

Im Kontaktplanfenster sehen Sie das SPS Programm in power-flow Darstellung. Die aktuellen Zustände der Variablen und deren Wirkung auf den Pfad des Kontaktplans sind eingeblendet. Die Cursorposition (in der AWL, 2. Zeile SH 6301) wird nichtmehr angezeigt.

Mit Eintritt in den online Modus erscheinen neue Informationen in der Trennlinie zwischen KOP und AWL siehe rot eingekreister Hinweis auf Abbildung. Der erste Teil der Info steht für:

    FKass: Es wird das Programm auf der Flashkassette ausgeführt
    RAM: Es wird das Programm im internen RAM der CPU ausgeführt
    Flash: Es wird das Programm im internen Flash EPROM der CPU ausgeführt
Der zweite Teil steht für:
    Synchron Synchron Modus
    Spezial Die Zeitstempel der Programme in der P03 und im PDOC Editor sind verschieden; es werden unterschiedliche Programme vermutet
    Echtzeitmodus Echtzeit Modus
Seitenanfang

Synchron oder Echtzeit?

Nach Betätigung der F4 Taste stellt PRODOC das Programm im Synchronmodus dar. Es wird empfohlen, prinzipiell die Programme im Synchron Modus zu beobachten.

Im Synchronmodus wird eine Momentaufnahme beim Nulldurchlauf von HP1 dargestellt.
PRODOC erstellt eine Liste aller Variablen des dargestellten Programmstücks und sendet sie zur SPS. Beim Nulldurchlauf des Programmzyklus trägt die SPS die aktuellen Werte der Variablen in eine Antworttabelle ein und schickt sie an PRODOC zurück, welches sie auf dem Bildschirm darstellt.

Im Echzeitmodus werden Breakpoints in der SPS gesetzt.
Der Echtzeitmodus ist nur mit einem identischen Programm im RAM der SPS möglich. PRODOC verändert das Programm und setzt Breakpoints im dargestellten Bereich. Kommt die Programmabarbeitung an der Stelle der Breakpints vorbei, kopiert sie die Zustände der Variablen und schickt sie an PRODOC, welches sie auf dem Bildschirm darstellt.

Der Echtzeitmodus ist im Fall von Mehrfachzuweisungen hilfreich.

Beispiel: Auswahl von verschiedenen Sollwerten.
Wenn kein Auswahlbit gesetzt ist wird, wird der Sollwert 1700 auf Null gesetzt (erster KOP Pfad).
Wenn das Bit 731 gesetzt ist wird der Wert 100 in den Sollwert 1700 geladen (zweiter KOP Pfad).
Wenn das Bit 732 gesetzt ist wird der Wert 150 in den Sollwert 1700 geladen (dritter KOP Pfad).
Wenn das Bit 733 gesetzt ist wird der Wert 200 in den Sollwert 1700 geladen (vierter KOP Pfad).
Wenn das Bit 734 gesetzt ist wird der Wert 250 in den Sollwert 1700 geladen (fünfter KOP Pfad).
Im Beispiel unten sind die Auswahlbits 732 und 733 gesetzt

Darstellung "Synchron":
Die Zustände der Auswahlbits sind richtig dargestellt. Jedoch der Sollwert steht bei allen Fünf Zuweisungen auf dem selben Wert 200. Das geschieht, weil PRODOC im Synchron Modus die Variable 1700 im Programmnulldurchgang erfasst und den Wert an jeder Verwendung von 1700 einblendet.

Darstellung "Echtzeit":
Abhilfe schafft die Echtzeitdarstellung. Im ersten Pfad sieht man, wie der Sollwert 1700 auf Null gesetzt wird ("vorbesetzen").
Im zweiten Pfad ist das Auswahlbit 731 nicht gesetzt, die P03 springt in den nächsten Pfad, um Programmausführungszeit zu sparen. Es werden keine Werte eingeblendet, der Sollwert 1700 ist immer noch zurückgesetzt.
Im dritten Pfad ist das Auswahlbit 732 gesetzt, der Wert 150 (dezimal) wird in den Sollwert 1700 geschrieben.
Im vierten Pfad ist das Auswahlbit 733 ebenfalls gesetzt, der Wert 200 (dezimal) wird in den Sollwert 1700 geschrieben.
Im vierten Pfad ist das Auswahlbit 734 nicht gesetzt, die P03 springt an das Ende des Netzwerks, um Programmausführungszeit zu sparen. Der Sollwert 1700 wird nicht überschrieben, er bleibt auf 200 (dezimal).

Andererseits:

Im Folgenden sehen Sie ein Netzwerk online im Synchron Modus. Was fehlt, damit der Ausgang des Netzwerkes 5745 durchschaltet?
Richtig: der Eingang 715 muß abfallen (Öffner!), oder der Eingang 716 muß aktiviert werden!



Im Echtzeit Modus, siehe unten, ist das nicht so leicht heraus zu finden:
Gleich nachdem im ersten Strang der Eingang 715 den Signalfluß unterbricht, springt die P03 an den Anfang des parallelen Strangs, um Programmbearbeitungszeit zu sparen. Im zweiten Strang liefert der Eingang 716 ein Low Signal, so dass die P03, um Zeit zu sparen, gleich zum Ausgang und setzt 5745 auf low.
Die Frage, was fehlt, um den Ausgang durch zu schalten, kann nichtmehr eindeutig beantwortet werden.


Deswegen ist es besser, immer im Synchron-Modus zu arbeiten und nur fallweise, wenn überhaupt möglich, in den Echtzeit Modus zu wechseln.

Seitenanfang

(2) Das Diagnosefenster

Im Diagnosefenster können Sie Variable auflisten und deren Zustände online beobachten. Das Diagnosefenster öffnet sich als drittes Fenster im Programmeditor. Unabhängig davon, welche Anweisungen im Programmeditor dargestellt werden, bleiben die Inhalte des Diagnosefensters erhalten. Sie können also den Zustand einer Variablen (einen Eingang oder einen Istwert) im Auge behalten, während sie das Programm an Stellen untersuchen, in denen diese Variable gar nicht vorkommen, sehr wohl aber Einfluss auf die Variablen haben.

Um das Diagnosefenster zu öffnen, muss der Editor im Betrachtungsmodus (nicht im Eingabemodus) sein. Sie erkennen den Betrachtungsmodus an den Befehlen in der Fußzeile.


Geben Sie die Buchstabenfolge db732 ( Diagnose Bit 732) ein und beobachten Sie dabei das anfangs leere Fenster über der Fußzeile, sowohl als auch die Fußzeile selbst:


Nach Betätigung der Eingabetaste öffnet sich das Diagnosefenster unter der Kopfzeile des Editors:


Wenn Sie nun noch die Buchstabenfolge

DWD1700 (Diagnose Wort Dezimal 1700) eingeben,


Bitte beachten Sie die vielen Optionen in der Fußzeile während der Eingabe!
Und dann noch mit der Funktionstaste F4 online gehen


Dann sehen Sie im Diagnosefenster, gleich unterhalb der Kopfzeile, zwei Eintragungen mit dem Wahlschaltereingang Stellung 2 und dem ausgewählten Sollwert (Zustand im Programmnulldurchlauf!). Sie können sich nun mit dem Editor an eine andere Stelle des Programms begeben und behalten dabei das Verhalten des Wahlschalters immer im Blick.

Das Diagnosefenster kann bis auf 10 Zeilen (0 .. 9) erweitert werden.
Seitenanfang

Folgevariablen

Sie können pro Zeile mehrere Variablen darstellen, wenn diese in einer Folge sind. Zum Beispiel, zur Darstellung der Wahlschalterstellung geben Sie bitte ein: 4db731 (4 Diagnose Bit 731)



… und finden dann alle Bits des Schalters in einer Zeile. Allerdings erhalten Sie in dieser Darstellung keine Kommentare mehr.
Mit der Zahl "4" vor dem ersten Befehlsbuchstaben "D" erreichen Sie 4 Einträge mit steigenden Adressen.

Sie können sowohl eine Folge von Bitvariablen (z.B. 16DB300 für eine 16 Bit Eingangskarte ab 300) als auch eine Folge von Wortvariablen (z.B. 8DWD2040 für 8 Parametern ab der Adresse 2040) eingeben.
Seitenanfang

Diagnosefenster abspeichern

Um die Konfiguration eines Diagnosefensters abzuspeichern Geben Sie zunächst ein: ds
Hinweis: der aktuelle Wert der Variablen wird nicht abgespeichert.


Dateinamen mit einem Haken sind bereits belegt. Drücken Sie die TAB Taste, um sich alle Speicherplätze A .. I anzusehen. Im Beispiel ist der Platz B noch frei, also setzen wir die Befehlseingabe fort mit: b Der vollständige Befehl lautet: dsb (Diagnose Sichern B_Sichern )


Links neben der Zeilennummer sehen Sie, welche gespeicherte Diagnosekonfiguration gerade dargestellt wird.

Diagnosekonfiguration laden

Falls das Diagnosefenster bereits offen war, wird diese Konfiguration durch jene ersetzt, die sie gleich aufrufen werden. Geben Sie ein:
de
In der Fußzeile erkennen Sie an den Haken die Speicherplätze auf denen eine Konfiguration abgespeichert ist. mit der TAB Taste können Sie in die nächste Fußzeile weiterrollen:


geben Sie nun den Buchstaben eines Speicherplatzes ein, auf dem sich eine Konfiguration befindet, in unserem Beispiel:
b
Der vollständige Befehl lautet: deb (Diagnose Einlesen B_Einlesen)
Seitenanfang

einzelne Diagnosezeile löschen

Um z.B. die erste Zeile zu löschen geben Sie ein: dlz0 (Diagnose Löschen Zeile 0)

Diagnosefenster schließen

Geben Sie ein: dla (Diagnose Löschen Alles) Nicht abgespeicherte Diagnosekonfigurationen, erkenntlich am Speicherplatz "." (Punkt) im Diagnosefenster, gehen verloren.

Diagnosespeicherplatz löschen

geht nur per WINDOWS Zugriff auf das SPS Projekt (nicht empfohlen).

Datei PPPPPPN.DIA löschen
(PPPPPP: sechsstelliger Projektname,
N: Bezeichner 0 = A, 1 = B ..etc. bis 9 = I).
Anschließend Projekt neu laden.
Die Diagnosekonfigurationsdateien sind keine ASCII Dateien.
Seitenanfang

(3) Werteingabe

Über die Funktion "Werteingabe" können Bit- und Wortvariable, sowie die Konstanten der P03 über das Programmiersystem verändert werden.

Voraussetzung: Das Programm in der SPS muß über den Editor im online Modus dargestellt werden.

Angenommen, die Wortadresse 3000 soll gelöscht, und die Wortadresse 3001 auf 16D(dezimal) gesetzt werden.
Eingabe:
wwd3000,0 (Werteingabe Wort Dezimal3000,0)
wwd300,16 (Werteingabe Wort Dezimal3001,16)



Zur Anschauung wurde das Diagnosefenster um die Zeilen B3 und B4 erweitert.In der Diagnosezeile B3 sind die Wortadressen 3000, 3001, 3002 und 3003 als Folge von vier Worten dezimal dargestellt. Darunter, in der Diagnosezeile B4, werden die gleichen Adressen hexadezimal angezeigt.

Eingabe erfolglos?

Sie haben versucht, eine Variable in der SPS zu verändern und es ist nicht gelungen?
Wenn Sie eine Variable verändern, die auch durch das SPS Programm bearbeitet wird, so wird die Variable tatsächlich, nach Betätigung der Eingabetaste, überschrieben. Jedoch, das zyklisch ablaufende SPS Programm setzt anschließend den Wert entsprechend der programmierten Anweisungen. Dieser Vorgang läuft innerhalb eines Programmzyklus, also ca. 10msec ab. Viel zu schnell, als dass Sie es über den Bildschirm beobachten können:
Es sieht so aus, als ob Ihre Wertänderung tatsächlich erfolglos war! Die Wertänderung wird zwar ausgeführt, jedoch sogleich wieder durch das SPS Programm überschrieben. In dem oben abgebildeten Beispiel, wird es also nicht gelingen, das Wort 1700 per Werteingabe zu verändern.
Seitenanfang

Forcing

Unter "Forcing" versteht man das zwangsweise (engl. 'to force' = deutsch "zwingen") setzen einer Variablen. Zumeist angewendet auf Ein- oder Ausgänge. Bei vielen SPS wird an der CPU eine Warn-LED gesetzt, solange irgendeine Variable "geforct" wird. Denn dann "funktionieren" die geforcten Ein- oder Ausgänge nichtmehr normal. Sie sind auf den geforcten Zustand eingefroren.

    Die P03 bietet keine Systemfunktion "Forcen"!

Mit einem kleinen Trick kann man eine ähnliche Wirkung erreichen, allerdings ohne Warnung. Der Trick funktioniert nicht auf Interrupt Eingänge und auch nicht auf Karten, die mit refresh Anweisungen aktualisiert werden.

Grundlagen

Das Hauptprogramm 1 (HP 1) läuft zyklisch ab. Über den zyklischen Ablauf des HP1 ist auch die Aktualisierung der Ein- und Ausgangskarten der P03 synchronisiert:
Das HP1 wartet, bis es durch das Betriebssystem der P03 entsprechend der in den Compilerparametern vorgegebenen Zykluszeit angestoßen wird. Z.B. alle 20 msec.


Das Hauptprogramm liest zunächst alle Eingänge entsprechend der Steckplatzliste Karte für Karte ein und setzt die entsprechenden Merker (z.B. auf dem Steckplatz 007 die Karte vom Typ E16 die Merker 320 , 321, 322 … etc. bis 337).


Ab da arbeitet das Programm nur mit den Merkern (Prozessabbild /Eingänge). Die aktuellen Zustände der Karten bleiben bis zum nächsten Start des HP1 unbeachtet. Ausnahme: Interrupts und Refresh Anweisungen.

Der Trick:

Wenn man also Merker der Eingangskarten gleich am Anfang des HP1 per P03 Anweisung auf feste Werte setzt, so bleibt der "Eingang" auf diesen festen Wert eingefroren.


Wenn man am Ende des HP1 Ausgangsmerker per SPS Programm auf einen festen Wert setzt, so wird der entsprechende Ausgang auf der Karte auf diesen Wert gesetzt, unabhängig von den Verknüpfungsergebnissen des SPS Programms.


Ausnahme: Ein- Ausgangskarten, die per Refresh Anweisung aktualisiert werden, falls das überhaupt programmiert wurde. Im Zweifelsfall per "Querverweisliste spezial" Befehle R und RR suchen:


Seitenanfang

Kaltenberg, 12.05.2019
Valsolda, 31.07.2019