R&D Steuerungstechnik

Werkzeug im Magazin?

Beitrag 18.02.2026, 22:57 Uhr
Maho57
Level 1 = Community-Lehrling
*
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.


   
Beitrag 19.02.2026, 10:30 Uhr
Tobe87
Level 3 = Community-Techniker
***
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
   
Beitrag 19.02.2026, 11:26 Uhr
Maho57
Level 1 = Community-Lehrling
*
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)
   
Beitrag 19.02.2026, 14:59 Uhr
Tobe87
Level 3 = Community-Techniker
***
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

   
Beitrag 20.02.2026, 06:27 Uhr
Maho57
Level 1 = Community-Lehrling
*
Ich hab die abfrage jetzt so umgeschrieben wie in deinem Beispiel,

Dennoch folgende Fehlermeldung

https://imgur.com/a/jEKJc5N
   
Beitrag 20.02.2026, 08:34 Uhr
Tobe87
Level 3 = Community-Techniker
***
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
   
Beitrag 20.02.2026, 09:56 Uhr
Maho57
Level 1 = Community-Lehrling
*
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
   
Beitrag 20.02.2026, 11:00 Uhr
Tobe87
Level 3 = Community-Techniker
***
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
   
Beitrag 20.02.2026, 15:06 Uhr
Maho57
Level 1 = Community-Lehrling
*
Kannst du mir ein Beispiel zeigen für mein Programm?
   
Beitrag 20.02.2026, 15:57 Uhr
Tobe87
Level 3 = Community-Techniker
***
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
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: