Produktionsreport auswerten

Der Produktionsreport listet die produzierten Teile oder abgearbeiteten Tickets in zeitlicher Reihenfolge mit Zusatzinformationen wie z.B. Strickzeit auf.

Aufrufparameter:

Hinweis zu den Filtern:

Sämtliche Filter wurden als „schwache“ Filter implementiert.

Das bedeutet, dass ein Teil oder Ticket immer dann komplett in der Ergebnistabelle erscheint, wenn der Filter für dieses Teil oder Ticket zu einem beliebigen Zeitpunkt erfüllt war.

Beispiel:
Nach Schicht 2 und 3 wurde gefiltert.
(== nur Teile anzeigen die in Schicht 2 oder 3 gestrickt wurden)

Es wird nicht herausgefiltert, da es (zeitweise) in Schicht 2 gestrickt wurde.
(Ein „starker Filter“ würde solche angeschnittene Teile komplett verwerfen.)

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']
  • ARRAY['MC_SORT_ID','START_TIME DESC']

_bGroupByTicketUid

boolean

Wenn = true wird nach Tickets gruppiert / ausgewertet

Die Zeiten aller Teile werden summiert. COMPLETE zählt abgeschlossene Tickets statt Teile.

_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 Muster 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:
Die Rückgabetabelle enthält zusätzliche Debug-Spalten sowie Spalten, die nur von der Musterstatistik (diese verwendet intern die Produktionsreport UDF) benötigt werden.
Die Spaltennamen dieser Spalten sind mit rechteckigen Klammern eingeklammert.

Beispiel: [MIN_UID]

Einige Spalten geben Arrays als Rückgabewert zurück.
Diese haben sehr oft nur einen Eintrag.

Für jedes dieser Arrays kann es Situationen geben, in denen mehrere Einträge vorhanden sind.

Beispiele:

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_TICKET_DATA

text[]

Ticket Data

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

AGG_SEQ_NAME

text[]

Sequenzname (n)

AGG_PATTERN_NAME

text[]

Mustername (n)

START_TIME

timestamp without time zone

Zeitpunkt, an dem das Teil oder Ticket begonnen wurde

END_TIME

timestamp without time zone

Zeitpunkt, an dem das Teil oder Ticket beendet wurde

DURATION

interval

Zeit in der das Teil oder Ticket aktiv war

KNIT_DURATION

interval

Zeit in der die Maschine gelaufen ist

TIME_ADJUST

interval

Gibt im Auswertezeitraum Zeitverstellungen an der Maschine an, die von SKR aufsummiert wurden.
Bei Sommer-\Winterzeitverstellungen sind die Tage tatsächlich kürzer oder länger gewesen. Für darüber hinausgehende Zeiten, dient der Wert lediglich zur Abschätzung welche Zeitfehler vorliegen. Eine Korrektur der ausgegebenen Zeiten ist sehr komplex und erfordert eine detaillierte Analyse aller durchgeführten Zeitverstellevents und deren Gründe.

Bei ungewöhnlich hohen Zeiten, die weit über der Genauigkeit einer Quarzuhr liegen, sollten Sie dem Grund nachgehen.

Unübliche Gründe können defekte der Echtzeituhren oder falsche, manuelle Änderungen an den Zeiteinstellungen sowohl am PPS Server als auch an der Maschine sein.
Für eine Korrektur muss der TIME_ADJUST Wert prinzipiell zu den Zeiten die man ermitteln will anteilig oder ganz addiert werden.

Um diese Zeiten klein zu halten, stellen Sie sicher, dass die Zeitzoneneinstellung an der Maschine korrekt und die Maschine immer mit SKR verbunden ist.

Wann größere Zeitdifferenzen aufgetreten sind, können Sie über den EventList Report (EventType 101, EventID 1) feststellen.

COMPLETE

boolean

Wurde das Teil / Ticket komplett fertiggestellt

(oder abgebrochen)

AGG_SHIFT_STATES

smallint[]

Aktive Schichten während denen das Teil oder Ticket bearbeitet wurde

AGG_USER_STATES

smallint[]

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

AGG_SINTRAL_STATES

smallint[]

Sintral States während denen das Teil oder Ticket bearbeitet wurde

AGG_USER_NAME

smallint[]

Aktive Benutzer während denen das Teil oder Ticket bearbeitet wurde

[MIN_UID]

bigint

Debuginfo:
Startzeitpunkt Uid in <prefix>_collected_filter_rows

[MAX_UID]

bigint

Debuginfo:
Endzeitpunkt Uid in <prefix>_collected_filter_rows

[COUNT]

integer

Debuginfo:
Anzahl der verwendete Zeilen aus <prefix>_collected_filter_rows (Ist-Wert)

[LOOP_CHG_COUNT]

integer

Debuginfo:
Anzahl der Zeilen aus <prefiy>:collected_chg_counts (Soll-Wert)

[TICKET_UID_CHG]

integer

Debuginfo:
CHG_ID in _collected_chg_counts für die aktuelle Maschine und COL_ID“=‘ eTICKET_UID_CHG

[AGG_TICKET_UID]

bigint[]

Debuginfo: Aktive Ticket UID’s

[AGG_TICKET_CUSTOMER_ID]

bigint[]

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_production_report.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 skrpps_02.skr_mcid2mcname( "MC_ID",'skr'::cstring) AS "MC_NAME"

,*

from skrpps_02.eval_production_report(

 

'report_01' -- Schema

,'sample' –- Table Name Prefix

,ARRAY['MC_SORT_ID','START_TIME'] – Sorting according to…

,false –- Group by tickets?

,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 if true. (== 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.

);