Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Werkstückzähler Schicht

Beitrag 31.05.2018, 08:22 Uhr
Demon
Demon
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.07.2012
Beiträge: 12
Hallo. Ich bin schon länger hier im Forum unterwegs, habe schon vieles gelesen, auch schon vieles für mich mitgenommen. Nun Habe ich jetzt alle 51 Seiten hier durchgelese um das passende für mein Vorhaben zu finden, doch leider ist nichts dabei. Deswegen neues Thema.

Ich arbeite an chiron mit 840d und Hermle mit 840d Shopmill. Ab beiden Maschinen haben wir den Standart Werkstückzähler. Dieser läuft bis man den von Hand auf null Setzt. Mein Traum ist aber dass der Automatisch ungefähr um 14:03 auf null gesetzt wird. Also quasi nur die Schichtstückzahl gezählt wird. Aber das soll in der Originalmaske passieren. Wenn's geht.

Habe schon an die R-parameter gedacht, doch wie kann ich die Aktuelle Uhrzeit in z.b. r200 schreiben, um dann
Wenn r200>14:30 Dann M54 ( m54 ist angeblich Zähler auf null setzen bei Hermle )

Wenn mir einer Helfen kann dann währe es super von euch

Gruß Dimitri
   
Beitrag 31.05.2018, 15:11 Uhr
fräsmurml
fräsmurml
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 14.03.2006
Beiträge: 123
Hallo Demon,

hier eine Möglichkeit:

1.) Uhrzeit in R-Parameter wegspeichern.

R200=$A_HOUR*60+$A_MINUTE ; Aktuelle Uhrzeit in Minuten Umrechnen

Dann steht die aktuelle Uhrzeit in Minuten im R200

Allerdings muss du dir dann noch irgendeine Logik einfallen lassen zu welchen Zeiten du es löschen willst

Mir fällt auf die Schnelle nur das ein, habe gerad nichts zum testen. Ist etwas aufwendig, aber vielleicht reicht dir das ja bzw. gibt dir einen Lösungsansatz:

Kannst ja folgenden Code mal Probieren.
Wenn du den in ein Unterprogramm packst und dieses bei jedem Programm am Start aufrufst könnte es klappen.


; verwendete R-Parameter und Beschreibung
;
; R200 aktuelle Uhrzeit in Minuten
; R202 aktuelle Schicht 1= 1.Schicht
; 2= 2.Schicht
; R205 Flag für zurücksetzen 1. Schicht. 0= Zähler wurde noch nicht zurückgesetzt
; 1= Zähler wurde bereits zurückgesetzt
; R206 Flag für zurücksetzen 2. Schicht. 0= Zähler wurde noch nicht zurückgesetzt
; 1= Zähler wurde bereits zurückgesetzt

R200=$A_HOUR*60+$A_MINUTE ; Aktuelle Uhrzeit in Minuten Umrechnen

; feststellen welche Schicht
IF R200 < 840
R202=1 ; Schicht1 von 00:00 bis 13:59
IF (R205 <> 0) AND (R205 <> 1)
; Parameter steht auf ungueltigem Wert
R205=0 ; auf Defaultwertwert setzen
ENDIF
ELSE
R202=2 ; Schicht2 von 14:00 bis 23:59
IF (R206 <> 0) AND (R206 <> 1)
; Parameter steht auf ungueltigem Wert
R206=0 ; auf Defaultwertwert setzen
ENDIF
ENDIF

IF (R202 == 1) AND (R205 == 0)
; wenn 1. Schicht und Zaehler noch nicht zurückgesetzt dann Zähler zurücksetzen
M54
R205=1 ; Flag das Zähler in Schicht 1 zurückgesetzt wurde
R206=0 ; Flag für Schicht 2 auf 0 setzten
ENDIF

IF (R202 == 2) AND (R206 == 0)
; wenn 2. Schicht und Zaehler noch nicht zurückgesetzt dann Zähler zurücksetzen
M54
R206=1 ; Flag das Zähler in Schicht 2 zurückgesetzt wurde
R205=0 ; Flag für Schicht 1 auf 0 setzten
ENDIF

ich lade den Inhalt auch mal als Unterprogramm hoch. Ist so etwas schwer zu lesen. Bringe keine anständige Formatierung mit Zeileneinrückung hin.

Mfg

Fräsmurml

Der Beitrag wurde von fräsmurml bearbeitet: 31.05.2018, 15:17 Uhr
Angehängte Datei(en)
Angehängte Datei  Stueckzaehler.spf ( 1.44KB ) Anzahl der Downloads: 41
 
   
Beitrag 31.05.2018, 17:56 Uhr
Demon
Demon
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.07.2012
Beiträge: 12
Top. Schon mal vielen dank. Ich werde es morgen ausprobieren. Danke danke danke
   
Beitrag 31.05.2018, 18:13 Uhr
fräsmurml
fräsmurml
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 14.03.2006
Beiträge: 123
Super,

über ein Feedback ob es funktioniert hat oder nicht würde ich mich freuen.

Mfg

Fräsmurml
   
Beitrag 09.06.2018, 15:12 Uhr
Demon
Demon
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.07.2012
Beiträge: 12
QUOTE (fräsmurml @ 31.05.2018, 18:13 Uhr) *
Super,

über ein Feedback ob es funktioniert hat oder nicht würde ich mich freuen.

Mfg

Fräsmurml


Hallo.
Habe nun endlich Zeit gefunden, und dein Unterprogramm ausprobiert. Es Funktioniert, ABER biggrin.gif habe versucht das ganze mit meinem logischen Denken auf 3 Schichten ( da 3-Fach Schicht ) zu ändern, Früh- macht die Maschine, Nacht macht die Maschine, aber in der Spätschicht also von 14:00 bis 22:00 macht sie kein Reset....... BZW. um z.B. 14:05 bleibt der Zähler .
Heute war mein Schädel am qualmen..... aber der Rauch hat nicht viel gebracht biggrin.gif.

Sorry, ich habe vergessen zu sagen dass es 3-Fach-Schicht ist

Könntest du mir da weiterhelfen?

Der Beitrag wurde von Demon bearbeitet: 09.06.2018, 15:14 Uhr
   
Beitrag 09.06.2018, 18:22 Uhr
platsch
platsch
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 01.11.2017
Beiträge: 308
Das Thema gab's hier schon mal vor 1,5 Jahren.
Einfach mal die Suchfunktion mit "Stückzähler" füttern. In den Sinumerik-Themen wirst du auch dieses Thema finden.
Da geht es auch um die Protokollierung der Schichtstückzahlen.
Aber ein fertiges und funktionierendes Unterprogramm für diesen Zweck kostet entweder Nerven und Zeit, oder halt etwas Geld. wink.gif
   
Beitrag 10.06.2018, 08:47 Uhr
fräsmurml
fräsmurml
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 14.03.2006
Beiträge: 123
QUOTE (Demon @ 09.06.2018, 16:12 Uhr) *
Hallo.
Habe nun endlich Zeit gefunden, und dein Unterprogramm ausprobiert. Es Funktioniert, ABER biggrin.gif habe versucht das ganze mit meinem logischen Denken auf 3 Schichten ( da 3-Fach Schicht ) zu ändern, Früh- macht die Maschine, Nacht macht die Maschine, aber in der Spätschicht also von 14:00 bis 22:00 macht sie kein Reset....... BZW. um z.B. 14:05 bleibt der Zähler .
Heute war mein Schädel am qualmen..... aber der Rauch hat nicht viel gebracht biggrin.gif.

Sorry, ich habe vergessen zu sagen dass es 3-Fach-Schicht ist

Könntest du mir da weiterhelfen?


Servus,

hab das Programm nochmal auf 3 Schichten angepasst.
Bitte mal testen ob es deinen Ansprüchen genügt.

Mfg

Fräsmurml

Der Beitrag wurde von fräsmurml bearbeitet: 10.06.2018, 08:48 Uhr
Angehängte Datei(en)
Angehängte Datei  Stueckzaehler.spf ( 2.91KB ) Anzahl der Downloads: 41
 
   
Beitrag 10.06.2018, 10:57 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
R200 == 360 OR R200 > 360

was soll diese Abfrage? tounge.gif

R200 >= 360 reicht aus ...


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 10.06.2018, 11:15 Uhr
fräsmurml
fräsmurml
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 14.03.2006
Beiträge: 123
QUOTE (Hexogen @ 10.06.2018, 11:57 Uhr) *
R200 == 360 OR R200 > 360

was soll diese Abfrage? tounge.gif

R200 >= 360 reicht aus ...


Servus,

hast recht. Hab nur nicht dran gedacht biggrin.gif

Mfg

Fräsmurml
   
Beitrag 10.06.2018, 11:21 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (fräsmurml @ 10.06.2018, 12:15 Uhr) *
Servus,

hast recht. Hab nur nicht dran gedacht biggrin.gif

Mfg

Fräsmurml


Tagesliste...
einmal klugSch***en ... check ...


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 11.06.2018, 20:02 Uhr
Demon
Demon
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.07.2012
Beiträge: 12
Hallo Zusammen,

VIELEN LIEBEN DANK für die Hilfe. Ihr seid echt SUPER !!!

es scheint zu funktionieren,

Nur das dicke hat gefehlt. unt das Wort RET am ende ( was heißt es eigentlich ? ) kennt die Maschine nicht.


IF $P_SEARCH==1 GOTOF END
; bei Satsuchlauf ueberspringen
;
; verwendete R-Parameter und Beschreibung
;
; R200 aktuelle Uhrzeit in Minuten
; R202 aktuelle Schicht 1= 1.Schicht
; 2= 2.Schicht
; 3= 3.Schicht
; R205 Flag für zurücksetzen 1. Schicht. 0= Zähler wurde noch nicht zurückgesetzt
; 1= Zähler wurde bereits zurückgesetzt
; R206 Flag für zurücksetzen 2. Schicht. 0= Zähler wurde noch nicht zurückgesetzt
; 1= Zähler wurde bereits zurückgesetzt
; R207 Flag für zurücksetzen 3. Schicht. 0= Zähler wurde noch nicht zurückgesetzt
; 1= Zähler wurde bereits zurückgesetzt

R200=$A_HOUR*60+$A_MINUTE ; Aktuelle Uhrzeit in Minuten Umrechnen

; feststellen welche Schicht

IF (R200 == 360 OR R200 > 360) OR (R200 < 840) GOTOC SCHICHT1
; von 6:00 bis 14:00
IF (R200 == 840 OR R200 > 840) OR (R200 < 1320) GOTOC SCHICHT2
; von 14:00 bis 22:00
IF (R200 == 1320 OR R200 > 1320) OR (R200 < 360) GOTOC SCHICHT3
; von 22:00 bis 6:00

; Fehlerbehandlung falls Zeit keiner Schicht zugeordnet werden kann
Fehler1:
MSG("!! W A R N U N G !! Schichtzuordnung Fehlerhaft R200=" <<R200")
M00
Stopre
gotob Fehler1


; ========================================================================
SCHICHT1:
R202=1 ; Schicht1 von 06:00 bis 13:59
IF (R205 <> 0) AND (R205 <> 1)
; Parameter steht auf ungueltigem Wert
R205=0 ; auf Defaultwertwert setzen
ENDIF
IF (R202 == 1) AND (R205 == 0)
; wenn 1. Schicht und Zaehler noch nicht zurückgesetzt dann Zähler zurücksetzen
M54
R205=1 ; Flag das Zähler in Schicht 1 zurückgesetzt wurde
R206=0 ; Flag für Schicht 2 auf 0 setzten
R207=0 ; Flag für Schicht 3 auf 0 setzten
ENDIF
GOTO END
; ========================================================================
SCHICHT2:
R202=2 ; Schicht1 von 06:00 bis 13:59
IF (R206 <> 0) AND (R206 <> 1)
; Parameter steht auf ungueltigem Wert
R206=0 ; auf Defaultwertwert setzen
ENDIF
IF (R202 == 2) AND (R206 == 0)
; wenn 2. Schicht und Zaehler noch nicht zurückgesetzt dann Zähler zurücksetzen
M54
R206=1 ; Flag das Zähler in Schicht 2 zurückgesetzt wurde
R205=0 ; Flag für Schicht 1 auf 0 setzten
R207=0 ; Flag für Schicht 3 auf 0 setzten
ENDIF
GOTO END
; ========================================================================
SCHICHT3:
R202=3 ; Schicht1 von 06:00 bis 13:59
IF (R207 <> 0) AND (R207 <> 1)
; Parameter steht auf ungueltigem Wert
R207=0 ; auf Defaultwertwert setzen
ENDIF
IF (R202 == 3) AND (R207 == 0)
; wenn 2. Schicht und Zaehler noch nicht zurückgesetzt dann Zähler zurücksetzen
M54
R207=1 ; Flag das Zähler in Schicht 2 zurückgesetzt wurde
R205=0 ; Flag für Schicht 1 auf 0 setzten
R206=0 ; Flag für Schicht 2 auf 0 setzten
ENDIF

GOTO END

END:

M17

MfG Dimitri

Der Beitrag wurde von Demon bearbeitet: 11.06.2018, 20:03 Uhr
   
Beitrag 11.06.2018, 20:35 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.922
ret =return (Rücksprung aus einem Unterprogramm)
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: