Eine Frage zur if-Abfrage bei AWL

GSOhm

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

habe aus einem anderen Beitrag schon folgende Informationen rausgeholt,

  1. *
  2. IF xTemp1 THEN
  3. //
  4. ELSE
  5. //
  6. END_IF;
  7. U #xTemp1
  8. SPBN else
  9. //then klausel
  10. SPA end
  11. else: //else klausel
  12. end: NOP 0
Das verstehe ich auch, die Frage ist nur kann ich auch, anstatt nur zu schauen ob xTemp1 = 1 oder =0, sagen wenn xtemp=58 then ... usw. oder geht das nur mit boolscher Temp-Variable??

Vielen Dank

Gruß

GSOhm
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei AWL kannst du keine IF Abfrage machen. Das geht nur bei SCL.

Eine BOOL Variable (egal ob IN, IN_OUT, TEMP, STAT oder global) kann nur auf 1 oder 0 abgefragt werden. Wenn du auf 58 abfragen möchtest, muss der Typ BYTE, INT oder DINT sein.

Bei AWL geht eine Abfrabe eines Bites mit U ...
Ein INT usw. wird mit:
L ...
L Vergleiswert
==I
SPBN _001
// was machen
_001: NOP 0
abgefragt.
 
Also ich denke das es dann so funtionieren müsste (hab heute leider keine Möglichekti mehr zu testen - aber kann ja einer von euch mal eben drüber schauen):

L Wert
L Vergleichswert1
==I
SPBN else1
// then ..........
SPA end
else1: L Wert
L Vergleichswert2
==I
SPBN else2
// then ..............
SPA end
else2: L Wert
L Vergleichswert3
SPBN else3
// then .................
SPA end
else 3: "Beliebige Ausgabe"
end: NOP 0
 
Also ich denke das es dann so funtionieren müsste (hab heute leider keine Möglichekti mehr zu testen - aber kann ja einer von euch mal eben drüber schauen):

L Wert
L Vergleichswert1
==I
SPBN else1
// then ..........
SPA end
else1: L Wert
L Vergleichswert2
==I
SPBN else2
// then ..............
SPA end
else2: L Wert
L Vergleichswert3
==I
SPBN else3
// then .................
SPA end
else 3: "Beliebige Ausgabe"
end: NOP 0

Bitte beachte, Sprungmarken in AWL dürfen max. 4 Zeichen lang sein.

Der Rest sollte passen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bitte beachte, Sprungmarken in AWL dürfen max. 4 Zeichen lang sein
...und sie sind case sensitiv.

@GSohm,
von der Logik sind es keine drei IF-Abfragen, sondern eine IF-Abfrage mit zwei ElseIF.
Wenn du die SpringeAbsolut nach den Anweisungen entfernst, hast du dann drei IF's...
Code:
L Wert
L Vergleichswert1
 ==I
SPBN els1
 // then ..........
 
els1: L Wert
 L Vergleichswert2
 ==I
SPBN els2
 // then ..............
 
els2: L Wert
 L Vergleichswert3
==I
SPBN els3
 // then .................
 
els3: "Beliebige Ausgabe"
 end: NOP 0
 
Ja, mag sein ;)

Die Überschrift lautet ... AWL.

Da es keine IF-Abfrage in AWL gibt (siehe deinen eigenen Beitrag #3), hat GSOhm kaum Alternativen , etwas anderes als die SPL zu nutzen.
 
Zurück
Oben