Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Automatisches Türöffnen erst nach 30 Sekunden

Beitrag 24.07.2024, 12:19 Uhr
cak1988
Level 1 = Community-Lehrling
*
Hallo , wir haben in der Firma das Problem , dass das Arbeitsinspektorat uns aufgetragen , dass die Türen bei Verwendung von Kühlschmierstoff am Progammende erst nach 30 Sekunden entriegeln dürfen .
Ich möchte ungern überall eine Verweilzeit eintragen . Wir reden von rund 60 Maschinen und etlichen 1000 Programmen .

Weiteres muss es nicht sein wenn ohne KSS gefahren wird !

Meine Gedanke war es , dass wenn die KSS Pumpe nach ein und dann wieder ausschalten quasi eine Verweilzeit im Hintergrund läuft und so ein Tür entriegeln verzögert wird .

Ergo würden die Türen bei Programmen ohne KSS sofort aufgehen , und bei Teile wo ich zum Schluss z.B trocken entgrate auch gleich aufgehen ( Es sei denn die 30 Sekunden der KSS vom vorherigen WKZ sind noch nicht abgelaufen )

Maschinen sind größtenteils DMG Maschine mit Sinumerik 840D Powerline und Solutionline . Aber auch ein paar Emco mit 840D und 828D .

Ist sowas technisch mit möglichst geringem Aufwand möglich oder wird das ein riesen Projekt?
   
Beitrag 24.07.2024, 12:45 Uhr
Tobe87
Level 2 = Community-Facharbeiter
**
So wie von dir vorgeschlagen, würde es nur mit einer Änderung im PLC Programm möglich sein.
Da wäre eine Verweilzeit im NC Programm der geringere Aufwand.
Erst recht wenn ein Programm auf unterschiedlichen Maschinen läuft..

Gruß
Tobi
   
Beitrag 24.07.2024, 13:12 Uhr
CNCFr
Level 7 = Community-Professor
*******
Bei mehreren Tausend Programmen ist auch die Programmierung einer Verweilzeit in den NC-Programmen sicher kein ganz kleiner Aufwand. Je nachdem, wie die Programme aufgebaut sind kann das auch riskant sein, weil die Programme z.B. an mehreren verschiedenen Stellen beendet werden können.
Entsprechendes gilt wohl auch für die PLCs, die auch nicht bei allen Maschinen identisch sind.
Denkbar wäre noch eine einfache Hardwarelösung: Wenn die KSS-Pumpe läuft, zieht ein Zeitrelais mit 30s Abfallverzögerung an, mit dem über einen Kontakt das Öffnen der Tür gesperrt wird.
Das wären dann 60 Zeitrelais für die 60 Maschinen und einige Arbeitsstunden für den Elektriker. Das hätte auch den Vorteil, dass man die Verzögerungszeit bei Bedarf individuell und einfach ändern könnte.
   
Beitrag 24.07.2024, 13:32 Uhr
Tobe87
Level 2 = Community-Facharbeiter
**
Man könnte es auch einfach über den Zyklus CYCPE1MA bzw. CYCPE1US machen.
IF $P_PROG_EVENT==2
G4 F30
ENDIF
Ob die auch bei der 828D zur verfügung stehen weiß ich leider nicht.
   
Beitrag 24.07.2024, 13:55 Uhr
G00Z0
Level 5 = Community-Ingenieur
*****
Moin, ein G4 F30 als Zeile automatisiert in ein oder 10.000 NC-Programme einzufügen ist kein Zauberwerk.
Das Ergebnis würde auch das Arbeitsinspektorat zufriedenstellen.
Ein wenig Programmierkenntnisse braucht es dann schon.
Ich als Oldie mach sowas in perl , weil ich es damit kann (und sonst keine andere Sprache).


--------------------
Wir haben doch keine Zeit --> G00Z0

Diesem User wurde verliehen: "Das Norddeutsche Qualitätsposting Siegel"
   
Beitrag 25.07.2024, 07:30 Uhr
cak1988
Level 1 = Community-Lehrling
*
Gibt es einen Befehl abzufragen ob das letzte im Programm eingesetzte Werkzeug mit Wasser oder ohne gefahren ist?

Die variante mit dem Zeitrelais gefällt unserem Elektriker nicht da er dann in die "Sicherheit" (Türverriegelung) der Maschine eingreift und dass macht er nicht .

Wenn ich abfragen könnte ob das letzte Werkzeug das im Einsatz war , Trocken gefahren ist (M25/M26/M9) könnte ich ein Unterprogramm erstellen, wo dann eine Verweilzeit abläuft wenns mit Wasser war. Ohne Wasser würde er die Verweilzeit überspringen und die Türen sofort aufgehen !

So in der Art
L123.SPF
IF ... letztes Werkzeug M25/M26/M9
G4 F30
ENDIF


@Tobe87 : Was bewirkt bzw Steuert das Cycpe1ma ? bzw wie müsste ich dass dann schreiben . Sorry , bin so weit noch nicht in der Zyklus erstell Materie wie ihr ....

Danke


   
Beitrag 25.07.2024, 09:14 Uhr
Tobe87
Level 2 = Community-Facharbeiter
**
Moin.
Der Zyklus Cycpe1ma ist dem Maschinenhersteller vorbehalten.
Für den User ist der Cycpe1us.SPF vorgesehen.
Beide werden nach einem Ereignis im Progevent als ASUP aufgerufen wenn sie vorhanden sind.
Mit der Systemvariable $P_PROG_EVENT lässt sich abfragen welches Ereignis den Zyklus Progevent ausgelöst hat.

Hier eine Übersicht aus der Doku.

0: explizite Aktivierung durch NC-Start oder ASUP-Start über VDI- bzw. ASUP-Schnittstelle
1: implizite Aktivierung durch Ereignis "Teileprogramm-Start"
2: implizite Aktivierung durch Ereignis "Teileprogramm-Ende"
3: implizite Aktivierung durch Ereignis "Bedientafel-Reset"
4: implizite Aktivierung durch Ereignis "Hochlauf"
5: implizite Aktivierung nach Ausgabe des letzten Aktionssatzes nach Satzsuchlauf
6: implizite Aktivierung von /_N_CST_DIR/_N_SAFE_SPF durch Ereignis "Hochlauf" (Poweron-Safety-Event)

In deinem Fall willst du etwas nach dem Programm Ende machen.
Also.
IF $P_PROG_EVENT==2
...
ENDIF


   
Beitrag 25.07.2024, 10:40 Uhr
cak1988
Level 1 = Community-Lehrling
*
Ok danke .

Die Abfrage der Werte für Kühlmittel habe ich jetzt herausgefunden über $TC_DP25[$P_TOOLNO,1]==wert
Das ganze habe ich in ein Unterprogramm gepackt . (L800.SPF)

L800.SPF
-----------------------------------------------------------------
IF $TC_DP25[$P_TOOLNO,1]==1280
g4 f30
endif
; innenkuehlung
IF $TC_DP25[$P_TOOLNO,1]==2304
g4 f30
endif
; aussen. und innenkuehlung
IF $TC_DP25[$P_TOOLNO,1]==3328
g4 f30
endif
m17
--------------------------------------

Und über den Cycpe1us.SPF könnte ich jetzt quasi das Unterprogramm Automatisiert aufrufen ?

Oder muss ich dann trotzdem in das Programm einen extra Aufruf für das CYYPE1US unterprogramm machen ?
Oder läuft das Automatisch mit ProgrammEnde (M30) ab ?

Oder kann ich mein Unterprogramm direkt in das CYCPE1US.SPF schreiben . Wäre natürlich genial wenn ich das nicht mehr ins Prog Schreiben muss sondern es Automatisch bei M30 aufgerufen wird .

Vielen Dank schonmal bis hierher !
   
Beitrag 25.07.2024, 10:53 Uhr
Tobe87
Level 2 = Community-Facharbeiter
**
Du kannst deinen Code direkt in das Cycpe1us.SPF rein packen oder dort dein L800 aufrufen.
Aber vergiss nicht die Variable $P_PROG_EVENT
Cycpe1us wird bei jedem Ereignis Aufgerufen. Also auch bei Hochlauf, Programmstart usw.

Also etwa so.
IF $P_PROG_EVENT==2 ; Nur nach M30
IF $TC_DP25[$P_TOOLNO,1]==1280
G4 F30
ENDIF
; innenkuehlung
IF $TC_DP25[$P_TOOLNO,1]==2304
G4 F30
ENDIF
; aussen. und innenkuehlung
IF $TC_DP25[$P_TOOLNO,1]==3328
G4 F30
ENDIF
ENDIF
M17
   
Beitrag 25.07.2024, 11:17 Uhr
CNCFr
Level 7 = Community-Professor
*******
Man hat hier natürlich das Problem, dass die Wartezeit von 30 Sekunden gegebenenfalls nicht eingehalten wird, wenn das letzte aktive Werkzeug keine Kühlung hat und kürzer als 30s im Einsatz war und das vorletzte aktive Werkzeug eines mit KSS war.
Eine Alternative wäre eine Synchronaktion, die erkennt, wenn ein Werkzeug mit KSS aktiv ist und immer bei der Deaktivierung eines solchen Werkzeugs einen Timer mit 30s Laufzeit triggert. Das Ganze müsste man dann noch mit dem Programmende verbinden. Das wird schnell unübersichtlich.
Einfacher wäre es schon, wenn man unmittelbar den Zustand der Kühlmittelpumpe (ein / aus) abfragen könnte.
   
Beitrag 26.07.2024, 11:50 Uhr
cak1988
Level 1 = Community-Lehrling
*
Habe das ganze nun mit Cycpe1us probiert , da kommen etliche Fehler wie z.B Sicherheits Logik nicht aktiv usw .
Dann hätte ich das ganze Alternativ mit Cycpe_us probiert . Hier kommen zwar die Fehler der Sicherheitslogik nicht aber anscheinend überliest er mir das einfach .

Im MD %20108 Bit 1 ist gesetzt ! ( Prog_Event_Mask) Bit1 = bei Teile Programm Ende

Wie müsste der "Zyklus Kopf des Cycpe_us aussehen ?
Muss ich einen Pfad für den Cycpe_us angeben ?

PROC CYCPE_US DISPLOF SBLOF ;steht bei mir jetzt oben
IF $P_PROG_EVENT==2
%_N_L800_SPF
; ( L800 liegt im Unterprogramm Ordner . lt. Handbuch sucht er bei SPF automatisch im Unterprogramm Ordner nach entsprechendem Prog)
M17

Wie müsste ich das sonst mit Cycpe1us schreiben , damit die Logik Fehler nicht mehr kommen , ( auch Kreuzweise Datenvergleich usw. kommt )

Danke
   
Beitrag 26.07.2024, 12:46 Uhr
Tobe87
Level 2 = Community-Facharbeiter
**
PROC CYCPE1US ;DISPLOF SBLOF ;Die würde ich erstmal weg lassen bis es läuft
IF $P_PROG_EVENT==2
;%_N_L800_SPF ; Ich denke hier lag der Fehler
L800 ; Wenn der Name richtig ist und das Programm im Verzeichnis Unterprogramme liegt wird es die Maschine finden
ENDIF ; Hatte gefehlt!
M17

Wichtig ist das nach dem einfügen von dem Programm ein NCK Reset gemacht wird damit die Maschine ein Interface bilden kann.
Hat die Maschine mehr als nur einen Kanal? Wenn ja würde ich die IF abfrage noch ändern.
IF ($P_PROG_EVENT==2)AND($P_CHANNO==1)
   
Beitrag 29.07.2024, 07:07 Uhr
cak1988
Level 1 = Community-Lehrling
*
Ist jetzt in diesem Fall ein DMG DMF260/11 mit C-Achse im Tisch links und Schwenkkopf (Keine Trennwand oder änliches) . Wie finde ich denn heraus ob die Maschine mehere Kanäle hat bzw . was bedeutet genauer gesagt mehrere Kanäle . Sorry für die blöde Frage . Habe zwar fast 2 Jahrezente Maschinen programiert, jedoch schlage ich mich erst seit kurzem mit solchen Problemen und "Programmierungen" rum ..... War vorher nie nötig .
Aber es ist ja nie zu spät etwas neues zu lernen .

Trotzdem schonmal vielen Dank bis hierher .

Gruß Carsten
   
Beitrag 31.07.2024, 10:02 Uhr
Tobe87
Level 2 = Community-Facharbeiter
**
Schaue in den MD´s 10010 nach.
Die Indexe zeigen ob ein Kanal aktiv ist oder nicht.
   
Beitrag 31.07.2024, 15:49 Uhr
bravernoe
Level 1 = Community-Lehrling
*

Das klingt nach einer pragmatischen Lösung. Die Idee, die Türen bei KSS-betriebenen Maschinen verzögert zu entriegeln, könnte funktionieren, indem man die Pumpe zur Steuerung der Verweilzeit nutzt. Dies könnte jedoch komplizierter werden, da du sicherstellen musst, dass die Steuerungssysteme dies unterstützen und korrekt implementieren.

Eine mögliche Lösung wäre, ein Steuerungsmodul oder eine Programmierung zu verwenden, die die Verweilzeit basierend auf dem KSS-Betrieb erkennt und entsprechend die Türverzögerung steuert. Dies könnte eventuell in den bestehenden Steuerungssystemen integriert werden, könnte aber dennoch Aufwand erfordern, insbesondere bei der Konfiguration und Programmierung.


--------------------
To change the world, you must first change the way you think.
   
Beitrag 01.08.2024, 08:50 Uhr
SeanClaud
Level 3 = Community-Techniker
***
Hallo,
ich finde dieses Thema, ist etwas eigenartig. Eine saubere Lösung, kann meiner Meinung nach nur in der PLC umgesetzt werden. Wenn es um "Sicherheit" geht, müsste dies sogar über das Safety Programm verriegelt werden.
Wenn es eine "Norm" dafür gibt, müssten das eigentlich die Maschinen schon so ausgeliefert werden.
Die Umsetzung übers ProgEvent (CYCPE1US) zu machen, ist ja prinzipiell nicht falsch, birgt aber seine Tücken smile.gif.
Eine Werkzeugabfrage ($P_TOOLNO), wenn kein Werkzeug angewählt ist (T0) führt zwangsläufig zum Fehler.
Somit eher IF ($P_PROG_EVENT==2) AND ($P_TOOLNO > 0).
Aber ja, wenn der Arbeitsinspektor dies so entscheidet, hat der Themenstarter eine Menge Arbeit, dies umzusetzten.
Bei zig Maschinen, unterschiedlicher Softwarestände und Hersteller, ist das schon eine Ansage.

Gruß
   
Beitrag 01.08.2024, 09:12 Uhr
CNCFr
Level 7 = Community-Professor
*******
Ich stimme dir zu, dass eine saubere Lösung nur in der PLC machbar ist. Schließlich ist die PLC genau für solche Aufgaben da.
Die Lösung über die Abfrage der Werkzeuge ist letztlich eine Krücke. Man interessiert sich ja (ausschließlich) dafür, wann die Kühlmittelpunkte ein- bzw- ausgeschaltet ist. Was hat dass damit zu tun, welches Werkzeug aktiv ist?
Möglicherweise läuft die KSS-Pumpe ja gar nicht immer, wenn ein Werkzeug mit Kühlmittel aktiv ist. Ich könnte mir vorstellen, dass die Pumpe z.B. bei einem Werkstück- oder Werkzeugwechsel nicht läuft. Wie sieht es aus, wenn man in einem Testlauf "in der Luft" fährt? Läuft die Pumpe dann auch immer, abhängig vom aktuellen Werkzeug?
Und umgekehrt ist ja denkbar, dass sich die Pumpe auch unabhängig vom aktuell aktiven Werkzeug ein- oder auch ausschalten lässt. Das könnte je nachdem wie die Maschine konfiguriert ist, auch dann geschehen, wenn überhaupt kein Programm läuft.
   
Beitrag 01.08.2024, 12:55 Uhr
cak1988
Level 1 = Community-Lehrling
*
Der Aussage , dass die Maschinen bereits so ausgeliefert werden sollten stimme ich absolut zu . Habe auch bereits mit den Maschinennhersteller Kontakt aufgenommen , und das ist wohl eine neue noch nicht 100% etablierte Maßnahme . Wohl auch noch etwas abhängig von Prüfer zu Prüfer .

Ich bleibe auf jeden Fall mal am aktuellen Ansatz dran . Hatte die letzten 3 Tage keine Zeit mich weiter damit zu befassen , wird aber morgen wieder etwas
PLC gesteuert wäre natürlich die sauberste Lösung .

Mal sehen was von Hersteller Seite noch so an Infos zu dem Thema kommt . Bis zur Frist wirds aber wohl über Abfrage laufen und dann sehen wir weiter.

Ich halte euch auf dem Laufenden . Und ja etliche Maschinen mit verschiedenen Software Ständen wird durchaus ein Herrausforderung .
Haidenhain wird dann das nächste Thema ..... yippiieee .

Bis hierher Danke an alle für Hilfe und Infos
   
Beitrag 07.08.2024, 11:21 Uhr
cak1988
Level 1 = Community-Lehrling
*
Die 30 Sekunden Verweilzeit laufen mal soweit .

ABER .... Automatisches Tür entriegeln geht nicht mehr , da die Maschine zwar die Verweilzeit ablaufen lässt aber die Maschine trotzdem vorher schon entriegelt . Also Tür wird entriegelt , neuer Programmstart oder sonstige Interaktionen sind erst nach Ablauf der Verweilzeit möglich ....

Auto Tür entriegeln bei M30 : Bit entfernt --> Programm funktioniert , entriegeln per Taste erst nach 30 Sekunden möglich!

LEIDER läuft aber dieser Zyklus nun auch ab wenn ich im TSM ein WErkzeug aus dem Magazin raushole , welches Wasser eingeschaltet hat . Logisch ist ja ein " Teileprogramm" wo dann auch ein TeileProgramm Ende vorhanden ist und Prog Event 2 auswirft ..... Nicht so Ideal .

Mal sehen ob ich da nicht noch irgendwie eine weitere Abfrage reinsetzen kann , das es bei Wkz Wechsel nicht aufgerufen wird .

Oder evtl doch die Abfrage ob die Pumpe an ist oder eben nicht !
   
Beitrag 09.08.2024, 11:26 Uhr
cak1988
Level 1 = Community-Lehrling
*
Hat wer eine Idee wo ich den passende Systemvariable finden könnte für Pumpe an bzw aus ?

Müsste ja irgendwie ein Signal rausgehen Pumpe an bzw Pumpe aus .

Habe mir mal die Stromlaufpläne angeschaut ob ich dort etwas finde bzgl. Parameter oder System Variable . Dort werde ich auch nicht schlauer .

Hat alles so seine Tücken mit dem CYCPE1US . wie wer oben schon mal geschrieben hat ...
   
5 Besucher lesen dieses Thema (Gäste: 5)
0 Mitglieder: