Relè a Impulso
Il nodo Pulse Relay invia 1 all'uscita quando l'ingresso Set è impostato a 1 e invia 0 all'uscita quando l'ingresso Reset è impostato a 1.
Quando sia Set sia Reset sono uguali a 0, viene mantenuto lo stato precedente dell'uscita.
Ogni volta che l'ingresso Trigger riceve un fronte di salita, gli ingressi Set e Reset vengono ignorati e lo stato dell'uscita viene commutato.
La proprietà Behaviour determina se Set oppure Reset deve essere dominante quando entrambi sono uguali a 1.
Comportamento del nodo quando l'ingresso Set è dominante
Il Pulse Relay viene utilizzato per trasformare un ingresso a impulso in un comando toggle.
Gli ingressi Set e Reset sono opzionali. Se non sono collegati ad altri nodi, l'ingresso Trigger controlla da solo l'uscita.
Connettori
| Connettore | Tipo | Descrizione |
|---|---|---|
| Set | Ingresso | Imposta l'uscita a 1 quando viene attivato, salvo durante la gestione di un evento Trigger. |
| Reset | Ingresso | Imposta l'uscita a 0 quando viene attivato, salvo durante la gestione di un evento Trigger. |
| Trigger | Ingresso | Commuta lo stato corrente dell'uscita ogni volta che viene ricevuto un fronte di salita. |
| Output | Uscita | Stato corrente memorizzato dal Pulse Relay. |
Proprietà principali
| Proprietà | Descrizione |
|---|---|
| Behaviour | Definisce se Set oppure Reset è dominante quando entrambi gli ingressi sono uguali a 1. |
Funzionamento
Il Pulse Relay combina il comportamento di un relè bistabile con un comando Toggle.
Il nodo può quindi essere controllato in due modi differenti:
- direttamente tramite Set e Reset;
- commutando lo stato corrente dell'uscita tramite Trigger.
Quando non viene ricevuto alcun evento Trigger, la logica Set/Reset è:
- se Set = 1 e Reset = 0, l'uscita diventa 1;
- se Set = 0 e Reset = 1, l'uscita diventa 0;
- se Set = 0 e Reset = 0, viene mantenuto lo stato precedente dell'uscita;
- se Set = 1 e Reset = 1, lo stato risultante dipende dalla proprietà Behaviour configurata.
Trigger
L'ingresso Trigger reagisce a un fronte di salita:
0 → 1
Ogni volta che viene rilevato un fronte di salita, lo stato corrente dell'uscita viene commutato.
Concettualmente:
Output = NOT Output
Quindi:
- se l'uscita corrente è 0, un evento Trigger la porta a 1;
- se l'uscita corrente è 1, un evento Trigger la porta a 0.
Quando viene ricevuto un fronte di salita su Trigger, gli ingressi Set e Reset vengono ignorati e l'uscita viene commutata.
Esempio Trigger
Supponiamo che lo stato iniziale sia:
Output = 0
e che Set e Reset non siano collegati.
Ogni fronte di salita su Trigger produce la seguente sequenza:
| Evento Trigger | Output |
|---|---|
| Primo fronte di salita | 1 |
| Secondo fronte di salita | 0 |
| Terzo fronte di salita | 1 |
| Quarto fronte di salita | 0 |
Il nodo permette quindi di trasformare una sequenza di impulsi in uno stato bistabile.
Set e Reset
Gli ingressi Set e Reset possono essere utilizzati per forzare uno stato definito dell'uscita.
Quando:
Set = 1
e:
Reset = 0
l'uscita diventa:
1
Quando:
Set = 0
e:
Reset = 1
l'uscita diventa:
0
Quando entrambi gli ingressi tornano a 0, lo stato precedente dell'uscita viene mantenuto.
Behaviour
La proprietà Behaviour definisce cosa accade quando Set e Reset sono contemporaneamente uguali a 1.
I due comportamenti possibili sono concettualmente:
- Set dominant
- Reset dominant
Set dominante
Quando Set è dominante:
| Set | Reset | Output |
|---|---|---|
| 0 | 0 | Mantiene lo stato precedente |
| 1 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 1 | 1 |
Quando entrambi gli ingressi sono attivi, l'attivazione ha priorità.
Reset dominante
Quando Reset è dominante:
| Set | Reset | Output |
|---|---|---|
| 0 | 0 | Mantiene lo stato precedente |
| 1 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 1 | 0 |
Quando entrambi gli ingressi sono attivi, la disattivazione ha priorità.
Priorità del Trigger
Il comando Trigger ha un ruolo particolare perché commuta l'uscita indipendentemente dalla logica Set/Reset.
Ad esempio, supponiamo di avere:
Output = 0
e:
Set = 1
Se viene ricevuto un fronte di salita su Trigger, lo stato corrente viene commutato secondo il comando Trigger e gli ingressi Set/Reset vengono ignorati per quell'evento.
Questo rende il Trigger particolarmente adatto al controllo tramite pulsanti.
Esempio - Toggle da pulsante
Un pulsante genera un breve impulso ogni volta che viene premuto.
L'impulso viene collegato a Trigger.
Partendo da:
Output = 0
la sequenza diventa:
- prima pressione → Output = 1
- seconda pressione → Output = 0
- terza pressione → Output = 1
In questo modo un pulsante momentaneo può controllare uno stato ON/OFF persistente.
Esempio - Toggle con comandi forzati
Il Pulse Relay può anche combinare il controllo Toggle con comandi espliciti di Set e Reset.
Ad esempio:
- un pulsante locale viene collegato a Trigger;
- un comando centralizzato ON viene collegato a Set;
- un comando centralizzato OFF viene collegato a Reset.
Il pulsante può commutare localmente lo stato corrente, mentre Set e Reset possono forzare uno stato specifico quando necessario.
Applicazioni tipiche
Il Pulse Relay è utile ogni volta che un comando a impulso deve controllare uno stato digitale persistente.
Applicazioni tipiche includono:
- conversione di un impulso da pulsante in un comando ON/OFF Toggle;
- controllo delle luci tramite pulsanti momentanei;
- mantenimento di uno stato digitale dopo un impulso;
- combinazione di comandi Toggle locali con comandi centralizzati Set e Reset;
- realizzazione di logiche bistabili;
- controllo di dispositivi tramite comandi impulsivi.
Verifica tramite simulazione
Il Pulse Relay può essere testato utilizzando gli strumenti di simulazione del Modulo Logico.
Una procedura tipica di test è la seguente:
- iniziare con Set = 0, Reset = 0 e Trigger = 0;
- generare un fronte di salita su Trigger e verificare che l'uscita venga commutata;
- riportare Trigger a 0;
- generare un nuovo fronte di salita e verificare una nuova commutazione;
- impostare Set = 1 e verificare che Output = 1;
- riportare Set a 0 e verificare che lo stato dell'uscita venga mantenuto;
- impostare Reset = 1 e verificare che Output = 0;
- testare Set = 1 e Reset = 1 e verificare il Behaviour configurato;
- generare un fronte di salita su Trigger mentre Set o Reset sono attivi e verificare che l'evento Trigger abbia priorità.
Note di configurazione
- Trigger reagisce ai fronti di salita e non alla durata del segnale.
- L'ingresso Trigger deve tornare a 0 prima che possa essere rilevato un nuovo fronte di salita.
- Ogni fronte di salita su Trigger commuta lo stato corrente dell'uscita.
- Gli ingressi Set e Reset sono opzionali.
- Se Set e Reset non sono collegati, Trigger può controllare da solo l'uscita.
- La proprietà Behaviour è rilevante quando Set e Reset sono entrambi uguali a 1.
- Utilizzare Set o Reset quando deve essere forzato uno stato preciso dell'uscita.
- Utilizzare Trigger quando un impulso deve commutare lo stato corrente.
