Step 7 Handshake Profibus Anzeige

energystar

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

für eine mittels Profibus ansteuerbare Anzeige (EZ_Marquee) benötige ich für die Datenübertragung einen Handshake.
Eine Vorgehensweise habe ich in der Anleitung gefunden.

handshake.png

Meine Frage dazu ist, wie kann ich das Warten auf die Eingangsbitsetzung der Anzeige realisieren (ACK Bit, Busy Bit) ?

Hatte eventuell an eine Flankenabfrage mit FlipFlop gedacht.



Vielen Dank im Voraus!

Grüße!
 
Hab veruscht den Handshake wie folgt zu lösen.
Die Anzeige ist zweizeilig und die Zeilen sollen einzeln nacheinander beschrieben werden.

Hab noch das Problem, das der FB mit Handshake und Textübertragung nur x mal ausgeführt werden soll.
Wie kann ich den beschalten, das er erstmal zum Testen nur genau einmal aufgerufen wird?

Code:
//Schritt 1.1
//Ausgangszustand, keine Steuerbytes gesetzt, Anzeige bereit
UN E23.0
UN E23.1
UN A53.0
UN A53.1
S M115.0

U M111.1
R M115.0

//Schritt 1.2
U M115.0
L ...            // 
T AB ...        //Text und Steuerzeichen in die Ausgangsbytes schicken
S A 53.0        //Steuerbyte "Message Ready" setzen

U M115.2
R A53.0

//Schritt 2.1
//Anzeige meldet zurück Text erhalten
U 23.0
U M115.0
S M115.1

U M115.2
R M115.1

//Schritt 2.2
//Quittieren durch Steuerbyte "Ok To Read", sodass Text angezeigt wird
U M115.1
S A 53.1

U M115.3
R A 53.1

//Schritt 3
//Anzeige meldet beschäftigt (busy)
U 23.1
U M115.1
S 115.2

U M115.3
R M115.2

//Schritt 4.1
//Anzeige fertig Zeile 1 übertragen

UN 23.0
UN 23.1
U M115.2
S 115.3

U 115.4
R M115.3

//Schritt 4.2
// Text Zeile 2 übertragen, Steuerbyte "Message Ready" setzen s. Schritt 1.2

U M115.3
L ...             
T AB ...
S A 53.0

U M115.5
R A 53.0

//Schritt 5.1
//Anzeige meldet zurück Text Zeile 2 erhalten
U E 23.1
U M115.3
S M115.4

U M115.5
R M 115.4

//Schritt 5.2
//Quittieren durch Steuerbyte "Ok To Read", sodass Text angezeigt wird
U M115.4
S A 53.1

R M115.5
S A 53.1

//Schritt 6
//Anzeige meldet busy  für Zeile 2
U 23.1
U M 115.4

U M115.6
R M115.5

//Schritt 7
//Zeilen komplett beschrieben, Freischaltung
UN 23.0
UN 23.1
U M115.5
S M115.6

U M115.0
R M115.6
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab deinen Code nicht komplett durchgesehen, aber folgendes ist mir aufgefallen:

Code:
U M115.0
L ...             
T AB ...
S A 53.0

...

U M115.3
L ...             
T AB ...
S A 53.0

Die Lade- und Transferoperation führst du immer aus.

Richtig wäre:

Code:
U M115.0
SPBN KLA1

L ... 
T AB ...
S A 53.0 

KLA1: NOP0

...

U M115.3
SPBN KLA2

L ... 
T AB ...
S A 53.0 

KLA2: NOP0

Zu deiner Frage mit dem einmaligen Ausführen.
Du könntest den letzten Merker deiner Schrittkette, M115.6 verwenden.

Dazu läßt du diesen auf True, die letzten beiden Zeilen deines Codes fallen weg.
Am Anfang des Codes schreibst du:

U M115.6
SPB ENDE

Die Marke ENDE schreibst du an das Ende deiner Schrittkette:

ENDE: NOP 0

Dann wird deine Schrittkette genau 1 Mal ausgeführt.
Willst du sie nochmals durchlaufen lassen, mußt du M115.6 zurücksetzen.
 
Zuletzt bearbeitet:
Zurück
Oben