This is an old revision of the document!
Discard PLC Signals
La richiesta è quella di poter mettere (tramite un bottone sul HMI touch screen) un'ubicazione in una modalità che non considera i segnali provenienti dal PLC. Il motivo di questa richiesta risiede nel fatto che, durante alcune attività di manutenzione, può essere utile escludere i segnali provenienti dal PLC perché le macchine sono in fermo (manutenzione) e devono rimanerci. Quindi, il segnale RUN/STOP e il contatore potrebbe far cambiare lo stato della linea riportandola in running oppure potrebbe contare dei pezzi prodotti che in realtà sono movimenti della macchina durante la manutenzione. Inoltre, le funzionalità del HMI touch screen devono rimanere abilitate.
La soluzione interessa tre agenti: simpmovi (riceve i segnali per i pezzi prodotti), fermirep (legge i segnali per le fermate), autostop (gestione delle fermate su linee senza PLC in base al takt time).
Agente che gestisce lo stato delle ubicazioni
Verrà realizzato un agente agentUbiStatus (oppure modificare l'agentUbiMng) che mette l'ubicazione in stato bloccato (ubicaz.stato='B'):
- aggiorna il database
- aggiorna lo stato delle ubicazioni in memoria HashTableLock
Gli agenti interessati (simpmovi,fermirep e autostop) devono gestire una struttura interna in memoria con lo stato delle ubicazioni. All'avvio, effettuano una richiesta all'agentUbiStatus per caricare la struttura in memoria.
Inoltre, l'agentUbiStatus invia delle tell agli agenti (simpmovi, fermirep, autostop) ogni volta che viene aggiornato lo stato di una linea.
L'agente restituisce lo stato delle linee a richiesta: ask::status(codubi) e la lista di tutte le linee con il relativo stato ask::status(codubi1,codubi2,..).
Modifiche all'agente simpmovi
All'avvio, se configurato tramite parametro, l'agente simpmovi fa una ask all'agentUbiStatus per caricare la configurazione delle ubicazioni in memoria.
Prima di ogni operazione di scrittura nuovi pezzi o scarti, deve controllare che l'ubicazione richiedente non sia bloccata; altrimenti ignora la richiesta.
Due possibili soluzioni:
- estendere l'attuale funzionalità che disabilità l'inserimento di scarti, anche alla produzione di nuovi pezzi (preservando quella esistente)
- togliere la produzione attiva (ad esempio mettendo il cur=3)
Modifiche all'agente fermirep
All'avvio, se configurato tramite parametro, l'agente fermirep fa una ask all'agentUbiStatus per caricare la configurazione delle ubicazioni in memoria.