Siemens
Digital Industries, Motion Control, Machine Tool Systems
8843
Follower:innenEasyscreen - Eigene Masken erstellen, Sammelthread für alle Interessierten
20.10.2015, 11:44 Uhr
Hallo Zusammen,
Schon etwas länger fällt mir auf, dass es hier ein paar Leute gibt, die sich ebenfalls mit der Projektierung von Eingabemasken für Siemens-Steuerungen beschäftigen. Das hier soll ein Versuch sein, Fragen zum Thema Masken- und Zyklenerstellung ein wenig zu bündeln. Ich persönlich möchte hier keinesfalls nur Wissen "abgreifen", sondern bin gerne auch selber bereit zu helfen. Der von mir hier gepostete Code darf selbstverständlich verwendet werden (Ausnahme: Maschinenhersteller, die verdienen ihr Geld damit und dürfen sich gerne eigene Gedanken machen ;-) ) Ich hoffe hier bildet sich ein reger Austausch zum Thema.
Ich fange einfach mal mit einem meiner Probleme an:
Ich habe eine Maske erstellt, mit der in der Betriebsart "Automatik" die Werkzeugkorrektur für Drehmaschinen vereinfacht werden soll.
Grundsätzlich funktioniert das ganz gut. Hier mal ein paar Bilder:
1.JPG ( 49.5KB ) Anzahl der Downloads: 416
2.JPG ( 52.77KB ) Anzahl der Downloads: 393
3.JPG ( 62.04KB ) Anzahl der Downloads: 330
4.JPG ( 61.56KB ) Anzahl der Downloads: 317
Mein Problem: Das aktuell eingeschwenkte Werkzeug kann nicht korrigiert werden, weil es anscheinend nicht mehr mit seinem Magazinplatz verknüpft ist, sondern in Bearbeitungsposition ist.
Wie kann ich nun auslesen, ob die eingegebene Platznummer auf berabeitungsposition steht, damit ich trotzdem korrigieren kann?
Hier der Code
Freue mich über Lösungsansätze oder Gegenfragen.
Schon etwas länger fällt mir auf, dass es hier ein paar Leute gibt, die sich ebenfalls mit der Projektierung von Eingabemasken für Siemens-Steuerungen beschäftigen. Das hier soll ein Versuch sein, Fragen zum Thema Masken- und Zyklenerstellung ein wenig zu bündeln. Ich persönlich möchte hier keinesfalls nur Wissen "abgreifen", sondern bin gerne auch selber bereit zu helfen. Der von mir hier gepostete Code darf selbstverständlich verwendet werden (Ausnahme: Maschinenhersteller, die verdienen ihr Geld damit und dürfen sich gerne eigene Gedanken machen ;-) ) Ich hoffe hier bildet sich ein reger Austausch zum Thema.
Ich fange einfach mal mit einem meiner Probleme an:
Ich habe eine Maske erstellt, mit der in der Betriebsart "Automatik" die Werkzeugkorrektur für Drehmaschinen vereinfacht werden soll.
Grundsätzlich funktioniert das ganz gut. Hier mal ein paar Bilder:
1.JPG ( 49.5KB ) Anzahl der Downloads: 416
2.JPG ( 52.77KB ) Anzahl der Downloads: 393
3.JPG ( 62.04KB ) Anzahl der Downloads: 330
4.JPG ( 61.56KB ) Anzahl der Downloads: 317
Mein Problem: Das aktuell eingeschwenkte Werkzeug kann nicht korrigiert werden, weil es anscheinend nicht mehr mit seinem Magazinplatz verknüpft ist, sondern in Bearbeitungsposition ist.
Wie kann ich nun auslesen, ob die eingegebene Platznummer auf berabeitungsposition steht, damit ich trotzdem korrigieren kann?
Hier der Code
CODE
//s(start)
hs6 = ("Werkzeug-%nKorrektur")
press(hs6)
lm("korrektur")
end_press
//end
//m(korrektur)
DEF _tnr = (i/1,24//"Platznummer","Platznummer"/al0///300,10/420,10,40),
_d = (i/1,4/1/"Schneidennummer","D "/al0///485,10/500,10,20)
DEF _tname = (s///"","Werkzeugname"/al0,WR1///300,50/420,50,150)
DEF _abs_x = (r///"Gesamt X ","Gesamt X"/al0,WR1///230,90/330,90,80),
_dx = (r/-1,1/0/"Korrektur X","DX "/al0///450,90/480,90,40)
DEF _abs_y = (r///"Gesamt Y ","Gesamt Y"/al0,WR1///230,110/330,110,80),
_dy = (r/-1,1/0/"Korrektur Y","DY "/al0///450,110/480,110,40)
DEF _abs_Z = (r///"Gesamt Z ","Gesamt Z"/al0,WR1///230,130/330,130,80),
_dz = (r/-1,1/0/"Korrektur Z","DZ "/al0///450,130/480,130,40)
DEF _abs_r = (r///"Gesamt D ","Gesamt D"/al0,WR1///230,150/330,150,80),
_dr = (r/-1,1/0/"Korrektur Radius","DR "/al0///450,150/480,150,40)
DEF _tnumber_exist
DEF _toolnd
DEF _tool_type
VS7=("\\sk_cancel.png")
VS8=("\\sk_ok.png")
load
vs8.se = 2
_abs_x.wr = 0
_abs_x.bc = 129
_abs_x.fc = 6
_abs_x.st = ""
_abs_y.wr = 0
_abs_y.bc = 129
_abs_y.fc = 6
_abs_y.st = ""
_abs_z.wr = 0
_abs_z.bc = 129
_abs_z.fc = 6
_abs_z.st = ""
_abs_r.wr = 0
_abs_r.bc = 129
_abs_r.fc = 6
_abs_r.st = ""
_dr.wr = 0
_dr.st =""
lb("sub1")
end_load
change(_tnr)
call("read_tool")
end_change
change(_d)
call("read_tool")
end_change
change(_dx)
_abs_x = _abs_x + _dx
end_change
change(_dy)
_abs_y = _abs_y + _dy
end_change
change(_dz)
_abs_z = _abs_z + _dz
end_change
change(_dr)
_abs_r = _abs_r + _dr
end_change
press(vs7)
exit
end_press
press(vs8)
WNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]",_abs_x)
WNP("$TC_DP13["<<_tnumber_exist<<","<<_d<<"]",_abs_z)
WNP("$TC_DP14["<<_tnumber_exist<<","<<_d<<"]",_abs_y)
IF _tool_type >= 100; Wenn Fräser oder Bohrer
IF _tool_type <= 299
WNP("$TC_DP15["<<_tnumber_exist<<","<<_d<<"]",_abs_r)
ENDIF
ENDIF
exit
end_press
//end
//b(sub1)
sub(read_tool)
_tnumber_exist = RNP("$TC_MPP6[1,"<<_tnr<<"]");tnr platz auslesen
IF _tnumber_exist
_toolnd = RNP("$P_TOOLND["<<_tnumber_exist<<"]");Anzahl der Schneiden
_d.max = _toolnd
_tname = RNP("$TC_TP2["<<_tnumber_exist<<"]");tnamen auslesen
_tname.fc = 3
_tool_type = RNP("$TC_DP1["<<_tnumber_exist<<","<<_d<<"]");Werkzeugtyp auslesen
VS8.SE = 1
_abs_x.wr = 1
_abs_x.st = "Gesamt X"
_abs_x = RNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]")
_abs_y.wr = 1
_abs_y.st = "Gesamt Y"
_abs_y = RNP("$TC_DP14["<<_tnumber_exist<<","<<_d<<"]")
_abs_z.wr = 1
_abs_z.st = "Gesamt Z"
_abs_z = RNP("$TC_DP13["<<_tnumber_exist<<","<<_d<<"]")
IF _tool_type >= 100; Wenn Fräser oder Bohrer
IF _tool_type <= 299
_abs_r.wr = 1
_abs_r.st = "Gesamt Radius"
_abs_r = RNP("$TC_DP15["<<_tnumber_exist<<","<<_d<<"]")
_dr.wr = 2
_dr.st = "DR "
ELSE
_abs_r.wr = 0
_abs_r.st = ""
_dr.wr = 0
_dr.st = ""
ENDIF
ENDIF
ELSE
_tname = "Platz nicht belegt!"
_tname.fc = 7
_abs_x.wr = 0
_abs_x.st = ""
_abs_y.wr = 0
_abs_y.st = ""
_abs_z.wr = 0
_abs_z.st = ""
_abs_r.wr = 0
_abs_r.st = ""
VS8.SE = 2
ENDIF
_dx = 0
_dy = 0
_dz = 0
_dr = 0
end_sub
//end
hs6 = ("Werkzeug-%nKorrektur")
press(hs6)
lm("korrektur")
end_press
//end
//m(korrektur)
DEF _tnr = (i/1,24//"Platznummer","Platznummer"/al0///300,10/420,10,40),
_d = (i/1,4/1/"Schneidennummer","D "/al0///485,10/500,10,20)
DEF _tname = (s///"","Werkzeugname"/al0,WR1///300,50/420,50,150)
DEF _abs_x = (r///"Gesamt X ","Gesamt X"/al0,WR1///230,90/330,90,80),
_dx = (r/-1,1/0/"Korrektur X","DX "/al0///450,90/480,90,40)
DEF _abs_y = (r///"Gesamt Y ","Gesamt Y"/al0,WR1///230,110/330,110,80),
_dy = (r/-1,1/0/"Korrektur Y","DY "/al0///450,110/480,110,40)
DEF _abs_Z = (r///"Gesamt Z ","Gesamt Z"/al0,WR1///230,130/330,130,80),
_dz = (r/-1,1/0/"Korrektur Z","DZ "/al0///450,130/480,130,40)
DEF _abs_r = (r///"Gesamt D ","Gesamt D"/al0,WR1///230,150/330,150,80),
_dr = (r/-1,1/0/"Korrektur Radius","DR "/al0///450,150/480,150,40)
DEF _tnumber_exist
DEF _toolnd
DEF _tool_type
VS7=("\\sk_cancel.png")
VS8=("\\sk_ok.png")
load
vs8.se = 2
_abs_x.wr = 0
_abs_x.bc = 129
_abs_x.fc = 6
_abs_x.st = ""
_abs_y.wr = 0
_abs_y.bc = 129
_abs_y.fc = 6
_abs_y.st = ""
_abs_z.wr = 0
_abs_z.bc = 129
_abs_z.fc = 6
_abs_z.st = ""
_abs_r.wr = 0
_abs_r.bc = 129
_abs_r.fc = 6
_abs_r.st = ""
_dr.wr = 0
_dr.st =""
lb("sub1")
end_load
change(_tnr)
call("read_tool")
end_change
change(_d)
call("read_tool")
end_change
change(_dx)
_abs_x = _abs_x + _dx
end_change
change(_dy)
_abs_y = _abs_y + _dy
end_change
change(_dz)
_abs_z = _abs_z + _dz
end_change
change(_dr)
_abs_r = _abs_r + _dr
end_change
press(vs7)
exit
end_press
press(vs8)
WNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]",_abs_x)
WNP("$TC_DP13["<<_tnumber_exist<<","<<_d<<"]",_abs_z)
WNP("$TC_DP14["<<_tnumber_exist<<","<<_d<<"]",_abs_y)
IF _tool_type >= 100; Wenn Fräser oder Bohrer
IF _tool_type <= 299
WNP("$TC_DP15["<<_tnumber_exist<<","<<_d<<"]",_abs_r)
ENDIF
ENDIF
exit
end_press
//end
//b(sub1)
sub(read_tool)
_tnumber_exist = RNP("$TC_MPP6[1,"<<_tnr<<"]");tnr platz auslesen
IF _tnumber_exist
_toolnd = RNP("$P_TOOLND["<<_tnumber_exist<<"]");Anzahl der Schneiden
_d.max = _toolnd
_tname = RNP("$TC_TP2["<<_tnumber_exist<<"]");tnamen auslesen
_tname.fc = 3
_tool_type = RNP("$TC_DP1["<<_tnumber_exist<<","<<_d<<"]");Werkzeugtyp auslesen
VS8.SE = 1
_abs_x.wr = 1
_abs_x.st = "Gesamt X"
_abs_x = RNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]")
_abs_y.wr = 1
_abs_y.st = "Gesamt Y"
_abs_y = RNP("$TC_DP14["<<_tnumber_exist<<","<<_d<<"]")
_abs_z.wr = 1
_abs_z.st = "Gesamt Z"
_abs_z = RNP("$TC_DP13["<<_tnumber_exist<<","<<_d<<"]")
IF _tool_type >= 100; Wenn Fräser oder Bohrer
IF _tool_type <= 299
_abs_r.wr = 1
_abs_r.st = "Gesamt Radius"
_abs_r = RNP("$TC_DP15["<<_tnumber_exist<<","<<_d<<"]")
_dr.wr = 2
_dr.st = "DR "
ELSE
_abs_r.wr = 0
_abs_r.st = ""
_dr.wr = 0
_dr.st = ""
ENDIF
ENDIF
ELSE
_tname = "Platz nicht belegt!"
_tname.fc = 7
_abs_x.wr = 0
_abs_x.st = ""
_abs_y.wr = 0
_abs_y.st = ""
_abs_z.wr = 0
_abs_z.st = ""
_abs_r.wr = 0
_abs_r.st = ""
VS8.SE = 2
ENDIF
_dx = 0
_dy = 0
_dz = 0
_dr = 0
end_sub
//end
Freue mich über Lösungsansätze oder Gegenfragen.
20.10.2015, 20:59 Uhr
Die Lösung für mein oben geschildertes Problem:
Damit kann der dem aktiven Werkzeug zugeordnete Platz ausgelesen werden.
Freue mich weiterhin auf Fragen und Anregungen.
CODE
_act_tool_nr = RNP("$P_TOOLNO");aktive Werkzeugnummer
_act_tool_p = RNP("$A_MYMLN["<<_act_tool_nr<<"]");aktiver Magazinplatz
_act_tool_p = RNP("$A_MYMLN["<<_act_tool_nr<<"]");aktiver Magazinplatz
Damit kann der dem aktiven Werkzeug zugeordnete Platz ausgelesen werden.
Freue mich weiterhin auf Fragen und Anregungen.
03.11.2015, 08:01 Uhr
Auch wenn die Beteiligung an diesem Thema ja leider eher begrenzt ist, hätte ich noch eine Frage an euch:
Gibt es irgendeine Möglichkeit, in eigenen Zyklenmasken den Softkey "Werkzeug auswählen" so zu nutzen wie in ShopTurn-Zyklen?
Liebe Grüße, Lucas
Gibt es irgendeine Möglichkeit, in eigenen Zyklenmasken den Softkey "Werkzeug auswählen" so zu nutzen wie in ShopTurn-Zyklen?
Liebe Grüße, Lucas
03.11.2015, 09:38 Uhr
Auch wenn die Beteiligung an diesem Thema ja leider eher begrenzt ist, hätte ich noch eine Frage an euch:
Gibt es irgendeine Möglichkeit, in eigenen Zyklenmasken den Softkey "Werkzeug auswählen" so zu nutzen wie in ShopTurn-Zyklen?
Liebe Grüße, Lucas
Gibt es irgendeine Möglichkeit, in eigenen Zyklenmasken den Softkey "Werkzeug auswählen" so zu nutzen wie in ShopTurn-Zyklen?
Liebe Grüße, Lucas
Hallo,
ich habe bei mir an der Maschine viele DMG Masken wo das möglich ist. Ich wollte das in meinen eigenen masken verwenden, leider erfolg los. Es ist schon längen her als ich mich damit beschäftigt habe, aber der Geheimnis liegt in einer .dll datei. Ich bin mir nicht sicher, ob ich den Code hier posten darf.
Ich finde Thema easyscreen sehr interessant. Ich habe selber ein paar schöne Anwenderzyklen mit Masken geschrieben, die ich jeden Tag nutze.
03.11.2015, 14:30 Uhr
ist keine .dll sondern .xml Datei
hier ein Auszug aus der SINUMERIK 840D sl Basesoftware und Bedien-Software
13.4 Werkzeuglisten konfigurieren
die Kennung SlTmToolselectionForm befindet sich in der Datei sltmlistconfig.xml (sltmturninglistconfig.xml fürs drehen) in Pfad C:\Siemens\SinutrainOperate\04.05.01\hmi\siemens\sinumerik\hmi\appl
Ich vermute "SlTmToolselectionForm" ist eine art Unterprogramm die mann aufrufen kann.
z.B. so (nicht funktionsfähig)
VS1=("Werkzeug Auswahl",,SE1)
PRESS(VS1)
SlTmToolselectionForm
END_PRESS
Es ist aber nur eine Vermutung, wie das genau funktionier ist mir nicht bekannt.
hier ein Auszug aus der SINUMERIK 840D sl Basesoftware und Bedien-Software
13.4 Werkzeuglisten konfigurieren
QUOTE
Im Tag <LISTCONFIGURATION> befinden sich die Einträge zur Konfiguration folgender
Listenansichten:
● Fenster "Werkzeugliste", Kennung <SlTmToollistForm>, siehe 1. Beispiel.
● Fenster "Werkzeugverschleiß", Kennung <SlTmToolwearForm>
● Fenster "Magazin", Kennung <SlTmToolmagazinForm>
● Fenster "Werkzeugdaten OEM", Kennung <SlTmTooloemForm>
Dieses Fenster ist in der Standardkonfiguration ausgeblendet. Das Fenster wird erst
angezeigt, wenn Sie es mit <Enabled> frei schalten, siehe 2. Beispiel.
● Fenster "Werkzeugauswahl", Kennung <SlTmToolselectionForm>: Dieses Fenster kann in
Listenansichten:
● Fenster "Werkzeugliste", Kennung <SlTmToollistForm>, siehe 1. Beispiel.
● Fenster "Werkzeugverschleiß", Kennung <SlTmToolwearForm>
● Fenster "Magazin", Kennung <SlTmToolmagazinForm>
● Fenster "Werkzeugdaten OEM", Kennung <SlTmTooloemForm>
Dieses Fenster ist in der Standardkonfiguration ausgeblendet. Das Fenster wird erst
angezeigt, wenn Sie es mit <Enabled> frei schalten, siehe 2. Beispiel.
● Fenster "Werkzeugauswahl", Kennung <SlTmToolselectionForm>: Dieses Fenster kann in
die Kennung SlTmToolselectionForm befindet sich in der Datei sltmlistconfig.xml (sltmturninglistconfig.xml fürs drehen) in Pfad C:\Siemens\SinutrainOperate\04.05.01\hmi\siemens\sinumerik\hmi\appl
Ich vermute "SlTmToolselectionForm" ist eine art Unterprogramm die mann aufrufen kann.
z.B. so (nicht funktionsfähig)
VS1=("Werkzeug Auswahl",,SE1)
PRESS(VS1)
SlTmToolselectionForm
END_PRESS
Es ist aber nur eine Vermutung, wie das genau funktionier ist mir nicht bekannt.
03.11.2015, 14:57 Uhr
Das klingt auf jeden Fall interessant. Ich werde mein Glück mal versuchen.
Wenn es klappt, werde ich das Ergebnis selbstverständlich hier vorstellen.
Gruß, Lucas
Wenn es klappt, werde ich das Ergebnis selbstverständlich hier vorstellen.
Gruß, Lucas
05.11.2015, 18:23 Uhr
Hallo,
eine Frage vom nichts weiser, aber der es wiesen möchte. Über so was habe ich schon was gehört, aber weis ich nicht, wo man Infos bekommen kann. Können Sie wahrscheinlich mir weiter helfen. In welch Betriebsarten kann man es integrieren? Wie weist man die Softkeytaste zu? Was kann man da hinterlegen? (z.B. ein Text, der im Programm geschrieben werden muss, Selbstgeschriebene Zyklus) Wenn möglich, stellen sie Skrinshot als Beispiel aus, oder wo man über Easyscreen nachlesen kann.
Danke im Voraus.
eine Frage vom nichts weiser, aber der es wiesen möchte. Über so was habe ich schon was gehört, aber weis ich nicht, wo man Infos bekommen kann. Können Sie wahrscheinlich mir weiter helfen. In welch Betriebsarten kann man es integrieren? Wie weist man die Softkeytaste zu? Was kann man da hinterlegen? (z.B. ein Text, der im Programm geschrieben werden muss, Selbstgeschriebene Zyklus) Wenn möglich, stellen sie Skrinshot als Beispiel aus, oder wo man über Easyscreen nachlesen kann.
Danke im Voraus.
05.11.2015, 19:20 Uhr
Infos dazu findest du im "Inbetriebnahmehandbuch Basesoftware und Bedien-Software". Dieses kannst du auf der Siemens Seite herunterladen. Es lassen sich damit Masken für alles mögliche erstellen, z.B. Eingabemasken für Anwenderzyklen, automatische Korrekturmasken in Programmen... Es ist alles eine Frage vom Programmieraufwand den man betreibt. Freie Softkeys für Anwender gibt es in verschiedenen Bedienbereichen, manchmal werden diese aber bereits vom Maschinenhersteller benutzt. Wie man diese Softkeys erstellt hängt stark von der Version der HMI ab. Vor allem ob Operate, HMI Advanced oder HMI Embedded. Dazu gibt es auch bereits Themen hier im Forum.
Der Beitrag wurde von DMC635V bearbeitet: 05.11.2015, 19:21 Uhr
Der Beitrag wurde von DMC635V bearbeitet: 05.11.2015, 19:21 Uhr
--------------------
Freundliche Grüsse
DMC635V
DMC635V
08.11.2015, 09:06 Uhr
26.11.2015, 07:47 Uhr
Moin Jungs und Mädels,
ich verzweifel mal wieder an einem Problem.
Ich habe eine Maske erstellt, die mir die Revolverbelegung unserer Drehmaschinen ausliest und übersichtlich formatiert ins Programm schreibt.
In dieser Maske gibt es einen vertikalen Softkey zum Auslesen der Revolverbelegung und einen zum Löschen der Liste.
Beide Softkeys funktionieren, springen aber danach in die letzte benutzte SK-Leiste zurück (siehe Bilder, in diesem Fall die "Edit"-Leiste).
Wenn ich die Maske allerdings nochmal (mit Pfeil rechts) aufrufe, funktionieren Sie ganz normal.
Kann jemand von euch mal darüber schauen und mir sagen, was ich übesehe? Vorab Entschuldigung für den gigantischen Code, aber leider gibt einem Siemens ja nicht viele Möglichkeiten an die Hand sich innerhalb von Projektionsdateien kurz zu fassen
1.JPG ( 154.02KB ) Anzahl der Downloads: 215
2.JPG ( 134.02KB ) Anzahl der Downloads: 145
ich verzweifel mal wieder an einem Problem.
Ich habe eine Maske erstellt, die mir die Revolverbelegung unserer Drehmaschinen ausliest und übersichtlich formatiert ins Programm schreibt.
In dieser Maske gibt es einen vertikalen Softkey zum Auslesen der Revolverbelegung und einen zum Löschen der Liste.
Beide Softkeys funktionieren, springen aber danach in die letzte benutzte SK-Leiste zurück (siehe Bilder, in diesem Fall die "Edit"-Leiste).
Wenn ich die Maske allerdings nochmal (mit Pfeil rechts) aufrufe, funktionieren Sie ganz normal.
Kann jemand von euch mal darüber schauen und mir sagen, was ich übesehe? Vorab Entschuldigung für den gigantischen Code, aber leider gibt einem Siemens ja nicht viele Möglichkeiten an die Hand sich innerhalb von Projektionsdateien kurz zu fassen
1.JPG ( 154.02KB ) Anzahl der Downloads: 215
2.JPG ( 134.02KB ) Anzahl der Downloads: 145
CODE
//m(revolverbelegung/"DDS-Revolverbelegung")
;- Felder definieren
def _feld1 = (s///"Werkzeug 1","T1"/wr2///10,10,30/45,10,190,15),
_feld13 = (s///"Werkzeug 13","T13"/wr2,al1///290,10,30/350,10,190,15)
def _feld2 = (s///"Werkzeug 2","T2"/wr2///10,35,30/45,35,190,15),
_feld14 = (s///"Werkzeug 14","T14"/wr2,al1///290,35,30/350,35,190,15)
def _feld3 = (s///"Werkzeug 3","T3"/wr2///10,60,30/45,60,190,15),
_feld15 = (s///"Werkzeug 15","T15"/wr2,al1///290,60,30/350,60,190,15)
def _feld4 = (s///"Werkzeug 4","T4"/wr2///10,85,30/45,85,190,15),
_feld16 = (s///"Werkzeug 16","T16"/wr2,al1///290,85,30/350,85,190,15)
def _feld5 = (s///"Werkzeug 5","T5"/wr2///10,110,30/45,110,190,15),
_feld17 = (s///"Werkzeug 17","T17"/wr2,al1///290,110,30/350,110,190,15)
def _feld6 = (s///"Werkzeug 6","T6"/wr2///10,135,30/45,135,190,15),
_feld18 = (s///"Werkzeug 18","T18"/wr2,al1///290,135,30/350,135,190,15)
def _feld7 = (s///"Werkzeug 7","T7"/wr2///10,160,30/45,160,190,15),
_feld19 = (s///"Werkzeug 19","T19"/wr2,al1///290,160,30/350,160,190,15)
def _feld8 = (s///"Werkzeug 8","T8"/wr2///10,185,30/45,185,190,15),
_feld20 = (s///"Werkzeug 20","T20"/wr2,al1///290,185,30/350,185,190,15)
def _feld9 = (s///"Werkzeug 9","T9"/wr2///10,210,30/45,210,190,15),
_feld21 = (s///"Werkzeug 21","T21"/wr2,al1///290,210,30/350,210,190,15)
def _feld10 = (s///"Werkzeug 10","T10"/wr2///10,235,30/45,235,190,15),
_feld22 = (s///"Werkzeug 22","T22"/wr2,al1///290,235,30/350,235,190,15)
def _feld11 = (s///"Werkzeug 11","T11"/wr2///10,260,30/45,260,190,15),
_feld23 = (s///"Werkzeug 23","T23"/wr2,al1///290,260,30/350,260,190,15)
def _feld12 = (s///"Werkzeug 12","T12"/wr2///10,285,30/45,285,190,15),
_feld24 = (s///"Werkzeug 24","T24"/wr2,al1///290,285,30/350,285,190,15)
;-------------------------Hilfsvariablen------------------------------
def _strlen
def _tnumber
def _tnumber_exist
def _tdummy
def _temp
def _act_tool_nr
def _act_tool_p
def _act_tool_name
def _bg_color_notool
def _bg_color_tool
def _letter_color
def _t1
def _t2
def _t3
def _t4
def _t5
def _t6
def _t7
def _t8
def _t9
def _t10
def _t11
def _t12
def _t13
def _t14
def _t15
def _t16
def _t17
def _t18
def _t19
def _t20
def _t21
def _t22
def _t23
def _t24
;------------------------Softkeys--------------------------------------
vs1 = ("Uebernahme%nMaschine")
vs2 = ("Liste%nloeschen")
vs7 = ("\\sk_cancel.png")
vs8 = ("\\sk_ok.png")
;----------------------- LOAD / UNLOAD ---------------------------------
load
_act_tool_nr = RNP("$P_TOOLNO");aktive Werkzeugnummer
_act_tool_p = RNP("$A_MYMLN["<<_act_tool_nr<<"]");aktiver Magazinplatz
_act_tool_name = RNP("$TC_TP2["<<_act_tool_nr<<"]")
_feld1.wr = 5
_feld2.wr = 5
_feld3.wr = 5
_feld4.wr = 5
_feld5.wr = 5
_feld6.wr = 5
_feld7.wr = 5
_feld8.wr = 5
_feld9.wr = 5
_feld10.wr = 5
_feld11.wr = 5
_feld12.wr = 5
_feld13.wr = 5
_feld14.wr = 5
_feld15.wr = 5
_feld16.wr = 5
_feld17.wr = 5
_feld18.wr = 5
_feld19.wr = 5
_feld20.wr = 5
_feld21.wr = 5
_feld22.wr = 5
_feld23.wr = 5
_feld24.wr = 5
LB("sub1")
_bg_color_notool = 4
_bg_color_tool = 3
_letter_color = 10
IF _feld1 == " "
_feld1.bc = _bg_color_notool
ELSE
_feld1.bc = 2
_feld1.fc = 1
ENDIF
IF _feld2 == " "
_feld2.bc = _bg_color_notool
ELSE
_feld2.bc = 2
_feld2.fc = 1
ENDIF
IF _feld3 == " "
_feld3.bc = _bg_color_notool
ELSE
_feld3.bc = 2
_feld3.fc = 1
ENDIF
IF _feld4 == " "
_feld4.bc = _bg_color_notool
ELSE
_feld4.bc = 2
_feld4.fc = 1
ENDIF
IF _feld5 == " "
_feld5.bc = _bg_color_notool
ELSE
_feld5.bc = 2
_feld5.fc = 1
ENDIF
IF _feld6 == " "
_feld6.bc = _bg_color_notool
ELSE
_feld6.bc = 2
_feld6.fc = 1
ENDIF
IF _feld7 == " "
_feld7.bc = _bg_color_notool
ELSE
_feld7.bc = 2
_feld7.fc = 1
ENDIF
IF _feld8 == " "
_feld8.bc = _bg_color_notool
ELSE
_feld8.bc = 2
_feld8.fc = 1
ENDIF
IF _feld9 == " "
_feld9.bc = _bg_color_notool
ELSE
_feld9.bc = 2
_feld9.fc = 1
ENDIF
IF _feld10 == " "
_feld10.bc = _bg_color_notool
ELSE
_feld10.bc = 2
_feld10.fc = 1
ENDIF
IF _feld11 == " "
_feld11.bc = _bg_color_notool
ELSE
_feld11.bc = 2
_feld11.fc = 1
ENDIF
IF _feld12 == " "
_feld12.bc = _bg_color_notool
ELSE
_feld12.bc = 2
_feld12.fc = 1
ENDIF
IF _feld13 == " "
_feld13.bc = _bg_color_notool
ELSE
_feld13.bc = 2
_feld13.fc = 1
ENDIF
IF _feld14 == " "
_feld14.bc = _bg_color_notool
ELSE
_feld14.bc = 2
_feld14.fc = 1
ENDIF
IF _feld15 == " "
_feld15.bc = _bg_color_notool
ELSE
_feld15.bc = 2
_feld15.fc = 1
ENDIF
IF _feld16 == " "
_feld16.bc = _bg_color_notool
ELSE
_feld16.bc = 2
_feld16.fc = 1
ENDIF
IF _feld17 == " "
_feld17.bc = _bg_color_notool
ELSE
_feld17.bc = 2
_feld17.fc = 1
ENDIF
IF _feld18 == " "
_feld18.bc = _bg_color_notool
ELSE
_feld18.bc = 2
_feld18.fc = 1
ENDIF
IF _feld19 == " "
_feld19.bc = _bg_color_notool
ELSE
_feld19.bc = 2
_feld19.fc = 1
ENDIF
IF _feld20 == " "
_feld20.bc = _bg_color_notool
ELSE
_feld20.bc = 2
_feld20.fc = 1
ENDIF
IF _feld21 == " "
_feld21.bc = _bg_color_notool
ELSE
_feld21.bc = 2
_feld21.fc = 1
ENDIF
IF _feld22 == " "
_feld22.bc = _bg_color_notool
ELSE
_feld22.bc = 2
_feld22.fc = 1
ENDIF
IF _feld23 == " "
_feld23.bc = _bg_color_notool
ELSE
_feld23.bc = 2
_feld23.fc = 1
ENDIF
IF _feld24 == " "
_feld24.bc = _bg_color_notool
ELSE
_feld24.bc = 2
_feld24.fc = 1
ENDIF
end_load
unload
_t1 = ""
_t2 = ""
_t3 = ""
_t4 = ""
_t5 = ""
_t6 = ""
_t7 = ""
_t8 = ""
_t9 = ""
_t10 = ""
_t11 = ""
_t12 = ""
_t13 = ""
_t14 = ""
_t15 = ""
_t16 = ""
_t17 = ""
_t18 = ""
_t19 = ""
_t20 = ""
_t21 = ""
_t22 = ""
_t23 = ""
_t24 = ""
end_unload
;-----------------------CHANGE-----------------------------------------
change(_feld1)
IF _feld1 <> _t1
_temp.val = _feld1.val
call("format25")
_feld1.val = _temp.val
endif
IF _feld1 == " "
_feld1.bc = _bg_color_notool
ELSE
_feld1.bc = _bg_color_tool
_feld1.fc = _letter_color
ENDIF
end_change
change(_feld2)
IF _feld2 <> _t2
_temp.val = _feld2.val
call("format25")
_feld2.val = _temp.val
endif
IF _feld2 == " "
_feld2.bc = _bg_color_notool
ELSE
_feld2.bc = _bg_color_tool
_feld2.fc = _letter_color
ENDIF
end_change
change(_feld3)
IF _feld3 <> _t3
_temp.val = _feld3.val
call("format25")
_feld3.val = _temp.val
endif
IF _feld3 == " "
_feld3.bc = _bg_color_notool
ELSE
_feld3.bc = _bg_color_tool
_feld3.fc = _letter_color
ENDIF
end_change
change(_feld4)
IF _feld4 <> _t4
_temp.val = _feld4.val
call("format25")
_feld4.val = _temp.val
endif
IF _feld4 == " "
_feld4.bc = _bg_color_notool
ELSE
_feld4.bc = _bg_color_tool
_feld4.fc = _letter_color
ENDIF
end_change
change(_feld5)
IF _feld5 <> _t5
_temp.val = _feld5.val
call("format25")
_feld5.val = _temp.val
endif
IF _feld5 == " "
_feld5.bc = _bg_color_notool
ELSE
_feld5.bc = _bg_color_tool
_feld5.fc = _letter_color
ENDIF
end_change
change(_feld6)
IF _feld6 <> _t6
_temp.val = _feld6.val
call("format25")
_feld6.val = _temp.val
endif
IF _feld6 == " "
_feld6.bc = _bg_color_notool
ELSE
_feld6.bc = _bg_color_tool
_feld6.fc = _letter_color
ENDIF
end_change
change(_feld7)
IF _feld7 <> _t7
_temp.val = _feld7.val
call("format25")
_feld7.val = _temp.val
endif
IF _feld7 == " "
_feld7.bc = _bg_color_notool
ELSE
_feld7.bc = _bg_color_tool
_feld7.fc = _letter_color
ENDIF
end_change
change(_feld8)
IF _feld8 <> _t8
_temp.val = _feld8.val
call("format25")
_feld8.val = _temp.val
endif
IF _feld8 == " "
_feld8.bc = _bg_color_notool
ELSE
_feld8.bc = _bg_color_tool
_feld8.fc = _letter_color
ENDIF
end_change
change(_feld9)
IF _feld9 <> _t9
_temp.val = _feld9.val
call("format25")
_feld9.val = _temp.val
endif
IF _feld9 == " "
_feld9.bc = _bg_color_notool
ELSE
_feld9.bc = _bg_color_tool
_feld9.fc = _letter_color
ENDIF
end_change
change(_feld10)
IF _feld10 <> _t10
_temp.val = _feld10.val
call("format25")
_feld10.val = _temp.val
endif
IF _feld10 == " "
_feld10.bc = _bg_color_notool
ELSE
_feld10.bc = _bg_color_tool
_feld10.fc = _letter_color
ENDIF
end_change
change(_feld11)
IF _feld11 <> _t11
_temp.val = _feld11.val
call("format25")
_feld11.val = _temp.val
endif
IF _feld11 == " "
_feld11.bc = _bg_color_notool
ELSE
_feld11.bc = _bg_color_tool
_feld11.fc = _letter_color
ENDIF
end_change
change(_feld12)
IF _feld12 <> _t12
_temp.val = _feld12.val
call("format25")
_feld12.val = _temp.val
endif
IF _feld12 == " "
_feld12.bc = _bg_color_notool
ELSE
_feld12.bc = _bg_color_tool
_feld12.fc = _letter_color
ENDIF
end_change
change(_feld13)
IF _feld13 <> _t13
_temp.val = _feld13.val
call("format25")
_feld13.val = _temp.val
endif
IF _feld13 == " "
_feld13.bc = _bg_color_notool
ELSE
_feld13.bc = _bg_color_tool
_feld13.fc = _letter_color
ENDIF
end_change
change(_feld14)
IF _feld14 <> _t14
_temp.val = _feld14.val
call("format25")
_feld14.val = _temp.val
endif
IF _feld14 == " "
_feld14.bc = _bg_color_notool
ELSE
_feld14.bc = _bg_color_tool
_feld14.fc = _letter_color
ENDIF
end_change
change(_feld15)
IF _feld15 <> _t15
_temp.val = _feld15.val
call("format25")
_feld15.val = _temp.val
endif
IF _feld15 == " "
_feld15.bc = _bg_color_notool
ELSE
_feld15.bc = _bg_color_tool
_feld15.fc = _letter_color
ENDIF
end_change
change(_feld16)
IF _feld16 <> _t16
_temp.val = _feld16.val
call("format25")
_feld16.val = _temp.val
endif
IF _feld16 == " "
_feld16.bc = _bg_color_notool
ELSE
_feld16.bc = _bg_color_tool
_feld16.fc = _letter_color
ENDIF
end_change
change(_feld17)
IF _feld17 <> _t17
_temp.val = _feld17.val
call("format25")
_feld17.val = _temp.val
endif
IF _feld17 == " "
_feld17.bc = _bg_color_notool
ELSE
_feld17.bc = _bg_color_tool
_feld17.fc = _letter_color
ENDIF
end_change
change(_feld18)
IF _feld18 <> _t18
_temp.val = _feld18.val
call("format25")
_feld18.val = _temp.val
endif
IF _feld18 == " "
_feld18.bc = _bg_color_notool
ELSE
_feld18.bc = _bg_color_tool
_feld18.fc = _letter_color
ENDIF
end_change
change(_feld19)
IF _feld19 <> _t19
_temp.val = _feld19.val
call("format25")
_feld19.val = _temp.val
endif
IF _feld19 == " "
_feld19.bc = _bg_color_notool
ELSE
_feld19.bc = _bg_color_tool
_feld19.fc = _letter_color
ENDIF
end_change
change(_feld20)
IF _feld20 <> _t20
_temp.val = _feld20.val
call("format25")
_feld20.val = _temp.val
endif
IF _feld20 == " "
_feld20.bc = _bg_color_notool
ELSE
_feld20.bc = _bg_color_tool
_feld20.fc = _letter_color
ENDIF
end_change
change(_feld21)
IF _feld21 <> _t21
_temp.val = _feld21.val
call("format25")
_feld21.val = _temp.val
endif
IF _feld21 == " "
_feld21.bc = _bg_color_notool
ELSE
_feld21.bc = _bg_color_tool
_feld21.fc = _letter_color
ENDIF
end_change
change(_feld22)
IF _feld22 <> _t22
_temp.val = _feld22.val
call("format25")
_feld22.val = _temp.val
endif
IF _feld22 == " "
_feld22.bc = _bg_color_notool
ELSE
_feld22.bc = _bg_color_tool
_feld22.fc = _letter_color
ENDIF
end_change
change(_feld23)
IF _feld23 <> _t23
_temp.val = _feld23.val
call("format25")
_feld23.val = _temp.val
endif
IF _feld23 == " "
_feld23.bc = _bg_color_notool
ELSE
_feld23.bc = _bg_color_tool
_feld23.fc = _letter_color
ENDIF
end_change
change(_feld24)
IF _feld24 <> _t23
_temp.val = _feld24.val
call("format25")
_feld24.val = _temp.val
endif
IF _feld24 == " "
_feld24.bc = _bg_color_notool
ELSE
_feld24.bc = _bg_color_tool
_feld24.fc = _letter_color
ENDIF
end_change
;----------------------- OUTPUT --------------------------------------
OUTPUT(Revolverliste)
"G90;*HD*"
";-------------------- REVOLVERBELEGUNG -------------------------"
";Hauptspindel: Gegenspindel: "
";T1 = "_feld1" T13 = "_feld13
";T2 = "_feld2" T14 = "_feld14
";T3 = "_feld3" T15 = "_feld15
";T4 = "_feld4" T16 = "_feld16
";T5 = "_feld5" T17 = "_feld17
";T6 = "_feld6" T18 = "_feld18
";T7 = "_feld7" T19 = "_feld19
";T8 = "_feld8" T20 = "_feld20
";T9 = "_feld9" T21 = "_feld21
";T10 = "_feld10" T22 = "_feld22
";T11 = "_feld11" T23 = "_feld23
";T12 = "_feld12" T24 = "_feld24
";---------------------------------------------------------------"
END_OUTPUT
;-----------------------PRESS-------------------------------------------
press(vs1);Uebernahme Maschine
_tnumber = 1
call("liste_lesen")
_t1 = _tdummy
_tnumber = 2
call("liste_lesen")
_t2 = _tdummy
_tnumber = 3
call("liste_lesen")
_t3 = _tdummy
_tnumber = 4
call("liste_lesen")
_t4 = _tdummy
_tnumber = 5
call("liste_lesen")
_t5 = _tdummy
_tnumber = 6
call("liste_lesen")
_t6 = _tdummy
_tnumber = 7
call("liste_lesen")
_t7 = _tdummy
_tnumber = 8
call("liste_lesen")
_t8 = _tdummy
_tnumber = 9
call("liste_lesen")
_t9 = _tdummy
_tnumber = 10
call("liste_lesen")
_t10 = _tdummy
_tnumber = 11
call("liste_lesen")
_t11 = _tdummy
_tnumber = 12
call("liste_lesen")
_t12 = _tdummy
_tnumber = 13
call("liste_lesen")
_t13 = _tdummy
_tnumber = 14
call("liste_lesen")
_t14 = _tdummy
_tnumber = 15
call("liste_lesen")
_t15 = _tdummy
_tnumber = 16
call("liste_lesen")
_t16 = _tdummy
_tnumber = 17
call("liste_lesen")
_t17 = _tdummy
_tnumber = 18
call("liste_lesen")
_t18 = _tdummy
_tnumber = 19
call("liste_lesen")
_t19 = _tdummy
_tnumber = 20
call("liste_lesen")
_t20 = _tdummy
_tnumber = 21
call("liste_lesen")
_t21 = _tdummy
_tnumber = 22
call("liste_lesen")
_t22 = _tdummy
_tnumber = 23
call("liste_lesen")
_t23 = _tdummy
_tnumber = 24
call("liste_lesen")
_t24 = _tdummy
;--- Formatieren auf 25 Zeichen
_temp = _t1
call("format25")
_t1 = _temp
_temp = _t2
call("format25")
_t2 = _temp
_temp = _t3
call("format25")
_t3 = _temp
_temp = _t4
call("format25")
_t4 = _temp
_temp = _t5
call("format25")
_t5 = _temp
_temp = _t6
call("format25")
_t6 = _temp
_temp = _t7
call("format25")
_t7 = _temp
_temp = _t8
call("format25")
_t8 = _temp
_temp = _t9
call("format25")
_t9 = _temp
_temp = _t10
call("format25")
_t10 = _temp
_temp = _t11
call("format25")
_t11 = _temp
_temp = _t12
call("format25")
_t12 = _temp
_temp = _t13
call("format25")
_t13 = _temp
_temp = _t14
call("format25")
_t14 = _temp
_temp = _t15
call("format25")
_t15 = _temp
_temp = _t16
call("format25")
_t16 = _temp
_temp = _t17
call("format25")
_t17 = _temp
_temp = _t18
call("format25")
_t18 = _temp
_temp = _t19
call("format25")
_t19 = _temp
_temp = _t20
call("format25")
_t20 = _temp
_temp = _t21
call("format25")
_t21 = _temp
_temp = _t22
call("format25")
_t22 = _temp
_temp = _t23
call("format25")
_t23 = _temp
_temp = _t24
call("format25")
_t24 = _temp
if _act_tool_p == 1
_temp = _act_tool_name
call("format25")
_t1 = _temp
endif
if _act_tool_p == 2
_temp = _act_tool_name
call("format25")
_t2 = _temp
endif
if _act_tool_p == 3
_temp = _act_tool_name
call("format25")
_t3 = _temp
endif
if _act_tool_p == 4
_temp = _act_tool_name
call("format25")
_t4 = _temp
endif
if _act_tool_p == 5
_temp = _act_tool_name
call("format25")
_t5 = _temp
endif
if _act_tool_p == 6
_temp = _act_tool_name
call("format25")
_t6 = _temp
endif
if _act_tool_p == 7
_temp = _act_tool_name
call("format25")
_t7 = _temp
endif
if _act_tool_p == 8
_temp = _act_tool_name
call("format25")
_t8 = _temp
endif
if _act_tool_p == 9
_temp = _act_tool_name
call("format25")
_t9 = _temp
endif
if _act_tool_p == 10
_temp = _act_tool_name
call("format25")
_t10 = _temp
endif
if _act_tool_p == 11
_temp = _act_tool_name
call("format25")
_t11 = _temp
endif
if _act_tool_p == 12
_temp = _act_tool_name
call("format25")
_t12 = _temp
endif
if _act_tool_p == 13
_temp = _act_tool_name
call("format25")
_t13 = _temp
endif
if _act_tool_p == 14
_temp = _act_tool_name
call("format25")
_t14 = _temp
endif
if _act_tool_p == 15
_temp = _act_tool_name
call("format25")
_t15 = _temp
endif
if _act_tool_p == 16
_temp = _act_tool_name
call("format25")
_t16 = _temp
endif
if _act_tool_p == 17
_temp = _act_tool_name
call("format25")
_t17 = _temp
endif
if _act_tool_p == 18
_temp = _act_tool_name
call("format25")
_t18 = _temp
endif
if _act_tool_p == 19
_temp = _act_tool_name
call("format25")
_t19 = _temp
endif
if _act_tool_p == 20
_temp = _act_tool_name
call("format25")
_t20 = _temp
endif
if _act_tool_p == 21
_temp = _act_tool_name
call("format25")
_t21 = _temp
endif
if _act_tool_p == 22
_temp = _act_tool_name
call("format25")
_t22 = _temp
endif
if _act_tool_p == 23
_temp = _act_tool_name
call("format25")
_t23 = _temp
endif
if _act_tool_p == 24
_temp = _act_tool_name
call("format25")
_t24 = _temp
endif
_feld1.val = _t1.val
_feld2.val = _t2.val
_feld3.val = _t3.val
_feld4.val = _t4.val
_feld5.val = _t5.val
_feld6.val = _t6.val
_feld7.val = _t7.val
_feld8.val = _t8.val
_feld9.val = _t9.val
_feld10.val = _t10.val
_feld11.val = _t11.val
_feld12.val = _t12.val
_feld13.val = _t13.val
_feld14.val = _t14.val
_feld15.val = _t15.val
_feld16.val = _t16.val
_feld17.val = _t17.val
_feld18.val = _t18.val
_feld19.val = _t19.val
_feld20.val = _t20.val
_feld21.val = _t21.val
_feld22.val = _t22.val
_feld23.val = _t23.val
_feld24.val = _t24.val
end_press
press(vs2)
;-------------- Liste Löschen ------------------
_feld1 = " "
_feld2 = " "
_feld3 = " "
_feld4 = " "
_feld5 = " "
_feld6 = " "
_feld7 = " "
_feld8 = " "
_feld9 = " "
_feld10 = " "
_feld11 = " "
_feld12 = " "
_feld13 = " "
_feld14 = " "
_feld15 = " "
_feld16 = " "
_feld17 = " "
_feld18 = " "
_feld19 = " "
_feld20 = " "
_feld21 = " "
_feld22 = " "
_feld23 = " "
_feld24 = " "
end_press
press(vs7);Cancel
exit
end_press
press(vs8);OK
GC("Revolverliste")
exit
end_press
press(sl)
if FOC == "_feld1"
exit
endif
if FOC == "_feld2"
exit
endif
if FOC == "_feld3"
exit
endif
if FOC == "_feld4"
exit
endif
if FOC == "_feld5"
exit
endif
if FOC == "_feld6"
exit
endif
if FOC == "_feld7"
exit
endif
if FOC == "_feld8"
exit
endif
if FOC == "_feld9"
exit
endif
if FOC == "_feld10"
exit
endif
if FOC == "_feld11"
exit
endif
if FOC == "_feld12"
exit
endif
end_press
//end
//b(sub1)
sub(liste_lesen)
_tnumber_exist.val = RNP("$TC_MPP6[1,"<<_tnumber<<"]");tnr platz auslesen
DEBUG(" _tnumber_exist = " << _tnumber_exist)
IF _tnumber_exist
_tdummy.val = RNP("$TC_TP2["<<_tnumber_exist<<"]");tnamen auslesen
DEBUG("IF _tnumber_exist, _tdummy: " << _tdummy)
ELSE
_tdummy.val = "";dummy ausgeben
ENDIF
end_sub
sub(format25)
_strlen = LEN(_temp)
IF _strlen == 0
_temp.val = " " ;25 Zeichen Leerstring
ELSE
IF _strlen == 1
_temp.val = _temp<<" "
ELSE
IF _strlen == 2
_temp.val = _temp<<" "
ELSE
IF _strlen == 3
_temp.val = _temp<<" "
ELSE
IF _strlen == 4
_temp.val = _temp<<" "
ELSE
IF _strlen == 5
_temp.val = _temp<<" "
ELSE
IF _strlen == 6
_temp.val = _temp<<" "
ELSE
IF _strlen == 7
_temp.val = _temp<<" "
ELSE
IF _strlen == 8
_temp.val = _temp<<" "
ELSE
IF _strlen == 9
_temp.val = _temp<<" "
ELSE
IF _strlen == 10
_temp.val = _temp<<" "
ELSE
IF _strlen == 11
_temp.val = _temp<<" "
ELSE
IF _strlen == 12
_temp.val = _temp<<" "
ELSE
IF _strlen == 13
_temp.val = _temp<<" "
ELSE
IF _strlen == 14
_temp.val = _temp<<" "
ELSE
IF _strlen == 15
_temp.val = _temp<<" "
ELSE
IF _strlen == 16
_temp.val = _temp<<" "
ELSE
IF _strlen == 17
_temp.val = _temp<<" "
ELSE
IF _strlen == 18
_temp.val = _temp<<" "
ELSE
IF _strlen == 19
_temp.val = _temp<<" "
ELSE
IF _strlen == 20
_temp.val = _temp<<" "
ELSE
IF _strlen == 21
_temp.val = _temp<<" "
ELSE
IF _strlen == 22
_temp.val = _temp<<" "
ELSE
IF _strlen == 23
_temp.val = _temp<<" "
ELSE
IF _strlen == 24
_temp.val = _temp<<" ";01 Zeichen Leerstring
ELSE
IF _strlen >= 25
_temp.val = LEFT(_temp,25);ueberzaehlige Zeichen abschneiden
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
END_SUB
//end
;- Felder definieren
def _feld1 = (s///"Werkzeug 1","T1"/wr2///10,10,30/45,10,190,15),
_feld13 = (s///"Werkzeug 13","T13"/wr2,al1///290,10,30/350,10,190,15)
def _feld2 = (s///"Werkzeug 2","T2"/wr2///10,35,30/45,35,190,15),
_feld14 = (s///"Werkzeug 14","T14"/wr2,al1///290,35,30/350,35,190,15)
def _feld3 = (s///"Werkzeug 3","T3"/wr2///10,60,30/45,60,190,15),
_feld15 = (s///"Werkzeug 15","T15"/wr2,al1///290,60,30/350,60,190,15)
def _feld4 = (s///"Werkzeug 4","T4"/wr2///10,85,30/45,85,190,15),
_feld16 = (s///"Werkzeug 16","T16"/wr2,al1///290,85,30/350,85,190,15)
def _feld5 = (s///"Werkzeug 5","T5"/wr2///10,110,30/45,110,190,15),
_feld17 = (s///"Werkzeug 17","T17"/wr2,al1///290,110,30/350,110,190,15)
def _feld6 = (s///"Werkzeug 6","T6"/wr2///10,135,30/45,135,190,15),
_feld18 = (s///"Werkzeug 18","T18"/wr2,al1///290,135,30/350,135,190,15)
def _feld7 = (s///"Werkzeug 7","T7"/wr2///10,160,30/45,160,190,15),
_feld19 = (s///"Werkzeug 19","T19"/wr2,al1///290,160,30/350,160,190,15)
def _feld8 = (s///"Werkzeug 8","T8"/wr2///10,185,30/45,185,190,15),
_feld20 = (s///"Werkzeug 20","T20"/wr2,al1///290,185,30/350,185,190,15)
def _feld9 = (s///"Werkzeug 9","T9"/wr2///10,210,30/45,210,190,15),
_feld21 = (s///"Werkzeug 21","T21"/wr2,al1///290,210,30/350,210,190,15)
def _feld10 = (s///"Werkzeug 10","T10"/wr2///10,235,30/45,235,190,15),
_feld22 = (s///"Werkzeug 22","T22"/wr2,al1///290,235,30/350,235,190,15)
def _feld11 = (s///"Werkzeug 11","T11"/wr2///10,260,30/45,260,190,15),
_feld23 = (s///"Werkzeug 23","T23"/wr2,al1///290,260,30/350,260,190,15)
def _feld12 = (s///"Werkzeug 12","T12"/wr2///10,285,30/45,285,190,15),
_feld24 = (s///"Werkzeug 24","T24"/wr2,al1///290,285,30/350,285,190,15)
;-------------------------Hilfsvariablen------------------------------
def _strlen
def _tnumber
def _tnumber_exist
def _tdummy
def _temp
def _act_tool_nr
def _act_tool_p
def _act_tool_name
def _bg_color_notool
def _bg_color_tool
def _letter_color
def _t1
def _t2
def _t3
def _t4
def _t5
def _t6
def _t7
def _t8
def _t9
def _t10
def _t11
def _t12
def _t13
def _t14
def _t15
def _t16
def _t17
def _t18
def _t19
def _t20
def _t21
def _t22
def _t23
def _t24
;------------------------Softkeys--------------------------------------
vs1 = ("Uebernahme%nMaschine")
vs2 = ("Liste%nloeschen")
vs7 = ("\\sk_cancel.png")
vs8 = ("\\sk_ok.png")
;----------------------- LOAD / UNLOAD ---------------------------------
load
_act_tool_nr = RNP("$P_TOOLNO");aktive Werkzeugnummer
_act_tool_p = RNP("$A_MYMLN["<<_act_tool_nr<<"]");aktiver Magazinplatz
_act_tool_name = RNP("$TC_TP2["<<_act_tool_nr<<"]")
_feld1.wr = 5
_feld2.wr = 5
_feld3.wr = 5
_feld4.wr = 5
_feld5.wr = 5
_feld6.wr = 5
_feld7.wr = 5
_feld8.wr = 5
_feld9.wr = 5
_feld10.wr = 5
_feld11.wr = 5
_feld12.wr = 5
_feld13.wr = 5
_feld14.wr = 5
_feld15.wr = 5
_feld16.wr = 5
_feld17.wr = 5
_feld18.wr = 5
_feld19.wr = 5
_feld20.wr = 5
_feld21.wr = 5
_feld22.wr = 5
_feld23.wr = 5
_feld24.wr = 5
LB("sub1")
_bg_color_notool = 4
_bg_color_tool = 3
_letter_color = 10
IF _feld1 == " "
_feld1.bc = _bg_color_notool
ELSE
_feld1.bc = 2
_feld1.fc = 1
ENDIF
IF _feld2 == " "
_feld2.bc = _bg_color_notool
ELSE
_feld2.bc = 2
_feld2.fc = 1
ENDIF
IF _feld3 == " "
_feld3.bc = _bg_color_notool
ELSE
_feld3.bc = 2
_feld3.fc = 1
ENDIF
IF _feld4 == " "
_feld4.bc = _bg_color_notool
ELSE
_feld4.bc = 2
_feld4.fc = 1
ENDIF
IF _feld5 == " "
_feld5.bc = _bg_color_notool
ELSE
_feld5.bc = 2
_feld5.fc = 1
ENDIF
IF _feld6 == " "
_feld6.bc = _bg_color_notool
ELSE
_feld6.bc = 2
_feld6.fc = 1
ENDIF
IF _feld7 == " "
_feld7.bc = _bg_color_notool
ELSE
_feld7.bc = 2
_feld7.fc = 1
ENDIF
IF _feld8 == " "
_feld8.bc = _bg_color_notool
ELSE
_feld8.bc = 2
_feld8.fc = 1
ENDIF
IF _feld9 == " "
_feld9.bc = _bg_color_notool
ELSE
_feld9.bc = 2
_feld9.fc = 1
ENDIF
IF _feld10 == " "
_feld10.bc = _bg_color_notool
ELSE
_feld10.bc = 2
_feld10.fc = 1
ENDIF
IF _feld11 == " "
_feld11.bc = _bg_color_notool
ELSE
_feld11.bc = 2
_feld11.fc = 1
ENDIF
IF _feld12 == " "
_feld12.bc = _bg_color_notool
ELSE
_feld12.bc = 2
_feld12.fc = 1
ENDIF
IF _feld13 == " "
_feld13.bc = _bg_color_notool
ELSE
_feld13.bc = 2
_feld13.fc = 1
ENDIF
IF _feld14 == " "
_feld14.bc = _bg_color_notool
ELSE
_feld14.bc = 2
_feld14.fc = 1
ENDIF
IF _feld15 == " "
_feld15.bc = _bg_color_notool
ELSE
_feld15.bc = 2
_feld15.fc = 1
ENDIF
IF _feld16 == " "
_feld16.bc = _bg_color_notool
ELSE
_feld16.bc = 2
_feld16.fc = 1
ENDIF
IF _feld17 == " "
_feld17.bc = _bg_color_notool
ELSE
_feld17.bc = 2
_feld17.fc = 1
ENDIF
IF _feld18 == " "
_feld18.bc = _bg_color_notool
ELSE
_feld18.bc = 2
_feld18.fc = 1
ENDIF
IF _feld19 == " "
_feld19.bc = _bg_color_notool
ELSE
_feld19.bc = 2
_feld19.fc = 1
ENDIF
IF _feld20 == " "
_feld20.bc = _bg_color_notool
ELSE
_feld20.bc = 2
_feld20.fc = 1
ENDIF
IF _feld21 == " "
_feld21.bc = _bg_color_notool
ELSE
_feld21.bc = 2
_feld21.fc = 1
ENDIF
IF _feld22 == " "
_feld22.bc = _bg_color_notool
ELSE
_feld22.bc = 2
_feld22.fc = 1
ENDIF
IF _feld23 == " "
_feld23.bc = _bg_color_notool
ELSE
_feld23.bc = 2
_feld23.fc = 1
ENDIF
IF _feld24 == " "
_feld24.bc = _bg_color_notool
ELSE
_feld24.bc = 2
_feld24.fc = 1
ENDIF
end_load
unload
_t1 = ""
_t2 = ""
_t3 = ""
_t4 = ""
_t5 = ""
_t6 = ""
_t7 = ""
_t8 = ""
_t9 = ""
_t10 = ""
_t11 = ""
_t12 = ""
_t13 = ""
_t14 = ""
_t15 = ""
_t16 = ""
_t17 = ""
_t18 = ""
_t19 = ""
_t20 = ""
_t21 = ""
_t22 = ""
_t23 = ""
_t24 = ""
end_unload
;-----------------------CHANGE-----------------------------------------
change(_feld1)
IF _feld1 <> _t1
_temp.val = _feld1.val
call("format25")
_feld1.val = _temp.val
endif
IF _feld1 == " "
_feld1.bc = _bg_color_notool
ELSE
_feld1.bc = _bg_color_tool
_feld1.fc = _letter_color
ENDIF
end_change
change(_feld2)
IF _feld2 <> _t2
_temp.val = _feld2.val
call("format25")
_feld2.val = _temp.val
endif
IF _feld2 == " "
_feld2.bc = _bg_color_notool
ELSE
_feld2.bc = _bg_color_tool
_feld2.fc = _letter_color
ENDIF
end_change
change(_feld3)
IF _feld3 <> _t3
_temp.val = _feld3.val
call("format25")
_feld3.val = _temp.val
endif
IF _feld3 == " "
_feld3.bc = _bg_color_notool
ELSE
_feld3.bc = _bg_color_tool
_feld3.fc = _letter_color
ENDIF
end_change
change(_feld4)
IF _feld4 <> _t4
_temp.val = _feld4.val
call("format25")
_feld4.val = _temp.val
endif
IF _feld4 == " "
_feld4.bc = _bg_color_notool
ELSE
_feld4.bc = _bg_color_tool
_feld4.fc = _letter_color
ENDIF
end_change
change(_feld5)
IF _feld5 <> _t5
_temp.val = _feld5.val
call("format25")
_feld5.val = _temp.val
endif
IF _feld5 == " "
_feld5.bc = _bg_color_notool
ELSE
_feld5.bc = _bg_color_tool
_feld5.fc = _letter_color
ENDIF
end_change
change(_feld6)
IF _feld6 <> _t6
_temp.val = _feld6.val
call("format25")
_feld6.val = _temp.val
endif
IF _feld6 == " "
_feld6.bc = _bg_color_notool
ELSE
_feld6.bc = _bg_color_tool
_feld6.fc = _letter_color
ENDIF
end_change
change(_feld7)
IF _feld7 <> _t7
_temp.val = _feld7.val
call("format25")
_feld7.val = _temp.val
endif
IF _feld7 == " "
_feld7.bc = _bg_color_notool
ELSE
_feld7.bc = _bg_color_tool
_feld7.fc = _letter_color
ENDIF
end_change
change(_feld8)
IF _feld8 <> _t8
_temp.val = _feld8.val
call("format25")
_feld8.val = _temp.val
endif
IF _feld8 == " "
_feld8.bc = _bg_color_notool
ELSE
_feld8.bc = _bg_color_tool
_feld8.fc = _letter_color
ENDIF
end_change
change(_feld9)
IF _feld9 <> _t9
_temp.val = _feld9.val
call("format25")
_feld9.val = _temp.val
endif
IF _feld9 == " "
_feld9.bc = _bg_color_notool
ELSE
_feld9.bc = _bg_color_tool
_feld9.fc = _letter_color
ENDIF
end_change
change(_feld10)
IF _feld10 <> _t10
_temp.val = _feld10.val
call("format25")
_feld10.val = _temp.val
endif
IF _feld10 == " "
_feld10.bc = _bg_color_notool
ELSE
_feld10.bc = _bg_color_tool
_feld10.fc = _letter_color
ENDIF
end_change
change(_feld11)
IF _feld11 <> _t11
_temp.val = _feld11.val
call("format25")
_feld11.val = _temp.val
endif
IF _feld11 == " "
_feld11.bc = _bg_color_notool
ELSE
_feld11.bc = _bg_color_tool
_feld11.fc = _letter_color
ENDIF
end_change
change(_feld12)
IF _feld12 <> _t12
_temp.val = _feld12.val
call("format25")
_feld12.val = _temp.val
endif
IF _feld12 == " "
_feld12.bc = _bg_color_notool
ELSE
_feld12.bc = _bg_color_tool
_feld12.fc = _letter_color
ENDIF
end_change
change(_feld13)
IF _feld13 <> _t13
_temp.val = _feld13.val
call("format25")
_feld13.val = _temp.val
endif
IF _feld13 == " "
_feld13.bc = _bg_color_notool
ELSE
_feld13.bc = _bg_color_tool
_feld13.fc = _letter_color
ENDIF
end_change
change(_feld14)
IF _feld14 <> _t14
_temp.val = _feld14.val
call("format25")
_feld14.val = _temp.val
endif
IF _feld14 == " "
_feld14.bc = _bg_color_notool
ELSE
_feld14.bc = _bg_color_tool
_feld14.fc = _letter_color
ENDIF
end_change
change(_feld15)
IF _feld15 <> _t15
_temp.val = _feld15.val
call("format25")
_feld15.val = _temp.val
endif
IF _feld15 == " "
_feld15.bc = _bg_color_notool
ELSE
_feld15.bc = _bg_color_tool
_feld15.fc = _letter_color
ENDIF
end_change
change(_feld16)
IF _feld16 <> _t16
_temp.val = _feld16.val
call("format25")
_feld16.val = _temp.val
endif
IF _feld16 == " "
_feld16.bc = _bg_color_notool
ELSE
_feld16.bc = _bg_color_tool
_feld16.fc = _letter_color
ENDIF
end_change
change(_feld17)
IF _feld17 <> _t17
_temp.val = _feld17.val
call("format25")
_feld17.val = _temp.val
endif
IF _feld17 == " "
_feld17.bc = _bg_color_notool
ELSE
_feld17.bc = _bg_color_tool
_feld17.fc = _letter_color
ENDIF
end_change
change(_feld18)
IF _feld18 <> _t18
_temp.val = _feld18.val
call("format25")
_feld18.val = _temp.val
endif
IF _feld18 == " "
_feld18.bc = _bg_color_notool
ELSE
_feld18.bc = _bg_color_tool
_feld18.fc = _letter_color
ENDIF
end_change
change(_feld19)
IF _feld19 <> _t19
_temp.val = _feld19.val
call("format25")
_feld19.val = _temp.val
endif
IF _feld19 == " "
_feld19.bc = _bg_color_notool
ELSE
_feld19.bc = _bg_color_tool
_feld19.fc = _letter_color
ENDIF
end_change
change(_feld20)
IF _feld20 <> _t20
_temp.val = _feld20.val
call("format25")
_feld20.val = _temp.val
endif
IF _feld20 == " "
_feld20.bc = _bg_color_notool
ELSE
_feld20.bc = _bg_color_tool
_feld20.fc = _letter_color
ENDIF
end_change
change(_feld21)
IF _feld21 <> _t21
_temp.val = _feld21.val
call("format25")
_feld21.val = _temp.val
endif
IF _feld21 == " "
_feld21.bc = _bg_color_notool
ELSE
_feld21.bc = _bg_color_tool
_feld21.fc = _letter_color
ENDIF
end_change
change(_feld22)
IF _feld22 <> _t22
_temp.val = _feld22.val
call("format25")
_feld22.val = _temp.val
endif
IF _feld22 == " "
_feld22.bc = _bg_color_notool
ELSE
_feld22.bc = _bg_color_tool
_feld22.fc = _letter_color
ENDIF
end_change
change(_feld23)
IF _feld23 <> _t23
_temp.val = _feld23.val
call("format25")
_feld23.val = _temp.val
endif
IF _feld23 == " "
_feld23.bc = _bg_color_notool
ELSE
_feld23.bc = _bg_color_tool
_feld23.fc = _letter_color
ENDIF
end_change
change(_feld24)
IF _feld24 <> _t23
_temp.val = _feld24.val
call("format25")
_feld24.val = _temp.val
endif
IF _feld24 == " "
_feld24.bc = _bg_color_notool
ELSE
_feld24.bc = _bg_color_tool
_feld24.fc = _letter_color
ENDIF
end_change
;----------------------- OUTPUT --------------------------------------
OUTPUT(Revolverliste)
"G90;*HD*"
";-------------------- REVOLVERBELEGUNG -------------------------"
";Hauptspindel: Gegenspindel: "
";T1 = "_feld1" T13 = "_feld13
";T2 = "_feld2" T14 = "_feld14
";T3 = "_feld3" T15 = "_feld15
";T4 = "_feld4" T16 = "_feld16
";T5 = "_feld5" T17 = "_feld17
";T6 = "_feld6" T18 = "_feld18
";T7 = "_feld7" T19 = "_feld19
";T8 = "_feld8" T20 = "_feld20
";T9 = "_feld9" T21 = "_feld21
";T10 = "_feld10" T22 = "_feld22
";T11 = "_feld11" T23 = "_feld23
";T12 = "_feld12" T24 = "_feld24
";---------------------------------------------------------------"
END_OUTPUT
;-----------------------PRESS-------------------------------------------
press(vs1);Uebernahme Maschine
_tnumber = 1
call("liste_lesen")
_t1 = _tdummy
_tnumber = 2
call("liste_lesen")
_t2 = _tdummy
_tnumber = 3
call("liste_lesen")
_t3 = _tdummy
_tnumber = 4
call("liste_lesen")
_t4 = _tdummy
_tnumber = 5
call("liste_lesen")
_t5 = _tdummy
_tnumber = 6
call("liste_lesen")
_t6 = _tdummy
_tnumber = 7
call("liste_lesen")
_t7 = _tdummy
_tnumber = 8
call("liste_lesen")
_t8 = _tdummy
_tnumber = 9
call("liste_lesen")
_t9 = _tdummy
_tnumber = 10
call("liste_lesen")
_t10 = _tdummy
_tnumber = 11
call("liste_lesen")
_t11 = _tdummy
_tnumber = 12
call("liste_lesen")
_t12 = _tdummy
_tnumber = 13
call("liste_lesen")
_t13 = _tdummy
_tnumber = 14
call("liste_lesen")
_t14 = _tdummy
_tnumber = 15
call("liste_lesen")
_t15 = _tdummy
_tnumber = 16
call("liste_lesen")
_t16 = _tdummy
_tnumber = 17
call("liste_lesen")
_t17 = _tdummy
_tnumber = 18
call("liste_lesen")
_t18 = _tdummy
_tnumber = 19
call("liste_lesen")
_t19 = _tdummy
_tnumber = 20
call("liste_lesen")
_t20 = _tdummy
_tnumber = 21
call("liste_lesen")
_t21 = _tdummy
_tnumber = 22
call("liste_lesen")
_t22 = _tdummy
_tnumber = 23
call("liste_lesen")
_t23 = _tdummy
_tnumber = 24
call("liste_lesen")
_t24 = _tdummy
;--- Formatieren auf 25 Zeichen
_temp = _t1
call("format25")
_t1 = _temp
_temp = _t2
call("format25")
_t2 = _temp
_temp = _t3
call("format25")
_t3 = _temp
_temp = _t4
call("format25")
_t4 = _temp
_temp = _t5
call("format25")
_t5 = _temp
_temp = _t6
call("format25")
_t6 = _temp
_temp = _t7
call("format25")
_t7 = _temp
_temp = _t8
call("format25")
_t8 = _temp
_temp = _t9
call("format25")
_t9 = _temp
_temp = _t10
call("format25")
_t10 = _temp
_temp = _t11
call("format25")
_t11 = _temp
_temp = _t12
call("format25")
_t12 = _temp
_temp = _t13
call("format25")
_t13 = _temp
_temp = _t14
call("format25")
_t14 = _temp
_temp = _t15
call("format25")
_t15 = _temp
_temp = _t16
call("format25")
_t16 = _temp
_temp = _t17
call("format25")
_t17 = _temp
_temp = _t18
call("format25")
_t18 = _temp
_temp = _t19
call("format25")
_t19 = _temp
_temp = _t20
call("format25")
_t20 = _temp
_temp = _t21
call("format25")
_t21 = _temp
_temp = _t22
call("format25")
_t22 = _temp
_temp = _t23
call("format25")
_t23 = _temp
_temp = _t24
call("format25")
_t24 = _temp
if _act_tool_p == 1
_temp = _act_tool_name
call("format25")
_t1 = _temp
endif
if _act_tool_p == 2
_temp = _act_tool_name
call("format25")
_t2 = _temp
endif
if _act_tool_p == 3
_temp = _act_tool_name
call("format25")
_t3 = _temp
endif
if _act_tool_p == 4
_temp = _act_tool_name
call("format25")
_t4 = _temp
endif
if _act_tool_p == 5
_temp = _act_tool_name
call("format25")
_t5 = _temp
endif
if _act_tool_p == 6
_temp = _act_tool_name
call("format25")
_t6 = _temp
endif
if _act_tool_p == 7
_temp = _act_tool_name
call("format25")
_t7 = _temp
endif
if _act_tool_p == 8
_temp = _act_tool_name
call("format25")
_t8 = _temp
endif
if _act_tool_p == 9
_temp = _act_tool_name
call("format25")
_t9 = _temp
endif
if _act_tool_p == 10
_temp = _act_tool_name
call("format25")
_t10 = _temp
endif
if _act_tool_p == 11
_temp = _act_tool_name
call("format25")
_t11 = _temp
endif
if _act_tool_p == 12
_temp = _act_tool_name
call("format25")
_t12 = _temp
endif
if _act_tool_p == 13
_temp = _act_tool_name
call("format25")
_t13 = _temp
endif
if _act_tool_p == 14
_temp = _act_tool_name
call("format25")
_t14 = _temp
endif
if _act_tool_p == 15
_temp = _act_tool_name
call("format25")
_t15 = _temp
endif
if _act_tool_p == 16
_temp = _act_tool_name
call("format25")
_t16 = _temp
endif
if _act_tool_p == 17
_temp = _act_tool_name
call("format25")
_t17 = _temp
endif
if _act_tool_p == 18
_temp = _act_tool_name
call("format25")
_t18 = _temp
endif
if _act_tool_p == 19
_temp = _act_tool_name
call("format25")
_t19 = _temp
endif
if _act_tool_p == 20
_temp = _act_tool_name
call("format25")
_t20 = _temp
endif
if _act_tool_p == 21
_temp = _act_tool_name
call("format25")
_t21 = _temp
endif
if _act_tool_p == 22
_temp = _act_tool_name
call("format25")
_t22 = _temp
endif
if _act_tool_p == 23
_temp = _act_tool_name
call("format25")
_t23 = _temp
endif
if _act_tool_p == 24
_temp = _act_tool_name
call("format25")
_t24 = _temp
endif
_feld1.val = _t1.val
_feld2.val = _t2.val
_feld3.val = _t3.val
_feld4.val = _t4.val
_feld5.val = _t5.val
_feld6.val = _t6.val
_feld7.val = _t7.val
_feld8.val = _t8.val
_feld9.val = _t9.val
_feld10.val = _t10.val
_feld11.val = _t11.val
_feld12.val = _t12.val
_feld13.val = _t13.val
_feld14.val = _t14.val
_feld15.val = _t15.val
_feld16.val = _t16.val
_feld17.val = _t17.val
_feld18.val = _t18.val
_feld19.val = _t19.val
_feld20.val = _t20.val
_feld21.val = _t21.val
_feld22.val = _t22.val
_feld23.val = _t23.val
_feld24.val = _t24.val
end_press
press(vs2)
;-------------- Liste Löschen ------------------
_feld1 = " "
_feld2 = " "
_feld3 = " "
_feld4 = " "
_feld5 = " "
_feld6 = " "
_feld7 = " "
_feld8 = " "
_feld9 = " "
_feld10 = " "
_feld11 = " "
_feld12 = " "
_feld13 = " "
_feld14 = " "
_feld15 = " "
_feld16 = " "
_feld17 = " "
_feld18 = " "
_feld19 = " "
_feld20 = " "
_feld21 = " "
_feld22 = " "
_feld23 = " "
_feld24 = " "
end_press
press(vs7);Cancel
exit
end_press
press(vs8);OK
GC("Revolverliste")
exit
end_press
press(sl)
if FOC == "_feld1"
exit
endif
if FOC == "_feld2"
exit
endif
if FOC == "_feld3"
exit
endif
if FOC == "_feld4"
exit
endif
if FOC == "_feld5"
exit
endif
if FOC == "_feld6"
exit
endif
if FOC == "_feld7"
exit
endif
if FOC == "_feld8"
exit
endif
if FOC == "_feld9"
exit
endif
if FOC == "_feld10"
exit
endif
if FOC == "_feld11"
exit
endif
if FOC == "_feld12"
exit
endif
end_press
//end
//b(sub1)
sub(liste_lesen)
_tnumber_exist.val = RNP("$TC_MPP6[1,"<<_tnumber<<"]");tnr platz auslesen
DEBUG(" _tnumber_exist = " << _tnumber_exist)
IF _tnumber_exist
_tdummy.val = RNP("$TC_TP2["<<_tnumber_exist<<"]");tnamen auslesen
DEBUG("IF _tnumber_exist, _tdummy: " << _tdummy)
ELSE
_tdummy.val = "";dummy ausgeben
ENDIF
end_sub
sub(format25)
_strlen = LEN(_temp)
IF _strlen == 0
_temp.val = " " ;25 Zeichen Leerstring
ELSE
IF _strlen == 1
_temp.val = _temp<<" "
ELSE
IF _strlen == 2
_temp.val = _temp<<" "
ELSE
IF _strlen == 3
_temp.val = _temp<<" "
ELSE
IF _strlen == 4
_temp.val = _temp<<" "
ELSE
IF _strlen == 5
_temp.val = _temp<<" "
ELSE
IF _strlen == 6
_temp.val = _temp<<" "
ELSE
IF _strlen == 7
_temp.val = _temp<<" "
ELSE
IF _strlen == 8
_temp.val = _temp<<" "
ELSE
IF _strlen == 9
_temp.val = _temp<<" "
ELSE
IF _strlen == 10
_temp.val = _temp<<" "
ELSE
IF _strlen == 11
_temp.val = _temp<<" "
ELSE
IF _strlen == 12
_temp.val = _temp<<" "
ELSE
IF _strlen == 13
_temp.val = _temp<<" "
ELSE
IF _strlen == 14
_temp.val = _temp<<" "
ELSE
IF _strlen == 15
_temp.val = _temp<<" "
ELSE
IF _strlen == 16
_temp.val = _temp<<" "
ELSE
IF _strlen == 17
_temp.val = _temp<<" "
ELSE
IF _strlen == 18
_temp.val = _temp<<" "
ELSE
IF _strlen == 19
_temp.val = _temp<<" "
ELSE
IF _strlen == 20
_temp.val = _temp<<" "
ELSE
IF _strlen == 21
_temp.val = _temp<<" "
ELSE
IF _strlen == 22
_temp.val = _temp<<" "
ELSE
IF _strlen == 23
_temp.val = _temp<<" "
ELSE
IF _strlen == 24
_temp.val = _temp<<" ";01 Zeichen Leerstring
ELSE
IF _strlen >= 25
_temp.val = LEFT(_temp,25);ueberzaehlige Zeichen abschneiden
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
END_SUB
//end
27.11.2015, 09:41 Uhr
Hallo,
ich habe den selben Problem bei mir auch. Ich konnte keine Ursache finden.
Hat das bei dir mit den Werkzeugliste Fenster geklappt? Ich hätte da eine Idee die ich nur nächste Woche testen kann.
ich habe den selben Problem bei mir auch. Ich konnte keine Ursache finden.
Hat das bei dir mit den Werkzeugliste Fenster geklappt? Ich hätte da eine Idee die ich nur nächste Woche testen kann.
27.11.2015, 11:30 Uhr
Hallo,
ich habe den selben Problem bei mir auch. Ich konnte keine Ursache finden.
Hat das bei dir mit den Werkzeugliste Fenster geklappt? Ich hätte da eine Idee die ich nur nächste Woche testen kann.
ich habe den selben Problem bei mir auch. Ich konnte keine Ursache finden.
Hat das bei dir mit den Werkzeugliste Fenster geklappt? Ich hätte da eine Idee die ich nur nächste Woche testen kann.
Leider nicht, da bin ich auch noch nicht hintergekommen.
Kennst du vielleicht einen OEM-Zyklus, wo man spicken könnte?
27.11.2015, 19:30 Uhr
Leider nicht, da bin ich auch noch nicht hintergekommen.
Kennst du vielleicht einen OEM-Zyklus, wo man spicken könnte?
Kennst du vielleicht einen OEM-Zyklus, wo man spicken könnte?
Ladet euch doch mal die SinuTrain herunter, da sieht man vieles:
unter folgendem Verzeichnis findet man diverse dll Dateien und zugehörige xml Dateien:
C:\Siemens\SinuTrain\SINUMERIK CNC-SW 840D sl 4.7 SP1\hmi\siemens\sinumerik\hmi\appl
es gibt auch diverse Masken:
C:\Siemens\SinuTrain\SINUMERIK CNC-SW 840D sl 4.7 SP1\hmi\siemens\sinumerik\hmi\proj
und ein Beispiel mit Kommentaren für den an den ShopMill Positionen ankoppelnden Bohrzyklus ist auch vorhanden:
C:\Siemens\SinuTrain\SINUMERIK CNC-SW 840D sl 4.7 SP1\hmi\siemens\sinumerik\hmi\template\easyscreen\standard\milling\deu\bohren
Leider habe ich momentan keine Zeit das ganze zu analysieren, dort findet man aber bestimmt ein paar wertvolle Tricks.
Der Beitrag wurde von DMC635V bearbeitet: 27.11.2015, 19:31 Uhr
--------------------
Freundliche Grüsse
DMC635V
DMC635V
28.11.2015, 11:17 Uhr
Leider nicht, da bin ich auch noch nicht hintergekommen.
Kennst du vielleicht einen OEM-Zyklus, wo man spicken könnte?
Kennst du vielleicht einen OEM-Zyklus, wo man spicken könnte?
Ja es gibt ein Messzyklus von DMG L771 mit internen Werkzeugauswahl.
Hier ein ausschnitt:
QUOTE
press(vs1) ; Werkzeugauswahl
reg[12] = "name_l771"
tool_name_result = " "
wnp("i_easyscreen_str[0]","selectTool") ; call mask to selecting the tool name
tool_name_search_active = 1
end_press
reg[12] = "name_l771"
tool_name_result = " "
wnp("i_easyscreen_str[0]","selectTool") ; call mask to selecting the tool name
tool_name_search_active = 1
end_press
Unter Sinutrain 4.5 funktioniert der Werkzeugauswahl nicht, nur auf reale Maschine.
was ist reg[12]?
28.11.2015, 12:13 Uhr
nixalsverdruss
Level 7 = Community-Professor
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
Mitglied seit: 16.11.2003
Beiträge: 1.511
Ja es gibt ein Messzyklus von DMG L771 mit internen Werkzeugauswahl.
Hier ein ausschnitt:
Unter Sinutrain 4.5 funktioniert der Werkzeugauswahl nicht, nur auf reale Maschine.
was ist reg[12]?
Hier ein ausschnitt:
Unter Sinutrain 4.5 funktioniert der Werkzeugauswahl nicht, nur auf reale Maschine.
was ist reg[12]?
reg[12] Register[12]
ich lese mal aus dem Handbuch vor
QUOTE
Beschreibung Register
Register werden benötigt, um Daten zwischen verschiedenen Dialogen auszutauschen.
Register sind jeweils einem Dialog zugeordnet und werden beim Laden des ersten Dialogs
erzeugt und mit 0 oder Leer-String belegt.
Hinweis
Register dürfen nicht direkt in einem OUTPUT-Block zur NC-Code Generierung verwendet
werden.
Programmierung
Syntax: REG[x]
Beschreibung: Register definieren
Parameter: x Register-Index mit x = 0...19;
Typ: REAL oder STRING = VARIANT
Die Register mit x ≥ 20 sind bereits von Siemens belegt.
Register werden benötigt, um Daten zwischen verschiedenen Dialogen auszutauschen.
Register sind jeweils einem Dialog zugeordnet und werden beim Laden des ersten Dialogs
erzeugt und mit 0 oder Leer-String belegt.
Hinweis
Register dürfen nicht direkt in einem OUTPUT-Block zur NC-Code Generierung verwendet
werden.
Programmierung
Syntax: REG[x]
Beschreibung: Register definieren
Parameter: x Register-Index mit x = 0...19;
Typ: REAL oder STRING = VARIANT
Die Register mit x ≥ 20 sind bereits von Siemens belegt.
QUOTE
.....
wnp("i_easyscreen_str[0]","selectTool") ; call mask to selecting the tool name
.....
wnp("i_easyscreen_str[0]","selectTool") ; call mask to selecting the tool name
.....
das der aufruf in Sinutrain nicht geht ist logisch.
da WNP in die PLC schreibt die aber bei Sinutrain nicht aktiv ist .
wenn ihr schon Reverse Engineering betreibt müsst ihr auch mal ein Handbuch lesen
28.11.2015, 21:43 Uhr
reg[12]
28.11.2015, 22:13 Uhr
Nixalsverdruss wenn du nichts Besseres hast als in jeden 2ten Thread zu schreiben „ihr müsst auch mal ein Handbuch lesen“ dann kannst du dir das sparen, denn es geht mir schon echt auf die Nerven.
Das reg[12] ein Register Eintrag ist doch hier in Thread jeden klar, sagt doch lieber was diese reg[12] = "name_l771" zu bedeuten hat
Glaubst du wirklich der faltklo und ich schreiben hier so komplexe Masken ohne ein Handbuch zu lesen?
In PLC Schreiben wollte hier niemand war nur ein Hinweis.
Du bist mir schon längst wegen deinen negativen und aggressiven Posts aufgefallen. Nur dumme Hinweise aufs Handbuch + Mobbing.
Wenn du wirklich über sinnvolle Infos verfügst, dann hilf doch einfach ohne dein klugSch***erei.
Das reg[12] ein Register Eintrag ist doch hier in Thread jeden klar, sagt doch lieber was diese reg[12] = "name_l771" zu bedeuten hat
QUOTE
da WNP in die PLC schreibt die aber bei Sinutrain nicht aktiv ist .
wenn ihr schon Reverse Engineering betreibt müsst ihr auch mal ein Handbuch lesen.
wenn ihr schon Reverse Engineering betreibt müsst ihr auch mal ein Handbuch lesen.
Glaubst du wirklich der faltklo und ich schreiben hier so komplexe Masken ohne ein Handbuch zu lesen?
In PLC Schreiben wollte hier niemand war nur ein Hinweis.
Du bist mir schon längst wegen deinen negativen und aggressiven Posts aufgefallen. Nur dumme Hinweise aufs Handbuch + Mobbing.
Wenn du wirklich über sinnvolle Infos verfügst, dann hilf doch einfach ohne dein klugSch***erei.
29.11.2015, 15:07 Uhr
Hey leute wir sind hier nicht in Facebook oder sonst wo...
also kann man auch normal mit einander umgehen.
und wieso machst nicht bei press(vs2) vor dem ende nicht nochmal einen load screen?
ich mein wenn es anders nicht geht das sollte funktionieren.
gibt nochmals einen bildaufbau
und btw die register dienen eigentlich als schnelle zwischenspeicher und stehen einem immer zur verfügung ...
also kann man auch normal mit einander umgehen.
und wieso machst nicht bei press(vs2) vor dem ende nicht nochmal einen load screen?
ich mein wenn es anders nicht geht das sollte funktionieren.
gibt nochmals einen bildaufbau
und btw die register dienen eigentlich als schnelle zwischenspeicher und stehen einem immer zur verfügung ...
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
29.11.2015, 19:08 Uhr
nixalsverdruss
Level 7 = Community-Professor
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
Mitglied seit: 16.11.2003
Beiträge: 1.511
Nixalsverdruss wenn du nichts Besseres hast als in jeden 2ten Thread zu schreiben „ihr müsst auch mal ein Handbuch lesen“ dann kannst du dir das sparen, denn es geht mir schon echt auf die Nerven.
auch wenn es dir auf die Nerven geht werde ich nicht davon absehen diesen Hinweis immer wieder zugeben.
die Notwendigkeit lässt ja schon die nächste Zeile erkennen
Das reg[12] ein Register Eintrag ist doch hier in Thread jeden klar, sagt doch lieber was diese reg[12] = "name_l771" zu bedeuten hat
aber ich beantworte dir sogar mal diese Frage
dem REG[12] wird der String "name_I771" zugewiesen .
Du bist mir schon längst wegen deinen negativen und aggressiven Posts aufgefallen. Nur dumme Hinweise aufs Handbuch + Mobbing.
Wenn du wirklich über sinnvolle Infos verfügst, dann hilf doch einfach ohne dein klugSch***erei.
Wenn du wirklich über sinnvolle Infos verfügst, dann hilf doch einfach ohne dein klugSch***erei.
sachliche Kritik.( oder was soll das sein )
ich bin aber in der Richtung sehr entspannt ich habe hier schon mehr als einen von deiner Sorte überlebt
30.11.2015, 11:14 Uhr
Habt euch lieb. Die Wahrheit liegt wie immer in der Mitte.
Keiner in diesem Thread verweigert das Lesen eines Handbuches, allerdings sollte doch jeder der sich intensiver mit 840d und Co beschäftigt, wissen, dass man manchmal in dieser unfassbar umfangreichen Dokumentation den Wald vor lauter Bäumen nicht sieht.
Zurück zum Thema:
Ernst gemeinte Frage: Woran erkennt man, dass in diesem Fall in die PLC geschrieben werden soll?
so etwas hier:
geht ja auch im Sinutrain.
Bitte nicht hauen, ich beschäftige mich erst seit ein paar Monaten mit dem Thema und versuche dazuzulernen.
Keiner in diesem Thread verweigert das Lesen eines Handbuches, allerdings sollte doch jeder der sich intensiver mit 840d und Co beschäftigt, wissen, dass man manchmal in dieser unfassbar umfangreichen Dokumentation den Wald vor lauter Bäumen nicht sieht.
Zurück zum Thema:
QUOTE
das der aufruf in Sinutrain nicht geht ist logisch.
da WNP in die PLC schreibt die aber bei Sinutrain nicht aktiv ist .
da WNP in die PLC schreibt die aber bei Sinutrain nicht aktiv ist .
QUOTE
Mit dem Befehl WNP (Write NC PLC) können NC- oder PLC-Variable oder Maschinendaten
geschrieben werden.
Zugriffe auf NC-/PLC-Variable werden bei jeder Bearbeitung der Funktion WNP neu
ausgeführt, d.h. dass ein NC-/PLC-Zugriff in einer CHANGE-Methode immer ausgeführt
wird. Dies ist sinnvoll, wenn eine System- oder Anwendervariable häufig den Wert ändert.
Soll ein NC-/PLC-Zugriff nur einmalig ausgeführt werden, muss dies in einer LOAD- oder
UNLOAD-Methode projektiert werden.
geschrieben werden.
Zugriffe auf NC-/PLC-Variable werden bei jeder Bearbeitung der Funktion WNP neu
ausgeführt, d.h. dass ein NC-/PLC-Zugriff in einer CHANGE-Methode immer ausgeführt
wird. Dies ist sinnvoll, wenn eine System- oder Anwendervariable häufig den Wert ändert.
Soll ein NC-/PLC-Zugriff nur einmalig ausgeführt werden, muss dies in einer LOAD- oder
UNLOAD-Methode projektiert werden.
QUOTE
wnp("i_easyscreen_str[0]","selectTool") ; call mask to selecting the tool name
Ernst gemeinte Frage: Woran erkennt man, dass in diesem Fall in die PLC geschrieben werden soll?
so etwas hier:
CODE
WNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]",_abs_x)
geht ja auch im Sinutrain.
Bitte nicht hauen, ich beschäftige mich erst seit ein paar Monaten mit dem Thema und versuche dazuzulernen.
30.11.2015, 12:56 Uhr
also da muss ich naxialverdruss irgendwie recht geben.
bei gewissen fragen muss man einfach sagen > Handbuch lesen.
bei masken hab ich immer das handbuch als pdf auf oder doc on cd.
allein schon weil man die funktionen nicht immer alle im kopf hat.
und ultraedit (notepad++ würd es auch tun) extra dafür vorbereitet
und mit $TC werden NC Variablen beschrieben.
mit der Funktion kannst einzelne Bausteine der PLC beschreiben.
Beispiel
MB2300.1 soll mit einer 1 belegt werden
WNP("MB2300.1",1)
oder DualporRam DBB (atomatisierte anlagen werdem meistens damit angesteuert)
WNP = write nc to plc ...
Lade dir mal Handbuch "BE2_de_de-DE.pdf" auf der Siemens Seite runter.
bei gewissen fragen muss man einfach sagen > Handbuch lesen.
bei masken hab ich immer das handbuch als pdf auf oder doc on cd.
allein schon weil man die funktionen nicht immer alle im kopf hat.
und ultraedit (notepad++ würd es auch tun) extra dafür vorbereitet
und mit $TC werden NC Variablen beschrieben.
mit der Funktion kannst einzelne Bausteine der PLC beschreiben.
Beispiel
MB2300.1 soll mit einer 1 belegt werden
WNP("MB2300.1",1)
oder DualporRam DBB (atomatisierte anlagen werdem meistens damit angesteuert)
Ernst gemeinte Frage: Woran erkennt man, dass in diesem Fall in die PLC geschrieben werden soll?
geht ja auch im Sinutrain.
Bitte nicht hauen, ich beschäftige mich erst seit ein paar Monaten mit dem Thema und versuche dazuzulernen.
CODE
WNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]",_abs_x)
geht ja auch im Sinutrain.
Bitte nicht hauen, ich beschäftige mich erst seit ein paar Monaten mit dem Thema und versuche dazuzulernen.
WNP = write nc to plc ...
QUOTE
Programmierung
Syntax: WNP("System- oder Anwendervariable", Wert)
Beschreibung: NC- oder PLC-Variable oder Maschinendaten schreiben
Parameter: System- oder Anwendervariable
Name der NC- oder PLC-Variablen
Wert Wert, der in die System- oder Anwendervariable
geschrieben werden soll.
Ist der Wert vom Typ String, muss er in Doppelhochkomma
geschrieben werden.
Syntax: WNP("System- oder Anwendervariable", Wert)
Beschreibung: NC- oder PLC-Variable oder Maschinendaten schreiben
Parameter: System- oder Anwendervariable
Name der NC- oder PLC-Variablen
Wert Wert, der in die System- oder Anwendervariable
geschrieben werden soll.
Ist der Wert vom Typ String, muss er in Doppelhochkomma
geschrieben werden.
Lade dir mal Handbuch "BE2_de_de-DE.pdf" auf der Siemens Seite runter.
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
01.12.2015, 09:21 Uhr
Um von meiner Seite aus diese leidige Handbuch-Diskussion zu beenden:
handbuch.JPG ( 45.48KB ) Anzahl der Downloads: 103
Und so sieht mein Desktop nicht erst seit gestern aus. Ich bitte also darum mir zu glauben, dass ich tatsächlich schon einmal ein Handbuch bemüht habe.
Ausserdem wüsste ich mal gerne welche MEINER Fragen klar mit einem dieser Handbücher zu benatworten ist. Danach dürft Ihr mir dann gerne Faulheit unterstellen.
@Topic:
Also kann man vereinfacht sagen, alles was kein "$" in Namen trägt funktioniert unter Sinutrain nicht, weil es die PLC betrifft?
Gruß, Lucas
handbuch.JPG ( 45.48KB ) Anzahl der Downloads: 103
Und so sieht mein Desktop nicht erst seit gestern aus. Ich bitte also darum mir zu glauben, dass ich tatsächlich schon einmal ein Handbuch bemüht habe.
Ausserdem wüsste ich mal gerne welche MEINER Fragen klar mit einem dieser Handbücher zu benatworten ist. Danach dürft Ihr mir dann gerne Faulheit unterstellen.
@Topic:
also da muss ich naxialverdruss irgendwie recht geben.
bei gewissen fragen muss man einfach sagen > Handbuch lesen.
bei masken hab ich immer das handbuch als pdf auf oder doc on cd.
allein schon weil man die funktionen nicht immer alle im kopf hat.
und ultraedit (notepad++ würd es auch tun) extra dafür vorbereitet
und mit $TC werden NC Variablen beschrieben.
mit der Funktion kannst einzelne Bausteine der PLC beschreiben.
Beispiel
MB2300.1 soll mit einer 1 belegt werden
WNP("MB2300.1",1)
oder DualporRam DBB (atomatisierte anlagen werdem meistens damit angesteuert)
WNP = write nc to plc ...
Lade dir mal Handbuch "BE2_de_de-DE.pdf" auf der Siemens Seite runter.
bei gewissen fragen muss man einfach sagen > Handbuch lesen.
bei masken hab ich immer das handbuch als pdf auf oder doc on cd.
allein schon weil man die funktionen nicht immer alle im kopf hat.
und ultraedit (notepad++ würd es auch tun) extra dafür vorbereitet
und mit $TC werden NC Variablen beschrieben.
mit der Funktion kannst einzelne Bausteine der PLC beschreiben.
Beispiel
MB2300.1 soll mit einer 1 belegt werden
WNP("MB2300.1",1)
oder DualporRam DBB (atomatisierte anlagen werdem meistens damit angesteuert)
WNP = write nc to plc ...
Lade dir mal Handbuch "BE2_de_de-DE.pdf" auf der Siemens Seite runter.
Also kann man vereinfacht sagen, alles was kein "$" in Namen trägt funktioniert unter Sinutrain nicht, weil es die PLC betrifft?
Gruß, Lucas
01.12.2015, 11:10 Uhr
Guest_guest_*
Themenstarter
Gast
$.... kennzeichnet Systemvariable.
Wenn du die Handbücher schon auf dem Desktop liegen hast, wäre der nächste Schritt: LESEN!
Wenn du die Handbücher schon auf dem Desktop liegen hast, wäre der nächste Schritt: LESEN!
01.12.2015, 13:36 Uhr
Also kann man vereinfacht sagen, alles was kein "$" in Namen trägt funktioniert unter Sinutrain nicht, weil es die PLC betrifft?
Gruß, Lucas
Gruß, Lucas
-guest
sei ned so fieß
und habt euch Lieb ! steht ja Weihnachten vor der Tür.
@Lucas
alle Variablen die mit $ anfangen sind NC Variablen des Systems ... ich denk das wird etwas klarer.
Sprich du kannst die immer lesen und "teilweise" beschreiben.
Hab mich da etwas undeutlich ausgedrückt.
2. Versuch.
PLC Variablen sind die vom DualportRam > Sprich DBB / DBD / DBA oder Merkerbytes MB
Die kannst auch in Sinutrain beschreiben, wenn du die Belegung kennst.
mit
CODE
WNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]",_abs_x)
beschreibst den "$TC_DP12 [xx,yy] " sprich ein wert der Werkzeugverwaltung.
Da es sich um eine NC Variable handelt geht das.
wenn du jedoch eine PLC Variable beschreibst sieht das so aus:
CODE
WNP("MB2300.1",1)
mit dem Befehl setze ich den Merkerbyte 2300.1 auf 1 > MB2300.1 = 1 in der PLC
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
26.05.2016, 19:55 Uhr
Hallo zusammen,
Ich habe ja im Oktober für unsere erste Drehmaschine mit Siemens 840D eine eigene Maske für die Werkzeugkorrektur geschrieben.
Sie funktioniert nach dem Prinzip, dass der Bediener direkt aus der Betriebsart Programmlauf (Automatikbetrieb) die Maske öffnen kann.
Dann muss nur noch die Platznummer (1-24) des Werkzeugs eingegeben werden. Intern wird damit der Werkzeugname ermittelt, die bestehenden Korrekturen ausgelesen und angezeigt, und es kann eine neue additive Korrektur vorgenommen werden, die dann wieder in die Verschleissliste geschrieben wird.
Diese Maske funktioniert grundsätzlich einwandfrei und wurde von den Maschinenbedienern dankend angenommen. Mittlerweile haben wir drei identische Maschinen. Nun setzen wir immer öfter den Werkzeugtyp "Multitool" ein und damit stehe ich vor dem Problem, dass das Multitool als eine Art Untermagazin funktioniert und ich somit die Funktionalität ändern muss. Sollte ungefähr so aussehen:
- Maske öffnen
- Bediener gibt Platznummer ein
- prüfen ob dem Platz ein Multitool zugeordnet ist
- Wenn ja, wieviele Plätze hat das Multitool
- Platz innerhalb des Multitools eingeben, oder die Werkzeugnamen auf dem Multitool über Dropdown auswählen
- Wenn nein, funktionalität wie gehabt
- Korrekturen eingeben
- Maske mit VS8 schließen
Ich scheitere aktuell leider an Punkt 3. Hat jemand eine Idee?
Anbei der bisherige Code:
Vielen Dank!
Ich habe ja im Oktober für unsere erste Drehmaschine mit Siemens 840D eine eigene Maske für die Werkzeugkorrektur geschrieben.
Sie funktioniert nach dem Prinzip, dass der Bediener direkt aus der Betriebsart Programmlauf (Automatikbetrieb) die Maske öffnen kann.
Dann muss nur noch die Platznummer (1-24) des Werkzeugs eingegeben werden. Intern wird damit der Werkzeugname ermittelt, die bestehenden Korrekturen ausgelesen und angezeigt, und es kann eine neue additive Korrektur vorgenommen werden, die dann wieder in die Verschleissliste geschrieben wird.
Diese Maske funktioniert grundsätzlich einwandfrei und wurde von den Maschinenbedienern dankend angenommen. Mittlerweile haben wir drei identische Maschinen. Nun setzen wir immer öfter den Werkzeugtyp "Multitool" ein und damit stehe ich vor dem Problem, dass das Multitool als eine Art Untermagazin funktioniert und ich somit die Funktionalität ändern muss. Sollte ungefähr so aussehen:
- Maske öffnen
- Bediener gibt Platznummer ein
- prüfen ob dem Platz ein Multitool zugeordnet ist
- Wenn ja, wieviele Plätze hat das Multitool
- Platz innerhalb des Multitools eingeben, oder die Werkzeugnamen auf dem Multitool über Dropdown auswählen
- Wenn nein, funktionalität wie gehabt
- Korrekturen eingeben
- Maske mit VS8 schließen
Ich scheitere aktuell leider an Punkt 3. Hat jemand eine Idee?
Anbei der bisherige Code:
CODE
;Datei "dds_auto.com"
;Autor Lucas
;21.10.2015
;
;Funktionsweise:
;Diese Datei dient als Eintiegsdatei für den Automatikbetrieb
;und enthält unten näher beschrieben Masken
//s(start)
hs6 = ("Werkzeug-%nKorrektur")
press(hs6)
lm("korrektur")
end_press
//end
//m(korrektur)
;Maske "korrektur"
;Autor Lucas
;21.10.2015
;
;Funktionsweise:
;Diese Maske soll dem Maschinenbediener die Werkzeugkorrektur an Drehmaschinen erleichtern.
;Die Maske öffnet grundsätzich ohne vorbelegte Werte (Ausnahme: Schneidennummer "D" = 1)
;Der Bediener gibt den Revolver/Magazinplatz des zu korrigierenden Werkezeugs an.
;Daraufhin wird der Werkzeugname und die Anzahl der D-nummern ausgelesen.
;Wenn dem Platz kein Werkzeug zugeordnet ist, erscheint eine Fehlermeldung.
;Ist das Werkzeug vorhanden, werden die bisherigen Verschleisskorrekturen angezeigt.
;Beim Werkzeugtyp 100-299 (Fräser und Bohrer) wird zusätzlich der Radiusverschleiss angezeigt
;Der Bediener kann nun eine Additive Verschliesskorrektur durchführen.
;Der Gesamtverschleiss wird neu berechnet und angezeigt.
;Mit SK8 wird die Maske beendet und die neuen Werte werden in die Tabelle geschrieben.
DEF _tnr = (i/1,24//"Platznummer","Platznummer"/al0///300,10/420,10,40),
_d = (i/1,4/1/"Schneidennummer","D "/al0///485,10/500,10,20)
DEF _tname = (s///"","Werkzeugname"/al0,WR1///300,50/420,50,150)
DEF _abs_x = (r///"Gesamt X ","Gesamt X"/al0,WR1///230,90/330,90,80),
_dx = (r/-1,1/0/"Korrektur X","DX "/al0///450,90/480,90,40)
DEF _abs_y = (r///"Gesamt Y ","Gesamt Y"/al0,WR1///230,110/330,110,80),
_dy = (r/-1,1/0/"Korrektur Y","DY "/al0///450,110/480,110,40)
DEF _abs_Z = (r///"Gesamt Z ","Gesamt Z"/al0,WR1///230,130/330,130,80),
_dz = (r/-1,1/0/"Korrektur Z","DZ "/al0///450,130/480,130,40)
DEF _abs_r = (r///"Gesamt D ","Gesamt D"/al0,WR1///230,150/330,150,80),
_dr = (r/-1,1/0/"Korrektur Radius","DR "/al0///450,150/480,150,40)
DEF _act_tool_nr
DEF _act_tool_p
DEF _tnumber_exist
DEF _toolnd
DEF _tool_type
;VS1=("Werkzeug-%nauswahl")
VS7=("\\sk_cancel.png")
VS8=("\\sk_ok.png")
load
_act_tool_nr = RNP("$P_TOOLNO");aktive Werkzeugnummer
_act_tool_p = RNP("$A_MYMLN["<<_act_tool_nr<<"]");aktiver Magazinplatz
vs8.se = 2
_abs_x.wr = 0
_abs_x.bc = 129
_abs_x.fc = 6
_abs_x.st = ""
_abs_y.wr = 0
_abs_y.bc = 129
_abs_y.fc = 6
_abs_y.st = ""
_abs_z.wr = 0
_abs_z.bc = 129
_abs_z.fc = 6
_abs_z.st = ""
_abs_r.wr = 0
_abs_r.bc = 129
_abs_r.fc = 6
_abs_r.st = ""
_dr.wr = 0
_dr.st =""
lb("sub1")
end_load
change(_tnr)
call("read_tool")
end_change
change(_d)
call("read_tool")
end_change
change(_dx)
_abs_x = _abs_x + _dx
end_change
change(_dy)
_abs_y = _abs_y + _dy
end_change
change(_dz)
_abs_z = _abs_z + _dz
end_change
change(_dr)
_abs_r = _abs_r + _dr
end_change
;press(vs1)
;wnp("i_easyscreen_str[0]","selectTool") ; call mask to selecting the tool name
;end_press
press(vs7)
exit
end_press
press(vs8)
WNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]",_abs_x)
WNP("$TC_DP13["<<_tnumber_exist<<","<<_d<<"]",_abs_z)
WNP("$TC_DP14["<<_tnumber_exist<<","<<_d<<"]",_abs_y)
IF _tool_type >= 100; Wenn Fräser oder Bohrer
IF _tool_type <= 299
WNP("$TC_DP15["<<_tnumber_exist<<","<<_d<<"]",_abs_r)
ENDIF
ENDIF
exit
end_press
//end
//b(sub1)
sub(read_tool)
IF _tnr == _act_tool_p
_tnumber_exist = RNP("$P_TOOLNO")
ELSE
_tnumber_exist = RNP("$TC_MPP6[1,"<<_tnr<<"]");tnr platz auslesen
ENDIF
IF _tnumber_exist
_toolnd = RNP("$P_TOOLND["<<_tnumber_exist<<"]");Anzahl der Schneiden
_d.max = _toolnd
_tname = RNP("$TC_TP2["<<_tnumber_exist<<"]");tnamen auslesen
_tname.fc = 3
_tool_type = RNP("$TC_DP1["<<_tnumber_exist<<","<<_d<<"]");Werkzeugtyp auslesen
VS8.SE = 1
_abs_x.wr = 1
_abs_x.st = "Gesamt X"
_abs_x = RNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]")
_abs_y.wr = 1
_abs_y.st = "Gesamt Y"
_abs_y = RNP("$TC_DP14["<<_tnumber_exist<<","<<_d<<"]")
_abs_z.wr = 1
_abs_z.st = "Gesamt Z"
_abs_z = RNP("$TC_DP13["<<_tnumber_exist<<","<<_d<<"]")
IF _tool_type >= 100; Wenn Fräser oder Bohrer
IF _tool_type <= 299
_abs_r.wr = 1
_abs_r.st = "Gesamt Radius"
_abs_r = RNP("$TC_DP15["<<_tnumber_exist<<","<<_d<<"]")
_dr.wr = 2
_dr.st = "DR "
ELSE
_abs_r.wr = 0
_abs_r.st = ""
_dr.wr = 0
_dr.st = ""
ENDIF
ENDIF
ELSE
_tname = "Platz nicht belegt!"
_tname.fc = 7
_abs_x.wr = 0
_abs_x.st = ""
_abs_y.wr = 0
_abs_y.st = ""
_abs_z.wr = 0
_abs_z.st = ""
_abs_r.wr = 0
_abs_r.st = ""
VS8.SE = 2
ENDIF
_dx = 0
_dy = 0
_dz = 0
_dr = 0
end_sub
//end
;Autor Lucas
;21.10.2015
;
;Funktionsweise:
;Diese Datei dient als Eintiegsdatei für den Automatikbetrieb
;und enthält unten näher beschrieben Masken
//s(start)
hs6 = ("Werkzeug-%nKorrektur")
press(hs6)
lm("korrektur")
end_press
//end
//m(korrektur)
;Maske "korrektur"
;Autor Lucas
;21.10.2015
;
;Funktionsweise:
;Diese Maske soll dem Maschinenbediener die Werkzeugkorrektur an Drehmaschinen erleichtern.
;Die Maske öffnet grundsätzich ohne vorbelegte Werte (Ausnahme: Schneidennummer "D" = 1)
;Der Bediener gibt den Revolver/Magazinplatz des zu korrigierenden Werkezeugs an.
;Daraufhin wird der Werkzeugname und die Anzahl der D-nummern ausgelesen.
;Wenn dem Platz kein Werkzeug zugeordnet ist, erscheint eine Fehlermeldung.
;Ist das Werkzeug vorhanden, werden die bisherigen Verschleisskorrekturen angezeigt.
;Beim Werkzeugtyp 100-299 (Fräser und Bohrer) wird zusätzlich der Radiusverschleiss angezeigt
;Der Bediener kann nun eine Additive Verschliesskorrektur durchführen.
;Der Gesamtverschleiss wird neu berechnet und angezeigt.
;Mit SK8 wird die Maske beendet und die neuen Werte werden in die Tabelle geschrieben.
DEF _tnr = (i/1,24//"Platznummer","Platznummer"/al0///300,10/420,10,40),
_d = (i/1,4/1/"Schneidennummer","D "/al0///485,10/500,10,20)
DEF _tname = (s///"","Werkzeugname"/al0,WR1///300,50/420,50,150)
DEF _abs_x = (r///"Gesamt X ","Gesamt X"/al0,WR1///230,90/330,90,80),
_dx = (r/-1,1/0/"Korrektur X","DX "/al0///450,90/480,90,40)
DEF _abs_y = (r///"Gesamt Y ","Gesamt Y"/al0,WR1///230,110/330,110,80),
_dy = (r/-1,1/0/"Korrektur Y","DY "/al0///450,110/480,110,40)
DEF _abs_Z = (r///"Gesamt Z ","Gesamt Z"/al0,WR1///230,130/330,130,80),
_dz = (r/-1,1/0/"Korrektur Z","DZ "/al0///450,130/480,130,40)
DEF _abs_r = (r///"Gesamt D ","Gesamt D"/al0,WR1///230,150/330,150,80),
_dr = (r/-1,1/0/"Korrektur Radius","DR "/al0///450,150/480,150,40)
DEF _act_tool_nr
DEF _act_tool_p
DEF _tnumber_exist
DEF _toolnd
DEF _tool_type
;VS1=("Werkzeug-%nauswahl")
VS7=("\\sk_cancel.png")
VS8=("\\sk_ok.png")
load
_act_tool_nr = RNP("$P_TOOLNO");aktive Werkzeugnummer
_act_tool_p = RNP("$A_MYMLN["<<_act_tool_nr<<"]");aktiver Magazinplatz
vs8.se = 2
_abs_x.wr = 0
_abs_x.bc = 129
_abs_x.fc = 6
_abs_x.st = ""
_abs_y.wr = 0
_abs_y.bc = 129
_abs_y.fc = 6
_abs_y.st = ""
_abs_z.wr = 0
_abs_z.bc = 129
_abs_z.fc = 6
_abs_z.st = ""
_abs_r.wr = 0
_abs_r.bc = 129
_abs_r.fc = 6
_abs_r.st = ""
_dr.wr = 0
_dr.st =""
lb("sub1")
end_load
change(_tnr)
call("read_tool")
end_change
change(_d)
call("read_tool")
end_change
change(_dx)
_abs_x = _abs_x + _dx
end_change
change(_dy)
_abs_y = _abs_y + _dy
end_change
change(_dz)
_abs_z = _abs_z + _dz
end_change
change(_dr)
_abs_r = _abs_r + _dr
end_change
;press(vs1)
;wnp("i_easyscreen_str[0]","selectTool") ; call mask to selecting the tool name
;end_press
press(vs7)
exit
end_press
press(vs8)
WNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]",_abs_x)
WNP("$TC_DP13["<<_tnumber_exist<<","<<_d<<"]",_abs_z)
WNP("$TC_DP14["<<_tnumber_exist<<","<<_d<<"]",_abs_y)
IF _tool_type >= 100; Wenn Fräser oder Bohrer
IF _tool_type <= 299
WNP("$TC_DP15["<<_tnumber_exist<<","<<_d<<"]",_abs_r)
ENDIF
ENDIF
exit
end_press
//end
//b(sub1)
sub(read_tool)
IF _tnr == _act_tool_p
_tnumber_exist = RNP("$P_TOOLNO")
ELSE
_tnumber_exist = RNP("$TC_MPP6[1,"<<_tnr<<"]");tnr platz auslesen
ENDIF
IF _tnumber_exist
_toolnd = RNP("$P_TOOLND["<<_tnumber_exist<<"]");Anzahl der Schneiden
_d.max = _toolnd
_tname = RNP("$TC_TP2["<<_tnumber_exist<<"]");tnamen auslesen
_tname.fc = 3
_tool_type = RNP("$TC_DP1["<<_tnumber_exist<<","<<_d<<"]");Werkzeugtyp auslesen
VS8.SE = 1
_abs_x.wr = 1
_abs_x.st = "Gesamt X"
_abs_x = RNP("$TC_DP12["<<_tnumber_exist<<","<<_d<<"]")
_abs_y.wr = 1
_abs_y.st = "Gesamt Y"
_abs_y = RNP("$TC_DP14["<<_tnumber_exist<<","<<_d<<"]")
_abs_z.wr = 1
_abs_z.st = "Gesamt Z"
_abs_z = RNP("$TC_DP13["<<_tnumber_exist<<","<<_d<<"]")
IF _tool_type >= 100; Wenn Fräser oder Bohrer
IF _tool_type <= 299
_abs_r.wr = 1
_abs_r.st = "Gesamt Radius"
_abs_r = RNP("$TC_DP15["<<_tnumber_exist<<","<<_d<<"]")
_dr.wr = 2
_dr.st = "DR "
ELSE
_abs_r.wr = 0
_abs_r.st = ""
_dr.wr = 0
_dr.st = ""
ENDIF
ENDIF
ELSE
_tname = "Platz nicht belegt!"
_tname.fc = 7
_abs_x.wr = 0
_abs_x.st = ""
_abs_y.wr = 0
_abs_y.st = ""
_abs_z.wr = 0
_abs_z.st = ""
_abs_r.wr = 0
_abs_r.st = ""
VS8.SE = 2
ENDIF
_dx = 0
_dy = 0
_dz = 0
_dr = 0
end_sub
//end
Vielen Dank!
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: