-> Hier kostenlos registrieren
Hallo, ich stehe zur Zeit etwas auf dem Schaluch. Es geht darum, eine Schrittkette in ST zu realisieren und zwar mit einer case-Answeisung, was auch das Problem darstellt. Als Beispiel sei folgende Schrittkette (in AWL) gegeben:
Als IF-Anweisung stellt sich das ganze bei mir folgendermaßen dar:
Jedoch würde eine case-Anwisung nicht wie folgt ausehen,
da ich in der case-Anweisung ja Zwei verschiedene Werte zuweisen würde. In der Ersten Bedinungen wäre das eine " 1 " und eine " 3" in der zweiten Bed iengung eine " 2" und eine "4" . Angelehnt ist das ganze an diesen alten Post:
Was wäre hier der richtige Ansatz?
Code:
U Schritt 2
U B
R Schritt 2
S Schritt 3
U Schritt 3
U C
R Schritt 3
S Schritt 4
Als IF-Anweisung stellt sich das ganze bei mir folgendermaßen dar:
Code:
IF "Schritt" = 2 AND "B" = 1 THEN
"Schritt" := 3;
END_IF;
IF "Schritt" = 3 AND "C" = 1 THEN
"Schritt" := 4;
END_IF;
Jedoch würde eine case-Anwisung nicht wie folgt ausehen,
Code:
CASE "Schritt" OF
[B][COLOR=#ff0000]1[/COLOR][/B] :
IF "B"=1 AND "Schritt" = 2 THEN
"Schritt" := [B][COLOR=#ff0000]3 [/COLOR][/B]; END_IF;
[B][COLOR=#ff0000]2[/COLOR][/B] :
IF "C" AND "Schritt" = 3 THEN
"Schritt" := [B][COLOR=#ff0000]4[/COLOR][/B] ; END_IF;
END_CASE;
da ich in der case-Anweisung ja Zwei verschiedene Werte zuweisen würde. In der Ersten Bedinungen wäre das eine " 1 " und eine " 3" in der zweiten Bed iengung eine " 2" und eine "4" . Angelehnt ist das ganze an diesen alten Post:
Hallo,
wenn du in SCL mittels CASE eine Schrittkette machen willst (der Befehl bietet sich ja geradezu dafür an) dann arbeitest du nicht mit Merkern sondern mit einem INT.
Das könnte dann z.B. so aussehen :GrußCode:CASE Schritt of 0 : // tue hier irgendwas if Bedingung_1 then Schritt := 1 ; end_if ; 1 : // tue hier irgendwas if Bedingung_2 then Schritt := 2 ; end_if ; 2 : // tue hier irgendwas if Bedingung_3 then Schritt := 0 ; end_if ; END_CASE ;
Larry
Was wäre hier der richtige Ansatz?