einfaches AWL Programm

beo

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
bin recht neu in S7-Programmierung.

Ich möchte ein Lauflicht mit 8 Leuchten betreiben.

Zunächst initialisiere ich 31Bit Ausgabedaten in OB100, die ich später in OB1 über einen Routierbefehlt verändern möchte. Anschließend gebe ich die unteren 8 Bit aus.

Wie bekomme ich eine Verzögerung von 500ms zwischen dem Umschaltem der Lampen?

Code:
Symboltabelle
-----------------
Symbol   | Adresse   | Datentyp | Kommentar
-------------------------------------------
"OUTPUT" | AB 5      | BYTE     | Ausgang für die 8 Leuchten
"DATA"   | MD 1      | DWORD    |


OB100
-----
DW#16#1010101  //4 Bytes mit jeweils binaer "0000 0001"
T "DATEN"      // globale 32Bit Merker-Variable "DATEN"



OB1
---

Netzwerk 1:
L "DATEN"
RRD
T "DATEN"

Netzwerk2:
L "DATEN"
T "OUTPUT"
 
Zuletzt bearbeitet:
Vorschlage: Einen Timer, wenn 500ms um sind gibt es eine 1, die auf eine Flanke. Wenn Flanke 1 ist durchläufst du deinen Code, ansonsten überspringst du ihn.

Viel Erfolg beim üben.

pt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
so weit war ich auch schon.

Also einen Timer mit Einschaltverzögerung: SE
Code:
L S5T#500MS
SE T 1
Nur wie triggere ich den?
Ich habe ihn schon mal mit einem Schalter manuel aktiviert.
Code:
U A1.0  // Schalter
L S5T#500MS
SE T 1
Das schaffe ich aber nicht alle 500 ms :)
 
Beispiel:

UN M 0.0
L s5t#500ms
SE T 1
U T 1
= M 0.0


U M 0.0
SPBN Code

:
:
Dein Prorgamm
:
:

Code: nop 0


Viel Spass beim Testen
 
Jep, das funktioniert. Danke!

Ich hatte auch schon ein wenig mit den Weckalarmen OB30.. herumprobiert. Bisher noch erfolglos. Aber jetzt habe ich ja erstmal eine gute Lösung.
 
die taktmerker kann man natürlich nehmen muss dann aber daraus eine pos. flanke bilden.
 
Zurück
Oben