Analisi di report di produzione
Il report della produzione elenca in ordine cronologico i teli prodotti o i ticket completati con informazioni supplementari, quali ad es. tempo di lavoro.
Parametri di richiamo:
Nota sui filtri:
Tutti i filtri sono stati implementati come filtri “deboli”.
Ciò significa che un telo o un ticket appare completamente nella tabella dei risultati solo quando viene soddisfatto, a prescindere dal momento, il filtro per questo telo o ticket.
Esempio:
È stato filtrato secondo turno 2 e 3.
(== vengono visualizzati solo i teli lavorati nel turno 2 o 3)
- Un telo è stato iniziato nel turno 1 alle ore 7:55
- Alle 8:00 inizia il turno 2
- Alle 8:10 il telo è completato.
L'esclusione non ha luogo dal momento che la lavorazione è stata eseguita (in parte) nel turno 2.
(Un “filtro forte” ignorerebbe completamente certi teli iniziati.)
Parametri | Tipo | Descrizione |
---|---|---|
__sSchema | text | Schema delle tabelle database secondarie. Se si opera con tabelle provvisorie, _sDestSchema deve essere sempre “== ‘‘. |
_sTable_Prefix | text, | Prefisso delle tabelle database secondarie |
_aSortorder | text[] | Classificazione (matrice da nomi colonna) Esempio:
|
_bGroupByTicketUid | boolean | Se = true viene raggruppato/analizzato secondo ticket Vengono sommate le righe di tutti i teli. COMPLETE conteggia i ticket completati anziché i teli. |
_aFilterShift | integer[] | Filtraggio secondo turno/i Esempio di emissione solo di turno 1 e 3: ARRAY[1,3] |
_aFilterUsername | text[] | Filtraggio secondo utente (operatore) Esempio: ARRAY[‚User_1,'User_3'] |
_aFilterPattern | text[] | Filtraggio secondo disegni Esempio: ARRAY['S-kUuG01','P-Sjo9v3'] |
_aFilterSeq | text[] | Filtraggio secondo sequenze Esempio: ARRAY['SEQ-WNJhP3','SEQ-wMWzx2'] |
_aFilterTicketUid | bigint[][] | Filtraggio secondo UID di ticket interni Esempio: ARRAY[3374994314,3738720541] |
_aFilterTicketProductionId | text[] | Filtraggio secondo ID produzione ticket Esempio: ARRAY['2E0Hl4-H8T803-cId-8','2E0Hl4-H8T803-cId-8'] |
_aFilterTicketProductionsub1Id | text[] | Filtraggio secondo Sub1 ID produzione ticket Esempio: ARRAY['SubId_2','SubId_21'] |
_aFilterTicketProductionsub2Id | text[] | Filtraggio secondo Sub2 ID produzione ticket Esempio: ARRAY['-'] |
_aFilterTicketCustomerId | text[] | Filtraggio secondo Id cliente ticket Esempio: ARRAY['cId-2','cId-4'] |
_aFilterTicketArticleid | text[] | Filtraggio secondo Id articolo ticket Esempio: ARRAY['H8T803'] |
_aFilterUserState | Smallint[] | Filtraggio secondo stato utente Esempio: ARRAY[4,3] |
_aFilterSintralState | Smallint[] | Filtraggio secondo stato Sintral Esempio: ARRAY[4,3] |
_xFilterMinDuration | interval | Esclusione di teli attivi per meno di x secondi. |
_bFilterUseOnlyNettoTime | boolean | Includere solo tempi netti. ( == la macchina ha impostato il contrassegno di produttività == il tempo che intercorre tra caricamento disegni ad arresto contateli è 0 ) |
_bFilterUseOnlyProductiveTicketTime | boolean | Se == true vengono esclusi i tempi nei quali vengono prodotti ticket di manutenzione o viene prodotto senza ticket |
Tabella di ritorno
Note:
La tabella di ritorno comprende colonne di debug supplementari, nonché colonne necessarie solo per la statistica dei disegni (quest'ultima si avvale internamente delle UDF report di produzione).
I nomi di queste colonne risultano tra parentesi quadre.
Esempio: [MIN_UID]
Alcune colonne restituiscono matrici come valore di ritorno.
Esse presentano spesso solo una voce.
Per ciascuna di queste matrici possono subentrare situazioni nelle quali esistono più voci.
Esempi:
-
AGG_TICKET_DATA
In quale tipo di ticket rientra un telo lavorato.
Dal momento che i ticket possono essere caricati in modo asincrono, non si esclude affatto (in seguito a errore da parte dell'utente sulla macchina) che durante la lavorazione di un telo siano attivi 2 ticket di produzione. -
AGG_SCHIFT_STATES
Durante la lavorazione di un telo può aver luogo un cambio di turno.
Colonna | Tipo | Contenuto |
---|---|---|
MC_ID | integer | ID macchina SKR |
MC_SORT_ID | smallint | Per la classificazione in ordine alfabetico in base al nome della macchina (Il nome della macchina può essere appurato con l'ausilio degli MC_ID) |
AGG_TICKET_DATA | text[] | Data del ticket Formato attuale: |
AGG_SEQ_NAME | text[] | Nome o nomi della sequenza |
AGG_PATTERN_NAME | text[] | Nome o nomi del disegno |
START_TIME | timestamp without time zone | Indicazione temporale di inizio del telo o del ticket |
END_TIME | timestamp without time zone | Indicazione temporale di fine del telo o del ticket |
DURATION | interval | Intervallo di tempo in cui era attivo il telo o il ticket |
KNIT_DURATION | interval | Intervallo di funzionamento della macchina |
TIME_ADJUST | interval | Indica le commutazioni orarie sulla macchina nell'intervallo analizzato, che sono state sommate da SKR. In caso di tempi insolitamente elevati, che oltrepassano di gran lunga la precisione di un orologio al quarzo, si consiglia di appurarne le ragioni. Ragioni insolite possono essere attribuite a orologi in tempo reale difettosi o errati, a modifiche manuali alle commutazioni orarie sia sul server PPS che sulla macchina. Per contenere questi intervalli, accertarsi che la regolazione del fuso orario sulla macchina sia corretta e la macchina sia sempre connessa con l'SKR. Con il report EventList (EventType 101, EventID 1) è possibile appurare quando si sono verificate differenze temporali maggiori. |
COMPLETE | boolean | È stato completato il telo/ticket (o interrotto) |
AGG_SHIFT_STATES | smallint[] | I turni attivi durante i quali è stato lavorato il telo o il ticket |
AGG_USER_STATES | smallint[] | Gli stati utente attivi durante i quali è stato lavorato il telo o il ticket |
AGG_SINTRAL_STATES | smallint[] | Gli stati Sintral durante i quali è stato lavorato il telo o il ticket |
AGG_USER_NAME | smallint[] | Gli utenti attivi durante i quali è stato lavorato il telo o il ticket |
[MIN_UID] | bigint | Info di debug: |
[MAX_UID] | bigint | Info di debug: |
[COUNT] | integer | Info di debug: |
[LOOP_CHG_COUNT] | integer | Info di debug: |
[TICKET_UID_CHG] | integer | Info di debug: |
[AGG_TICKET_UID] | bigint[] | Info di debug: ticket attivo UID’s |
[AGG_TICKET_CUSTOMER_ID] | bigint[] | Info di debug: ticket attivo CUSTOMER ID‘s |
[AGG_TICKET_ARTICLE_ID] | text[] | Info di debug: ticket attivo ARTICLE ID‘s |
[AGG_TICKET_PRODUCTION_ID] | text[] | Info di debug: ticket attivo PRODUCTION ID‘s |
[AGG_TICKET_PRODUCTION_SUB1_ID] | text[] | Info di debug: ticket attivo PRODUCTION_SUB1_ID‘s |
[AGG_TICKET_PRODUCTION_SUB2_ID] | text[] | Info di debug: ticket attivo PRODUCTION_SUB2_ID‘s |
Codice a titolo di esempio “sample_production_report.sql”
Importante:
Si parte dal presupposto che siano già state create le tabelle ausiliari analitiche report_01.sample_xxxxxxxx.
Creazione di tabelle ausiliari analitiche (corsa del cursore - UDF)
Per un sistema di produzione inserire al posto di schema report_01, un campo vuoto ‘‘. Deve tuttavia essere identico a quello specificato al momento della creazione delle tabelle ausiliarie.
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.
);