cli:franke:factory_4_0_peschiera:fabricated

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cli:franke:factory_4_0_peschiera:fabricated [2022/05/19 13:05]
n.bergantino [App supporto magazzinieri]
cli:franke:factory_4_0_peschiera:fabricated [2023/08/22 08:31] (current)
m.zingaretti [Factory 4.0 Fabricated]
Line 5: Line 5:
 Di seguito la documentazione delle interfacce: Di seguito la documentazione delle interfacce:
   * {{ :cli:franke:factory_4_0_peschiera:franke_starmatik_opcua.pdf |Starmatik}}   * {{ :cli:franke:factory_4_0_peschiera:franke_starmatik_opcua.pdf |Starmatik}}
 +Di seguito la documentazione delle interfacce: 
 +  * {{ :cli:franke:factory_4_0_peschiera:franke_fabricated_industry_4.0.docx |Documentazione}}
 ===== Processo Fac 40 ===== ===== Processo Fac 40 =====
 {{ :cli:franke:factory_4_0_peschiera:franke-fac40-proc.png?1000 |}} {{ :cli:franke:factory_4_0_peschiera:franke-fac40-proc.png?1000 |}}
Line 42: Line 43:
 Viene costruito l'agente AgentLog40 Viene costruito l'agente AgentLog40
 ^operazione^request^parametro^ritorno^ ^operazione^request^parametro^ritorno^
-|ask|infobaie|rec(codubi) codice della macchina di cui si chiede lo stato|rec(stato,codop,codart,descrizio,npz,tnuovamis,npztot,call,alarmcall) ove \\ stato = 0(mancanza materiale), 1(OK),  2(da caricare), 3(in caricamento)| +|ask|baiestatus|rec(codubi) codice della macchina di cui si chiede lo stato|rec(stato,codop,codart,descrizio,npz,tnuovamis,npztot,call,alarmcall,codoper) ove \\ stato = 0(mancanza materiale), 1(OK),  2(da caricare), 3(in caricamento) \\ codoper = codice dell'operatore che eventualmente ha in carico la missione per la specifica macchina
-|ask|infopallet|rec(codlot) in input può arrivare il pallet o un pezzo del pallet per vedere le informazioni del pallet stesso|rec(codlot,ruek,codart,descrizio,codpf,descpfnpz,coil,isempty,codubi,dubi) \\ ruek = lista di ruek + codubi + dubi associati al pallet; gli attributi sono divisi da pipe, gli elementi da virgola \\ codubi, dubi = location ove il pallet si trova, vuoto se non e' da nessuna parte|+|ask|infopallet|rec(codlot,codoper) in input può arrivare il pallet o un pezzo del pallet per vedere le informazioni del pallet stesso, passa anche il codice dell'operatore connesso|rec(codlot,ruek,codart,descrizio,codpf,descpfnpz,coil,isempty,codubi,dubi,visevadi,abievadi) \\ ruek = lista di ruek + codubi + dubi associati al pallet; gli attributi sono divisi da pipe, gli elementi da virgola \\ codubi, dubi = location ove il pallet si trova, vuoto se non e' da nessuna parte \\ visevadi = 1 se il codoper e' in qualche ubicaz.codoper con tiposet='P' e stato='B' altrimenti vale 0 \\ abievadi = 1 se \\ a) il pallet e' configurato con RUEK dello stesso codubib che ha la location assegnata all'operatore \\ b) tutti i ruek richiesti siano inseriti \\ c) se richiesto sia specificato il codpf \\ altrimenti vale 0|
 |ask|changepallet|rec(codlotold,codlotnew) palletold è il pallet da cui parte il trasferimento, palletnew è il pallet dove verrà spostato il materiale dell'old \\ update giacese set codubi='codlotnew' where codubi='codlotold'; \\ update lotprod set codlot='codlotnew' where codlot='codlotold'; \\ update lottim set codart=OLDLOT.codart,codagg=OLDLOT.codagg where codice='newcodlot'; \\ update lottim set codart=' ',codagg=' ' where codice='oldcodlot';|rec(OK) se tutto OK, rec(err) se ci sono errori| |ask|changepallet|rec(codlotold,codlotnew) palletold è il pallet da cui parte il trasferimento, palletnew è il pallet dove verrà spostato il materiale dell'old \\ update giacese set codubi='codlotnew' where codubi='codlotold'; \\ update lotprod set codlot='codlotnew' where codlot='codlotold'; \\ update lottim set codart=OLDLOT.codart,codagg=OLDLOT.codagg where codice='newcodlot'; \\ update lottim set codart=' ',codagg=' ' where codice='oldcodlot';|rec(OK) se tutto OK, rec(err) se ci sono errori|
 |sapnis.ask|gettc \\ (viene svolta ogni volta che si legge un ruek)|rec(rueck)|rec(dati_ruek,codubi) se trovato, rec(null) se non trovato \\ codubi = codice del centro di lavoro associato| |sapnis.ask|gettc \\ (viene svolta ogni volta che si legge un ruek)|rec(rueck)|rec(dati_ruek,codubi) se trovato, rec(null) se non trovato \\ codubi = codice del centro di lavoro associato|
-|ask|savepallet \\ (crea la produbi e la associa al pallet; a produbi non viene avviata) \\ 0) confronta il contenuto attuale del pallet con quello richiesto (codart + codagg + qta + ruek) \\ 1) crei un lottim per ogni unità di qta mettendo anche il codagg \\ 2) depositi i lottim nel pallet|rec(codlot,ruek,codart,qta,codagg) ruek puo' avere piu' di un ruek divisi da virgola del tipo: \\ ruek pipe codubi virgola ...|rec(OK) se tutto OK, rec(err) se ci sono errori|+|ask|savepallet \\ (crea la produbi e la associa al pallet; a produbi non viene avviata) \\ 0) confronta il contenuto attuale del pallet con quello richiesto (codart + codpf + qta + ruek) \\ 1) crei un lottim per ogni unità di qta mettendo anche il codpf (lottim.codagg\\ 2) depositi i lottim nel pallet|rec(codlot,ruek,codart,qta,codagg) ruek puo' avere piu' di un ruek divisi da virgola del tipo: \\ ruek pipe codubi virgola ...|rec(OK) se tutto OK, rec(err) se ci sono errori|
 |ask|initpallet|rec(codlot,codcoil) ruek puo' avere piu' di un ruek divisi da virgola|rec(OK) se tutto OK, rec(err) se ci sono errori| |ask|initpallet|rec(codlot,codcoil) ruek puo' avere piu' di un ruek divisi da virgola|rec(OK) se tutto OK, rec(err) se ci sono errori|
 |ask|confirmcall|rec(codubi,codoper) codice della macchina per la quale l'operatore prende la missione, operatore che prende la missione|rec(ok) se tutto OK, rec(err) se ci sono errori (oppure potrebbe essere richiamata la baiestatus| |ask|confirmcall|rec(codubi,codoper) codice della macchina per la quale l'operatore prende la missione, operatore che prende la missione|rec(ok) se tutto OK, rec(err) se ci sono errori (oppure potrebbe essere richiamata la baiestatus|
 +|ask|evadimissione|rec(codubi,codlot) codice della macchina per cui si sta evadendo la missione, codice del pallet interessato|rec(ok) se tutto OK, rec(err) se ci sono errori; temporaneamente l'agente svolge i seguenti passi: \\ 1) cerca una baia vuota della linea in ordine di pos \\ 2) deposita nella prima baia vuota che trova \\ 3) se non trova baie vuote da errore svolge lo stesso 4, 5 \\ 4) setta ubicaz.codoper='' e ubicaz.stato='A' per la macchina \\ Nella versione definitiva saranno svolti solo i punti 4, 5|
  
 Al fine di identificare la baia in fase di lavorazione si utilizzerà il flag ubicaz.stato: Al fine di identificare la baia in fase di lavorazione si utilizzerà il flag ubicaz.stato:
Line 55: Line 57:
   * C = chiusa (piena ma non in lavorazione)   * C = chiusa (piena ma non in lavorazione)
   * Nel caso di linea lo stato B => Chiamata presa in carico dal magazziniere, mentre ubicaz.codoper => operatore che ha preso la chiamata   * Nel caso di linea lo stato B => Chiamata presa in carico dal magazziniere, mentre ubicaz.codoper => operatore che ha preso la chiamata
 +===== Personalizzazione =====
 +==== Flusso dati ====
 +=== Cambio produzione ===
 +{{ :cli:franke:factory_4_0_peschiera:franke-cambio-produzione-personalizzazione.png?1000 |}}
 +
 +=== Ingresso Pezzo ===
 +{{ :cli:franke:factory_4_0_peschiera:franke-perso-inpezzo.png?900 |}} \\ \\
 +Dataset ingresso pezzo:
 +^  d1=codubi, d2="workorder"  ^^
 +^Nome campo^Descrizio^
 +|codlot|Codice della matricola in ingresso letta dal OPC e resettata da IMPROVE|
 +|codop|Workorder scritto da IMPROVE|
 +|codmod|Codice prodotto in lavorazione scritto da IMPROVE|
 +|qta|Quantità da produrre per il WO scritto da IMPROVE|
 +|codagg|Codice della ricetta scritto da IMPROVE|
 +
 +Dataset uscita pezzo:
 +^  d1=codubi, d2="exit"  ^^
 +^Nome campo^Descrizio^
 +|codlot|Codice della matricola in uscita letta dal OPC e resettata da IMPROVE|
 +
 +Dataset fermate stato macchine:
 +^  d1=codubi, d2="fermate"  ^^
 +^Nome campo^Descrizio^
 +|pres_status| Stato della macchina pressa valori 1=ready 2=work 3=not ready|
 +|bay_status| Stato della baia di carica e scarico valori 1=pronta 2=lavorazione 3=caricare scaricare|
 +|*_piece| Stato della presenza pezzo valori 0=non presente 1=presente|
 +|pres_oil| Stato olio del livello oil valori 0=KO 1=OK|
 +|robot_status| Stato del robot valori 1=Errore 2=stop 3=run|
 ===== Piano attività ===== ===== Piano attività =====
   * Fine giugno impianto (Piegatura, Saldatura, Personalizzazione) installato in stabilimento:   * Fine giugno impianto (Piegatura, Saldatura, Personalizzazione) installato in stabilimento:
  • cli/franke/factory_4_0_peschiera/fabricated.1652958303.txt.gz
  • Last modified: 2022/05/19 13:05
  • by n.bergantino