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:

Parametri di richiamo

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:
ARRAY[1,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]

Tabella di ritorno

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
Il nome della macchina può essere appurato con l'ausilio degli MC_ID.

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
(riga di output)

END_TIME

timestamp without time zone

Ora/data di fine del raggruppamento
(riga di output)

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 una correzione occorre in linea di massima addizionare, in percentuale o del tutto, il valore TIME_ADJUST agli intervalli che si intende calcolare.

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
Con i tempi durante i quali la macchina era spenta

EFFICIENCY_INCLUDING_POWER_OFF_PC

interval

Efficienza in %
Con i tempi durante i quali la macchina era spenta

STOP_DURATION_WHILE_POWERED_ON

interval

Durata dell'arresto
Senza i tempi durante i quali la macchina era spenta

EFFICIENCY_WHILE_POWERED_ON_PC

interval

Efficienza in %
Senza i tempi durante i quali la macchina era spenta

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
Rottura del filo, nodi grandi

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
Rottura ago

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_...
= la macchina risulta in uno stato sconosciuto.

interval

Durata per la quale vale:
lo stato della macchina è sconosciuto all'SKR, in quanto non risultano dati per questo intervallo

Possibili cause:

  • Per tutta la durata dell'intervallo specificato per la creazione del database secondario, la macchina non era ancora registrata nell'SKR.
  • Il buffer dei dati della macchina non era sufficiente per il salvataggio degli eventi per l'intervallo durante il quale non sussisteva collegamento tra la macchina e l'SKR.

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
Nota: delimitazione per NODATA_...
= lo stato della macchina è sconosciuto all'SKR per via di dati mancanti.

interval

Durata per la quale vale:

lo stato della macchina è sconosciuto all'SKR.

Possibile causa

  • la macchina segnala un nuovo stato di cui l'SKR non è ancora a conoscenza

Il sistema operativo della macchina è errato

 

[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_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

);