Analisi di efficienza
Questo report consente il calcolo dell'efficienza in base a criteri differenti.
Questo report funge da base per il report grafico di efficienza.
Note:
- La tabelle dei risultati comprende oltre 30 colonne.
Per le analisi lungo intervalli più brevi, alcune saranno vuote o comprenderanno solo degli zeri. - Queste colonne non devono essere quindi visualizzate (dinamicamente).
Esempio:
La colonna SHOCK_DURATION comprende quindi solo <> 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 PPS-UID del ticket |
_bGroupByTicketProductionId | boolean | Raggruppamento in base a ID produzione del ticket |
_bGroupByTicketProductionSub1Id | boolean | Raggruppamento in base a produzione SubId 1 del ticket |
_bGroupByTicketProductionSub2Id | boolean | Raggruppamento in base a produzione SubId 2 del 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 Ticket UID 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 Sub1Id produzione ticket Esempio: ARRAY['SubId_2','SubId_21'] |
_aFilterTicketProductionsub2Id | text[] | Filtraggio secondo Sub2Id produzione del ticket Esempio: ARRAY['-'] |
_aFilterTicketCustomerId | text[] | Filtraggio secondo ID cliente del ticket Esempio: ARRAY['cId-2','cId-4'] |
_aFilterTicketArticleid | text[] | Filtraggio secondo ID articolo del 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 |
---|---|---|
AGG_MC_ID | integer[] | ID macchina SKR |
AGG_MC_SORT_ID | smallint[] | Per la classificazione in ordine alfabetico in base al nome della macchina |
AGG_SHIFT_STATE | smallint[] | Turno o ZERO quando _bGroupByShift == false |
AGG_USER_NAME | smallint[] | Utente o ZERO quando _bGroupByShift == false |
AGG_TICKET_CUSTOMER_ID | text[] | UID ticket o ZERO quando _bGroupByTicketCustomerId == false |
AGG_TICKET_ARTICLE_ID | text[] | ID articolo del ticket o ZERO quando _bGroupByTicketArticleId == false |
AGG_TICKET_PRODUCTION_ID | text[] | ID produzione del ticket o ZERO quando _bGroupByTicketProductionId == false |
AGG_TICKET_PRODUCTION_SUB1_ID | text[] | Sub1 ID produzione del ticket o ZERO quando _bGroupByTicketProductionId == false |
AGG_TICKET_PRODUCTION_SUB2_ID | text[] | Sub2 ID produzione ticket o ZERO quando *_bGroupByTicketProductionId == false |
AGG_SEQ_NAME | text[] | Nome sequenza o ZERO quando _bGroupBySeq == false |
AGG_PATTERN_NAME | text[] | Nome disegno o ZERO quando _bGroupByPattern == false |
AGG_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. Per ragioni dovute a cambi dell'ora legale/solare si contano effettivamente giornate più corte o più lunghe. Per tutti gli altri tempi, il valore viene utilizzato unicamente per stimare di quali errori di tempo si tratta. Una correzione dei tempi emessi è molto complessa e richiede un'analisi dettagliata di tutte commutazioni orarie eseguite e delle rispettive ragioni. 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. |
| ||
RUN _DURATION | interval | Durata del tempo produttivo |
STOP_DURATION | interval | Durata dell'arresto |
STOP_DURATION_INCLUDING_POWER_OFF | interval | Durata dell'arresto |
EFFICIENCY_INCLUDING_POWER_OFF_PC | interval | Efficienza in % |
STOP_DURATION_WHILE_POWERED_ON | interval | Durata dell'arresto |
EFFICIENCY_WHILE_POWERED_ON_PC | interval | Efficienza in % |
OPERATOR_PRODUCTIVE_DURATION | interval | Durata durante la quale l'operatore della macchina ha mantenuto la macchina, per quanto possibile, in produzione. Calcolato in base a: RUN_DURATION + ENGAGING_DURATION + PIECE_COUNTER_ZERO_DURATION + PROGRAMMING_DURATION + MCSTATE_UNKNOWN_DURATION |
OPERATOR_NON_PRODUCTIVE_DURATION | interval | Durata durante la quale l'operatore della macchina ha probabilmente lasciato la macchina inutilmente ferma. Calcolato in base a: (STOP_DURATION - (NO_DATA_DURATION + OFF_DURATION)) - (ENGAGING_DURATION + PIECE_COUNTER_ZERO_DURATION + PROGRAMMING_DURATION + BOOT_DURATION + MCSTATE_UNKNOWN_DURATION) |
OPERATOR_EFFICIENCY_PC | interval | Efficienza dell'operatore della macchina in %. Calcolato in base a: OPERATOR_PRODUCTIVE_DURATION*100/( OPERATOR_PRODUCTIVE_DURATION+ OPERATOR_NON_PRODUCTIVE_DURATION) |
ENGAGING_DURATION | interval | Durata degli arresti da parte dell'operatore mediante la barra di avviamento |
YARN_FEED_DURATION | interval | Durata degli arresti dovuti all'unità di controllo del filo o al tendifilo laterale |
PIECE_COUNTER_ZERO_DURATION | interval | Durata con contateli a zero |
RESISTANCE_DURATION | interval | Durata degli arresti dovuti ad arresti a resistenza |
POSITION_NEEDLE_SENSOR_DURATION | interval | Durata degli arresti dovuti al tasta-aghi di posizione |
TAKE_DOWN_DURATION | interval | Durata degli arresti dovuti al tirapezza |
PROGRAMMING_DURATION | interval | Durata delle lavorazioni dei disegni sulla macchina |
OTHER_DURATION | interval | Durata degli arresti dovuti ad altri motivi |
SHOCK_DURATION | interval | Durata degli arresti urti |
RACKING_DURATION | interval | Durata degli errori dello spostamento |
NODATA_DURATION Nota: delimitazione per MCSTATE_UNKNOWN_... | interval | Durata per la quale vale: Possibili cause:
L'SKR è stato temporaneamente disattivato sulla macchina |
OFF_DURATION | interval | Durata durante la quale la macchina è disinserita |
BOOT_DURATION | interval | Durata per gli avvii della macchina |
MCSTATE_UNKNOWN_DURATION | interval | Durata per la quale vale: lo stato della macchina è sconosciuto all'SKR. Possibile causa
Il sistema operativo della macchina è errato |
| ||
[DEBUG_SRC_MIN_UID] | bigint | Info di debug: |
Codice a titolo di esempio “sample_eval_efficiency_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_efficiency_report
(
'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
);