Verständnissprobleme "Einfache Programmierungsaufgabe in AWL"

lounsome

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

ich bin was SPS-Programmierung betrift relativer neuling
und würde mich da gerne ein bischen einarbeiten.

Ich möchte mir ein Lauflicht programieren.
- 8 LED´s (A0.0 bis A0.7)
- Einschaltdauer (Timer S5T#1S)
- Umschaltdauer (Pause dazwischen S5T#100MS)

wie würdet ihr das am geschicktesten lösen?

gibts da eine Möglichkeit die Ausgänge als Byte zu betrachten,
d.h. nicht einfach: wenn LED 1 an dann warte Zeit,
wenn Zeit abgelaufen schalte LED 1 aus und schalte
LED 2 an usw.,
sondern setze Byte 0 = 0 warte zeit,
dann setze Byte 0 = 0+1 (in einer Schleife).
Wenn Byte 0 = 8 setze Byte 0=0 und fange von vorne an.

Danke schon mal für eure Hilfe

Gruß lounsome
 
Hallo lounsome,

gib' mal in der Suche "Lauflicht" ein, dann findest Du eine Menge Beispiele!

Grüße
Gebs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
*
     L     #myByte
     L     2
     *I
     T    #myByte

zum initialisieren myByte natürlich auf 1 setzen
überlauf beachten.
und mit den zeiten wirste sicher klar kommen...
 
Sorry,

das raf ich nicht ganz?
Ist eigentlich ganz einfach:
Wenn ein Byte mit 2 multipliziert wird, dann wandert das Bit um eine Stelle nach links.
Was du ja haben möchtest.
Dass du da noch eine Zeit brauchst zum Multiplizieren und beim Überlauf wieder auf 1 setzen musst, denke kannst du dir erarbeiten.

bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich dreh noch durch, :sb6:
Jedes mal wenn ich versuche die Baugruppe zu simulieren, Baustein transfer
sürtzt er ab, liegt warscheinlich am Prog.

Mein bisheriger code:

Code:
L 0           //Abfrage ob AW 0 == 0
L AW 0
==I
L 1          // Wenn AW 0 = 0, setze AW 0 = 1
T AW 0

L 2          
L AW 0
* 2
T AW 0    // Multiplitziere AW (alt) mit 2 bis ende (256)
Möchte hier eigentlich nur AW 0 mittels "vierlagig´s" Methode nacheinander auf 1 setzen.

Entschuldigt meine Unwissentheit, bin sehr neu im SPS-Sektor.

Gruß Lounsome
 
Hi,

so wird das nichts mit der Initialisierung

Code:
L AW 0       //Abfrage ob AW 0 == 0
L 0
==I
SPBN M001    // Springe zu M001 bei VKE = FALSE
L 1          // Wenn AW 0 = 0, setze AW 0 = 1
T AW 0
M001: NOP 0

Drück doch bitte mal im AWL-Editor die F1 Taste.

Gruss Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich dreh noch durch, :sb6:
Jedes mal wenn ich versuche die Baugruppe zu simulieren, Baustein transfer
sürtzt er ab, liegt warscheinlich am Prog.

Mein bisheriger code:

Code:
L 0           //Abfrage ob AW 0 == 0
L AW 0
==I
L 1          // Wenn AW 0 = 0, setze AW 0 = 1
T AW 0

L 2          
L AW 0
* 2
T AW 0    // Multiplitziere AW (alt) mit 2 bis ende (256)
Möchte hier eigentlich nur AW 0 mittels "vierlagig´s" Methode nacheinander auf 1 setzen.

Entschuldigt meine Unwissentheit, bin sehr neu im SPS-Sektor.

Gruß Lounsome


Also laden und transferieren wird immer ausgeführt, wie dalbi schrieb.
Und dann wird, so wie du es geschrieben hast, in jedem Zyklus multipliziert. Da bekommst du nach 8 Durchläufen einen Überlauf, den du ja, wie ich schon schrieb, überwachen und entsprechend reagieren musst.
Außerdem solltest du abhängig von einer Zeit multiplizieren, damit du die Änderungen auch sehen kannst.


bike
 
Zurück
Oben