STEP7_NEWBEE
Level-2
- Beiträge
- 141
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
Hallo an Alle,
Ich habe vor kurzem mit SCL begonnen und bin gerade bei einem grundlegenden Problem hängen geblieben:
CASE "SCHRITTMERKER" OF
2: stat_Edge2:= "Achse_B".d.RD_PZD_Nsoll.MeldW.SpindelPos_erreicht AND NOT Merker_Flanke_2;
IF(stat_Edge2=TRUE) THEN
OFFSETWINKEL:=45;
SCHRITTMERKER_SPINDELPOS:=3;
END_IF;
;
3:
TEST:=TRUE;
;
END_CASE;
Das Verhalten, welches ich mir erwartet hätte ist, dass die IF-Bedingung bei einer steigenden Flanke von "SpindelPos_erreicht" erfüllt ist, der Offsetwinkel=45 ist und im Schrittmerker:= 3 steht. Beim nächsten Durchlauf somit in den Schritt "3" (INT) (TEST:=TRUE setzen) gesprungen wird.
Das Verhalten welches ich beobachte ist, dass sobald die positive Flanke gekommen ist, das Programm in den Schrittmerker zwar 3 einträgt ( Schrittmerker =3) jedoch anschließend in diesem Schritt hängen bleibt? - der Schritt "3" (TEST:=TRUE setzen) dadurch nicht aufgerufen wird.
kann mir jemand sagen, wo ich hier aufpassen muss? bzw. welchen Fehler ich gemacht habe?
eine andere Frage hätte ich noch bezüglich eurer Programmstruktur:
Wie strukturiert ihr eure SCL Programme, dass diese besser lesbar werden ? gibt es in SCL auch solche Dinge wie "Netzwerke" / Bereichsüberschriften usw.
vl. hat hier jemand einen Tip....
LG
Ich habe vor kurzem mit SCL begonnen und bin gerade bei einem grundlegenden Problem hängen geblieben:
CASE "SCHRITTMERKER" OF
2: stat_Edge2:= "Achse_B".d.RD_PZD_Nsoll.MeldW.SpindelPos_erreicht AND NOT Merker_Flanke_2;
IF(stat_Edge2=TRUE) THEN
OFFSETWINKEL:=45;
SCHRITTMERKER_SPINDELPOS:=3;
END_IF;
;
3:
TEST:=TRUE;
;
END_CASE;
Das Verhalten, welches ich mir erwartet hätte ist, dass die IF-Bedingung bei einer steigenden Flanke von "SpindelPos_erreicht" erfüllt ist, der Offsetwinkel=45 ist und im Schrittmerker:= 3 steht. Beim nächsten Durchlauf somit in den Schritt "3" (INT) (TEST:=TRUE setzen) gesprungen wird.
Das Verhalten welches ich beobachte ist, dass sobald die positive Flanke gekommen ist, das Programm in den Schrittmerker zwar 3 einträgt ( Schrittmerker =3) jedoch anschließend in diesem Schritt hängen bleibt? - der Schritt "3" (TEST:=TRUE setzen) dadurch nicht aufgerufen wird.
kann mir jemand sagen, wo ich hier aufpassen muss? bzw. welchen Fehler ich gemacht habe?
eine andere Frage hätte ich noch bezüglich eurer Programmstruktur:
Wie strukturiert ihr eure SCL Programme, dass diese besser lesbar werden ? gibt es in SCL auch solche Dinge wie "Netzwerke" / Bereichsüberschriften usw.
vl. hat hier jemand einen Tip....

LG
Zuletzt bearbeitet: