Werkzeug im Magazin?
18.02.2026, 22:57 Uhr
Guten Tag Freunde,
Ich möchte zu beginn abfragen, ob alle werkzeuge die im Programm verwendet werden im Magazin 1 Vorhanden sind, wenn nicht soll eine MSG auftauchen. Ich habe bisschen rum probiert doch ohne erfolg.
Bei N14 gibt der mir den Namen des Werkzeuges in dem Fall Werkzeug ID 28 Magazin 1
Ich muss mit den Werkzeugnamen arbeiten weil ich nicht weiß wie ich mithilfe des Werkzeugsnamen die Werkzeug ID herausfinden kann.
Ich möchte zu beginn abfragen, ob alle werkzeuge die im Programm verwendet werden im Magazin 1 Vorhanden sind, wenn nicht soll eine MSG auftauchen. Ich habe bisschen rum probiert doch ohne erfolg.
Bei N14 gibt der mir den Namen des Werkzeuges in dem Fall Werkzeug ID 28 Magazin 1
Ich muss mit den Werkzeugnamen arbeiten weil ich nicht weiß wie ich mithilfe des Werkzeugsnamen die Werkzeug ID herausfinden kann.
19.02.2026, 10:30 Uhr
Moin,
ich habe jetzt noch nicht genau verstanden an welchen Punkt du Hilfe brauchst.
Wenn ich dich richtig verstanden habe geht es um Werkzeug Namen zur internen T Nummer.
Mit dem Befehl GETT bekommt man aus dem Namen die Interne T Nummer.
Mit der Systemvariable $TC_TP2 bekommt man mit der Internen T Nummer den Namen.
Ich hoffe das hilft dir weiter.
Gruß
Tobi
ich habe jetzt noch nicht genau verstanden an welchen Punkt du Hilfe brauchst.
Wenn ich dich richtig verstanden habe geht es um Werkzeug Namen zur internen T Nummer.
Mit dem Befehl GETT bekommt man aus dem Namen die Interne T Nummer.
Mit der Systemvariable $TC_TP2 bekommt man mit der Internen T Nummer den Namen.
Ich hoffe das hilft dir weiter.
Gruß
Tobi
19.02.2026, 11:26 Uhr
Ja das passt soweit alles, wenn ich eine IF abfrage mache mit TOOLEXIST klappt auch alles, sobald TOOLEXIST True liefert gibt er die MSG (WERKZEUG VORHANDEN)
Wenn TOOLEXIST ein Werkzeugnamen bekommt der nicht Existiert gibt er mir kein false sondern eine Fehlermeldung (Array Toolexist)
Wenn TOOLEXIST ein Werkzeugnamen bekommt der nicht Existiert gibt er mir kein false sondern eine Fehlermeldung (Array Toolexist)
19.02.2026, 14:59 Uhr
Das wird dann daran liegen das du TOOLEXIST mit einer Nummer fütterst die es nicht geben soll.
Wenn ich den Code sehen würde wäre es einfacher zu verstehen wie die Struktur ist bzw. wo der Fehler liegt.
Aber warum gehst du den Umweg über TOOLEXIST?
Wenn ich dich richtig verstanden habe fragst du mit dem Namen die Interne Nummer ab um dann damit über TOOLEXIST das vorhanden sein zu überprüfen.
Dann frag doch gleich mit GETT ob ein Werkzeug vorhanden ist oder nicht.
IF GETT("DEIN_WERKZEUG")>0
Werkzeug vorhanden
ELSE
Werkzeug nicht vorhanden
ENDIF
Wenn ich den Code sehen würde wäre es einfacher zu verstehen wie die Struktur ist bzw. wo der Fehler liegt.
Aber warum gehst du den Umweg über TOOLEXIST?
Wenn ich dich richtig verstanden habe fragst du mit dem Namen die Interne Nummer ab um dann damit über TOOLEXIST das vorhanden sein zu überprüfen.
Dann frag doch gleich mit GETT ob ein Werkzeug vorhanden ist oder nicht.
IF GETT("DEIN_WERKZEUG")>0
Werkzeug vorhanden
ELSE
Werkzeug nicht vorhanden
ENDIF
20.02.2026, 06:27 Uhr
Ich hab die abfrage jetzt so umgeschrieben wie in deinem Beispiel,
Dennoch folgende Fehlermeldung
https://imgur.com/a/jEKJc5N
Dennoch folgende Fehlermeldung
https://imgur.com/a/jEKJc5N
20.02.2026, 08:34 Uhr
Das Problem liegt in deiner For Schleife.
Du hat eine Variable mit einem 8er Array angelegt und willst aber in deiner For Schleife bis auf Array 60 zugreifen.
Deswegen der Fehler.
Gruß
Tobi
Du hat eine Variable mit einem 8er Array angelegt und willst aber in deiner For Schleife bis auf Array 60 zugreifen.
Deswegen der Fehler.
Gruß
Tobi
20.02.2026, 09:56 Uhr
Nun klappt alles doch ich möchte das er den Array WZ_LISTE so viel anlegt wie WZ_MAX definiert ist das heißt ich möchte einmal oben angeben wie viele Werkzeuge ich habe und er soll WZ_MAX auch für WZ_LISTE angeben leider klappt
WZ_LISTE[WZ_MAX] nicht.
https://imgur.com/a/S9YgQLy
WZ_LISTE[WZ_MAX] nicht.
https://imgur.com/a/S9YgQLy
20.02.2026, 11:00 Uhr
Den Weg würde ich so nicht gehen.
Ich würde eine Feste Anzahl nutzen und ggf. nicht benutzte Variablen dann auf den Inhalt abfragen.
Also ist sie Leer dann beende die Schleife.
Du kannst natürlich auch über ISTVAR das vorhanden sein einer Variable prüfen und dann die Schleife beenden.
Aber so wie du das vor hast mit der Variablen Definition wird es nicht Funktionieren.
Gruß
Tobi
Ich würde eine Feste Anzahl nutzen und ggf. nicht benutzte Variablen dann auf den Inhalt abfragen.
Also ist sie Leer dann beende die Schleife.
Du kannst natürlich auch über ISTVAR das vorhanden sein einer Variable prüfen und dann die Schleife beenden.
Aber so wie du das vor hast mit der Variablen Definition wird es nicht Funktionieren.
Gruß
Tobi
20.02.2026, 15:06 Uhr
Kannst du mir ein Beispiel zeigen für mein Programm?
20.02.2026, 15:57 Uhr
Wichtig! Es werden auch Werkzeuge gefunden die nur angelegt aber nicht im Magazin geladen sind zB. Handwerkzeuge. Das ist das ein anderes Thema.
Ich habe es auch gleich so gemacht das alle fehlenden Werkzeuge auf einmal angezeigt werden.
Bei deinem Beispiel hätte ein Werkzeug zwischen drin fehlen können und am ende steht dann in der MSG alle Werkzeuge vorhanden.
DEF STRING[32] WZ_LISTE[60]
DEF STRING[50] WZ_FEHLT
DEF INT M_1
;=================================================================
WZ_LISTE[0]="WZ_1"
WZ_LISTE[1]="WZ_2"
WZ_LISTE[2]="WZ_3"
usw....
;=================================================================
FOR M_1=0 TO 59
IF WZ_LISTE[M_1]<>""
IF (GETT(WZ_LISTE[M_1])<=0)
WZ_FEHLT=WZ_FEHLT<<M_1<<","
ENDIF
ENDIF
ENDFOR
IF WZ_FEHLT<>""
WZ_FEHLT="WZ Index "<<WZ_FEHLT<<" sind nicht vorhanden!"
MSG(WZ_FEHLT)
M0
ELSE
MSG("Alle Werkzeuge vorhanden")
ENDIF
M0
STOPRE
M17
Ich habe es auch gleich so gemacht das alle fehlenden Werkzeuge auf einmal angezeigt werden.
Bei deinem Beispiel hätte ein Werkzeug zwischen drin fehlen können und am ende steht dann in der MSG alle Werkzeuge vorhanden.
DEF STRING[32] WZ_LISTE[60]
DEF STRING[50] WZ_FEHLT
DEF INT M_1
;=================================================================
WZ_LISTE[0]="WZ_1"
WZ_LISTE[1]="WZ_2"
WZ_LISTE[2]="WZ_3"
usw....
;=================================================================
FOR M_1=0 TO 59
IF WZ_LISTE[M_1]<>""
IF (GETT(WZ_LISTE[M_1])<=0)
WZ_FEHLT=WZ_FEHLT<<M_1<<","
ENDIF
ENDIF
ENDFOR
IF WZ_FEHLT<>""
WZ_FEHLT="WZ Index "<<WZ_FEHLT<<" sind nicht vorhanden!"
MSG(WZ_FEHLT)
M0
ELSE
MSG("Alle Werkzeuge vorhanden")
ENDIF
M0
STOPRE
M17
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder:



