CASE-Anweisung von SCL auf KOP

Darfst du das auch in AWL machen, dann mit dem Befehl SPL.
In KOP nur mit bedingten Sprüngen würde ich mal sagen und auch das mach ich zumindest immer zum Programmieren in AWL.
Zumindest die Sprungmarke, welche jeweils angesprungen wird, muß in KOP wohl in ein eigenes Netzwerk.
 
Bedenke aber, daß Du am Ende einer CASE-Anweisung die noch folgenden überspringst. Ansonsten werden die nämlich auch noch ausgeführt.
 
Ich würde eine eigene Caseanweiung über Vegleicher und bedingte Sprünge bauen.

Code:
L #Case_Var
L 5
>I
SPB MAX

L #Case_Var
L 4
>I
SPB BE05

L #Case_Var
L 3
>I
SPB BE04

L #Case_Var
L 2
>I
SPB BE03

L #Case_Var
L 1
>I
SPB BE02

L #Case_Var
L 0
>I
SPB BE01

L #Case_Var
L 0
<=I
SPB MIN

//Dann die Marken

MAX: NOP 0
//hier der Coder für zu große Werte


SPA ENDE
//hier der Coder für Case=5


BE05: NOP 0

SPA ENDE

.
.
.

MIN: NOP 0
//hier der Code für zu kleine Werte



ENDE: NOP 0

Das was ich da aufgeschrieben habe sollte so in KOP/FUP umsetzbar sein. Jede Vergleicher + Sprung in ein eignes Netzwerk.
Allerdings muß eine anzuspringende Marke ein eigenes Netzwerk bekommen, wenn ich mich nicht täusche. Kann sein, daß es in FUP auch mit Code nach der Marke in einem NW weitergeht. Das bekommst du sicher raus.
 
Zurück
Oben