Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Übersicht Magazinbelegung, Werkzeugübersicht erstellen + drucken

Beitrag 22.05.2008, 13:07 Uhr
Mariteam
Mariteam
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 24.01.2008
Beiträge: 65
Ich (bzw. die Werker an der Maschine) hätten gern eine Übersicht mit den im Magazin vorhandenen Werkzeugen, damit sie sich nicht immer durch die Menüs hangeln müssen, wenn sie mal etwas suchen oder vergleichen wollen.
Gibt es eine Möglichkeit, die belegten Plätze mit den dazugehörigen Daten auszulesen? Ideal wäre ein Script, welches die betreffenden Daten gleich in eine Datei schreibt, welche man dann ausdrucken könnte.

Hat jemand so etwas schon mal probiert, oder kennt eine Lösung für das Problem?

Danke an alle, die sich die Mühe machen und helfen! smile.gif
   
Beitrag 22.05.2008, 14:40 Uhr
TheBlackBird®
TheBlackBird®
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 21.01.2006
Beiträge: 78
Moin,

Die Fragen dabei sind dann:

-Wieviele Magazine hat die Anlage?
-Wenn mehrere Magazine-> wieviele Plaetze haben die einzelnen Magazine?
-Soll der Zwischenspeicher (Spindel, evtl. vorhandener Doppelgreifer etc.) beruecksichtigt werden?
-Wenn Zwischenspeicher ja-> Wieviele Plaetze hat dieser? Welche davon sollen beruecksichtigt werden?
-Welche Daten sollen pro Wkz erfasst werden?
-...

Nachfolgend mal ein Ansatz:
Die Maschine hat 1 Magazin mit 80 Plaetzen.
Der Zwischenspeicher hat 6 Plaetze, wovon aber nur 1, 5 und 6 ausgelesen werden sollen.
Erfasst werden nur der Werkzeugbezeichner und die DuploNr. der belegten Magazinplaetze.
Aufzurufen ist das dann z.B. im MDI mittels:
CODE
UP_IWZ_IM
M2


CODE
PROC UP_IWZ_IM SBLOF DISPLOF
DEF INT ERROR, MAGNUM, ZAEHL, DUNR
DEF STRING[8] WZNAME
DEF STRING[10] NAME="WKZLISTE"       ;NAME DER ZIELDATEI
DEF STRING[20] PFAD="_N_MPF_DIR" ;PFAD FUER DIE ZIELDATEI
DEF STRING[40] DATEI             ;ZUSAMMENFASSUNG PFAD UND NAME
DEF STRING[12] SIGNATURE
DEF STRING[3] SCRATCH
DATEI="/"<<PFAD<<"/_N_"<<NAME<<"_MPF"

DELETE(ERROR,DATEI)              ;ALTES ZIEL LOESCHEN
WRITE(ERROR,DATEI,"M30")

;DATUM UND ZEIT SCHREIBEN
IF $A_DAY<10
 SCRATCH="0"<<$A_DAY<<"."
ELSE
 SCRATCH=""<<$A_DAY<<"."
ENDIF
SIGNATURE=SCRATCH

IF $A_MONTH<10
 SCRATCH="0"<<$A_MONTH<<"."
ELSE
 SCRATCH=""<<$A_MONTH<<"."
ENDIF
SIGNATURE=SIGNATURE<<SCRATCH
IF $A_YEAR<10
 SCRATCH="0"<<$A_YEAR<<""
ELSE
 SCRATCH=""<<$A_YEAR<<""
ENDIF
SIGNATURE=SIGNATURE<<SCRATCH
WRITE(ERROR,DATEI,SIGNATURE)
IF $A_HOUR<10
 SCRATCH="0"<<$A_HOUR<<":"
ELSE
 SCRATCH=""<<$A_HOUR<<":"
ENDIF
SIGNATURE=SCRATCH
IF $A_MINUTE<10
 SCRATCH="0"<<$A_MINUTE<<":"
ELSE
 SCRATCH=""<<$A_MINUTE<<":"
ENDIF
SIGNATURE=SIGNATURE<<SCRATCH<<"00"
WRITE(ERROR,DATEI,SIGNATURE)
WRITE(ERROR,DATEI,";----------------")

;ZWISCHENSPEICHER AUSLESEN
MAGNUM=9998
FOR ZAEHL=1 TO 6
 IF NOT (ZAEHL==2) XOR (ZAEHL==3) XOR (ZAEHL==4);Plaetze 2, 3 und 4 nicht benoetigt
   IF NOT $TC_MPP6[MAGNUM,ZAEHL]==0
     WZNAME=$TC_TP2[$TC_MPP6[MAGNUM,ZAEHL]]
     DUNR=$TC_TP1[$TC_MPP6[MAGNUM,ZAEHL]]
     WRITE(ERROR,DATEI,WZNAME <<" : "<<DUNR)
     IF NOT ERROR==0 GOTOF FEHLER
   ENDIF
 ENDIF
ENDFOR

;MAGAZIN ABGRASEN
 FOR ZAEHL=1 TO 80
   IF NOT $TC_MPP6[1,ZAEHL]==0
     WZNAME=$TC_TP2[$TC_MPP6[1,ZAEHL]]
     DUNR=$TC_TP1[$TC_MPP6[1,ZAEHL]]
     WRITE(ERROR,DATEI,WZNAME <<" : "<<DUNR)
     IF NOT ERROR==0 GOTOF FEHLER
   ENDIF
 ENDFOR
M17

FEHLER:
MSG("BEIM AUSLESEN DER Wz-DATEN IST EIN FEHLER AUFGETRETEN! (NR:"<<ERROR<<")")
STOPRE
DELETE(ERROR,DATEI)
M0
M17


Dabei kommt dann folgende Liste als WKZLISTE.MPF im MPF.DIR zustande.

CODE
M30
22.05.08
15:17:00
;----------------
41232038 : 1
40932022 : 1
49906010 : 2
99999999 : 1
42520010 : 1
46408020 : 1


Das M30 ist fuer den Fall, dass das File aus Versehen doch einmal ausgefuehrt wird. Es folgen Datum und Uhrzeit der Erstellung auf der Maschine. 8stellige Zahl ist bei uns der WKZ-Bezeichner, die Ziffer hinter dem Doppelpunkt ist die DuploNummer.

Cu TheBlackBird ®

Der Beitrag wurde von TheBlackBird® bearbeitet: 22.05.2008, 14:45 Uhr
   
Beitrag 22.05.2008, 15:33 Uhr
Mariteam
Mariteam
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 24.01.2008
Beiträge: 65
Vielen Dank Blackbird,
obwohl ich im Moment keine Zeit zum Ausprobieren habe (Programmtest wacko.gif ), so erscheint mir der Ansatz doch sehr vielversprechend.

Mir geht es beim Auslesen nur um ein Magazin (1) mit 164 Plätzen. Neben den Werkzeugnamen möchte ich auch die Platz-Nr, den Typ sowie die Länge 1 und den Radius für Schneide 1 und 2 auslesen lassen.

Perfekt wäre das Ganze natürlich in Tabellenform, hier vermute ich aber, dass Siemens keine entsprechenden Anweisungen/Befehle anbietet.

Ich merke gerade, dass das Quatsch ist, die Tabellen auf dem Display der Steuerung schreiben sich ja auch nicht allein.

Leider muss ich nun erstmal in die Werkstatt und mich mit den bei weitem nicht so spannenden Alltagsproblemen plagen.

Vielen Dank erst einmal für deine Hilfe!!! daumup.gif

PS: Hoffentlich komme ich bald zum testen. Auf jeden Fall werde ich ich berichten, ob und wie es funktioniert hat.
Über weitere Hinweise würde ich mich freuen.
   
Beitrag 22.05.2008, 15:52 Uhr
Boern
Boern
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 27.11.2004
Beiträge: 2.484
Habt ihr schon mal einen USB - Stick ausbrobiert.


--------------------

Das dringendste Problem der Technologie von heute ist nicht mehr die Befriedigung von Grundbedürfnissen und uralten Wünschen der Menschen, sondern die Beseitigung von Übeln und Schäden, welche uns die Technologie von gestern hinterlassen hat.


Dennis Gabor (1900-79), ungar.-brit. Physiker, Entwickler der Holographie, 1971 Nobelpr.
   
Beitrag 22.05.2008, 20:55 Uhr
Schothorn
Schothorn
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 16.10.2007
Beiträge: 1
QUOTE (Boern @ Donnerstag, 22.Mai 2008, 15:52 Uhr)
Habt ihr schon mal einen USB - Stick ausbrobiert.

Hehe, USB-Stick, eine qualifizierte Antwort. thumbs-up.gif
Schreib mal bitte ein wenig mehr dazu, in welcher Form sollen die Daten auf den USB-Stick kommen und auf welche Art?

Du meinst doch nicht als TOA - Daten, oder doch? Das ist zwar leicht, aber dann braucht man immer noch ein Programm, welches die Daten aufbereitet und alles überflüssige entfernt.
   
Beitrag 23.05.2008, 21:16 Uhr
Traori
Traori
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 18.10.2004
Beiträge: 249
Hallo

Nun die Idee mit dem Auslesen der TOA auf einen USB-Stick oder über Netzwerk ist gar nicht so abwegig, zumal die Aufbereitung mit einem Editor wie UltraEdit viel einfacher wäre als auf der Steuerung. Die Makro- und Skriptmöglichkeiten in UE sind funktional weitaus vielfältiger und einacher zu erstellen, als sich auf der Steuerung mit Wizard zu plagen.

Ein UP wie das von Blackbird ist schon auch Ok, das habe ich auch mal gemacht. Das unschöne daran ist halt, dass man die Auswertung nicht hauptzeitparallel ausführen kann. Bei Maschinen mit grösseren Magazinen kann das dann gut in die Minuten gehen + Arbeitsunterbruch etc.

Die von Siemens zweckmässige Lösung hierfür heisst SinTDI. Habe mich damit allerdings auch noch nie wirklich auseinandergesetzt. Mir wurde das lediglich vor einiger Zeit beim Maschinenhersteller kurz vorgeführt.

Sollte zur Datenaufbereitung ein UE-Makro erforderlich sein, bitte melden.


--------------------
"Wenn die Torte spricht, hat der Krümel zu schweigen!"
   
Beitrag 24.05.2008, 16:31 Uhr
Boern
Boern
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 27.11.2004
Beiträge: 2.484
QUOTE (Schothorn @ Donnerstag, 22.Mai 2008, 20:55 Uhr)
Du meinst doch nicht als TOA - Daten, oder doch? Das ist zwar leicht, aber dann braucht man immer noch ein Programm, welches die Daten aufbereitet und alles überflüssige entfernt.

Wie ausgelesenen Daten sich nennen weiß ich auch nicht.

Genau einfach mit einem zusätzlichem Programm weiter bearbeiten. Ist halt mit nicht wenig Zeit verbunden ! Oder von Siemens was stricken lassen, wäre mal eine Anfrage wert !


--------------------

Das dringendste Problem der Technologie von heute ist nicht mehr die Befriedigung von Grundbedürfnissen und uralten Wünschen der Menschen, sondern die Beseitigung von Übeln und Schäden, welche uns die Technologie von gestern hinterlassen hat.


Dennis Gabor (1900-79), ungar.-brit. Physiker, Entwickler der Holographie, 1971 Nobelpr.
   
Beitrag 26.05.2008, 06:32 Uhr
Mariteam
Mariteam
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 24.01.2008
Beiträge: 65
So, zwischenzeitlich hatte ich nun Gelegenheit, das Programm mal zu testen. Vorher habe ich es für unsere Bedürfnisse angepasst.

Dabei ist allerdings ein Problem aufgetreten - hier der Betreffende Code-Abschnitt:

CODE
N47 MAGNUM=1

N62 WRITE(ERROR,DATEI,";-----------------------------")
N63 WRITE(ERROR,DATEI,";Werkzeuge in Magazin 1")
N64  FOR ZAEHL=1 TO 164
N65    IF NOT $TC_MPP6[MAGNUM,ZAEHL]==0
N66      WZNAME=$TC_TP2[$TC_MPP6[MAGNUM,ZAEHL]]
   ;DUNR=$TC_TP1[$TC_MPP6[MAGNUM,ZAEHL]]
N67      WKZTYP=$TC_DP1[$TC_MPP6[MAGNUM,ZAEHL],1]
N68      LAENG1=$TC_DP3[$TC_MPP6[MAGNUM,ZAEHL],1]    
N69      RAD1=$TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],1]
N70        IF ($TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],2])
N71          RAD2=$TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],2]
N72          LAENG2=$TC_DP3[$TC_MPP6[MAGNUM,ZAEHL],2]
N73        ENDIF
N74      WRITE(ERROR,DATEI,WZNAME <<" Typ: "<<WKZTYP<<" L1= "<<LAENG1<<" R1= "<<RAD1<<" L2= "<<LAENG2<<" R2= "<<RAD2)
N75      IF NOT ERROR==0 GOTOF FEHLER
N76    ENDIF
N77 ENDFOR


In N70 bis N73 versuche ich, das Vorhandensein einer 2.Schneide zu prüfen und diese - so vorhanden - auch auslesen zu lassen.
Dabei bemängelt die Steuerung: ... Array, falsche Index - Nummer.

Kann jemand dieses Problem lösen? Wie muss ich prüfen, ob ein Array ein bestimmtes Feld aufweist, bzw. wie müsste der Code lauten, alle vorhandenen Elemente eines Arrays abzuarbeiten?

Vielen Dank an alle!
   
Beitrag 27.05.2008, 10:44 Uhr
Mariteam
Mariteam
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 24.01.2008
Beiträge: 65
Hier der aktuelle Programmtext für das Auslesen der Werkzeuge:
CODE
N1 PROC WKZLISTE SBLOF DISPLOF
;************************************************************************
;*                                                                      *
;*  PROGRAMM GIBT LISTE MIT AKTUELLER BELEGUNG VON MAGAZIN 1 AUS,       *
;*  + WERKZEUGE IM ZWISCHENSPEICHER (GREIFER / SPINDEL)                 *
;*  ANGEPASST FUER UNION KCR150 / STAND: 23.05.08                       *
;*                                                                      *
;************************************************************************
N0010 DEF INT ERROR, MAGNUM, ZAEHL, DUNR, WKZTYP
N0020 DEF BOOL IS_VAR=FALSE
N0030 DEF REAL LAENG1, LAENG2, RAD1, RAD2
N0040 DEF STRING[50] WZNAME
N0050 DEF STRING[10] NAME="WKZ_LISTE"      ;NAME DER ZIELDATEI
N0060 DEF STRING[20] PFAD="_N_MPF_DIR"     ;PFAD FUER DIE ZIELDATEI
N0070 DEF STRING[40] DATEI                 ;ZUSAMMENFASSUNG PFAD UND NAME
N0080 DEF STRING[12] SIGNATURE
N0090 DEF STRING[3] SCRATCH
N0100 DATEI="/"<<PFAD<<"/_N_"<<NAME<<"_MPF"

N0110 DELETE(ERROR,DATEI)             ;ALTES ZIEL LOESCHEN
N0120 WRITE(ERROR,DATEI,"M30")        ;FALLS WKZ_LISTE VERSEHENTLICH GESTARTET WIRD

;DATUM UND ZEIT SCHREIBEN
N0130 IF $A_DAY<10
N0140  SCRATCH="0"<<$A_DAY<<"."
N0150 ELSE
N0160  SCRATCH=""<<$A_DAY<<"."
N0170 ENDIF
N0180 SIGNATURE=SCRATCH

N0190 IF $A_MONTH<10
N0200  SCRATCH="0"<<$A_MONTH<<"."
N0210 ELSE
N0220  SCRATCH=""<<$A_MONTH<<"."
N0230 ENDIF
N0240 SIGNATURE=SIGNATURE<<SCRATCH
N0250 IF $A_YEAR<10
N0260  SCRATCH="0"<<$A_YEAR<<""
N0270 ELSE
N0280  SCRATCH=""<<$A_YEAR<<""
N0290 ENDIF
N0300 SIGNATURE=SIGNATURE<<SCRATCH
N0310 WRITE(ERROR,DATEI,SIGNATURE)
N0320 IF $A_HOUR<10
N0330  SCRATCH="0"<<$A_HOUR<<":"
N0340 ELSE
N0350  SCRATCH=""<<$A_HOUR<<":"
N0360 ENDIF
N0370 SIGNATURE=SCRATCH
N0380 IF $A_MINUTE<10
N0390  SCRATCH="0"<<$A_MINUTE<<":"
N0400 ELSE
N0410  SCRATCH=""<<$A_MINUTE<<":"
N0420 ENDIF
N0430 SIGNATURE=SIGNATURE<<SCRATCH<<"00"
N0440 WRITE(ERROR,DATEI,SIGNATURE)
N0450 WRITE(ERROR,DATEI,";----------------")

;ZWISCHENSPEICHER AUSLESEN
N0460 WRITE(ERROR,DATEI,";WERKZEUGE IM ZWISCHENSPEICHER")

N0470 MAGNUM=9998
N0480 FOR ZAEHL=1 TO 3
N0490    IF NOT $TC_MPP6[MAGNUM,ZAEHL]==0
N0500      WZNAME=$TC_TP2[$TC_MPP6[MAGNUM,ZAEHL]]
N0510    ;DUNR=$TC_TP1[$TC_MPP6[MAGNUM,ZAEHL]]
N0520      WKZTYP=$TC_DP1[$TC_MPP6[MAGNUM,ZAEHL],1]
N0530      LAENG1=$TC_DP3[$TC_MPP6[MAGNUM,ZAEHL],1]    
N0540      RAD1=$TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],1]
N0550      IS_VAR=ISVAR("$TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],2]")
N0560        IF IS_VAR==TRUE
N0570          RAD2=$TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],2]
N0580          LAENG2=$TC_DP3[$TC_MPP6[MAGNUM,ZAEHL],2]
N0590        ENDIF
N0600      WRITE(ERROR,DATEI,WZNAME <<" TYP: "<<WKZTYP<<" L1= "<<LAENG1<<" R1= "<<RAD1<<" L2= "<<LAENG2<<" R2= "<<RAD2)
N0610      IF NOT ERROR==0 GOTOF FEHLER
N0620    ENDIF
N0630  ENDFOR

;MAGAZIN ABGRASEN
N0640 MAGNUM=1
N0650 WRITE(ERROR,DATEI,";-----------------------------")
N0660 WRITE(ERROR,DATEI,";WERKZEUGE IN MAGAZIN 1")
N0670  FOR ZAEHL=1 TO 164
N0680    IF NOT $TC_MPP6[MAGNUM,ZAEHL]==0
N0690      WZNAME=$TC_TP2[$TC_MPP6[MAGNUM,ZAEHL]]
N0700    ;DUNR=$TC_TP1[$TC_MPP6[MAGNUM,ZAEHL]]
N0710      WKZTYP=$TC_DP1[$TC_MPP6[MAGNUM,ZAEHL],1]
N0720      LAENG1=$TC_DP3[$TC_MPP6[MAGNUM,ZAEHL],1]    
N0730      RAD1=$TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],1]
N0740         IS_VAR=ISVAR("$TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],2]")
N0750        IF IS_VAR==TRUE
N0760          RAD2=$TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],2]
N0770          LAENG2=$TC_DP3[$TC_MPP6[MAGNUM,ZAEHL],2]
N0780        ENDIF
N0790      WRITE(ERROR,DATEI,WZNAME <<" TYP: "<<WKZTYP<<" L1= "<<LAENG1<<" R1= "<<RAD1<<" L2= "<<LAENG2<<" R2= "<<RAD2)
N0800      IF NOT ERROR==0 GOTOF FEHLER
N0810    ENDIF
N0820 ENDFOR
N0830 M17

N0840 FEHLER:
N0850 MSG("BEIM AUSLESEN DER WZ-DATEN IST EIN FEHLER AUFGETRETEN! (NR:"<<ERROR<<")")
N0860 STOPRE
N0870 DELETE(ERROR,DATEI)
N0880 M0
N0890 MSG()
N0900 M17

;ERROR FEHLERVARIABLE FüR RüCKGABE BEI WRITE UND DELETE
;0 KEIN FEHLER
;1 PFAD NICHT ERLAUBT
;2 PFAD NICHT GEFUNDEN
;3 DATEI NICHT GEFUNDEN
;4 FALSCHER DATEITYP
;10 DATEI IST VOLL /NUR BEI WRITE
;11 DATEI WIRD BENUTZT
;12 KEINE RESSOURCEN FREI
;13 KEINE ZUGRIFFSRECHTE /NUR BEI WRITE
;20 SONSTIGER FEHLER


Beim Ablauf treten allerdings folgende Fehler auf:

1. Abbruch des Programmes mit Fehler 10: (Datei ist voll)
Wenn ich die Sprungbefehle zum Fehler auskommentiere arbeitet das Programm, allerdings nur bis zum 17. Werkzeug. Es sind aber über 60 Werkzeuge in Magazin 1.

2. Das Programm springt bei N740 nicht in die Routine für die 2.Schneide, obwohl im Magazin Werkzeuge mit 2. Schneide vorhanden sind.

An dieser Stelle weiß ich nun keinen Rat mehr und bitte nochmals um eure Mithilfe!

Vielen Dank im vorraus!
   
Beitrag 01.06.2008, 14:36 Uhr
TheBlackBird®
TheBlackBird®
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 21.01.2006
Beiträge: 78
Moin,

@Mariteam

Problem 1: Fehler10-> Datei ist voll
Die max. Groesse einer Datei, welche mit WRITE erzeugt werden kann, wird durch ein MaschinenDatum bestimmt/begrenzt. Grundeinstellung ist dabei iirc 1kB. Dem MD entsprechend wird die Datei auch nicht groesser bzw. kann nicht weiter beschrieben werden. (siehe auch "Write" bei DocOnWeb)

Aendere daher mal das allg. MaschinenDatum MD 11420: LEN_PROTOCOL_FILE auf z.B. 30. Das duerfte zumindest fuer diesen Zweck locker ausreichen. Da dieses MD ein PowerOn benoetigt um wirksam zu werden, ist nach der Aenderung mindestens ein NCK-Reset noetig. (bzw. einmal Maschine Aus und wieder einschalten.)

Problem 2: 2. bzw. Nte Schneide
Wenn das Programm nicht in den Zweig springt, dann kann das nur einen einzigen Grund haben: die Bedingung ist/wird nie erfuellt.
Und selbst wenn Du einmal da hinein gelangen wuerdest, funktioniert das Ganze wohl so dennoch nicht, da Du die Variablen nicht wieder zuruecknimmst aber immer wieder schreiben laesst. Es wuerden also bei allen folgenden Wkz mit nur einer Schneide die Werte fuer die zweite Schneide des letzten gefundenen zweischneidigen Wkzs mitgeschrieben werden. So wie jetzt bei jedem Wkz L2= 0 R2=0 steht. (selbst bei Wkz mit nur einer Schneide)

Mein Ansatz waere daher, die SchneidenZahl fuer das Wkz jeweils auszulesen (N0590 im angehaengten WKZLISTE.SPF) und dann fuer jede angelegte Schneide die Werte auszulesen und nat. auch zu schreiben. (N0620-N0660)


Zusaetzlich hab ich das Ganze dann noch ein klein wenig eingekuerzt. (Ablauf im Label) Dadurch sollte das Programm leichter zu pflegen sein, da z.B. zusaetzliche Parameter so nur an einer Stelle eingetragen werden muessen.
Schau also mal, ob Du das so verwenden bzw. auf dieser Basis weiter Dein Ziel verfolgen kannst.

@Traori
Die Laufzeit eines solchen Programmes habe ich noch nie auf einer echten NC ermittelt. (Steht aber auf der ToDo-List.) Evtl. kann Mariteam ja etwas zur Laufzeit sagen. (Hier unter SinuTrain dauert das keine 5Sek.)
Wobei mir das Auslesen der TO_INI mit nachfolgender externer Datenaufbereitung auch recht gut gefaellt. Muss ich mich gelegentlich mal mit befassen.
So die Laufzeit fuer Mariteam ertraeglich ist und diese Liste moeglichst aktuell auf der Maschine bereit stehen soll, kann er den Zyklus ja jeweils zum ProgrammEnde aufrufen, oder auch via ProgEvent bzw. CycPE_US automatisch zum gewuenschten Zeitpunkt zum Ablauf bringen. Dies wuerde in meinen Augen den Nachteil abmildern, dass der Zyklus nur in Nebenzeiten aufzurufen ist.
SinTDI ist zwar u.A. genau fuer derartige Geschichten gedacht, aber es kostet auch eine Kleinigkeit.


Cu TheBlackBird ®
Angehängte Datei(en)
Angehängte Datei  WKZLISTE.SPF ( 3.65KB ) Anzahl der Downloads: 42
 
   
Beitrag 01.06.2008, 17:55 Uhr
KBPro
KBPro
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 31.03.2006
Beiträge: 127
Hallo mariteam,

mein Vorschlag wäre

N0740 IS_VAR="$TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],2]"
N0750 IF (ISVAR(IS_VAR)==TRUE)
N0760 RAD2=$TC_DP6[$TC_MPP6[MAGNUM,ZAEHL],2]
N0770 LAENG2=$TC_DP3[$TC_MPP6[MAGNUM,ZAEHL],2]
N0780 ENDIF


MfG

KBPro
   
Beitrag 02.06.2008, 16:30 Uhr
Mariteam
Mariteam
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 24.01.2008
Beiträge: 65
danke.gif TheBlackBird®,
das von dir erstellte Programm hat ohne weitere Änderungen funktioniert. Die Laufzeit des Programmes ist nicht der Rede wert, gerade mal ein Wimpernschlag...

Ich hätte das Programm auch gern vorher mit SinuTrain getestet, aber mit den NC-Daten von der betreffenden Maschine habe ich es bisher nicht geschafft, SinuTrain zum laufen zu bringen.
Union hat wohl einige Siemenszyklen (insbesondere den Cycle800) umgestrickt, was beim Start zu diversen Fehlermeldungen führt (Schnittstelle konnte nicht gebildet werden, Cyclus bereits geladen u.v.m).

Aber nach den guten Erfahrungen mit der Community hier bin ich zuversichtlich, auch dieses Problem irgendwann lösen zu können.

Danke an alle Helfer! daumup.gif
   
Beitrag 02.06.2008, 18:00 Uhr
brain2_chef
brain2_chef
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 01.11.2006
Beiträge: 41
HALLO KBPro

habe dein Programm getestet und habe meine WZ auch in der datei WZLISTE gefunden.
Doch bei Satz"
N0570 IF NOT $TC_MPP6[MAGNUM,ZAEHL]==0" kamm eine Arayfehlermeldung.

Meine frage ist, Ist es möglich alle WZ aus der Steuerung auszulesen und nicht nur die aus dem Magazin?

mfg brain2


--------------------
Nach "AB" kommt "WECH"
   
Beitrag 02.06.2008, 20:44 Uhr
TheBlackBird®
TheBlackBird®
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 21.01.2006
Beiträge: 78
Moin,

@Mariteam
Das freut mich doch, dass so lesen. Und DANKE! fuer die Rueckmeldung hier im Forum. (Das ist ja leider noch nicht sooooo selbstverstaendlich.)

@brain2
So Du das Programm WKZLISTE.SPF ohne Aenderungen uebernommen hast, und nach der erscheinenden FehlerMeldung (Array...) alle Werkzeuge des Magazins aufgelistet findest, kann ich mir nur einen Fehler vorstellen:
Dein Magazin Nr.1 hat weniger als 164 Plaetze. Wenn dem so ist, dann trage die Anzahl der Plaetze in N0500 ein. Soll heissen: Wenn Dein Magazin 1 genau 60 Plaetze hat, dann muss N0500 wie folgt lauten

CODE
N0500 MAGPL=60


Somit sollte das Programm dann ohne Fehler durchlaufen.

Alle Wkz? Wie soll man das verstehen? Welche Wkz. sollen dabei beruecksichtigt werden? Alles was in der Wkz-Liste steht/definiert ist, ob beladen oder nicht?? Und/oder Wkz-Schrank? Eine Idee fuer einen Ansatz dies mittels NC-Programm zu realisieren haette ich da schon im Kopf. Allerdings wird das dann uU. von der Laufzeit dann doch wirklich etwas "zaeh".

Aber erzaehl erstmal, was Du Dir da so vorstellst, und was Dir von der Konfiguration der Wkz-Verwaltung des betroffenen Maschinen weisst.

Cu TheBlackBird ®
   
Beitrag 02.06.2008, 21:04 Uhr
brain2_chef
brain2_chef
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 01.11.2006
Beiträge: 41
Hallo TheBlackBird

Unser Kettenmagazin hat nur 16 Plätze.

Sorry hatte mich vorhin falsch ausgedrückt, ich meinte den Werkzeugschrank. In der ausgelesenen Datei waren alle beladenen Wz des Magazins trotz der Fehlermeldung. Würde aber gerne noch den Werkzeugschrank auslesen, um auch die Wz mit T nummern zu haben die an der Steuerung von den bedienern angelegt wurden. Unsere Haupt T nummern gehen nicht weiter als 315,ausser 2 Stück mit T999 und T990. Das wegen der Länge der auszulesenden Zeit ist nebensächlich, es wird ja nicht oft verwendet, und nur zur Aktualisierung vom Cam Programm.

Danke nochmal Mariteam für dein programm und TheBlackBird für deine Antwort

mfg brain2


--------------------
Nach "AB" kommt "WECH"
   
Beitrag 02.06.2008, 22:40 Uhr
TheBlackBird®
TheBlackBird®
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 21.01.2006
Beiträge: 78
Moin,


Tja, wo wir grad beim "falsch ausdruecken" sind. Ich haette einen Ansatz fuer das Auslesen der Wkz-Liste im Hinterkopf gehabt (Wkz beladen oder auch nicht beladen). Fuer das Auslesen vom "Wkz-Schrank" (SK "Beladen aus Schrank") fehlt mir dieser Ansatz. Meines Wissens nach liegen die Daten fuer den Wkz-Schrank in einer MDB-Datei (Datenbank) auf der MMC/PCU, und sind der NC so nicht bekannt. Und mir will aus dem Stand nichts einfallen, wie man aus einem NC-Programm auf diese MDB Zugriff erlangen kann. Sry.

Cu TheBlackBird ®
   
Beitrag 03.06.2008, 12:57 Uhr
brain2_chef
brain2_chef
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 01.11.2006
Beiträge: 41
HALLO TheBlackBird

Trotzdem danke für deine Mühe


mfg brain2


--------------------
Nach "AB" kommt "WECH"
   
Beitrag 06.06.2008, 09:54 Uhr
trollrne
trollrne
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 14.11.2007
Beiträge: 220
Hallo,

die .MDB kann man im Dienste Menü einfach auf Diskette kopieren (nicht mit Daten aus!) und mit MS-Access öffnen.
Da bekommt eine wunderschöne Tabelle mit allen Schneiden Längen etc.

MfG
   
Beitrag 09.06.2008, 07:41 Uhr
Mariteam
Mariteam
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 24.01.2008
Beiträge: 65
QUOTE (trollrne @ Freitag, 06.Juni 2008, 09:54 Uhr)
Hallo,

die .MDB kann man im Dienste Menü einfach auf Diskette kopieren (nicht mit Daten aus!) und mit MS-Access öffnen.
Da bekommt eine wunderschöne Tabelle mit allen Schneiden Längen etc.

MfG

Bitte beschreibe doch mal genau, welche Datei du kopiert hast.

Ich habe aus dem Verzeichnis Werkzeugverwaltung/WZV-Daten die Datei wzaccess.mdb kopiert, anschließend in Accsess eine leere Datenbank angelegt und diese Datei importiert. In den nun importierten Tabellen habe ich keine Daten aus der Werkzeugliste gefunden.

mfg, Mariteam
   
Beitrag 09.06.2008, 12:22 Uhr
trollrne
trollrne
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 14.11.2007
Beiträge: 220
Jo! Da haste wohl recht! mad.gif
Die doofe MDB Datei geht nur mit Access97 oder tiefer auf!!!!

Habe die Schneidentabelle aus meiner .MDB mal als Excel-Tabelle exportiert (siehe Anhang)

Vielleicht kommst Du noch an ne Alte Access Version ran...

MfG
Angehängte Datei(en)
Angehängte Datei  WK_wzschneid.zip ( 13KB ) Anzahl der Downloads: 61
 
   
Beitrag 09.06.2008, 14:58 Uhr
Mariteam
Mariteam
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 24.01.2008
Beiträge: 65
QUOTE (trollrne @ Montag, 09.Juni 2008, 12:22 Uhr)
Jo! Da haste wohl recht! mad.gif
Die doofe MDB Datei geht nur mit Access97 oder tiefer auf!!!!

Habe die Schneidentabelle aus meiner .MDB mal als Excel-Tabelle exportiert (siehe Anhang)

Vielleicht kommst Du noch an ne Alte Access Version ran...

MfG

Ich konnte die in meinem letzten Beitrag genannte Datei zwar mit Access2000 zwar nicht direkt öffnen, wohl aber in eine neue, leere Datenbank importieren.
Die Tabelle WK_wzschneid ist allerdings leer, woran auch der Export nach Excel nichts ändern kann.

mfg, Mariteam
   
Beitrag 10.06.2008, 12:29 Uhr
trollrne
trollrne
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 14.11.2007
Beiträge: 220
Du hast aber definitiv Werkzeuge im Werkzeugschrank oder?

Es sind ja nur die Schrank- bzw. Katalogdaten in dieser Datei.

Stehen in den anderen Tabellen irgendwelche Werte?

Sonst ist es vielleicht wirklich so, dass das 2000er Access auch schon Probleme hat.

Kannst Deine .mdb ja mal Posten, ich mach sie denn mal mit Access97 auf.

MfG
   
Beitrag 10.06.2008, 13:11 Uhr
Mariteam
Mariteam
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 24.01.2008
Beiträge: 65
Ok, dann ist ja alles klar. Ich habe bisher keine Werkzeuge im Schrank, nur in der Liste und um die ging es mir.

Wenn ein Werkzeug aus der Liste nicht im Magazin 1 oder im Belademagazin 6 ist, so führt die Maschine einen "Handwechsel" aus, sobald ein solches Werkzeug aufgerufen wird.

Mit dem "Schrank" bin ich noch nicht so vertraut und die Bediener offensichtlich auch nicht, da sie ihn ja bisher nicht benutzt haben. Das muss ich mir mal anlesen.

Immerhin ist jetz klar, warum bei mir die Tabelle leer war.

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