NIS should define machines failures as an inherited structure. The fields of this structure are defined below:
The image represents an example by Simon Fretz
The following ER graph describes data structures
The related physical schema following
For using these structures into NIS are required some activities described below:
The selection will occur on Touch Panel 10''. Each touch panel is linked to a specific line / machine (location). Each location is defined into ubicaz.
For each specific failure cause there is a row into table causafm.
For selecting correct information of a specific location it's required next steps:
If sub-set of causes is available then it's possible to manage it through "KIND - WHERE - WHAT". It's necessary to add column "caugrp" for calculating "OEE STRATIFICATION":
ALTER TABLE causafm ADD COLUMN zord INTEGER DEFAULT 0; COMMENT ON COLUMN causafm.zord IS 'Ordinamento 0 => n';
Maintenance time managed using following causes of maganet:
Following query for adding causes into caumaga:
INSERT INTO caumaga (codice,descrizio,prelievo,deposito,cariniz,caucol,utente,datareg,flag,impegno) SELECT 'INMA','Inizio manutenzione',prelievo,deposito,cariniz,caucol,utente,datareg,'M',impegno FROM caumaga WHERE codice='INFM'; INSERT INTO caumaga (codice,descrizio,prelievo,deposito,cariniz,caucol,utente,datareg,flag,impegno) SELECT 'FIMA','Fine manutenzione',prelievo,deposito,cariniz,caucol,utente,datareg,'M',impegno FROM caumaga WHERE codice='FIFM';
AgentVisualMng defines when it's required a maintenance request and when it's required a termination of maintenance using following flag:
The GUI uses AgentLavoro from library libwmsgp to register begin and termination of maintenance operation into maganet.
It's possible to filter some stop machine causes for automatic terminating stop machine when one item is produced on specific production line.
To do it you must create a new view as following:
SELECT movimag.* FROM movimag LEFT JOIN ( SELECT movimag.codubi FROM movimag INNER JOIN (SELECT codubi, MAX(codice) AS cod FROM movimag WHERE codcau='INFM' OR codcau='FIFM' GROUP BY codubi) AS q ON q.cod=movimag.codice WHERE caufm='setup') AS q1 ON q1.codubi=movimag.codubi WHERE q1.codubi IS NULL ORDER BY movimag.codice DESC
In the above example caufm='setup' you can change setup with specific stop machine cause you want to filter. In the ctrldb configuration you should substitute the table "movimag" with the view you created:
<!-- Agente dedicato al controllo del database ed alla generazione degli eventi --> <agent lib="/usr/lib/libiautiag.so" create="agentCtrlDb" live="1" name="ctrldb"> <param name="agdb" value="tpevodb_ctrl" /> <!-- Rileva l'inserimento di un nuovo collaudo, il 4^ parametro e' fittizio (campo da controllare), il quinto=0 indica che non deve caricare i dati non trasferiti all'avvio della piattaforma, in modo da considerarli nella prox elaborazione --> <param name="cmd0" value="newrec(filfm,codice,codubi='FL1E' and codcau='PREL' order by codice desc limit 1)" /> <param name="tocmd0" value="to(fermistp,fifm,movimag)" />