Musterstatistik auswerten

Die Musterstatistik ist im Wesentlichen eine statistische Zusammenfassung des Produktionsreports.

Es kann sehr flexibel über unterschiedliche Spalten gruppiert werden (auch kombiniert)
Daher enthalten die meisten Spalten der Rückgabetabelle Arrays.
Bei ungünstigen Gruppierungen über einen längeren Auswertungs-Zeitraum, können diese Arrays sehr groß werden, was sich dann ungünstig auf die Performance der Auswertungen auswirkt.

Beispiel: Auswertung über ein Jahr

Es wird nur nach Maschinen gruppiert. (Nicht kombiniert mit Gruppierung nach Muster oder Ticket)

Die Ergebnispalte AGG_PATTERN_NAME enthält dann ein Array mit allen Musternamen, die in diesem Jahr produziert wurden.

Aufrufparameter:

Hinweis zu den Filtern:

Wie beim Produktionsreport sind sämtliche Filter als „schwache“ Filter implementiert.
Report-Übersicht

Parameter

Type

Beschreibung

__sSchema

text

Schema der sekundären Datenbank-Tabellen.
Wenn mit temporären Tabellen gearbeitet wird muss _sDestSchema immer == ‘‘ sein

_sTable_Prefix

text,

Prefix der sekundären Datenbank-Tabellen

_aSortorder

text[]

Sortierung (Array aus Spaltennamen)

Beispiel: ARRAY['MC_SORT_ID','START_TIME']

_bGroupByMachine

boolean

Nach Maschine gruppieren

_bGroupByShift

boolean

Nach Schicht gruppieren

_bGroupByUserName

boolean

Nach Benutzer (an der Maschine) gruppieren

_bGroupByPattern

boolean

Nach Muster gruppieren

_bGroupBySeq

boolean

Nach Sequenz gruppieren

_bGroupByTicketUid

boolean

Nach Ticket (PPS-UID) gruppieren

_bGroupByTicketProductionId

boolean

Nach Ticket Produktion ID gruppieren

_bGroupByTicketProductionSub1Id

boolean

Nach Ticket Produktion SubId 1 gruppieren

_bGroupByTicketProductionSub2Id

boolean

Nach Ticket Produktion SubId 2 gruppieren

_bGroupByTicketCustomerId

boolean

Nach Ticket Kunden Id gruppieren

_bGroupByTicketArticleId

boolean

Nach Ticket Artikel Id gruppieren

_aFilterShift

integer[]

Über Schicht(en) filtern

Beispiel:
nur Schicht 1 und 3 ausgeben: ARRAY[1,3]

_aFilterUsername

text[]

Über Benutzer (Stricker) filtern

Beispiel: ARRAY[‚User_1,'User_3']

_aFilterPattern

text[]

Über Sequenzen filtern

Beispiel: ARRAY['S-kUuG01','P-Sjo9v3']

_aFilterSeq

text[]

Über Sequenzen filtern

Beispiel: ARRAY['SEQ-WNJhP3','SEQ-wMWzx2']

_aFilterTicketUid

bigint[][]

Über interne Ticket UID filtern

Beispiel: ARRAY[3374994314,3738720541]

_aFilterTicketProductionId

text[]

Über Ticket Produktion Id filtern

Beispiel: ARRAY['2E0Hl4-H8T803-cId-8','2E0Hl4-H8T803-cId-8']

_aFilterTicketProductionsub1Id

text[]

Über Ticket Produktion Sub1Id filtern

Beispiel: ARRAY['SubId_2','SubId_21']

_aFilterTicketProductionsub2Id

text[]

Über Ticket Produktion Sub2Id filtern

Beispiel: ARRAY['-']

_aFilterTicketCustomerId

text[]

Über Ticket Customer Id filtern

Beispiel: ARRAY['cId-2','cId-4']

_aFilterTicketArticleid

text[]

Über Ticket Artikel Id filtern

Beispiel: ARRAY['H8T803']

_aFilterUserState

Smallint[]

Über Benutzerzustand filtern

Beispiel: ARRAY[4,3]

_aFilterSintralState

Smallint[]

Über Sintralzustand filtern

Beispiel: ARRAY[4,3]

_xFilterMinDuration

interval

Strickteile, die weniger als x Sekunden aktiv waren, herausfiltern.
Damit lassen sich Phantom-Teile, die z.B. durch ungünstige / falsche Event-Reihenfolge entstehen können, herausfiltern.
Sinnvoller Praxis-Wert: ca 2 sec

_bFilterUseOnlyNettoTime

boolean

Nur Netto-Zeiten einbeziehen. ( == Maschine hat das Productive-Flag gesetzt == Zeit von Muster geladen bis Stop Stückzähler ist 0 )

_bFilterUseOnlyProductiveTicketTime

boolean

Wenn == true, werden Zeiten in denen Wartungstickets oder in denen ohne Tickets produziert wurde, herausgefiltert

Rückgabetabelle

Hinweise:

Spalte

Type

Inhalt

MC_ID

integer

SKR Maschine Id

MC_SORT_ID

smallint

Zum alphabetischen Sortieren nach dem Maschinenname
(Der Maschinenname kann mit Hilfe der MC_ID ermittelt werden)

AGG_SEQ_NAME

text[]

Sequenzname (n)

AGG_PATTERN_NAME

text[]

Mustername (n)

START_TIME

timestamp without time zone

Startzeitpunkt

END_TIME

timestamp without time zone

Endzeitpunkt

AGG_SHIFT_STATES

smallint[]

Aktive Schichten

AGG_USER_STATES

smallint[]

Aktive User States während das Teil oder Ticket bearbeitet wurde

AGG_SINTRAL_STATES

smallint[]

Sintral States während das Teil oder Ticket bearbeitet wurde

AGG_USER_NAME

smallint[]

Aktive Benutzer während das Teil oder Ticket bearbeitet wurde

AGG_TICKET_DATA

text[]

TicketData
Derzeitiges Format:
TicketType | CustomerId | Articleid | ProductionId | ProductionSub1Id | ProductionSub2Id | Uid

KNIT_COUNT

integer

Anzahl der vollständigen Strickteile (nicht abgebrochen)

BREAK_COUNT

integer

Anzahl der abgebrochenen Strickteile

SUM_BREAK_DURATION

interval

Zeit die für abgebrochene Teile/Tickets verbraucht wurde

(Spalte macht vermutlich nur Sinn, wenn nach Muster gruppiert wurde)

AVG_DURATION

interval

Durchschnittliche Zeit pro Strickteil

  • mit Stillstandszeiten
  • abgebrochene Teile werden ignoriert

MIN_DURATION

interval

Minimale Zeit pro Strickteil

mit Stillstandszeiten

abgebrochene Teile werden ignoriert

MAX_DURATION

interval

Maximale Zeit pro Strickteil, mit Stillstandszeiten , abgebrochene Teile werden ignoriert

SUM_DURATION

interval

Zeit insgesamt

  • mit Stillstandszeiten
  • abgebrochene Teile werden ignoriert

AVG_KNIT_DURATION

interval

Durchschnittliche Zeit pro Strickteil

  • ohne Stillstandszeiten
  • abgebrochene Teile werden ignoriert

MIN_KNIT_DURATION

interval

Minimale Zeit pro Strickteil

  • ohne Stillstandszeiten
  • abgebrochene Teile werden ignoriert

MAX_KNIT_DURATION

interval

Maximale Zeit pro Strickteil

  • ohne Stillstandszeiten
  • abgebrochene Teile werden ignoriert

SUM_KNIT_DURATION

interval

Zeit insgesamt

  • ohne Stillstandszeiten
  • abgebrochene Teile werden ignoriert

[MIN_UID]

bigint

Debuginfo: Startzeitpunkt Uid in <prefix>_collected_filter_rows

[MAX_UID]

bigint

Debuginfo: Endzeitpunkt Uid in <prefix>_collected_filter_rows

[AGG_TICKET_UID]

bigint[]

Debuginfo: Aktive Ticket UID’s

[AGG_TICKET_CUSTOMER_ID]

text[]

Debuginfo: Aktive Ticket CUSTOMER ID‘s

[AGG_TICKET_ARTICLE_ID]

text[]

Debuginfo: Aktive Ticket ARTICLE ID‘s

[AGG_TICKET_PRODUCTION_ID]

text[]

Debuginfo: Aktive Ticket PRODUCTION_ID‘s

[AGG_TICKET_PRODUCTION_SUB1_ID]

text[]

Debuginfo: Aktive Ticket PRODUCTION_SUB1_ID‘s

[AGG_TICKET_PRODUCTION_SUB2_ID]

text[]

Debuginfo: Aktive Ticket PRODUCTION_SUB2_ID‘s

Beispielcode „sample_pattern_statistik.sql“

Wichtig:

Es wird davon ausgegangen, dass die Auswert-Hilfstabellen report_01.sample_xxxxxxxx bereits erzeugt sind.
Auswert-Hilfstabellen erzeugen (Cursorlauf - UDF)

Für ein Produktivsystem statt Schema report_01, ein leeres Feld ‘‘ einsetzen. Es muss aber identisch zu dem sein, was bei der Erzeugung der Hilfstabellen angegeben wurde.

select * from skrpps_02.eval_pattern_statistic

(

'report_01' -- Schema

,'sample' – Table Name Prefix

,ARRAY['AGG_MC_SORT_ID','AGG_SEQ_NAME','AGG_PATTERN_NAME'] – Sorting

 

,true -- GroupBy Machine

,false -- GroupBy Shift?

,false -- GroupBy UserName

,true -- GroupBy Pattern

,true -- GroupBy Sequence

,false -- GroupBy "TICKET_UID"

,false -- GroupBy "TICKET_PRODUCTION_ID"

,false -- GroupBy "TICKET_PRODUCTION_SUB1_ID"

,false -- GroupBy "TICKET_PRODUCTION_SUB2_ID"

,false -- GroupBy "TICKET_CUSTOMER_ID"

,false -- GroupBy "TICKET_ARTICLE_ID"

 

,NULL -- ARRAY[2,3] -- Filter by shift

,NULL -- ARRAY['User_3','User_4'] -- Selection/Filter UserName

,NULL     -- ARRAY['S-kUuG0','P-Sjo9v3'] -- Selection/Filter Pattern

,NULL -- ARRAY['SEQ-WNJhP3','SEQ-9bEqD1'] -- Selection/Filter Sequences

,NULL -- ARRAY[3374994314,3738720541] -- Selection/Filter FilterTicketUid bigint[]

,NULL -- ARRAY['2E0Hl4-H8T803-cId-8','2E0Hl4-H8T803-cId-8'] -- Selection/Filter FilterTicketProductionId text[]

,NULL -- ARRAY['SubId_2','SubId_21'] -- Selection/Filter FilterTicketProductionSub1Id text[]

,NULL -- ARRAY['-'] -- Selection/Filter FilterTicketProductionSub2Id text[]

,NULL -- ARRAY['cId-2','cId-4'] -- Selection/Filter FilterTicketCustomerId text[]

,NULL -- ARRAY['H8T803'] -- Selection/Filter FilterTicketArticleId text[]

,NULL -- ARRAY[4,3] -- Selection/Filter UserState

,NULL -- ARRAY[4,3] -- Selection/Filter SintralState

 

,'00:00:01' -- FilterMinDuration‚ Filter-out fabric pieces or tickets with a duration shorter than the specified value.

-- (e.g. in order to keep times after ending a ticket and before starting the next out of the report in case of the Auto Production Mode)

,false – Evaluate net times only. ( == Machine has set the Productive flag == Time from pattern loaded state to Piece Counter is zero

,false – If == false, all times allocated to service tickets will be filtered-out.

);