AWL Anfänger fragen:

NowSPS

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
da ich wahrscheinlich demnächst noch mehr fragen zum Thema AWL habe, habe ich einen Thread eröffnet für AWL fragen :).
Vielleicht ist es noch für mehrere Personen hilfreich.
So nun meine erste Frage:

Wie kann ich Werte an ein Byte ausgeben:

Und zwar ist es so ich hab 3 Eingänge oder mehr (Schalter, welche 3 Motoren schalten)

Der erste Motor hat 2 kw, 2.Motor hat 4 kw der 3.Motor 5 kw:

Hätte dann im Kopf zusammen gerechnet und quasi sowas wie

"Ausgangsbyte" = 5 ; (oder welches Ergebnis auch immer)

gesucht.

Das Byte darf auch Binär "aufzeigen": 0000101

Hab nicht gefunden wie das in AWL aussieht...würde mich freuen wenn mir jemand helfen könnte.
Schonmal vielen Dank
 
Ich habe es so verstanden, dass Du in einem BYTE die Gesamtleistung der eingeschalteten Motoren ausgeben willst.

Code:
L0
T #Byte // Initialisieren

U E1.0 // Motor 1 läuft
SPBN M001

L #Byte
L 2 // 2kW addieren
+I
T #Byte

m001: nop 0

U E1.1 // Motor 2 läuft
SPBN M002

L #Byte
L 3 // 3kW addieren
+I
T #Byte

m002: nop 0

usw...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Owei,
ja das kann man so net unbedingt verstehen....hätte es wohl nochmals lesen sollen.
Aber dennoch Danke

@Tigerente1974:

Ja, so meinte ich das, vielen Dank.

Für was steht das +I.
Der Rest ist mir jetzt wieder klar ;-).
 
Wenn Du mit Integer-Werten rechnest, diese aber als BCD-Wert benötigst, dann gibt es den Befehl "ITB" oder auch "IntegerToBCD".
 
+I //Addiere AKKU1 und AKKU2 als Ganzzahl (16 Bit)

Beispiel:

L #Byte // Lade den Inhalt von Byte in AKKU1
L 2 // 2kW addieren // Lade 2 in AKKU1, der vorherige Inhalt (#Byte) ist nach AKKU verschoben worden
+I // Addiere AKKU1 und AKKU2 als Ganzzahl (16 Bit)
T #Byte // Das Ergebnis in #Byte ablegen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
z.B. in AWL:

L 2 // Lade INT -Wert 2
L 3 // Lade INT -Wert 3
+I // Addiere Integer-Wert
ITB // Wandle IntegerToBCD
T MW 30 // speicher das Ergebnis als BCD-Wert in Merker-Wort 30

L MB 30 // Lade Merker Byte 30
... // u.s.w.

Im FUP geht das auch!
 
Es gibt natürlich auch den Umgekehrten Weg: ITB <--> BTI

BTI steht für BCDToInteger

TIP: Hilfe über F1 im KOP/FUP/AWL-Editor, idealerweise direkt auf einem Befehl und Du erhälst eine Erklärung!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ah cool,
danke für die Erklärungen mit den Additionen.
Und das AWL Handbuch ist ja echt voll genial!!Des kannte ich noch gar net,
kann ich jetzt jedem empfehlen :).Da finde ich auch einige mathematische Aktionen für die Akkus.
 
Danke Toki,

das kannte ich noch gar nicht. Es doch immer mal wieder was Neues bei Siemens zu entdecken.
 
Zurück
Oben