Analisi statistica Run/Stop
Questo report consente il calcolo dei tempi di funzionamento o inattività della macchina in base a criteri differenti. Se …_STATE_COUNT e …_STATE_EVENT sono identici, vuol dire che la durata corrispondente è stata acquisita completamente nell'intervallo di analisi specificato.
Se lo _STATE_COUNT è superiore, l'inizio ricade prima dell'intervallo di analisi. Per lo più queste due colonne sono di scarso interesse, a meno che non si sia interessati a rilevare la durata a partire dal loro primo verificarsi.
Questo report funge internamente da base per la cronologia grafica degli arresti e il report di efficienza.
Note:
- La tabelle dei risultati comprende oltre 60 colonne. Per analisi durante intervalli più brevi, la maggior parte di esse sarà sicuramente vuota o comprenderà solo degli zeri.
Queste colonne non devono essere quindi visualizzate (dinamicamente).
Esempio:
le colonne SHOCK_STATE_... comprendono solo dati <> 0 quando nell'intervallo di analisi si è verificato un arresto urti.
Parametri | Tipo | Descrizione |
---|---|---|
__sSchema | text | Schema delle tabelle database secondarie. Se si opera con tabelle provvisorie deve essere sempre _sDestSchema immer == ‘‘ |
_sTable_Prefix | text, | Prefisso delle tabelle database secondarie |
_aSortorder | text[] | Classificazione (matrice da nomi colonna) Esempio. ARRAY['MC_SORT_ID','START_TIME'] |
_bGroupByMachine | boolean | Raggruppamento in base a macchina |
_bGroupByShift | boolean | Raggruppamento in base a turno |
_bGroupByUserName | boolean | Raggruppamento in base a utente (sulla macchina) |
_bGroupByPattern | boolean | Raggruppamento in base a disegno |
_bGroupBySeq | boolean | Raggruppamento in base a sequenza |
_bGroupByTicketUid | boolean | Raggruppamento in base a ticket (UID PPS) |
_bGroupByTicketProductionId | boolean | Raggruppamento in base a ID produzione ticket |
_bGroupByTicketProductionSub1Id | boolean | Raggruppamento in base a Sub1 ID produzione ticket |
_bGroupByTicketProductionSub2Id | boolean | Raggruppamento in base a Sub2 ID produzione ticket |
_bGroupByTicketCustomerId | boolean | Raggruppamento in base a ID cliente del ticket |
_bGroupByTicketArticleId | boolean | Raggruppamento in base a ID articolo del ticket |
_bgroupbyday | boolean | Raggruppa per giorno |
_bgroupbyweek | boolean | Raggruppa per settimana |
_bgroupbymonth | boolean | Raggruppa per mese |
_aFilterShift | integer[] | Filtraggio secondo turno/i Esempio: emissione solo di turno 1 e 3: |
_aFilterUsername | text[] | Filtraggio secondo utente (operatore) Esempio: ARRAY[‚User_1,'User_3'] |
_aFilterPattern | text[] | Filtraggio secondo sequenze 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] |
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) |
SHIFT_STATE | smallint | Turno o ZERO quando _bGroupByShift == false |
USER_NAME | smallint | Utente o ZERO quando _bGroupByShift == false |
TICKET_CUSTOMER_ID | text | UID ticket o ZERO quando _bGroupByTicketCustomerId == false |
TICKET_ARTICLE_ID | text | ID articolo ticket o ZERO quando _bGroupByTicketArticleId == false |
TICKET_PRODUCTION_ID | text | ID produzione ticket o ZERO quando _bGroupByTicketProductionId == false |
TICKET_PRODUCTION_SUB1_ID | text | Sub1 ID produzione ticket o ZERO quando _bGroupByTicketProductionId == false |
TICKET_PRODUCTION_SUB2_ID | text | Sub2 ID produzione ticket o ZERO quando *_bGroupByTicketProductionId == false |
SEQ_NAME | text | Nome sequenza o ZERO quando _bGroupBySeq == false |
PATTERN_NAME | text | Nome disegno o ZERO quando _bGroupByPattern == false |
TICKET_UID | bigint | UID ticket o ZERO quando _bGroupByTicketUId == false |
START_TIME | timestamp without time zone | Ora/data di inizio del raggruppamento |
END_TIME | timestamp without time zone | Ora/data di fine del raggruppamento |
OVERALL_DURATION | interval | Durata complessiva di tutti gli stati |
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. 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. |
| ||
Stato RUN | Tempi produttivi | |
RUN _DURATION | interval | Durata di questo stato |
RUN_STATE_COUNT | integer | Numero di intervalli in questo stato |
RUN_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato STOP | Arresti | |
STOP_DURATION | interval | Durata di questo stato |
STOP_STATE_COUNT | integer | Numero di intervalli in questo stato |
STOP_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato ENGAGING | Arresti da parte dell'operatore mediante la barra di avviamento | |
ENGAGING_DURATION | interval | Durata di questo stato |
ENGAGING_STATE_COUNT | integer | Numero di intervalli in questo stato |
ENGAGING_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato YARN_FEED | Arresti dovuti all'unità di controllo del filo o al tendifilo laterale | |
YARN_FEED_DURATION | interval | Durata di questo stato |
YARN_FEED_STATE_COUNT | integer | Numero di intervalli in questo stato |
YARN_FEED_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato PIECE_COUNTER_ZERO | Il contateli è a zero | |
PIECE_COUNTER_ZERO_DURATION | interval | Durata di questo stato |
PIECE_COUNTER_ZERO_DURATION | integer | Numero di intervalli in questo stato |
PIECE_COUNTER_ZERO_DURATION | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato RESISTANCE | Arresti a resistenza | |
RESISTANCE_DURATION | interval | Durata di questo stato |
RESISTANCE_STATE_COUNT | integer | Numero di intervalli in questo stato |
RESISTANCE_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato POSITION_NEEDLE_SENSOR | Arresti dovuti al tasta-aghi di posizione | |
POSITION_NEEDLE_SENSOR_DURATION | interval | Durata di questo stato |
POSITION_NEEDLE_SENSOR_STATE_COUNT | integer | Numero di intervalli in questo stato |
POSITION_NEEDLE_SENSOR_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato TAKE_DOWN | Arresti dovuti al tirapezza | |
TAKE_DOWN_DURATION | interval | Durata di questo stato |
TAKE_DOWN_STATE_COUNT | integer | Numero di intervalli in questo stato |
TAKE_DOWN_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato PROGRAMMING | Tempi di elaborazione del disegno sulla macchina | |
PROGRAMMING_DURATION | interval | Durata di questo stato |
PROGRAMMING_STATE_COUNT | integer | Numero di intervalli in questo stato |
PROGRAMMING_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato OTHER | Arresti dovuti ad altri motivi | |
OTHER_DURATION | interval | Durata di questo stato |
OTHER_STATE_COUNT | integer | Numero di intervalli in questo stato |
OTHER_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato SHOCK | Arresti urti | |
SHOCK_DURATION | interval | Durata di questo stato |
SHOCK_STATE_COUNT | integer | Numero di intervalli in questo stato |
SHOCK_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato RACKING | errore dello spostamento | |
RACKING_DURATION | interval | Durata di questo stato |
RACKING_STATE_COUNT | integer | Numero di intervalli in questo stato |
RACKING_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato NODATA Nota: delimitazione per MCSTATE_UNKNOWN_... | Stati ed eventi per i quali vale: Possibili cause:
| |
NODATA_DURATION | interval | Durata di questo stato |
NODATA_STATE_COUNT | integer | Numero di intervalli in questo stato |
NODATA_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato OFF | La macchina è disinserita | |
OFF_DURATION | interval | Durata di questo stato |
OFF_STATE_COUNT | integer | Numero di intervalli in questo stato |
OFF_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato BOOT | Avvii della macchina | |
BOOT_DURATION | interval | Durata di questo stato |
BOOT_STATE_COUNT | integer | Numero di intervalli in questo stato |
BOOT_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
Stato MCSTATE_UNKNOWN | Stati ed eventi per i quali vale: lo stato della macchina è sconosciuto all'SKR. Possibile causa
| |
MCSTATE_UNKNOWN_DURATION | interval | Durata di questo stato |
MCSTATE_UNKNOWN_STATE_COUNT | integer | Numero di intervalli in questo stato |
MCSTATE_UNKNOWN_EVENT_COUNT | integer | Numero di eventi di cambio stato per questo stato |
| ||
[DEBUG_SRC_MIN_UID] | bigint | Info di debug: ora/data di inizio Uid in <prefix>_collected_filter_rows |
Codice a titolo di esempio “sample_eval_stop_statistik.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_stop_statistic_ex
(
'report_01' -- Schema
,'sample' –-Prefix name of help tables
, NULL -- ARRAY['MC_SORT_ID','START_TIME DESC'] – Sorting according to…
,true -- GroupBy Machine ?
,false -- GroupBy Shift ?
,false -- GroupBy UserName
,true -- GroupBy Pattern ?
,false -- GroupBy Sequence
,false -- GroupBy "TICKET_UID" bigint,
,false -- GroupBy "TICKET_PRODUCTION_ID" text,
,false -- GroupBy "TICKET_PRODUCTION_SUB1_ID" text,
,false -- GroupBy "TICKET_PRODUCTION_SUB2_ID" text,
,false -- GroupBy "TICKET_CUSTOMER_ID" text,
,false -- GroupBy "TICKET_ARTICLE_ID" text,
,false -- GroupBy "Day" text,
,false -- GroupBy "Week" text,
,false -- GroupBy "Month" text,
,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 Sequence
,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
);