Mehrere Werte mit Festwert verlgeichen .. AWL oder SCL

Django2012

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

mein Problem ist, ich will verschiedene werte mit einem Festwert oder nem varibalen Wert vergleichen, jedoch nicht alles 100x tippen. Weiß da jmd was?

Also quasi so:

L db1.dbd0
L 5
==D
S XY

Nur will ich jetzt quasi statt db1.dbd0 ca. 50 verschiedene DBD´s und wenn eines davon den Wert 5 hat dann soll xy passieren.
Ich war schon mal mit ldb1.dbd0 ow ldb1.dbd4 dran, aber das hat nicht geklappt.
Kann mir jmd. helfen? Vor allem wäre mir ein Lösungansatz in AWL UND SCL sehr lieb!!
 
Hallo,

Schleife programmieren, Datenwort hochzählen und 50 mal vergleichen

Suchbegriffe: Schleife, indirekte Adressierung, Index, Ar1
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey,

erstelle dir ein Array mit deinen Werten. Dann durchläufst du dieses mit einer For Schleife in SCL. In der For Schleife kannst du dann deine Abfragen mit einer IF Anweisung erstellen.

Gruß
Sascha
 
Den Anstoß hab ich gebraucht, das mit der schleife ist schon nicht schlecht. Danke!
 
Zuletzt bearbeitet:
Und denkt immer daran schön kompliziert zu programmieren so das es möglichst unübersichtlich wird.
Sicher hast du jetzt viel Zeit fürs Eintippen (kopieren gespart):ROFLMAO:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal noch ne Frage die jetzt nicht unbedingt hier hergehört .... Kann man in SCL "bedingt" springne? Also ich hab mal folgendes probiert :
VAR_TEMP
test:INT;/////////////////////
END_VAR
label
m1;
END_LABEL

begin
IF m1.0=true THEN
GOTO m1;

END_IF ;
m1: FOR test:= 0 TO 20 BY 1 DO
arr.daten[test]:=5 ;
END_FOR;


Er beschreibt mir das Array aber jetzt immer. Egal was M1.0 für nen Zustand hat. Für sämtliche Fehler schon mal ein ENTSCHULDIGUNG voraus, ich bin absoluter SCL Neuling und versuch mir das mehr oder weniger selbst beizubringen.
 
Er beschreibt mir das Array aber jetzt immer. Egal was M1.0 für nen Zustand hat. Für sämtliche Fehler schon mal ein ENTSCHULDIGUNG voraus, ich bin absoluter SCL Neuling und versuch mir das mehr oder weniger selbst beizubringen.

Was passiert denn wenn m1.0 nicht true ist, bzw. mit welcher Anweisung wird fortgesetzt.
Wenn du das hast wird dir irgendwann auffallen dass du durch umstrukturieren des Programmes auch ohne goto auskommst.
 
Ja, es gibt GOTO und IF, also kann man bedingt springen.

Das Beispiel sieht so aus, als würde es so nicht kompilierfähig sein, weil m1 sowohl als Label als auch als Merkeradresse verwendet wird. Ich würde davon ausgehen, dass solche Dinge Probleme machen können. Aber vielleicht enthält die richtige Funktion ja richtige Namen und hat das Problem nicht.

Ach so, falls zwischen IF .. THEN .. GOTO und dem Sprunglabel wirklich buchstäblich nichts ist, ist es kein Wunder, dass es immer ausgeführt wird. Und wenn in der Endversion nur ein RETURN dazwischen ist, würde es funktionieren, aber das GOTO wäre gigantischer Overkill. Ein einfaches IF um das FOR herum würde genügen.

SCL hat IF, FOR, WHILE/REPEAT, RETURN und EXIT, das ist für fast jede Situation genug. GOTO geht auch, ist aber meist nicht nötig.
 
Danke !! Also ist quasi IF "signal" immer wenn Signal 1 (wegen dem True weglassen). Kann ich dann auf Neg. Signal auch abfragen? If not "singal"? oder eher If "Signal"=0 ?? . Mann mann mann.... das mit dem SCL hab ich mir bisschen leichter vorgestellt. Naja , wird schon werden.
Angeblich soll AWL sterben mit dem TIA Zeugs und den neueren Steuerungen , hat der Siemens vertreter letzte Woche bei uns erzählt.... :-(
 
Zurück
Oben