Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Werkstückzähler nach Uhrzeit rücksetzten

Beitrag 06.12.2016, 19:36 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
Hallo Community,
Ist es möglich das ein Programmierter Werkstückzähler ($AC_ACTUAL_PART) nach, sagen wir mal einer gewissen Uhrzeit (05.30Uhr/13.30Uhr/21.30Uhr) sich Automatisch auf 0 zurücksetzt? Wenn ja, könntet ihr mir ein Beispiel dafür nennen? Vielen dank
   
Beitrag 07.12.2016, 07:41 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (Bronko69 @ 06.12.2016, 20:36 Uhr) *
Hallo Community,
Ist es möglich das ein Programmierter Werkstückzähler ($AC_ACTUAL_PART) nach, sagen wir mal einer gewissen Uhrzeit (05.30Uhr/13.30Uhr/21.30Uhr) sich Automatisch auf 0 zurücksetzt? Wenn ja, könntet ihr mir ein Beispiel dafür nennen? Vielen dank


$A_HOUR
$A_MINUTE

kannst dir ja so ne uhrzeit bilden und zähler abnullen.
Ansonsten hol dir doch n Angebot bei guest, der würde dir auch n Zyklus für sowas basteln, der auch sicher funktionert.


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 07.12.2016, 23:03 Uhr
Guest_guest_*
Themenstarter
Gast


smile.gif
   
Beitrag 07.12.2016, 23:48 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE (Bronko69 @ 06.12.2016, 19:36 Uhr) *
Hallo Community,
Ist es möglich das ein Programmierter Werkstückzähler ($AC_ACTUAL_PART) nach, sagen wir mal einer gewissen Uhrzeit (05.30Uhr/13.30Uhr/21.30Uhr) sich Automatisch auf 0 zurücksetzt? Wenn ja, könntet ihr mir ein Beispiel dafür nennen? Vielen dank


Der JobShop-Stückzähler ist eigentlich zum zählen der gefertigten Teile (Anzahl der Programmläufe) gedacht. Deshalb würde ich diesen Zähler nur bei einem neuen Auftrag zurücksetzen.
Für das Zählen der Teile pro Schicht, kann man auch je einen eigenen Zähler (auch je Schicht) programmieren.
Wie der aussehen kann ist dann Geschmacksache und könnte in einem globalen Unterprogramm ablaufen.
Man könnte auch die jeweilige Stückzahl je Schicht zum Schichtwechsel, mit einem Zeitstempel protokollieren und anschließend abnullen.
Ich denke das ist wohl das Ziel der Aktion?

Der Beitrag wurde von guest bearbeitet: 07.12.2016, 23:52 Uhr
   
Beitrag 08.12.2016, 00:01 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
oh ich lasse dir den vortritt

langsam gelesen ?


--------------------
MfG
Andy

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


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
Beitrag 08.12.2016, 16:12 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
Genau so ist es biggrin.gif
Ziel ist es so wie du sagst, die Stückzahl pro Schicht zu Protokollieren und nachzuverfolgen.
Optimal wäre das, wenn die Gesamtstückzahl und die Tagesstückzahl aufgeteilt in (3x8std deshalb die Zeiten) protokolliert werden würde.
Und das ganze mit dem DMC Messenger aufgezeichnet und erfasst werden könnte.
Ich hab die Unterlagen zu dem DMG Messenger durchforstet aber nicht wirklich etwas brauchbares gefunden.
Mich würde es sehr interessieren durch welchen befehl der Tages-Werkstückzähler und der Gesamtstückzähler erfasst wird. coangry.gif
   
Beitrag 08.12.2016, 17:19 Uhr
Guest_guest_*
Themenstarter
Gast


Die internen Zähler werden in der Regel mit dem M30-Makro hochgezählt und werden beim Systemstart mit einem Default-Wert initialisiert.
Ansonsten müsste man etwas tiefer in die Hersteller-Konfiguration eingreifen.
Nach wie vor sind individuelle Anwender-Zähler noch immer das Beste.
Im Normalfall nutze ich die letzten 10 R-Parameter (R90-R99) für solche Zähler.
Diese R-Parameter bleiben immer erhalten. Alternativ sind natürlich auch GUD's dafür ganz sinnvoll.
Mit der Protokollierung in einer Datei hast du natürlich den Vorteil, daß diese auch ohne größere Probleme zu ebenfalls festgelegten Terminen automatisiert auf die Festplatte verschoben werden kann.
Wenn ich das richtig gesehen habe, könnte man mit dem DMC-Messenger auch lesend auf einen auswählbaren Bereich der R-Parameter zugreifen. Das ist aber nicht mehr meine Baustelle. wink.gif
Die Protokoll-Datei könnte für eine spätere Auswertung in der AV auch im CSV-Format erzeugt werden.
   
Beitrag 08.12.2016, 17:23 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
Wie guest schon schrieb,

du musst eigene Zähler verwenden und die Uhrzeit abgleich.
Man könnte auch es so weit treiben und für den Fall eine eigene Maske erstellen.
Samt Schichtzeiten Stückzahlen etc.

An deiner Stelle würde ich es einen machen lassen. Vor allem kannst du an allen Maschinen die Maske bzw. den Zyklus einheitlich nutzen.


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 08.12.2016, 17:48 Uhr
Guest_guest_*
Themenstarter
Gast


Mit Maske erscheint mir das Ganze etwas zu aufwändig, weil hier auch irgendwo ein Softkey nötig wäre ... Also Eingriff in die HMI.
Dann wäre auch eine Installation je Maschine notwendig. Ob dann Aufwand und Nutzen noch im richtigen Verhältnis stünden?
Die Schichtwechsel-Zeiten und andere Einstellungen kann man auch in einem kleinen übersichtlichen, leicht zu editierenden UP plazieren. Der Bediener soll ja auch möglichst nichts von alledem zu sehen bekommen. wink.gif
Im Bearbeitungsprogramm steht am Programmende halt nur "Zaehler". Wo der ist muß der gar nicht wissen.
Alles Andere geschieht im Sekunden-Bruchteil im Zähl-UP.
Je nach Anforderung entsteht da natürlich mehr oder weniger Programmieraufwand. Und der darf und muß dann auch Geld kosten. wink.gif
   
Beitrag 08.12.2016, 18:24 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (guest @ 08.12.2016, 18:48 Uhr) *
Mit Maske erscheint mir das Ganze etwas zu aufwändig, ...


hab ja gesagt, man könnte wink.gif ... es so weit treiben wink.gif

dem sind keine grenzen gesetzt smile.gif


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 09.12.2016, 10:29 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
QUOTE (Hexogen @ 07.12.2016, 07:41 Uhr) *
$A_HOUR
$A_MINUTE

kannst dir ja so ne uhrzeit bilden und zähler abnullen.
Ansonsten hol dir doch n Angebot bei guest, der würde dir auch n Zyklus für sowas basteln, der auch sicher funktionert.


Der Beitrag wurde von Bronko69 bearbeitet: 09.12.2016, 10:29 Uhr
   
Beitrag 09.12.2016, 12:20 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
Wie würde das mit dem Uhrzeit bilden funktionieren bzw wie würde die aufgebaut sein?
Könnt ihr mir da ein Beispiel geben? Ich hab gesucht aber noch nichts gefunden.
   
Beitrag 09.12.2016, 12:50 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
QUOTE (Bronko69 @ 09.12.2016, 13:20 Uhr) *
Wie würde das mit dem Uhrzeit bilden funktionieren bzw wie würde die aufgebaut sein?
Könnt ihr mir da ein Beispiel geben? Ich hab gesucht aber noch nichts gefunden.

Hi

Du brauchst erstmal einen Merker. Der für dich die Aufgabe übernimmt, zu prüfen, ob schon der Zähhler genullt wurde.
Das machst du am besten mit einem R - Parameter oder einer GUD.

CODE

IF (( $A_MINUTE => 30) AND ( $A_HOUR => 6)) AND (($A_MINUTE < 30) AND ($A_HOUR <= 14))
; Bedingung zwischen 6:30 Uhr und 14:30 Uhr
IF R95 = 1
R90 = 0; Zähler nullen
R96 = 1; Merker Spätschicht kann genullt werden
R97 = 1; Merker Nachtschicht kann genullt werden
STOPRE
R95 = 0; Zähler wurde schon genullt
ENDIF
ENDIF
IF (($A_MINUTE > 30) AND ($A_HOUR => 14)) AND (($A_MINUTE < 30 ) AND ($A_HOUR <= 22))
;Bedingung zwischen 14: 30 Uhr und 22:30 Uhr
IF R96 = 1
R91 = 0; Zähler nullen
R95 = 1; Merker Frühschicht kann genullt werden
R97 = 1; Merker Nachtschicht kann genullt werden
STOPRE
R96 = 0; Zähler wurde schon genullt
ENDIF
ENDIF
IF (($A_MINUTE > 30) AND ($A_HOUR => 22)) AND (($A_MINUTE < 30 ) AND ($A_HOUR <= 6))
; Bedingung zwischen 22:30 Uhr und 6:30 Uhr
IF R97 = 1
R92 = 0; Zähler nullen
R95 = 1; Merker Frühschicht kann genullt werden
R96 = 1; Merker Spätschicht kann genullt werden
STOPRE
R97 = 0; Zähler wurde schon genullt
ENDIF
ENDIF


R90 = Stückzähler Frühschicht
R91 = Stückzähler Spätschicht
R92 = Stückzähler Nachtschicht

R95 = Merker Frühschicht
R96 = Merker Spätschicht
R97 = Merker Nachtschicht

So könnte man das ganze als einer vieler Möglichkeiten aufbauen.
Wann die Stückzahlzählungen erfolgen bleibt hier noch vollkommen unberücksichtigt. Dieser Programmteil könnte am Ende des Bearbeitungsprogrammes als Unterprogramm aufgerufen werden.

Der Beitrag wurde von Andy742000 bearbeitet: 09.12.2016, 12:53 Uhr


--------------------
MfG
Andy

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


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
Beitrag 09.12.2016, 14:36 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE (Bronko69 @ 09.12.2016, 12:20 Uhr) *
Wie würde das mit dem Uhrzeit bilden funktionieren bzw wie würde die aufgebaut sein?
Könnt ihr mir da ein Beispiel geben? Ich hab gesucht aber noch nichts gefunden.


Schau mal ins "Programmierhandbuch Arbeitsvorbereitung". Dort findest du auch Beispiele.
Es soll ja ein "Zeitstempel" generiert werden, den das System ja nicht so anbietet.
Die Einzelwerte sind numerisch, haben also keine "Führenden Nullen", die für eine optimale Ausgabe benötigt werden.
Für die Protokollierung (auch für MSG) müssen diese numerischen Zeichenfolgen, mit den entsprechenden Trennzeichen, in einen String gewandelt und verkettet werden.
Der Inhalt der String-Variablen "_stempel" sieht am Ende so aus: "2016/12/09 14:30"
Um das mal zu veranschaulichen:

CODE
;*** Zeit-Stempel-Formatierung Anfang ***
    _stempel="20"<<$A_YEAR<<"/"
    if $A_MONTH<10
        _stempel=_stempel<<"0"<<$A_MONTH<<"/"
    else
        _stempel=_stempel<<$A_MONTH<<"/"
    endif
    if $A_DAY<10
        _stempel=_stempel<<"0"<<$A_DAY<<"  "
    else
        _stempel=_stempel<<$A_DAY<<"  "
    endif
    if $A_HOUR<10
        _stempel=_stempel<<"0"<<$A_HOUR<<":"
    else
        _stempel=_stempel<<$A_HOUR<<":"
    endif
    if $A_MINUTE<10
        _stempel=_stempel<<"0"<<$A_MINUTE<<" "
    else
        _stempel=_stempel<<$A_MINUTE<<" "
    endif
;*** Stempelformatierung Ende ***


Das läßt sich auch kürzer programmieren, büsst dann aber erheblich an Verständlichkeit ein. smile.gif
   
Beitrag 09.12.2016, 14:49 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
Und jetzt schreibt noch einer das WRITE wink.gif

Und etwas zusammengestückelt, und schon hat er seine Lösung -> wieder mal umsonst wink.gif


--------------------
MfG
Andy

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


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
Beitrag 09.12.2016, 15:52 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE (Andy742000 @ 09.12.2016, 14:49 Uhr) *
Und jetzt schreibt noch einer das WRITE wink.gif

Und etwas zusammengestückelt, und schon hat er seine Lösung -> wieder mal umsonst wink.gif


Jetzt kommt's aber auch drauf an, wie die Ausgabe aussehen und in welchem Format sie vorliegen soll.
Wenn hier was über den DMG-Messenger live angezeigt werden soll, sehe ich schwarz, wenn die Zeitformatierung schon zum Problem wird. wink.gif
   
Beitrag 09.12.2016, 16:16 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
3-4 Zeilen kommen schon noch hinzu wink.gif

So ein bißchen WRITE sollte nicht das Problem sein... wink.gif
Denke eher die Umsetzung aus dem Werkstückzähler eine schreibbare Variable zeitabhängig zu machen, und dann auch noch die Zwischenspeicherwerte im "SCHREIB_TEXT" richtig einzubinden, bzw das Schreiben selber wird hier noch ein kleiner "Hindernislauf" .... wink.gif

Hier steht dann ja auch noch die Frage im Raum, wann soll das Schichtergebnis gespeichert ( WRITE ) werden, und wie soll sich die Programmstruktur verhalten, wenn in einer Schicht auch noch ein Umbau erfolgt ?

Hier dürften dann noch ein paar Parameter mehr einfließen....
Was passiert in dem Falle auch bei einer Programmmodifikation und einer Neuanwahl ? Auch hier kann unbeabsichtigt durch die Aufrufprozedure des Programms der Zähler mitten im Schichtlauf auf NULL gebracht werden.

Prinzipiell keine großes Thema, wenn man ein Konzept hat, und weiss was man will, und wo die Tücken im Detail stecken. wink.gif


--------------------
MfG
Andy

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


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
Beitrag 12.12.2016, 02:46 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
Wow super, vielen dank. :-)
Werde es heute oder morgen gleich ausprobieren. Ich halte euch natürlich auf dem laufenden.
Vielen Dank euch!!! biggrin.gif
   
Beitrag 14.12.2016, 07:42 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
Guten Morgen,

Der Zähler funktioniert super.gif und wir mir sogar richtig im Messenger angezeigt ;-)
nur das Automatische Nullen nach abfrage der Zeit läuft nicht....
Könnt ihr mir vielleicht sagen wo der Hund begraben ist?


;STÜCKZAEHLER SETZT SICH AUS $AC_ACTUAL_PARTS zusammen:
;R998=(R998+R31)
;$AC_ACTUAL_PARTS=R998

------------------------------------------------------------------------------------------
;ABFRAGE FUER STÜCKZÄHLER

IF (($A_MINUTE>30) AND ( $A_HOUR<5)) AND (($A_MINUTE<30) AND ($A_HOUR<13))

; Bedingung zwischen 5:30 Uhr und 13:30 Uhr
IF R994 = 1
R997 = 0; Zähler nullen
R995 = 1; Merker Spätschicht kann genullt werden
R996 = 1; Merker Nachtschicht kann genullt werden
STOPRE
R994 = 0; Zähler wurde schon genullt
ENDIF
ENDIF


IF (($A_MINUTE>30) AND ($A_HOUR>13)) AND (($A_MINUTE<30) AND ($A_HOUR<21))

;Bedingung zwischen 13: 30 Uhr und 21:30 Uhr
IF R995 = 1
R998 = 0; Zähler nullen
R994 = 1; Merker Frühschicht kann genullt werden
R996 = 1; Merker Nachtschicht kann genullt werden
STOPRE
R998 = 0; Zähler wurde schon genullt
ENDIF
ENDIF


IF (($A_MINUTE>30) AND ($A_HOUR>21)) AND (($A_MINUTE<30) AND ($A_HOUR<5))
; Bedingung zwischen 21:30 Uhr und 5:30 Uhr
IF R996 = 1
R999 = 0; Zähler nullen
R994 = 1; Merker Frühschicht kann genullt werden
R995= 1; Merker Spätschicht kann genullt werden
STOPRE
R999 = 0; Zähler wurde schon genullt
ENDIF
ENDIF
----------------------------------------------------------------------------------------------
[b]
;R31 = 6 Werkstücke pro durchlauf
;R994 = Merker Frühschicht
;R995 = Merker Spätschicht
;R996 = Merker Nachtschicht
;R997 = Stückzähler Frühschicht
;R998 = Stückzähler Spätschicht
;R999 = Stückzähler Nachtschicht
[/b]

Ich hab aber noch keine Lösung wie ich das nun Aufbauen soll das der
Werkstückzähler $AC_TOTAL_PARTS (Gesamt-Stückzahl die NICHT genullt werden soll) und $AC_ACTUAL_PARTS (Schicht-Stückzahl der genullt werden soll) zählt...

Das ganze nochmal nur dann mit $AC_TOTAL_PART???


Der Beitrag wurde von Bronko69 bearbeitet: 14.12.2016, 07:53 Uhr
   
Beitrag 14.12.2016, 08:13 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
Wenn man "<" mit ">" verwechselt, bzw ">=" oder "<=" nicht richtig verwendet .....

Zudem in der IF Abfrage sollte = zu einer Fehlermeldung führen ..


--------------------
MfG
Andy

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


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
Beitrag 14.12.2016, 09:25 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
hi

Mann sollte nebenbei auch nicht die Zähler und Merker vertauschen;)

Richtig müsste das mit deinen R - Parametern nun so aussehen. Damit kannst du komplett auf $AC_ACTUAL_PARTS und CO verzichten

CODE
R31 = 6; STÜCK JE DURCHLAUF
R32 = 30; SCHICHTWECHSEL - MINUTE
R33 = 5; BEGINN STUNDE FRÜHSCHICHT
R34 = 13; BEGINN STUNDE SPÄTSCHICHT
R35 = 21; BEGINN STUNDE NACHTSCHICHT
;R990 = MERKER ZWISCHENZÄHLER ZUM SPEICHERN
;R991 = SCHICHT
;R994 = Merker Frühschicht
;R995 = Merker Spätschicht
;R996 = Merker Nachtschicht
;R997 = Stückzähler Frühschicht
;R998 = Stückzähler Spätschicht
;R999 = Stückzähler Nachtschicht
;--------------------------------------------------------------
;BEGINN ZÄHLER NULLEN
;FRÜHSCHICHT
IF (($A_MINUTE > R32) AND ($A_HOUR >= R33)); ES IST NACH R33:R32
   IF (($A_MINUTE <= R32) AND ($A_HOUR <=R34));ES IST VOR R34:R32
      IF R994 == 1 ; STATUS ZÄHLER KANN GENULLT WERDEN
         R990 = R997; ZWISCHENERGEBNIS MERKEN
         R997 = 0  ; ZÄHLER WIRD GENULLT
         R995 = 1  ; ZÄHLER SPÄTSCHICHT KANN GENULLT WERDEN
         R996 = 1  ; ZÄHLER NACHTSCHICHT KANN GENULLT WERDEN
         STOPRE
         R994 = 0  ; STATUS ZÄHLER FRÜHSCHICHT WURDE SCHON GENULLT
         R991 = 1  ; STATUS FRÜHSCHICHT AKTIV
      ENDIF
   ENDIF
ENDIF
;SPÄTSCHICHT
IF (($A_MINUTE > R32) AND ($A_HOUR >= R34)); ES IST NACH R34:R32
   IF (($A_MINUTE <= R32) AND ($A_HOUR <=R35));ES IST VOR R35:R32
      IF R995 == 1 ; STATUS ZÄHLER KANN GENULLT WERDEN
         R990 = R998; ZWISCHENERGEBNIS MERKEN
         R998 = 0  ; ZÄHLER WIRD GENULLT
         R994 = 1  ; ZÄHLER FRÜHSCHICHT KANN GENULLT WERDEN
         R996 = 1  ; ZÄHLER NACHTSCHICHT KANN GENULLT WERDEN
         STOPRE
         R995 = 0  ; STATUS ZÄHLER SPÄTSCHICHT WURDE SCHON GENULLT
         R991 = 2  ; STATUS SPÄTSCHICHT AKTIV
      ENDIF
   ENDIF
ENDIF
;NACHTSCHICHT
IF (($A_MINUTE > R32) AND ($A_HOUR >= R34)); ES IST NACH R35:R32
   IF (($A_MINUTE <= R32) AND ($A_HOUR <=R35));ES IST VOR R33:R32
      IF R996 == 1 ; STATUS ZÄHLER KANN GENULLT WERDEN
         R990 = R999; ZWISCHENERGEBNIS MERKEN
         R999 = 0  ; ZÄHLER WIRD GENULLT
         R994 = 1  ; ZÄHLER FRÜHSCHICHT KANN GENULLT WERDEN
         R995 = 1  ; ZÄHLER SPÄTSCHICHT KANN GENULLT WERDEN
         STOPRE
         R995 = 0  ; STATUS ZÄHLER NACHTSCHICHT WURDE SCHON GENULLT
         R991 = 3  ; STATUS NACHTSCHICHT AKTIV
      ENDIF
   ENDIF
ENDIF
;----------------------------------------------------------------------
; STÜCKZÄHLER HOCHZÄHLEN
IF R991 == 1
   R997 = R997 + R31
ENDIF
IF R991 == 2
   R998 = R998 + R31
ENDIF
IF R991 == 3
   R999 = R999 + R31
ENDIF
;-----------------------------------------------------------------------
; SCHICHTERGEBNIS VORSCHICHT SPEICHERN
IF R990 > 0
; HIER PROGRAMMTEIL FÜR WRITE IN PROTOKOLL
; HIER KOMMT DANN AUCH NOCH DAS GANZE GEDÖNNS MIT DEM ZEITSTEMPEL REIN
   STOPRE
   R990 = 0
ENDIF
RET


Was noch sagen wäre die Merker R994- R996 müssen vor dem ersten Durchlauf manuell auf 1 gesetzt werden. Sonst funktioniert das ganze nicht

Der Beitrag wurde von Andy742000 bearbeitet: 14.12.2016, 09:32 Uhr


--------------------
MfG
Andy

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


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
Beitrag 14.12.2016, 09:56 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
Hi

Falls es bei der Nachtschicht Nullung zu Problemen kommt, musst du zusätzlich noch eine OR Abfrage einbauen.

Das wird dann aber etwas kompizierter, wenn du abfragst:

Das heist du musstest abfragen, ob die Startstunde der Nachtschicht zwischen R35 und 23 Uhr liegt, dabei aber auch die Minuten mit Abfragebn ob sie zwischen R32 und 59 liegt, sowie Abfragen als alternative ODER = OR die Minute Zwischen 0 und R32 bzw die Stunde zwischen 0 und R33....


--------------------
MfG
Andy

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


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
Beitrag 14.12.2016, 12:38 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE (Bronko69 @ 14.12.2016, 07:42 Uhr) *
Guten Morgen,

Der Zähler funktioniert super.gif und wir mir sogar richtig im Messenger angezeigt ;-)
nur das Automatische Nullen nach abfrage der Zeit läuft nicht....
Könnt ihr mir vielleicht sagen wo der Hund begraben ist?


Ich vermute mal, das Problem steht vor der Maschine?! wink.gif

[i]
QUOTE
Ich hab aber noch keine Lösung wie ich das nun Aufbauen soll das der
Werkstückzähler $AC_TOTAL_PARTS (Gesamt-Stückzahl die NICHT genullt werden soll) und $AC_ACTUAL_PARTS (Schicht-Stückzahl der genullt werden soll) zählt...

Das ganze nochmal nur dann mit $AC_TOTAL_PART???[/i]


Das Problem bei Copy&Paste ist, daß man auch Fehler, ob absichtlich oder nur flüchtig eingefügt, auch mit kopiert. wink.gif
Bei einer solchen Aufgabe sollte man, zumindest ansatzweise verstehen, was da passiert.
Ein bisschen logisches Denken ist beim Programmieren auch nie verkehrt. wink.gif
Mein Angebot für ein lauffähiges Programm steht übrigens noch. wink.gif
   
Beitrag 14.12.2016, 16:02 Uhr
Guest_guest_*
Themenstarter
Gast


@Andy742000
In deinen Abfragen ist ein kleiner, vielleicht aber entscheidender Denkfehler. wink.gif
Was passiert zum Beispiel, beim Durchlauf des Programms zwischen 15:00 und 15:29 ? wink.gif

@Bronko69
Ich rekapituliere mal:
Die Schichtstückzahl soll bei jedem Programmende um 6 Stück erhöht werden.
Frage: Um wieviel wird $AC_TOTAL_PARTS und $AC_ACTUAL_PARTS am Programmende jeweils erhöht?
Die Schichtstückzahlen sollen zu bestimmten Zeiten genullt werden.
Frage: Wann sollen die Stückzahlen genullt werden? Bei Schichtwechsel zur nächsten Schicht? Oder bei Schichtwechsel zur jeweils gleichen Schicht? Oder manuell?
Die Stückzahlen je Schicht sollen Protokolliert werden.
Frage: In welchem Format sollen die Daten aufbereitet sein? Wo soll sich die Protokoll-Datei befinden?
   
Beitrag 15.12.2016, 22:01 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
Hi

der Fehler dürfte wohl nicht in der Grundogik liegen, sonder in der Form der Auswertung. Aber das kann man dahingehend umgehen oder lösen, in dem man die großere Einheit und die kleinere Einheit auf eine einheitliche Zahl bzw Einheit oder Größe bringt.

Aber wer nicht weiss das eine Stunde aus 60 min besteht, und somit 15 Stunden auch 900 Minuten sind wink.gif

Damit sollte die Vollständige Lösung ausreichend beschreiben sein. Du willst ja schließlich deinen Zyklus verkaufen wink.gif
Wenn der TE schon nicht erkennt, dass das Problem doch komplexer IST..

Die Zeitauswertung ist das eine. Dann müssen auch klare Regeln her, z.B. wann so was wie gespeichert werden. Aber das hast du ja auch schon hinterfragt, ohne eine Antwort zu bekommen.

Schönen Abend


--------------------
MfG
Andy

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


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: