IF oder FOR Schleife in AWL?

motamas

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

gibt es die Möglichkeit sowas wie eine IF oder FOR Schleife in AWL zu kreieren?
Ich brauche nämliche eine Abfrage von bestimmten IST Positionen die auf bestimmte Werte überprüft werden sollen.
Also soll zum Beispiel wenn die Ist position einen Wert zwischen 1000-2000 hat ein Zeiger auf einen bestimmten Wert in einem DB zeigen. Wenn der wert von 4000-5000 ist auf einen wert im selben DB nur halt um einen bestimmten Offset verschoben.
Da es ein paar mehr werte werden, ist es etwas umständlich für jede mögliche konstellation eine eigene Bedinung zu machen.

Gibt es da in AWL einen Möglichkeit?
Ich habe mich schon an SCL versucht aber irgendwie komm ich da mit den Zeigern nicht weiter und bin mir nicht sicher ob da auch irgendwie ein DB aufgerufen werden muss und wenn ja wie es geht.

Vielen Dank für eure Hilfe!
 
Hallo motamas,

das kannst Du mit Sprunganweisungen und LOOP-Anweisungen lösen.

Grüße
Gebs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
*
    IF xTemp1 THEN
        //
    ELSE
        //
    END_IF;	
	  
      U     #xTemp1
      SPBN  else
      //then klausel
      SPA   end
else: //else klausel
end:  NOP   0

Code:
*
    FOR i:=0 TO 9 BY 1 DO
        //Anweisung
    END_FOR
    
      L     10
next: T     #wLoopCount
      //
      //Anweisung
      //
      L     #wLoopCount
      LOOP  next
 
Zuletzt bearbeitet:
Kannst du den Zeiger denn nicht berechnen?

Wenn es nicht geht, da der DB über keine berechenbare Struktur verfügt nehme ich auch gerne den "SPL" her - entspricht etwa SELECT CASE.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
... Ich habe mich schon an SCL versucht aber irgendwie komm ich da mit den Zeigern nicht weiter und bin mir nicht sicher ob da auch irgendwie ein DB aufgerufen werden muss und wenn ja wie es geht.

Hallo,
in SCL vermeidet man es grundsätzlich mit absoluten Adressen zu arbeiten und das Pointern, wie in AWL, gibt es dort gar nicht ...

Gruß
Larry
 
Ahh ok danke Larry.

@BPlagens ja den Befehl SPL habe ich auch entdeckt und bastel mir gerade damit was zurecht dann muss der Zeiger janicht wirklich berechnet werden nur ein entsprechender Offset wo der SPL dann hinspringen soll.
Aber danke für die Anregung :D
 
Zurück
Oben