Skip to main content

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.

. Spiegazione dei valori di configurazione modificabili degli elenchi delle variabili di rete di sicurezza degli esempi
  • 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 Debug → Scrivi valori comando per osservare la reazione del sistema distribuito nel suo complesso.

  1. Crea un nuovo progetto dal modello Progetto di sicurezza vuoto con un controller standard e un controller di sicurezza sottostante.

  2. Selezionare il punto del nodo App di sicurezza nell'albero dei dispositivi e fare clic Aggiungi oggetto → POU esteso (sicurezza) nel menu contestuale.

  3. Digitare un nome per il POU nel Aggiungi POU esteso (sicurezza) dialogo e selezionare PROGRAMMA come il Tipo POUQuindi fare clic Aggiungere.

  4. Inserisci un SF_EmergencyStop blocco funzione nel POU aperto e assegnare il valore TRUE al Attivare iscrizione.

  5. Aggiungi un GVL a App di sicurezza tramite il comando Aggiungi oggetto → Elenco variabili globali (sicurezza).

  6. In questo GVL, dichiarare la variabile globale Local_EStop di tipo di dati SAFEBOOL con il valore iniziale di TRUE (che sostituisce l'interruttore fisico di arresto di emergenza nell'esempio).

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

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

  1. Aprire il POU da App di sicurezza nel progetto e inserisci un AND operatore prima del POU SF_EmergencyStop in modo che l'output del AND l'operatore è connesso all'ingresso POU E_StopIn.

  2. Assegna la variabile globale Local_EStop alla prima entrata del AND operatore.

  3. Nel POU, dichiarare una variabile locale bVar_Reset di tipo di dati BOOL e collega questo al Reset immissione del POU SF_EmergencyStop. Ciò è necessario per il debug.

  4. 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 variabile SApp1_EStop di tipo di dati SAFEBOOL nell'elenco delle variabili di rete di sicurezza (mittente).

  5. 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 variabile SApp1_EStop.

  6. Aprire la finestra di dialogo delle proprietà di App di sicurezza e rinominarlo in SicurezzaApp1.

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

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

  9. Impostato SicurezzaApp2 come applicazione attiva e fare clic Costruisci → CostruisciLa build genera una nuova applicazione di mappatura SafetyApp2_Mappatura creato sotto il nuovo controller standard.

  10. Dopo la compilazione, nella vista messaggi vengono visualizzati diversi errori riguardanti la comunicazione incrociata sicura (Visualizza → Messaggi). 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 come SApp1_EStop_1 perché il SApp1_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 in SApp1_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.

  11. Aprire il POU di SicurezzaApp2.

  12. Assegna la variabile SApp1_EStop alla seconda entrata del AND operatore.

  13. Assegna la variabile locale Local_EStop (segnale dell'interruttore di arresto di emergenza di SafetyApp2) alla variabile mittente SApp2_EStop.

  14. Impostato SicurezzaApp1 di nuovo come applicazione attiva e fare clic Costruisci → Costruisci.

  15. Fare doppio clic sull'errore P0200 nella visualizzazione del messaggio.

    Elenco delle variabili di rete di sicurezza (ricevitore) di SicurezzaApp1 si apre.

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

  17. Aprire il POU di SicurezzaApp1.

  18. Assegna la variabile remota disponibile SApp2_EStop alla seconda entrata del AND operatore.

  19. Ricostruire SicurezzaApp1.

    Non vengono segnalati altri errori.

  20. 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:

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

  22. sil3_img_nvl_config_example1.png

    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 IP 192.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.

  23. 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 il Reset ingresso e il bVar_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 A FALSE su uno dei due controller e quindi scrivere il valore per questo controller tramite il comando Debug → Scrivi valori.

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.

  1. Aggiungere un ulteriore controller standard al progetto con un controller di sicurezza sottostante (menu contestuale: Aggiungi dispositivo).

  2. Copia il POU E GVL oggetti da SicurezzaApp1 sotto il nuovo controllore di sicurezza.

  3. Rinomina il nuovo App di sicurezza A SicurezzaApp3.

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

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

  6. Dichiarare la variabile SApp3_EStop di tipo di dati SAFEBOOL 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.

  7. Modificare l'assegnazione nel POU di SicurezzaApp3 in modo che la variabile Local_EStop è assegnato alla variabile SApp3_EStopIn questo modo, il valore dell'interruttore di arresto di emergenza viene pubblicato tramite il Elenco delle variabili di rete di sicurezza (mittente).

  8. Selezionare il AND operatore, clicca Aggiungi input nel menu contestuale e collega questo nuovo input alla variabile SApp1_EStop.

    Gli input del AND gli operatori sono ora collegati al Local_EStop, SApp2_EStop, E SApp1_EStop input.

  9. Impostato SicurezzaApp3 come applicazione attiva e crea l'applicazione cliccando Costruisci → Costruisci.

    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.

  10. Nei passaggi successivi modificherai SicurezzaApp2.

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

  12. Se necessario, modificare il Tempo di guardia.

  13. Aprire il POU di SicurezzaApp2 e aggiungi un nuovo input al AND operatore (menu contestuale: Aggiungi input). Collega questo nuovo input al SApp3_EStop variabile.

  14. Nei passaggi successivi modificherai SicurezzaApp1.

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

  16. Se necessario, modificare il Tempo di guardia.

  17. Aprire il POU di SicurezzaApp1 e aggiungi un nuovo input al AND operatore (menu contestuale: Aggiungi input). Collega questo nuovo input al SApp3_EStop variabile.

  18. Come nell'esempio precedente, la configurazione di rete è descritta con indirizzi espliciti.

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

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

  21. sil3_img_nvl_config_example2.png

    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:

  22. Digitare il Indirizzo di rete di destinazione 192.168.0.22 del controllore con SicurezzaApp2 come voce per il Elenca gli identificatori 1080 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à.

  23. 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 SicurezzaApp2 192.168.0.22.

  24. 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 variabile SApp1_EStop.

  25. 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 valore TRUEQuesto è il valore iniziale che viene scritto nel SAppX_EStop variabili dagli interruttori di arresto di emergenza simulati.

  26. Se necessario, impostare il SF_EmergencyStop POU tramite il Reset input e connesso bVar_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 globale Local_EStop A FALSE su uno dei controller e quindi scrivere il valore per questo controller tramite il comando Debug → Scrivi valori.