Strumenti Utente

Strumenti Sito


linea_1

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
linea_1 [2018/05/03 01:17]
admin [Soluzione SFC]
linea_1 [2019/05/14 21:13] (versione attuale)
admin
Linea 29: Linea 29:
  
 ===== SFC ===== ===== SFC =====
 +
 +
  
 {{::​sfc_esercizio_sistemi_quarta.png|SFC smistamento pacchi}} {{::​sfc_esercizio_sistemi_quarta.png|SFC smistamento pacchi}}
Linea 38: Linea 40:
   * il diagramma dei nastri secondari prevede l'​azionamento dell'​espulsore per 2 secondi poi, con la fotocellula B2 l'​incremento del contatore corrispondente e l'​attivazione di un timer; se entro 10 secondi non arriva un nuovo pacco il nastro si ferma altrimenti si riprende dallo stato 11 (scelta o divergenza)   * il diagramma dei nastri secondari prevede l'​azionamento dell'​espulsore per 2 secondi poi, con la fotocellula B2 l'​incremento del contatore corrispondente e l'​attivazione di un timer; se entro 10 secondi non arriva un nuovo pacco il nastro si ferma altrimenti si riprende dallo stato 11 (scelta o divergenza)
   * i diagrammi SFC per gli altri due nastri secondari non sono rappresentati   * i diagrammi SFC per gli altri due nastri secondari non sono rappresentati
 +
 +FIXME soluzione nascosta
  
 ===== Soluzione non SFC ===== ===== Soluzione non SFC =====
Linea 44: Linea 48:
  
 ===== Soluzione SFC ===== ===== Soluzione SFC =====
 +
  
 In {{ ::​esercizio-sistemi-sfc.zip |questo file zip}} una possibile soluzione che implementa il diagramma SFC visto sopra. Il programma è più lungo della soluzione precedente ma più affidabile/​robusto. Questo tipo di problema, dove lo stesso algoritmo gestisce tre nastri con diversi, si prestava all'​utilizzo dei blocchi FB; definendo un solo blocco con una sua interfaccia (delle variabili locali valide solo all'​interno della funzione) si poteva richiamare tre volte con tre blocchi DB distinti per gestire i tre nastri. In {{ ::​esercizio-sistemi-sfc.zip |questo file zip}} una possibile soluzione che implementa il diagramma SFC visto sopra. Il programma è più lungo della soluzione precedente ma più affidabile/​robusto. Questo tipo di problema, dove lo stesso algoritmo gestisce tre nastri con diversi, si prestava all'​utilizzo dei blocchi FB; definendo un solo blocco con una sua interfaccia (delle variabili locali valide solo all'​interno della funzione) si poteva richiamare tre volte con tre blocchi DB distinti per gestire i tre nastri.
Linea 50: Linea 55:
  
 in {{ ::​esercizio-sistemi-fb.zip |questo file zip}} una soluzione basata su SFC dove i tre nastri trasversali vengono gestiti da un unico FB richiamato tre volte con parametri diversi. Per far questo occorre usare un blocco funzionale FB e definire un'​interfaccia,​ cioè indicare le variabili locali dell'​FB usate come ingressi e uscite del blocco. Quando il blocco viene utilizzato si collegano a ingressi e uscite così definiti le variabili globali della tabella delle variabili standard (sono parametri e argomenti della funzione). I timer e i contatori usati nella definizione dell'​FB sono di tipo multi-istanza invece che singola-istanza (la scelta predefinita). In questo modo i valori di timer e contatori sono salvati direttamente nel  blocco dati DB dell'​istanza di FB insieme al valore delle variabili locali. in {{ ::​esercizio-sistemi-fb.zip |questo file zip}} una soluzione basata su SFC dove i tre nastri trasversali vengono gestiti da un unico FB richiamato tre volte con parametri diversi. Per far questo occorre usare un blocco funzionale FB e definire un'​interfaccia,​ cioè indicare le variabili locali dell'​FB usate come ingressi e uscite del blocco. Quando il blocco viene utilizzato si collegano a ingressi e uscite così definiti le variabili globali della tabella delle variabili standard (sono parametri e argomenti della funzione). I timer e i contatori usati nella definizione dell'​FB sono di tipo multi-istanza invece che singola-istanza (la scelta predefinita). In questo modo i valori di timer e contatori sono salvati direttamente nel  blocco dati DB dell'​istanza di FB insieme al valore delle variabili locali.
- 
linea_1.1525303066.txt.gz · Ultima modifica: 2018/05/03 01:17 da admin