Esempi di configurazione per la comunicazione incrociata sicura
Importante
Gli esempi qui elencati servono solo a dimostrare la configurazione di CODESYS Safety NetVars in un progetto distribuito. Non dichiarano di utilizzare POU di sicurezza secondo le specifiche in un ambiente critico per la sicurezza. Per questo tipo di ambiente, le istruzioni nel Manuale utente di sicurezza CODESYS devono sempre essere osservate.
Gli esempi seguenti si basano l'uno sull'altro. Nell'esempio 1, la comunicazione incrociata è implementata tra due controller. Nell'esempio 2, il progetto nell'esempio 1 è esteso da un controller. Questo terzo controller è connesso agli altri due controller. Il POU di ciascuna applicazione di sicurezza contiene un SF_EmergencyStop
POU che come segnale di input riceverebbe normalmente il segnale di output di un interruttore di arresto di emergenza fisico. Per semplicità, questo segnale di output è simulato negli esempi da un GVL con una variabile globale. Collegando i rispettivi interruttori di arresto di emergenza con le variabili di rete di sicurezza come segnale di input del SF_EmergencyStop
POU, il SF_EmergencyStop
Il POU viene attivato anche quando viene attivato l'interruttore di un controller nei controller collegati tramite variabili di rete di sicurezza.
Note generali sulla configurazione delle variabili di rete di sicurezza in questi esempi
Importante
Prima di apportare modifiche agli oggetti "Safety network variable list (Sender)" e "Safety network variable list (Receiver)", dovresti disconnetterti sia dall'applicazione del controller standard corrispondente sia dall'applicazione di sicurezza corrispondente. In caso contrario, non sarà possibile apportare correttamente le modifiche dipendenti necessarie a questi.
Scheda: Rete PLC:
Elenca gli identificatori: Gli identificatori di elenco sono richiesti dal protocollo subordinato NetVarUDP per l'assegnazione dei telegrammi e devono pertanto essere univoci all'interno del dominio di trasmissione per una coppia mittente-ricevitore di un elenco di variabili di rete di sicurezza. Gli identificatori di elenco sono forniti in coppie, poiché è richiesto un valore per ciascuna direzione (mittente -> ricevitore) e un valore per la direzione (ricevitore -> mittente).
Gruppo di identificatori di elenchi di variabili sul PLC principale (Solo per elenchi di variabili di rete di sicurezza (mittente): questo gruppo definisce un intervallo univoco di identificatori di elenco da utilizzare per questo elenco di variabili di rete di sicurezza per l'invio. I valori all'interno di un gruppo non si sovrappongono ai valori di un altro gruppo.
Indirizzo di rete di destinazione: Se non si desidera utilizzare l'opzione broadcast, allora l'indirizzo IP del terminale remoto con cui deve avvenire la comunicazione deve essere utilizzato per l'indirizzo di rete di destinazione. L'indirizzo IP del controller con l'elenco delle variabili di rete di sicurezza (mittente) deve quindi essere immesso nel ricevitore e l'indirizzo IP del controller con l'elenco delle variabili di rete di sicurezza (ricevitore) nel mittente.
Porta: Può essere modificato se necessario (ad esempio, a causa di router o firewall). Gli esempi presuppongono che non siano necessarie modifiche e che venga mantenuto il valore predefinito. Una coppia di connessioni (mittente/ricevitore) di un elenco di variabili di rete di sicurezza deve utilizzare la stessa porta.
Scheda: Configurazione di sicurezza (Elenco variabili di rete di sicurezza (mittente)
Indirizzo di sicurezza: Questo indirizzo deve avere un valore univoco per tutta la rete, poiché viene utilizzato per l'identificazione interna della connessione (vedere: Manuale utente di sicurezza). Nell'esempio, pertanto, si presta attenzione affinché sia univoco in tutto il progetto. Si presume che non siano state configurate variabili di rete di sicurezza aggiuntive nella stessa rete.
Numero massimo di ricevitori: Questa impostazione rimane al valore predefinito di
4
negli esempi per fornire un livello di espansione massimo di quattro controller intercomunicanti. Se questo valore viene modificato in seguito, sia l'applicazione di sicurezza che le applicazioni associate del controller standard devono essere scaricate di nuovo. L'aumento del valore aumenta anche il consumo di risorse, poiché il mittente riserva già risorse per connessioni inutilizzate. Pertanto, il valore non deve essere impostato più alto del necessario.
Scheda: Configurazione di sicurezza (Elenco variabili di rete di sicurezza (Ricevitore)
ID di connessione: Questo ID deve avere un valore univoco per tutta la rete, poiché l'ID di connessione: viene utilizzato per l'identificazione interna della connessione (vedere: Manuale utente di sicurezza). Nell'esempio, pertanto, si presta attenzione affinché sia univoco in tutto il progetto. Si presume che non siano state configurate variabili di rete di sicurezza aggiuntive nella stessa rete.
Tempo di guardia: Deve essere impostato in modo sensato per l'esempio a seconda del sistema. Per ulteriori requisiti o restrizioni sul valore da utilizzare, fare riferimento al Manuale utente di sicurezza.
Preparazione del progetto
Suggerimento
Per testare la funzione della variabile di rete, l'interruttore di arresto di emergenza fisico può essere simulato prima mediante un GVL con un singolo SAFEBOOL
variabile il cui valore iniziale è impostato su TRUE
. Invece di azionare un interruttore fisico, il valore di questa variabile può essere modificato tramite comando per osservare la reazione del sistema distribuito nel suo complesso.
Crea un nuovo progetto dal modello Progetto di sicurezza vuoto con un controller standard e un controller di sicurezza sottostante.
Selezionare il punto del nodo App di sicurezza nell'albero dei dispositivi e fare clic nel menu contestuale.
Digitare un nome per il POU nel Aggiungi POU esteso (sicurezza) dialogo e selezionare PROGRAMMA come il Tipo POUQuindi fare clic Aggiungere.
Inserisci un
SF_EmergencyStop
blocco funzione nel POU aperto e assegnare il valoreTRUE
al Attivare iscrizione.Aggiungi un GVL a App di sicurezza tramite il comando .
In questo GVL, dichiarare la variabile globale
Local_EStop
di tipo di datiSAFEBOOL
con il valore iniziale diTRUE
(che sostituisce l'interruttore fisico di arresto di emergenza nell'esempio).Aggiungi un Elenco delle variabili di rete di sicurezza (Ricevitore) e un Elenco delle variabili di rete di sicurezza (mittente) all'applicazione della sicurezza mediante il Aggiungi oggetto comando.
Se necessario, modificare il Tempo di guardia valore (Elenco delle variabili di rete di sicurezza (Ricevitore) sul Configurazione di sicurezza tab) in modo tale che il valore corrisponda al comportamento temporale dell'applicazione per l'hardware e i requisiti applicati.
Esempio 1: Creazione e configurazione di un dispositivo per la comunicazione incrociata sicura mediante la copia del controller standard con il controller di sicurezza sottostante
Aprire il POU da App di sicurezza nel progetto e inserisci un
AND
operatore prima del POUSF_EmergencyStop
in modo che l'output delAND
l'operatore è connesso all'ingresso POUE_StopIn
.Assegna la variabile globale
Local_EStop
alla prima entrata delAND
operatore.Nel POU, dichiarare una variabile locale
bVar_Reset
di tipo di datiBOOL
e collega questo alReset
immissione del POUSF_EmergencyStop
. Ciò è necessario per il debug.Per preparare il segnale dell'interruttore di arresto di emergenza (variabile globale
Local_EStop
) per la pubblicazione tramite una variabile di rete di sicurezza (mittente), creare la variabileSApp1_EStop
di tipo di datiSAFEBOOL
nell'elenco delle variabili di rete di sicurezza (mittente).Aggiungere una nuova rete nel POU facendo clic su Inserisci rete (sotto)e assegna il valore della variabile
Local_EStop
(segnale dell'interruttore di arresto di emergenza) alla variabileSApp1_EStop
.Aprire la finestra di dialogo delle proprietà di App di sicurezza e rinominarlo in SicurezzaApp1.
Ora crea un secondo controller nel tuo progetto copiando e incollando il controller standard configurato nei passaggi precedenti con il controller di sicurezza sottostante. Per il controller standard e di sicurezza copiato, devono essere prima apportate le seguenti modifiche.
Modifiche alla copia inserita: Rinomina la SicurezzaApp1 opporsi a SicurezzaApp2 perché il nome di un oggetto di applicazione di sicurezza deve essere univoco in un progetto.
Impostato SicurezzaApp2 come applicazione attiva e fare clic La build genera una nuova applicazione di mappatura SafetyApp2_Mappatura creato sotto il nuovo controller standard.
Dopo la compilazione, nella vista messaggi vengono visualizzati diversi errori riguardanti la comunicazione incrociata sicura (
). Ciò aiuta a rilevare gli errori di configurazione correnti, che dovrebbero essere corretti per primi. Per fare ciò, considera i seguenti messaggi di errore visualizzati:Errore P0100 significa che il gruppo di identificatori di elenco nel progetto non è univoco (perché Elenco delle variabili di rete di sicurezza (mittente) l'oggetto è stato copiato). Per correggere l'errore, aprire l'oggetto elenco variabili di rete di sicurezza (mittente) del SicurezzaApp2 applicazione. Quindi digitare un valore per Gruppo di identificatori di elenchi di variabili sul PLC principale nel Rete PLC tab. Questo valore non deve essere già assegnato nel progetto (esempio:
2
).Per una denominazione chiara nell'esempio, il nome della variabile pubblicata deve ancora essere modificato. Per fare ciò, apri il Configurazione di sicurezza scheda dell'elenco delle variabili di rete di sicurezza (mittente) del SicurezzaApp2 applicazione e rinominare la variabile dichiarata in
SApp2_EStop
.Secondo il Manuale utente di sicurezza, l'uso di variabili di rete di sicurezza richiede che gli indirizzi di sicurezza di tutti i mittenti applicati siano univoci. Ecco perché digiti un nuovo Indirizzo di sicurezza di questo elenco di variabili nel Configurazione di sicurezza scheda dell'elenco delle variabili di rete di sicurezza (mittente) del SicurezzaApp2 applicazione (esempio:
1001
).Errore P0200 significa che un mittente autorizzato non è ancora stato selezionato per un elenco di variabili di rete di sicurezza (ricevitore). Questo può essere corretto come segue: aprire l'elenco di variabili di rete di sicurezza (ricevitore) di SicurezzaApp2 (ad esempio facendo doppio clic sul messaggio di errore nella vista messaggi). Quindi selezionare l'elenco delle variabili mittente dall'elenco Mittente associato elenco a discesa che contiene il
SApp1_EStop
variabile pubblicata nel passaggio 4. Se desiderato per la logica di programmazione, il nome locale della variabile può ora essere rinominato. Nell'esempio, questo è riservato comeSApp1_EStop_1
perché ilSApp1_EStop
la variabile è già definita copiando l'applicazione. Poiché il POU nel passaggio successivo è modificato, modifica il nome nell'elenco delle variabili di rete di sicurezza aperte (ricevitore) di nuovo inSApp1_EStop
in modo che concordi nuovamente con le variabili pubblicate.Poiché i ConnectionID di tutti i ricevitori applicati devono essere univoci nella rete, è necessario digitare un altro valore univoco ID di connessione nell'elenco delle variabili di rete di sicurezza copiate (ricevitore) nel Configurazione di sicurezza scheda.
Aprire il POU di SicurezzaApp2.
Assegna la variabile
SApp1_EStop
alla seconda entrata delAND
operatore.Assegna la variabile locale
Local_EStop
(segnale dell'interruttore di arresto di emergenza di SafetyApp2) alla variabile mittenteSApp2_EStop
.Impostato SicurezzaApp1 di nuovo come applicazione attiva e fare clic .
Fare doppio clic sull'errore P0200 nella visualizzazione del messaggio.
Elenco delle variabili di rete di sicurezza (ricevitore) di SicurezzaApp1 si apre.
Selezionare l'elenco delle variabili del mittente SicurezzaApp2 dal Mittente associato elenco a discesa.
Collegandosi al mittente dell'altro controller, gli identificatori dell'elenco vengono aggiornati nell'area definita nel mittente.
Aprire il POU di SicurezzaApp1.
Assegna la variabile remota disponibile SApp2_EStop alla seconda entrata del
AND
operatore.Ricostruire SicurezzaApp1.
Non vengono segnalati altri errori.
Nei passaggi successivi verrà eseguita la configurazione di rete con indirizzi espliciti.
Innanzitutto è necessario configurare correttamente le impostazioni di comunicazione per entrambi i controller nel progetto, in modo che sia possibile effettuare l'accesso ai controller in un secondo momento.
Se una trasmissione all'indirizzo di rete
255.255.255.255
non è desiderato o non è possibile per motivi tecnici (ad esempio a causa delle impostazioni del router), è possibile definire esplicitamente anche i controllori che possono comunicare tramite SafetyNetvars.Per l'esempio sopra con due controller coinvolti, le impostazioni di rete su Rete PLC le schede degli oggetti mittente e destinatario sono definite come segue:
Disattivare prima l'opzione Utilizzare i valori predefiniti per l'indirizzo di rete di destinazione e la porta (255.255.255.255, 1202) nel Rete PLC scheda di tutti gli elenchi delle variabili di rete di sicurezza del progetto.
Digitare gli indirizzi IP del rispettivo terminale remoto in base a questa figura. È necessario modificare di conseguenza gli indirizzi IP della propria rete.
L'indirizzo di rete di destinazione
192.168.0.22
deve essere fornita la lista delle variabili di rete di sicurezza SicurezzaApp1 e l'indirizzo IP192.168.0.1
per gli elenchi delle variabili di rete di sicurezza SicurezzaApp2. La voce al mittente deve essere fatta per la voce in cui gli identificatori di elenco corrispondono a quelli del ricevitore corrispondente. Questo viene fatto in modo che i pacchetti possano essere assegnati correttamente dal livello subordinato.Importante
Per rilevare per quale delle voci del mittente è stato inserito un IP, è possibile visualizzare sul mittente un elenco dei destinatari connessi tramite Mostra i ricevitori pulsante nel Configurazione di sicurezza tab. L'editor dell'elenco delle variabili di rete di sicurezza connesse (ricevitore) può essere aperto rapidamente facendo doppio clic su una voce in questo elenco. Nell'editor, è possibile controllare quale coppia di identificatori di elenco è utilizzata dal ricevitore.
Il progetto è configurato per l'esempio di comunicazione incrociata.
Per testare il progetto, scarica entrambe le applicazioni sui controller di sicurezza. Potresti anche dover accertarti che i rispettivi Mappatura di SafetyAppX viene scaricato sul controller e avviato. Successivamente, avviare le applicazioni e reimpostare qualsiasi
SF_EmergencyStop
POU tramite ilReset
ingresso e ilbVar_Reset
variabili connesse nel passaggio 3.Ora puoi attivare il POU
SF_EmergencyStop
in entrambi i controller interconnessi attivando il segnale di arresto di emergenza in un controller. Nell'esempio, l'interruttore di arresto di emergenza viene simulato impostando la variabile globale Local_EStop AFALSE
su uno dei due controller e quindi scrivere il valore per questo controller tramite il comando .
Esempio 2: Estensione del progetto precedente con un altro dispositivo "creando" i componenti variabili di rete
Requisito: il progetto dell'esempio 1 è stato creato ed è aperto.
Aggiungere un ulteriore controller standard al progetto con un controller di sicurezza sottostante (menu contestuale: Aggiungi dispositivo).
Copia il POU E GVL oggetti da SicurezzaApp1 sotto il nuovo controllore di sicurezza.
Rinomina il nuovo App di sicurezza A SicurezzaApp3.
Aggiungine uno Elenco delle variabili di rete di sicurezza (mittente) e due Elenco delle variabili di rete di sicurezza (Ricevitore) oggetti sottostanti SicurezzaApp3 per mezzo del Aggiungi oggetto comando.
Aprire il Configurazione di sicurezza schede di entrambe le variabili di rete di sicurezza (ricevitore) e seleziona da Mittente associato elenco a discesa del mittente di SicurezzaApp1 per il primo elenco di variabili di rete di sicurezza (ricevitore) e il mittente di SicurezzaApp2 e per il secondo.
Se necessario, modificare il Tempo di guardia nell'elenco delle variabili della rete di sicurezza (ricevitore).
Suggerimento
L'ID di connessione è preimpostato con un valore univoco per tutto il progetto quando l'oggetto viene inserito. Pertanto non è più necessario modificarlo durante la procedura descritta in questo esempio.
Dichiarare la variabile
SApp3_EStop
di tipo di datiSAFEBOOL
nel nuovo Elenco delle variabili di rete di sicurezza (mittente).Suggerimento
L'indirizzo di sicurezza dell'elenco variabili è preimpostato con un valore univoco per tutto il progetto quando l'oggetto viene inserito. Pertanto non deve più essere modificato durante questa procedura. Anche il gruppo di identificatori dell'elenco variabili è preimpostato con un valore univoco per tutto il progetto per evitare conflitti.
Modificare l'assegnazione nel POU di SicurezzaApp3 in modo che la variabile
Local_EStop
è assegnato alla variabileSApp3_EStop
In questo modo, il valore dell'interruttore di arresto di emergenza viene pubblicato tramite il Elenco delle variabili di rete di sicurezza (mittente).Selezionare il
AND
operatore, clicca Aggiungi input nel menu contestuale e collega questo nuovo input alla variabileSApp1_EStop
.Gli input del
AND
gli operatori sono ora collegati alLocal_EStop
,SApp2_EStop
, ESApp1_EStop
input.Impostato SicurezzaApp3 come applicazione attiva e crea l'applicazione cliccando .
Durante l'operazione di compilazione, il sistema verifica se la configurazione delle variabili di rete di sicurezza a livello di progetto corrisponde e SafetyApp3_Mappatura viene generato.
Nei passaggi successivi modificherai SicurezzaApp2.
Aggiungi un nuovo Elenco delle variabili di rete di sicurezza (Ricevitore) A SicurezzaApp2 e seleziona l'elenco delle variabili di rete del mittente SicurezzaApp3 dal Mittente associato elenco a discesa.
Se necessario, modificare il Tempo di guardia.
Aprire il POU di SicurezzaApp2 e aggiungi un nuovo input al
AND
operatore (menu contestuale: Aggiungi input). Collega questo nuovo input alSApp3_EStop
variabile.Nei passaggi successivi modificherai SicurezzaApp1.
Aggiungi un nuovo Elenco delle variabili di rete di sicurezza (Ricevitore) A SicurezzaApp1 e seleziona l'elenco delle variabili di rete del mittente SicurezzaApp3 dal Mittente associato elenco a discesa.
Se necessario, modificare il Tempo di guardia.
Aprire il POU di SicurezzaApp1 e aggiungi un nuovo input al
AND
operatore (menu contestuale: Aggiungi input). Collega questo nuovo input alSApp3_EStop
variabile.Come nell'esempio precedente, la configurazione di rete è descritta con indirizzi espliciti.
Impostare le impostazioni di comunicazione per tutti e tre i controller nel progetto in modo che sia possibile accedere ai controller in un secondo momento.
Disattivare l'opzione Utilizzare i valori predefiniti per l'indirizzo di rete di destinazione e la porta (255.255.255.255, 1202) in tutti gli elenchi delle variabili di rete di sicurezza.
Digitare gli indirizzi IP dei rispettivi terminali remoti in base a questa figura. È necessario modificare di conseguenza gli indirizzi IP della propria rete.
Per App di sicurezza3 questa operazione è descritta più in dettaglio nei seguenti passaggi:
Digitare il Indirizzo di rete di destinazione
192.168.0.22
del controllore con SicurezzaApp2 come voce per il Elenca gli identificatori1080 1081
nel Rete PLC scheda dell'elenco delle variabili di rete di sicurezza (mittente) di SicurezzaApp3.Importante
Assicuratevi di assegnare gli indirizzi di rete di destinazione agli identificatori di elenco corretti, altrimenti il trasferimento delle variabili di rete non funzionerà.
Aprire l'elenco delle variabili di rete di sicurezza (ricevitore) che importa la variabile
SApp2_EStop
. Digitare il Indirizzo di rete di destinazione del controllore con SicurezzaApp2192.168.0.22
.Quindi digita il Indirizzo di rete di destinazione
192.168.0.1
per il controllore con SicurezzaApp1 presso le seguenti sedi:Primo nell'elenco delle variabili di rete di sicurezza (mittente) per gli identificatori di elenco
1082 1083
e quindi nell'elenco delle variabili di rete di sicurezza (ricevitore) che importa la variabileSApp1_EStop
.Ora il progetto è configurato per la comunicazione incrociata.
Per testare l'esempio di comunicazione incrociata, scaricare prima le applicazioni su tutti i controller coinvolti e avviare le applicazioni. Assicurarsi che anche il rispettivo SafetyAppX_Mapping sia in esecuzione.
IL
SAppX_EStop
le variabili pubblicate utilizzando le variabili della rete di sicurezza vengono ora trasferite ai POU delle altre SafetyApp con il valoreTRUE
Questo è il valore iniziale che viene scritto nelSAppX_EStop
variabili dagli interruttori di arresto di emergenza simulati.Se necessario, impostare il
SF_EmergencyStop
POU tramite ilReset
input e connessobVar_Reset
variabili.Ora puoi attivare il POU
SF_EmergencyStop
in tutti e tre i controller interconnessi attivando il segnale di arresto di emergenza in un controller. Nell'esempio, l'interruttore di arresto di emergenza viene simulato impostando la variabile globaleLocal_EStop
AFALSE
su uno dei controller e quindi scrivere il valore per questo controller tramite il comando .