586.069 aktive Mitglieder*
3.619 Besucher online*
Kostenfrei registrieren
Anmelden Registrieren
FANUC Forum

IF THEN, Makroprogrammierung

Beitrag 24.03.2016, 15:59 Uhr
GerwinF
GerwinF
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 24.03.2016
Beiträge: 3

Hallo,

versuche gerade ein Makro auf einer Mori NT5400 mit 31i Steuerung zu programmieren, leider hab ich da Probleme mit IF THEN, die Syntax scheint nicht zu stimmen.
Literatur verrät mir darüber nichts, die kryptischen Fanuc Fehlermeldungen leider auch nicht :o)

IF[#501 EQ 3] THEN #5222 = [#5222+#520+#502]

Kann mir da jemand helfen?

LG

BTW, hat das Forum keine Suche?
TOP    
Beitrag 24.03.2016, 22:47 Uhr
Snoopy_1993
Snoopy_1993
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 09.06.2012
Beiträge: 1.035

#5222 müsste irgend ein Nullpunkt sein oder? Weis es gerade auswendig nicht genau.
Ich vermute diese Variable kannst du so nicht überschreiben. Das musst du mit der Funktion g10 machen falls du einen neuen Nullpunkt setzten willst


--------------------
Mein Youtube ►► CNC World ◄◄
________________________________________________________________________________

hyperMill ✔
Hermle C30U ✔
Hermle C50U ✔
Grob G550 mit PSS-R ✔
DMG Mori NTX2000 ✔
TOP    
Beitrag 25.03.2016, 10:51 Uhr
GerwinF
GerwinF
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 24.03.2016
Beiträge: 3

Habs schon gelöst.

Für andere die ähnliches versuchen:
Die 31i auf der aktuellen Mori NT kann bei logischen Funktionen nur GOTO Befehle, d.h. nach wie vor 80er Jahre Standards bei Fanuc ^^
Die Variablen kann man überschreiben.
TOP    
Beitrag 25.03.2016, 19:05 Uhr
käse
käse
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 29.10.2005
Beiträge: 240

Hallo,

das ist nicht ganz richtig, einfache Wertzuweisungen wie
IF[#9EQ#0]THEN#15=78.5
gehen auch.

Gruß käse
TOP    
Beitrag 26.03.2016, 09:03 Uhr
Badenser1974
Badenser1974
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 27.04.2014
Beiträge: 20

Hallo,

weiss nicht ob andere das Problem auch so kennen, bei mir funktioniert das bei einer Spinner TS66 mit dem "THEN" auch nicht, jedoch auf anderem Weg wie folgendes Beispiel:

IF[#501 EQ 3] GOTO100
END
N100
#5222 = [#5222+#520+#502]

#5222 steht für den Nullpunkt G54 in der Z-Achse und kann jederzeit überschrieben werden.

Eventuell fehlen auch noch andere Variablen, was soll die Maschine machen, wenn der gesetzte Befehl nicht in Frage kommt, d.h. was wäre z.B. wenn #501 = 3; LT3 oder GT3 ist, wenn hier nichts zugewiesen wird ist es auch möglich das die Maschine nicht macht was sie soll.

Wie gesagt, so funktioniert es in meinem Fall und ist selbstverständlich mit Vorsicht anzuwenden!

Gruß,

Patrick


--------------------
Jeder Mensch sollte sich immer wieder selbst fragen, wohin soll denn die Reise gehen?
TOP    
Beitrag 27.03.2016, 16:33 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813

Hey ... hatte auch schon mal probleme mit THEN, statt dessen hat TH funktioniert
Fanuc ist da hingehend eine zicke, was aber an den softwareständen liegt, die sich fast stündlich ändern können ...

IF[1eq1]TH[#5222=[#5222+#520+#502]]

verrechnung würde ich generell ausklammern.
andere Möglichkeit ist schmiermerker zu nutzen.
das müsste ohne goto einfach zu realisieren sein.

CODE
#1=[#5222+#520+#502]
IF[#501EQ3]TH#5222=#1


Der Beitrag wurde von Hexogen bearbeitet: 27.03.2016, 16:34 Uhr


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
TOP    
Beitrag 27.03.2016, 20:46 Uhr
Guest_guest_*
Themenstarter

Gast



Wenn ich das Handbuch "Drehen Fräsen" richtig deute, darf der "bedingte Ausdruck" nach IF, auch recht komplex sein, die Makroanweisung nach THEN aber nicht.
Die Makroanweisung (incl. THEN) dürfte nach Handbuch dann auch keine Leerzeichen enthalten.
Der Code von Hexogen sollte dann auch mit THEN funktionieren.
CODE
#1=[#5222+#520+#502]
IF [#501 EQ 3] THEN#5222=#1
TOP    



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