Cronologia degli arresti

Questo report consente il calcolo della percentuale relativa e della durata assoluta dei tempi di arresto in base a criteri differenti.

Questo report funge da base per la cronologia grafica degli arresti.

Note:

  1. 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 di richiamo

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. 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:
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 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]

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 ticket o ZERO quando _bGroupByTicketArticleId == false

AGG_TICKET_PRODUCTION_ID

text[]

ID produzione ticket o ZERO quando _bGroupByTicketProductionId == false

AGG_TICKET_PRODUCTION_SUB1_ID

text[]

Sub1 ID produzione 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

OVERALL_DURATION_WHILEMCON

interval

Durata complessiva durante la quale la macchina era accesa ed erano a disposizione i dati.

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 tutti gli eventi di commutazione oraria eseguiti 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

EFFICIENCY_INCLUDING_POWER_OFF_PC

double

Efficienza della macchina in %.

Comprende i tempi durante i quali la macchina era spenta.

STOP_DURATION_WHILEMCON

interval

Durata complessiva durante la quale la macchina era ferma, accesa ed erano a disposizione i dati.

EFFICIENCY_WHILEMCON_PC

double

Efficienza della macchina in %, mentre la macchina era accesa ed erano a disposizione i dati.

ENGAGING_DURATION

interval

Durata degli arresti da parte dell'operatore mediante la barra di avviamento

ENGAGING_PC

double

Durata in % 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)

YARN_FEED_DURATION

interval

Durata degli arresti provocati dall'unità di controllo del filo o dal tendifilo laterale
Rottura del filo, nodi grandi

YARN_FEED_PC

double

Durata degli arresti in % provocati dall'unità di controllo del filo o dal tendifilo laterale
Rottura del filo, nodi grandi

PIECE_COUNTER_ZERO_DURATION

interval

Durata con contateli fermi a zero

PIECE_COUNTER_ZERO_PC

double

Durata in % con contateli fermi a zero

RESISTANCE_DURATION

interval

Durata degli arresti a resistenza

RESISTANCE_PC

double

Durata in % degli arresti a resistenza

POSITION_NEEDLE_SENSOR_DURATION

interval

Durata degli arresti dovuti al tasta-aghi di posizione
Rottura ago

POSITION_NEEDLE_SENSOR_PC

double

Durata degli arresti in % provocati dal tasta-aghi di posizione
Rottura ago

TAKE_DOWN_DURATION

interval

Durata degli arresti dovuti al tirapezza

TAKE_DOWN_PC

double

Durata degli arresti in % provocati dal tirapezza

PROGRAMMING_DURATION

interval

Durata delle lavorazioni dei disegni sulla macchina

PROGRAMMING_PC

double

Durata in % delle lavorazioni dei disegni sulla macchina

OTHER_DURATION

interval

Durata degli arresti dovuti ad altri motivi

OTHER_PC

double

Durata degli arresti in % dovuti ad altri motivi

SHOCK_DURATION

interval

Durata degli arresti urti

SHOCK_PC

double

Durata in % degli arresti urti

RACKING_DURATION

interval

Durata degli errori dello spostamento

RACKING_PC

double

Durata in % 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

BOOT_PC

double

Durata in % 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

MCSTATE_UKNOWN_PC

double

Durata in % 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_stop_history_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_stop_history_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

);