Lezione 7 · Condizioni, contatori e trasporti concatenati

Uno schema che scatta solo con un timer non può reagire a ciò che fa l'impianto. Con le condizioni guarda lo stato dell'impianto, con le variabili ricorda cose tra una sequenza e l'altra e con l'innesco sul deposito un trasporto può avviare il successivo.

Durata
30 min
Parti da
il checkpoint della lezione 6
Imparerai
  • far biforcare una sequenza con una condizione sullo stato dell'impianto
  • tenere un contatore in una variabile d'impianto e aggiornarlo da una sequenza
  • concatenare un trasporto alla consegna di un altro con l'innesco sul deposito

Apri il progetto della lezione 6, oppure il suo checkpoint. Preferisci guardare prima? Il video 05 e il video 06 trattano variabili e missioni cicliche.

Quando la domanda supera la flotta

Supponi che la Linea 1 acceleri e chieda materiale ogni 30 secondi, 120 all'ora, più di quanto tre veicoli possano portare. Cambia il Timer periodico della Linea 1 con Intervallo (s) 30 ed esegui 1 h. La coda cresce per tutta l'ora senza limite: si accumulano ordini che non verranno mai serviti in tempo e il lead time di ogni ordine successivo cresce con loro.

Una linea reale non continuerebbe a chiedere: quando ci sono già troppi ordini in attesa, si trattiene. Modellerai proprio questo e conterai quante richieste si trattiene.

Un contatore

Una variabile d'impianto è un valore con nome condiviso da tutte le sequenze. Si definisce con un blocco proprio, senza collegamenti, e parte dal valore iniziale all'inizio di ogni run e dopo il Reset.

  1. Definiscila. Clicca Variabile impianto nell'elenco. Nel suo pannello imposta Nome variabile su skipped, Tipo su Intero e Valore iniziale su 0. I nomi ammettono fino a 40 caratteri: lettere, cifre, spazi e trattini bassi. Mettilo sotto il timer; non ha bisogno di collegamenti.
  2. Aggiungi l'aggiornatore. Clicca Aggiorna variabile. Scegli Variabile skipped, Operazione Incrementa (anche negativo) e Valore 1. Ogni sequenza che lo attraversa aggiunge uno al contatore.

Una condizione

Condizione guarda una cosa una volta, quando la sequenza la raggiunge, e manda la sequenza fuori da Sì o No. Inseriscine una tra il timer della Linea 1 e la sua missione, con la domanda: ci sono al massimo 6 missioni in attesa?

Timer periodico30 sCondizionein attesa ≤ 6Genera missionesì: Linea 1Fine sequenza
…CondizionenoAggiorna variabileskipped + 1Fine sequenza
  1. Fai spazio. Seleziona il collegamento tra il timer e la missione e premi Delete.
  2. Aggiungi e configura la condizione. Clicca Condizione. Imposta Verifica su Missioni in attesa, Confronto su ≤ e Valore su 6. Altre cose che può controllare sono i veicoli liberi, le missioni attive e completate, le tue variabili e, con un magazzino, le celle libere e i pallet disponibili.
  3. Collega i due rami. Timer → ingresso della condizione. L'uscita Sì della condizione → Genera missione. La sua uscita No → Aggiorna variabile. Poi sia la missione sia l'aggiornatore → lo stesso Fine sequenza (più collegamenti possono entrare in un blocco e non si sincronizzano tra loro).

Esegui di nuovo 1 h. La coda resta ora a una manciata di ordini, mai più di pochi sopra il limite. Il throughput non cala: la flotta consegna tutto ciò che può. Il riquadro della variabile in fondo allo schema mostra skipped, il numero di richieste che la linea si è trattenuta, circa 50 all'ora qui. È la vera risposta a una flotta limitata: non una coda che cresce, ma un numero di cui discutere.

BloccoUsalo per
Condizionedecidere una volta e biforcare: sì o no, qui e ora
Prerequisitotrattenere la sequenza finché la condizione è vera, poi proseguire
Nota

Con un prerequisito al posto della condizione la linea non salterebbe ordini, aspetterebbe che la coda scenda. Entrambi sono validi; modellano impianti diversi.

Un trasporto concatenato

Il materiale consegnato alla Linea 2 viene lavorato per 40 secondi e deve poi proseguire al riconfezionamento. Nessun timer può sapere quando avviene la consegna, ma l'innesco Al deposito su stazione sì: scatta ogni volta che qualcosa viene scaricato nelle stazioni scelte, qualunque sequenza l'abbia causato.

Al deposito su stazioneLinea 2Attesa40 sGenera missioneLinea 2 → RiconfezionamentoFine sequenza
  1. Dai alla Linea 2 un ruolo di prelievo. Un trasporto può partire solo da un prelievo. In Disegna seleziona Linea 2 e spunta Prelievo oltre a Deposito: il triangolo diventa un rombo.
  2. Costruisci la sequenza. Di nuovo in Logica impianto aggiungi Al deposito su stazione e, in Depositi da osservare, spunta Linea 2. Poi Attesa con Durata (s) 40, Genera missione chiamato Riconfezionamento con Prelievi del blocco Linea 2 e Depositi del blocco Riconfezionamento, e Fine sequenza. Collegali in ordine.
  3. Esegui e osserva. Esegui 1 h. Le missioni completate includono ora la seconda tratta, quindi il throughput è superiore agli ordini creati dai timer: in media uno ogni sei prosegue verso il riconfezionamento. Ogni blocco sullo schema mostra il suo conteggio di visite e quello del blocco del riconfezionamento segue le consegne alla Linea 2.
Attenzione

L'innesco scatta per qualunque scarico nella stazione, compreso uno causato dalla tua stessa missione concatenata. Non concatenare mai un trasporto che consegna proprio alla stazione che osserva, o si alimenta all'infinito; il modello ferma un ciclo senza tempo di attesa, ma uno con attese girerebbe per sempre.

Cosa dovresti vedere
  • Uno schema valido con i blocchi e la variabile, il riquadro skipped sotto di esso, una coda limitata e circa 94 missioni all'ora contando entrambe le tratte.
Prova tu
  1. Sostituisci il timer della Linea 2 con un blocco Missione ciclica: un trasporto da Ingresso merci a Linea 2 viene creato ogni volta che la Linea 2 non ha nulla in attesa o in corso, dopo un ritardo a scelta. Non servono timer né collegamenti di ritorno.
  2. Aggiungi una variabile booleana rush e usala in una seconda condizione per mandare ordini alla Linea 1 solo finché è vera.
  3. Rimetti il limite a 100 e confronta le due run nella tabella di confronto.

Checkpoint

Ingresso merciLinea 1Linea 2Carica 1Carica 2Carica 3Riconfezionamento
La pianta a fine lezione: l'impianto con la Linea 2 ora anche prelievo (rombo), che alimenta il riconfezionamento con un trasporto concatenato

Contiene: 9 percorsi · 7 stazioni · 1 zona traffico · 3 AGV · 13 blocchi di logica.

Scarica il checkpoint (aurora-07-variables.it.sim)

Aprilo con Progetto›Importa progetto. Sostituisce il progetto aperto, quindi salva prima il tuo (oppure aprilo in un'altra scheda del browser). Quello che fai da qui in poi è una copia: il file del checkpoint non cambia mai. Usalo per ripartire da qui se hai saltato una lezione, o per confrontare il tuo progetto con quello atteso.