Skip to main content

Configurazione dei dispositivi e mappatura degli I/O

È possibile configurare gli oggetti dispositivo inseriti nell'albero dei dispositivi nell'editor dei dispositivi associato. Le possibilità dipendono dalla descrizione del dispositivo. Il "editor di dispositivi generici" fornisce schede integrate, se necessario, da schede specifiche del dispositivo.

Presupposto: è stato aperto un progetto standard nella cui struttura ad albero dei dispositivi è inserito un PLC standard e al di sotto di esso è inserito un oggetto dispositivo bus di campo.

  1. Fare doppio clic sull'oggetto dispositivo del controllore standard nella struttura ad albero dei dispositivi del progetto.

    Il <nome dispositivo> l'editor si apre nel menu principale CODESYS finestra. Il Impostazioni di comunicazione la scheda è in primo piano. Passare alle altre schede per effettuare le impostazioni di configurazione per il controller. Vedere le pagine della guida per l'editor del dispositivo generico.

  2. Fare doppio clic sull'oggetto dispositivo bus di campo nella struttura ad albero dei dispositivi del progetto.

    Il <nome dispositivo bus di campo> l'editor si apre nel menu principale CODESYS finestra. Schede specifiche sono disponibili a seconda del dispositivo. Per le opzioni di configurazione, vedere le pagine della guida del rispettivo editor del dispositivo. Se la Mostra visualizzazioni di configurazione del dispositivo generico l'opzione è selezionata in Strumenti → Opzioni, nel Editor di dispositivi categoria, quindi vedere anche le schede fornite dall'editor del dispositivo generico.

Se i parametri di configurazione del PLC sono stati modificati da un altro dispositivo, ad esempio tramite una visualizzazione, un file di configurazione IoConfig.par viene creato sul controller. A seconda del dispositivo, nella finestra di dialogo dei parametri dell'editor del dispositivo in modalità online può essere presente un pulsante per scrivere i parametri correnti in tale file. Per aggiornare i parametri modificati anche all'interno del tuo progetto, puoi leggere il file dei parametri in modalità online.

Presupposto: si dispone di un progetto standard con un albero dei dispositivi in cui l'ambiente hardware è mappato con un PLC e un dispositivo parametrizzabile nell'albero dei dispositivi. Sul controller c'è un file IoConfig.par, in cui sono stati precedentemente salvati i parametri del dispositivo con i valori attuali.

  1. Aggiungi il Leggere il file dei parametri del PLC nella configurazione comando a un menu dell'interfaccia da Dispositivi categoria nel Strumenti → Personalizza dialogo.

  2. Selezionare l'oggetto dispositivo PLC nella struttura dei dispositivi e aprire il menu contestuale.

  3. Clic Leggere il file dei parametri del PLC nella configurazione.

    CODESYS stabilisce automaticamente una connessione al controller e legge i parametri dal file par. Questi vengono aggiornati di conseguenza nella scheda con i parametri del dispositivo.

La possibilità di configurare o meno una mappatura I/O per progettare variabili o anche per interi blocchi funzione dipende dal tipo di dispositivo. Configurare una mappa I/O significa collegare i canali di ingresso e di uscita del dispositivo con le variabili del progetto. Usiamo anche il termine "Mappatura" per questo.

Prestare attenzione in generale a quanto segue per la mappatura di ingressi e uscite di un dispositivo su variabili in CODESYS:

  • Non hai accesso in scrittura alle variabili mappate a un input.

  • È possibile mappare una variabile esistente su un solo input.

  • È possibile generare direttamente nuove variabili globali implicite nella mappa di I/O e mapparle su un canale del dispositivo.

  • La disposizione della memoria delle strutture è specificata dal dispositivo.

  • È possibile modificare gli indirizzi e correggere i valori nella mappa I/O.

  • Per ogni variabile associata a un canale I/O nel file Scheda: <nome dispositivo> Mappatura I/O è assegnato, è possibile generare delle "variabili forzate" durante la compilazione dell'applicazione (vedi sotto). È possibile utilizzare queste variabili, ad esempio, per forzare un valore sull'ingresso o sull'uscita durante la messa in servizio di un sistema tramite una visualizzazione/HMI.

  • Le modifiche alla mappa I/O possono essere trasferite al controllore con una modifica online.

  • Se viene utilizzato un puntatore a un input del dispositivo, l'accesso viene considerato, ad esempio, un accesso in scrittura pTest := ADR(input);. Quando il codice viene generato, questo porta a un avviso del compilatore: "...invalid assignment target". Se hai bisogno di un costrutto di questo tipo, devi prima copiare il valore di input input a una variabile con accesso in scrittura.

  • Un indirizzo I/O può anche essere collegato a una variabile tramite la "dichiarazione AT" nel codice IEC. Tuttavia, poiché la configurazione di un dispositivo cambia spesso di nuovo, si consiglia di eseguire le assegnazioni solo nell'editor dei dispositivi.

    Se utilizzi la dichiarazione AT, tieni presente quanto segue:

    • Una dichiarazione AT è consentita solo con variabili locali o globali, non con variabili di ingresso o uscita dei blocchi funzione.

    • Non è possibile generare "variabili di forza" implicite per gli I/O (vedi sotto) per le dichiarazioni AT.

    • Se si utilizza una dichiarazione AT con variabili di struttura o variabili di blocco funzione, tutte le istanze accederanno alla stessa posizione di memoria. Ciò corrisponde quindi all'uso di "variabili statiche" nei linguaggi di programmazione classici come "C".

Importante

Se viene utilizzato un puntatore a un input del dispositivo, l'accesso (ad esempio, pTest := ADR(input);) si applica come accesso in scrittura. Quando il codice viene generato, questo porta a un avviso del compilatore: "...invalid assignment target".

Se hai bisogno di un costrutto di questo tipo, devi prima copiare il valore di input (input) a una variabile con accesso in scrittura.

Suggerimento

In alternativa è possibile assegnare una variabile ad un indirizzo nel codice di programmazione utilizzando la dichiarazione AT. Tuttavia, in vista di possibili modifiche alla configurazione dei dispositivi, si consiglia di eseguire le assegnazioni solo nell'editor dei dispositivi.

Suggerimento

È possibile esportare la configurazione della mappatura degli I/O di un dispositivo in a csv file o importarlo da tale file.

Per ulteriori informazioni, vedere: Esporta immagine I/O in CSV

Per ulteriori informazioni, vedere: Generazione di variabili implicite per la forzatura degli I/O

Requisito: un dispositivo che supporti una configurazione di mappatura I/O in CODESYS è inserito nell'albero dei dispositivi del tuo progetto. Sul Mappatura I/O scheda nell'editor del dispositivo si ottiene così una visualizzazione tabellare dei canali di ingresso e uscita del dispositivo con l'indicazione degli indirizzi e dei tipi di dati.

Mappatura di tipi di dati "troppo grandi"

Se una variabile di un tipo di dati che è più grande di un byte viene mappata su un indirizzo di byte, il valore della variabile verrà troncato alla dimensione di byte lì. Per monitorare il valore della variabile in Mappatura I/O dialog, ciò significa che, nell'elemento "root" dell'indirizzo, viene visualizzato il valore che la variabile ha attualmente nel progetto. I singoli valori di bit attuali del byte vengono visualizzati in successione negli elementi bit sottostanti, ma ciò potrebbe non essere sufficiente per l'intero valore della variabile.

Suggerimento

Se una UNION è rappresentata da canali I/O nella finestra di dialogo di mappatura, dipende dal dispositivo se è possibile mappare anche l'elemento "root".

  1. In una POU, dichiarare, ad esempio, una variabile xBool4 del tipo BOOL con cui si desidera accedere a un input del dispositivo di destinazione dall'applicazione.

  2. Per aprire l'editor del dispositivo, fare doppio clic sull'oggetto del dispositivo nella struttura del dispositivo, quindi su <nome dispositivo> Mappatura I/O scheda.

  3. Osserva il Variabile colonna con la visualizzazione dell'ingresso del dispositivo _cds_icon_input_channel.png canali e uscita del dispositivo _cds_icon_output_channel.png canali , che possono comunque essere ordinati per organizzazione _cds_icon_folder.png nodi, a seconda del dispositivo. Assumiamo che sia presente un dispositivo di input del tipo BYTE. Viene visualizzato con i suoi singoli indirizzi di bit (canali di bit) sotto il BYTE nodo.

  4. Nota: quando si mappano le variabili strutturate, l'editor impedisce di inserire entrambe le variabili di struttura (esempio: %QB0) e singoli elementi della struttura (esempio: %QB0.1 e QB0.2). Pertanto, se nella tabella di mappatura è presente una voce principale con un sottoalbero di voci di canali di bit, vale quanto segue: Quindi è possibile specificare una variabile nella riga della voce principale o nelle righe dei sottoelementi (canali di bit ), ma non in entrambi.

    Ora puoi occupare l'intero canale con una variabile di un tipo adatto OPPURE i suoi singoli indirizzi di bit-channel con variabili adatte del tipo BOOL o BIT. Prima di tutto, fare doppio clic su un canale di input bit nel file Variabili colonna.

    Si apre un campo di immissione.

  5. Per posizionare una variabile esistente sul canale, è necessario inserire la variabile di progetto desiderata con il percorso completo. premere _cds_icon_three_dots.png per aprire l'Assistente di immissione. Selezionare, ad esempio, la variabile Application.PLC_PRG.xBool4 dichiarato in PLC_PRG.

    La variabile viene inserita. Il _cds_icon_map_to_existing_variable.png il simbolo viene visualizzato nel Mappatura colonna. L'indirizzo è ora barrato. Ciò non significa che l'indirizzo non sia più disponibile, perché i valori delle variabili esistenti vengono gestiti in un altro spazio di memoria. Ma: per evitare ambiguità nella scrittura dei valori, non si dovrebbe comunque occupare l'indirizzo con un'ulteriore variabile, soprattutto nel caso di uscite.

    Nota: per la versione del compilatore V3.5 SP11 e successive, il valore di inizializzazione delle variabili viene utilizzato automaticamente come valore predefinito durante il mapping a una variabile esistente. Puoi modificare il Valore di default campo solo se si esegue il mapping a una nuova variabile creata o se non è specificato alcun mapping. Nelle versioni precedenti, gli utenti dovevano specificare esplicitamente che il valore predefinito e il valore di inizializzazione erano identici.

    _cds_mapping_bit_on_existing_variable.png
  6. Eliminare nuovamente l'assegnazione della variabile. Fare clic sulla radice del canale, il BYTE nodo. Utilizzare nuovamente l'Input Assistant per selezionare la variabile Application.PLC_PRG.byte_gotodevice.

    La variabile viene inserita, tutti gli indirizzi di bit del canale principale vengono barrati e non dovresti occuparli ulteriormente.

    _cds_mapping_root_on_existing_variable.png

Di seguito mapperai l'output di un dispositivo su una variabile implicita globale, che hai creato di recente per questo scopo direttamente nel file Mappatura I/O dialogo.

Suggerimento

Il Mappatura I/O dialog è quindi un ulteriore luogo per la dichiarazione di una variabile globale.

Requisito: un dispositivo che supporti una configurazione di mappatura I/O in CODESYS è inserito nell'albero dei dispositivi del tuo progetto. Sul Mappatura I/O scheda nell'editor del dispositivo si vedrà quindi una rappresentazione tabellare dei canali di ingresso e uscita del dispositivo con l'indicazione degli indirizzi e dei tipi di dati.

  1. Per aprire l'editor del dispositivo, fare doppio clic sull'oggetto del dispositivo nella struttura del dispositivo, quindi su <nome dispositivo> Mappatura I/O scheda.

  2. Fare clic nella tabella di mappatura su una voce di canale in Variabile colonna per aprire un campo di input.

  3. Specifica un nome semplice (senza ".") per una nuova variabile (esempio: myBool).

    CODESYS crea la variabile come variabile globale implicita nel progetto e la assegna direttamente all'indirizzo del canale. Pertanto in questo caso l'indirizzo non appare barrato come nel caso di mappature su variabili esistenti _cds_icon_create_new_variable.png.

    _cds_mapping_to_new_variable.png

Se supportato dal dispositivo, è possibile mappare interi blocchi funzione su un canale di ingresso o di uscita. Ciò consente di contare la frequenza delle modifiche del segnale o di scalare il valore di un canale per scopi di manutenzione, ad esempio.

Qui verrà mappato un canale di uscita del dispositivo a un blocco funzione. In questo esempio, il blocco ridimensiona il valore di uscita del canale.

Presupposto: nel progetto è collegato un dispositivo con un'uscita digitale che supporta la mappatura FB. C'è un blocco funzione Scale_Output_Int con la seguente implementazione. Gli attributi del blocco funzione stesso e prima del parametro di uscita con cui viene elaborata l'uscita del canale sono importanti.

{attribute 'io_function_block'}
FUNCTION_BLOCK Scale_Output_Int
VAR_INPUT
    iInput : INT;
    iNumerator : INT;
    iDenominator : INT :=1;
    iOffset : INT := 0;
END_VAR
VAR_OUTPUT
 {attribute 'io_function_block_mapping'}
    iOutput : INT;
END_VAR
VAR
END_VAR
IF iDenominator <> 0 THEN
    iOutput := TO_INT(TO_DINT(iInput) * TO_DINT(iNumerator) / TO_DINT(iDenominator)) + iOffset;
  1. Apri il Mappatura I/O scheda del modulo del dispositivo. Fare doppio clic sull'uscita da collegare al blocco funzione. Clicca il _cds_icon_add_fb.png Aggiungi FB per canale IO pulsante.

    Il Seleziona Blocco funzione si apre la finestra di dialogo. Sul lato sinistro, vedi almeno il blocco funzione Scale_Output_int sotto il Applicazione nodo. Per la selezione vengono visualizzate anche le librerie collegate nel progetto che contengono i blocchi funzione corrispondenti.

  2. Seleziona la POU myScaleOutputInt.

    Dopo aver cliccato ok, il percorso del parametro del blocco funzione iOutput nel Variabile viene inserito nella finestra di dialogo di mappatura. Il percorso comprende il nome dell'applicazione, il nome del canale del dispositivo e l'uscita FB selezionata (esempio: App1.Out_4_Int_myScale_Output_Int_1.iOutput).

  3. Seleziona il canale e fai clic su _cds_icon_goto_definition.png Vai a Istanza pulsante.

    Il focus passa a <nome dispositivo> Oggetti IEC scheda e la voce creata per il nuovo oggetto IEC Out_4_Int_myScale_Output_Int_1. In questa visualizzazione in modalità online viene visualizzato il valore attuale del parametro iOutput per il canale Out_4_Int ridimensionato da FB. È anche possibile scrivere e forzare il valore come in altre viste di monitoraggio.

Per ulteriori informazioni, vedere: Scheda: '<nome dispositivo> Oggetti IEC e io_function_block, io_function_block_mapping

È possibile modificare il valore dell'indirizzo di un intero canale (ma non quello di un singolo sottoelemento del canale!) nella tabella di mappatura del <nome dispositivo> Mappatura I/O scheda. Ciò consente di adattare l'indirizzamento a una specifica configurazione della macchina e di mantenere il valore dell'indirizzo anche se cambia la disposizione dei moduli. Di default, una modifica del layout comporta un adattamento automatico dei valori di indirizzo.

Requisito: il tuo progetto ha una mappatura I/O. Vedere le sezioni corrispondenti della pagina di aiuto sopra.

  1. Per aprire l'editor del dispositivo, fare doppio clic sull'oggetto del dispositivo nella struttura del dispositivo, quindi su <nome dispositivo> Mappatura I/O scheda.

  2. Fare clic nella tabella di mappatura su una voce di canale in Indirizzo colonna per aprire un campo di input. Questo è possibile solo per l'indirizzo "root" di un canale, non per uno dei suoi sottoelementi in particolare.

    Pertanto, modificare la voce di indirizzo in alto di un canale nella tabella, ad esempio da QB0 a QB1. Esci dal campo di immissione.

    Il valore dell'indirizzo viene modificato. Il _cds_icon_address_fixed.png il simbolo viene visualizzato prima dell'indirizzo. Indica che l'indirizzo è fisso. Anche gli indirizzi dei sottoelementi del canale vengono modificati di conseguenza. Se ora si modifica la posizione dell'oggetto dispositivo all'interno di altri oggetti dispositivo con canali di ingresso/uscita nell'albero dei dispositivi, CODESYS non adatta questi indirizzi al nuovo ordine come sarebbe il caso senza fissazione.

    _cds_modifying_address_in_mapping_dialog.png
  3. Per annullare la modifica o il fissaggio manuale, aprire nuovamente il campo di immissione del valore dell'indirizzo, eliminare l'immissione dell'indirizzo e premere il tasto Invio.

    CODESYS ripristina l'indirizzo e gli indirizzi successivi interessati ai valori che avevano prima della modifica e rimuove il _cds_icon_address_fixed.png simbolo.

Per ulteriori informazioni, vedere: Indirizzi

A seconda del dispositivo che colleghi nel progetto, CODESYS aggiorna le variabili applicate ai suoi input e output in modi diversi. È possibile modificare esplicitamente le impostazioni per questo in Mappatura I/O dialogo.

Presupposto: è stata compilata senza errori un'applicazione con una configurazione del dispositivo contenente mappe I/O. L'hardware associato e il sistema bus sono in esecuzione. Ti sei connesso al controller tramite il In linea → Accedi comando e aver caricato e avviato l'applicazione.

  1. Apri il Mappatura I/O scheda del PLC nell'editor dei dispositivi. Per aprire l'editor, fare doppio clic sull'oggetto dispositivo nella struttura del dispositivo.

    La tabella di mappatura ora contiene inoltre il file Valore corrente e Nuovo valore colonne.

    Se una variabile di struttura è mappata all'elemento 'root' di un indirizzo1, CODESYS non visualizza un valore in questa riga in modalità online. Se, ad esempio, a DWORD la variabile è mappata all'indirizzo, tuttavia, i rispettivi valori sono monitorati sia nella riga "root" che nelle righe del canale di bit rientrate sotto di essa.

    In linea di principio, il campo nella riga "radice" rimane sempre vuoto se il valore è composto da più sottoelementi.

    1 "root" = elemento superiore di questo indirizzo nella finestra di dialogo di mappatura

  2. Immettere un determinato valore di variabile per una voce nella colonna Nuovo valore e premere F7 forzare o Ctrl+F7 per scrivere il valore.

    Come nel caso del monitoraggio nell'editor di dichiarazione o nelle watchlist, nella colonna viene visualizzato il valore della variabile forzata Valore corrente con un simbolo F rosso prefissato o il valore scritto.

Importante

Gli ingressi e le uscite che il codice PLC NON utilizza non vengono letti dal PLC in modalità online, per cui il valore visualizzato potrebbe non essere corretto. Il Valore corrente delle variabili interessate viene visualizzato con sfondo grigio.

_cds_img_mapping_online.png

Durante la messa in servizio di un impianto o di una macchina può essere necessario “forzare” i valori applicati agli ingressi e alle uscite. Se un dispositivo lo supporta, è possibile generare a tale scopo speciali "variabili di forza" e utilizzarle, ad esempio, in una visualizzazione HMI.

Requisito: il dispositivo supporta la funzionalità. Si dispone di un progetto in cui è configurata una mappa I/O per il dispositivo e che contiene un oggetto programma PLC_PRG.

  1. Apri l'editor del dispositivo, Impostazioni PLC scheda, facendo doppio clic sull'oggetto dispositivo nella struttura del dispositivo.

  2. Attiva l'opzione Genera variabili di forza per la mappatura IO.

  3. premere F11 per compilare la domanda.

    Vengono create due variabili per ciascun canale I/O secondo la seguente sintassi, nel corso della quale gli spazi nel nome del canale vengono sostituiti da caratteri di sottolineatura:

    <device name>_<channel name>_<IECaddress>_force del tipo BOOL per l'attivazione e la disattivazione della forzatura

    <device name>_<channel name>_<IECaddress>_value del tipo di dati del canale per definire il valore che si vuole forzare sul canale

    Queste variabili sono disponibili nell'Input Assistant nella categoria Variabili / IoConfig_Globals_Force_Variables. Puoi usarli dentro CODESYS nella programmazione degli oggetti, nelle visualizzazioni, nella configurazione dei simboli, ecc.

  4. Aprire il blocco funzione PLC_PRG, impostare il focus nella parte di implementazione e premere F2.

    Si apre l'Assistente di immissione. Le variabili sono disponibili nella categoria Variabili / IoConfig_Globals_Force_Variables come descritto sopra.

    Un fronte di salita sull'ingresso "Forza variabile" attiva la forzatura del rispettivo ingresso o uscita con il valore dato dalla "Variabile valore". Un fronte di discesa disattiva la forzatura. Disattivazione resettando la variabile "Forza" a FALSE è il requisito per poter forzare un nuovo valore.

Prendere nota delle seguenti restrizioni.

  • La forzatura tramite le variabili di forza implicite è possibile solo per i canali mappati in Mappatura I/O del dispositivo a una variabile esistente o creata di recente.

  • La forzatura tramite le variabili di forza implicite non è possibile per gli ingressi e le uscite non utilizzati o per quelli che sono mappati su una variabile tramite una dichiarazione AT in un programma applicativo.

  • I canali I/O da cui si desidera forzare il meccanismo devono essere utilizzati CODESYS in almeno un compito.

  • CODESYS identifica gli ingressi forzati nel monitoraggio tramite il simbolo rosso Force, ma non gli ingressi/uscite forzati. Il valore forzato viene utilizzato solo implicitamente dal driver I/O per la scrittura sul dispositivo.

Per ulteriori informazioni, vedere: Forzatura e scrittura di variabili

C'è una tabella che mostra la mappa di I/O di un dispositivo più le mappe di I/O di tutti i sottoelementi inseriti sotto di essa nell'albero del dispositivo. Qui è possibile modificare le mappe I/O esattamente come nelle singole tabelle di mappatura dei rispettivi editor di dispositivi.

Presupposto: nella struttura ad albero dei dispositivi del proprio progetto sono inseriti più PLC che abilitano ciascuno una configurazione della mappatura degli I/O.

  1. Selezionare il nodo radice dell'albero dei dispositivi e fare clic Modifica mappatura I/O nel menu contestuale.

    Il Modifica mappatura I/O si apre la finestra di dialogo, in cui vengono visualizzate in una tabella le configurazioni di mappatura degli I/O di tutti i dispositivi inseriti nel progetto. È possibile modificare le voci allo stesso modo di Mappatura I/O finestra di dialogo dell'editor del dispositivo associato.

  2. Selezionare ora uno degli oggetti di controllo nell'albero dei dispositivi e selezionare il Modifica mappatura I/O comando ancora una volta nel menu contestuale.

    Il Modifica mappatura I/O La finestra di dialogo ora mostra solo la tabella I/O per le configurazioni di mappatura I/O trovate all'interno e sotto l'oggetto selezionato.

  3. Imposta un desiderato Filtro nella barra sopra la tabella o inserire un nome di variabile in Cerca variabile campo per vedere l'uso di questa variabile nella mappatura.

    Il metodo di lavoro in questa finestra è lo stesso descritto per il <nome dispositivo> Mappatura I/O scheda.