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).

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,..).

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:

  1. estendere l'attuale funzionalità che disabilità l'inserimento di scarti, anche alla produzione di nuovi pezzi (preservando quella esistente)
  2. togliere la produzione attiva (ad esempio mettendo il cur=3)

Aggiungere una tell che permette di abilitare/disabilitare un'ubicazione.

All'avvio, se configurato tramite parametro, l'agente fermirep fa una ask all'agentUbiStatus per caricare la configurazione delle ubicazioni in memoria.

Appena entra nella program, se configurato il parametro, contolla se l'ubicazione è bloccata. Se bloccata, salta ed esce dalla program, altrimenti esegue la program standard. Nessuna modifica prevista per le richieste proveniente da tell e ask, dovendo mantenere inalterato il comportamento per le richieste dall'esterno.

Aggiungere una tell che permette di abilitare/disabilitare un'ubicazione.

All'avvio, se configurato tramite parametro, l'agente autostop fa una ask all'agentUbiStatus per caricare la configurazione delle ubicazioni in memoria.

Verrà aggiunto un controllo che, se configurato tramite parametro, esegue la program solo se l'ubicazione non è bloccata. Altrimenti, la salta.

Aggiungere una tell che permette di abilitare/disabilitare un'ubicazione.

  • cli/franke/add_discard_signals.1531837827.txt.gz
  • Last modified: 2018/07/17 16:30
  • by g.capuzzi