Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

840D WHEN-Anweisung mit IF-Anweisungen

Beitrag 24.11.2022, 16:33 Uhr
DirkN
DirkN
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 20.03.2019
Beiträge: 17
Hallo,
ich wollte fragen, ob das folgende funktionieren kann?

WHEN (Merker1==1) DO DELDTG
IF (Merker2==1)
R100=PosNeu1
ENDIF
IF (Merker3==1)
R101=PosNeu2
ENDIF
G1 G91 X=10 F=100

Was ich machen möchte, das ist das folgende:
Gleichzeitig, wenn Merker1==1 soll Restverfahrweg-Löschen ausgeführt werden (meist eben bevor die 10 mm Verfahrweg erreicht sind) und der aktuellste Wert von PosNeu1 oder PosNeu2 (beide sind nämlich veränderlich) (abhängig von Merker2 und Merker3) in den R-Parametern gespeichert werden.

Eigentlich müssten für wirklich gleichzeitige Bearbeitung die IF-Anweisungen in der WHEN Zeile stehen, oder? Wenn ja, wie mache ich das? Oder gibt es noch ne andere Möglichkeit?

Würde mich sehr über eure Antworten freuen :-)

Grüße
DirkN
   
Beitrag 24.11.2022, 16:45 Uhr
DirkN
DirkN
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 20.03.2019
Beiträge: 17
... ich sehe gerade noch, dass der Editer die IF-Anweisungen nicht mit den Leerzeichen, wie eigentlich von mir beabsichtigt, eingerückt hat... der Übersicht halber, wollte ich die natürlich einrücken :-)
   
Beitrag 24.11.2022, 20:20 Uhr
nixalsverdruss
nixalsverdruss
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
QUOTE (DirkN @ 24.11.2022, 18:33 Uhr) *
Hallo,
ich wollte fragen, ob das folgende funktionieren kann?

WHEN (Merker1==1) DO DELDTG
IF (Merker2==1)
R100=PosNeu1
ENDIF
IF (Merker3==1)
R101=PosNeu2
ENDIF
G1 G91 X=10 F=100



vielleicht so ?
// wenn die Merker als Bool definiert sind dann ohne ==

WHEN (Merker1 OR Merker2 OR Merker3 ) DO DELDTG // der Satz Bezieht sich nur auf den nächsten Verfahrbefehl
WHEN ((Merker1==1) OR (Merker2==1) OR (Merker3==1) ) DO DELDTG // alternativ

G1 G91 X=10 F=100 #
IF (Merker2)
R100=PosNeu1
ENDIF
IF (Merker3)
R101=PosNeu2
ENDIF

Ich gehe davon aus das die neue Position nach dem Restweglöschen übertragen werden soll
Es gibt auch noch einen Systemvariable in der nach dem Restweglöschen der Betrag der gelöscht wurde enthalten ist
   
Beitrag 25.11.2022, 09:05 Uhr
DirkN
DirkN
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 20.03.2019
Beiträge: 17
QUOTE (nixalsverdruss @ 24.11.2022, 21:20 Uhr) *
vielleicht so ?
// wenn die Merker als Bool definiert sind dann ohne ==

WHEN (Merker1 OR Merker2 OR Merker3 ) DO DELDTG // der Satz Bezieht sich nur auf den nächsten Verfahrbefehl
WHEN ((Merker1==1) OR (Merker2==1) OR (Merker3==1) ) DO DELDTG // alternativ

G1 G91 X=10 F=100 #
IF (Merker2)
R100=PosNeu1
ENDIF
IF (Merker3)
R101=PosNeu2
ENDIF

Ich gehe davon aus das die neue Position nach dem Restweglöschen übertragen werden soll
Es gibt auch noch einen Systemvariable in der nach dem Restweglöschen der Betrag der gelöscht wurde enthalten ist


Ja, die IF-Anweisungen einfach nach dem G1-Verfahren zu machen, das war auch meine Idee gestern Abend ;-)
So werde ich es zuerst mal probieren.

Danke :-)
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: