Skip to main content

Oggetto: Configurazione dei simboli

È possibile utilizzare la configurazione dei simboli per creare descrizioni dei simboli per le variabili di progetto. Fate clic Progetto → Aggiungi oggetto per aggiungere un oggetto di configurazione dei simboli all'albero dei dispositivi e quindi definire impostazioni predefinite specifiche.

Suggerimento

Per fornire simboli a un server OPC UA, si consiglia di utilizzare il nuovo editor di configurazione (Configurazione del set di simboli IEC) per CODESYS 3.5 SP18 e più in alto.

Fare doppio clic su Configurazione dei simboli oggetto per aprire l'editor di configurazione dei simboli.

Finestra di dialogo: Aggiungi configurazione simboli

Funzione: questa finestra di dialogo viene utilizzata per definire le impostazioni predefinite per a Configurazione dei simboli oggetto.

Chiamata: Progetto → Aggiungi oggetto → Configurazione simboli menù; menu contestuale dell'oggetto applicazione

Includi commenti in XML

Esporta il file dei simboli con i commenti assegnati alle variabili

Supporta le funzionalità OPC UA

Nota: la disponibilità e la modificabilità di questa opzione dipendono dal dispositivo.

_cds_icon_checked.png: Quando si scarica la configurazione dei simboli, nel controllore vengono scaricate anche informazioni aggiuntive. Le seguenti informazioni sono necessarie per il funzionamento del server OPC UA:

  • Tipi base di blocchi funzione ereditati

  • Contenuto degli attributi assegnati tramite pragma del compilatore

  • Ambiti (esempio: VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT)

Tabella 6. Layout dei dati lato client

Per ulteriori informazioni ed esempi di opzioni di layout, vedere la sezione successiva "Editor di configurazione dei simboli".

Disposizione di compatibilità

Questa impostazione viene utilizzata per la compatibilità di vecchi progetti. Il layout dei dati creato per il cliente corrisponde il più possibile al layout creato internamente dal compilatore.

Disposizione ottimizzata

Consigliato per nuovi progetti

Calcola il layout di output in forma ottimizzata staccato dal layout interno del compilatore

Non genera lacune per gli elementi non pubblicati e soddisfa rigorosamente i requisiti per l'allineamento della memoria dei tipi di dati. Richiede la versione del compilatore 3.5.7.0 o successiva.



Editor di configurazione dei simboli

L'editor include una tabella con le variabili selezionate e una barra dei menu per la modifica.

Tabella 7. Barra dei menu

_cds_icon_symbolconfiguration_view

Visualizzazione

È possibile utilizzare questo pulsante per attivare e disattivare le seguenti categorie di variabili utilizzate nell'editor di configurazione:

_cds_icon_view_from_project.png Non configurato dal progetto: variabili che non sono state aggiunte alla configurazione dei simboli, ma sono previste nel progetto

_cds_icon_library_manager.png Non configurato dalle librerie: variabili che non sono state aggiunte alla configurazione dei simboli, ma sono previste nel progetto

_cds_icon_view_from_attribute.png Simboli esportati tramite attributo:

Questo filtro elenca anche le variabili che sono già state contrassegnate per l'esportazione nel file dei simboli tramite il file {attribute 'symbol' := 'read'} pragma. Questi simboli vengono visualizzati in grigio.

IL Attributo La colonna mostra quali diritti di accesso sono impostati dal pragma.

_cds_icon_symbolconfiguration_build.png

Costruire

Compila il progetto Presupposto per la preparazione attuale delle variabili nell'editor di configurazione

Dati non allineati solo con accesso alla memoria non allineato

Se la configurazione dei simboli contiene valori o simboli non allineati per un dispositivo che non supportare l'accesso alla memoria richiesto (non allineato), viene impostato un errore.

Viene visualizzato il seguente messaggio:

Il componente <nome> del SymbolType <nome del tipo di simbolo> senza allineamento della memoria non può essere pubblicato.

Ciò impedisce il download di codice potenzialmente difettoso sul controller, che potrebbe causare un arresto anomalo imprevedibile del controller.

Scaricamento

Se utilizzi un dispositivo che supporta il proprio file applicativo per la configurazione dei simboli, questo pulsante sarà disponibile anche nella barra degli strumenti.

Quando si modifica la configurazione dei simboli in modalità online, è possibile scaricare la nuova <application name>._symbols file immediatamente al PLC.

_cds_icon_symbolconfiguration_settings

Impostazioni

  • Supporta le funzionalità OPC UA:

    Nota: la disponibilità e la modificabilità di questa opzione dipendono dal dispositivo.

    Per fornire simboli a un server OPC UA, si consiglia in alternativa di utilizzare il nuovo editor di configurazione (Configurazione del set di simboli IEC) per CODESYS 3.5 SP18 e più in alto.

    _cds_icon_checked.png: Quando si scarica la configurazione dei simboli, nel controllore vengono scaricati anche dati aggiuntivi. Le informazioni seguenti sono necessarie per il funzionamento del server OPC UA. Questo include attualmente le seguenti informazioni:

    • Tipi base di blocchi funzione ereditati

    • Contenuto degli attributi assegnati tramite pragma del compilatore

    • Ambiti (esempio: VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT)

  • Includi commenti in XML

    Esporta il file dei simboli con i commenti assegnati alle variabili

  • Includi flag di nodo in XML

    _cds_icon_checked.png: i flag del nodo dello spazio dei nomi forniscono informazioni aggiuntive sull'origine di un nodo nello spazio dei nomi. I flag del nodo sono sempre nella tabella dei simboli quando OPC UA è attivato.

    Tuttavia, l'incorporamento nel file XML può essere disabilitato. Alcuni parser hanno problemi con questo.

  • Configura commenti e attributi

    Apre il Commenti e attributi dialogo

    Qui puoi configurare i dettagli di cosa dovrebbe essere incluso nella configurazione dei simboli e nel file XML rispetto a commenti e attributi.

  • Configurare la sincronizzazione con le attività IEC:

    Apre il Proprietà – <nome dispositivo> dialogo, Opzioni scheda

    Questa impostazione consente ai client simbolici (ad esempio, visualizzazioni o connessioni al database basate sul gestore PLC) di avere un accesso in lettura o scrittura coerente sincronizzato con i task IEC.

    Una descrizione dettagliata di questa impostazione è riportata di seguito nella sezione Impostazione: Configura la sincronizzazione con le attività IEC.

    Nota: l'accesso variabile sincrono con i task IEC può aumentare il jitter per tutte le applicazioni IEC su questo dispositivo. L'accesso coerente sincronizzato può interrompere la funzionalità in tempo reale.

  • Casella di riepilogo per definire il tipo di layout dei dati per il client della configurazione del simbolo:

    Nota: vedi anche la sezione Esempi per i tipi di layout dei dati.

    • Disposizione ottimizzata: Consigliato per nuovi progetti Calcola il layout di output in forma ottimizzata staccato dal layout interno del compilatore Non genera lacune per elementi non pubblicati e soddisfa rigorosamente i requisiti per l'allineamento della memoria dei tipi di dati Richiede la versione del compilatore 3.5.7.0 o successiva.

    • Disposizione di compatibilità: Questa impostazione viene utilizzata per la compatibilità di vecchi progetti. Il layout dei dati creato per il cliente corrisponde il più possibile al layout creato internamente dal compilatore.

      A causa delle possibilità di configurazione della configurazione dei simboli che sono aumentate nel tempo, possono ancora verificarsi offset problematici.

      Cause degli offset:

      Lacune di memoria dovute a puntatori interni o riferimenti in blocchi funzionali e componenti di struttura che non sono abilitati per la configurazione dei simboli

      Lacune di memoria che si verificano in modo diverso nei sistemi a 32 bit e a 64 bit a seconda del tipo di dati, come ad es. __XINT / __XWORD

      Campi con indirizzi dispari Alcuni client non sono predisposti per questo.

      Disallineamento involontario della memoria, che si verifica quando si utilizzano gli attributi 'pack_mode' O 'relative_offset'

  • Utilizza spazi dei nomi vuoti per impostazione predefinita (compatibilità V2): Obbligatorio quando si utilizza a CODESYS Configurazione del server OPC compatibile con V2

    _cds_icon_checked.png: Comportamento come in CODESYS V2.3

    • Le variabili del programma vengono esportate senza un nome di applicazione:

      (Application.PLC_PRG.MyVarPLC_PRG.MyVar)

    • Le variabili globali vengono inoltre esportate senza il nome GVL.

  • Abilita accesso I/O diretto:

    Avvertimento

    Questa funzione è potenzialmente pericolosa e non destinato al funzionamento in produzione.

    Abilitato solo per verifica errori e test, oppure durante la messa in servizio del macchinario (ad esempio per controllare i collegamenti dei cavi).

    _cds_icon_checked.png: Nella configurazione dei simboli è anche possibile utilizzare l'accesso agli indirizzi I/O diretti che corrispondono alla sintassi IEC (ad esempio %IX0.0).

    L'accesso agli indirizzi di ingresso (I) è di sola lettura*. L'accesso agli indirizzi di uscita (Q) e agli indirizzi di memoria (M) può essere di lettura-scrittura.

    * Informazione: Nella modalità di simulazione è possibile anche l'accesso in scrittura ai simboli per gli indirizzi di ingresso.

    Poiché i client esterni per protocolli come OPC o OPC UA non sempre supportano la sintassi IEC per gli indirizzi diretti, l'accesso avviene anche tramite una sintassi array nello spazio dei nomi __MIO del codice implicito. Ad esempio, puoi anche accedere a __MIO.MIO_IX[2].x3 invece di %IX2.3.

    Tuttavia, i simboli per l'accesso all'array sono nascosti nei browser perché alcuni client non sono in grado di gestire un numero elevato di nodi (diverse migliaia a seconda della dimensione degli intervalli I/O).

  • Supporta chiamate di funzioni, FB, metodi e programmi:

    Nota: la disponibilità e la modificabilità di questa opzione dipendono dal dispositivo.

    _cds_icon_checked.png: I diritti di accesso eseguire può essere impostato nella tabella dei simboli per simboli di POU di tipo funzione, blocco funzione, metodo o programma. Il Supporta le funzionalità di OPC UA l'opzione deve essere selezionata anche in Impostazioni.

  • Includere le informazioni sulla chiamata in XML:

    _cds_icon_checked.png: Le informazioni sulle funzioni richiamate, sui blocchi funzionali, sui metodi o sui programmi sono elencate anche nel file XML della configurazione dei simboli.

    L'opzione è abilitata solo se il Supporta chiamate di funzioni, FB, metodi e programmi l'opzione è supportata dal dispositivo.

  • Abilita set di simboli:

    _cds_icon_checked.png: Sopra la tabella dei simboli viene visualizzata una barra degli strumenti con pulsanti e una casella di riepilogo. In questo modo è possibile configurare set di simboli per l'assegnazione specifica del client di diritti di accesso al controllore. Vedere "Barra degli strumenti per la configurazione del set di simboli" di seguito.

    Vedere "Barra degli strumenti per la configurazione del set di simboli" di seguito.

Utensili

Salva file di schema XSD: Questo comando apre la finestra di dialogo standard per il salvataggio di un file nel file system. Con questo comando è possibile preparare il formato XSD del file di simboli, ad esempio per l'utilizzo in programmi esterni.



Tabella 8. Tabella dei simboli

Diritti di accesso

È possibile modificare i diritti di accesso per un simbolo facendo clic sul simbolo nel file Diritti di accesso colonna.

. Icone per i diritti di accesso (in ordine crescente)
  • symbol_read.png: Sola lettura

  • symbol_write.png: Scrivi solo

  • symbol_read_write.png: Leggere e scrivere

  • _cds_icon_access_right_execute.png: Eseguire

    Questa autorizzazione consente l'esecuzione di funzioni, blocchi funzione, metodi e programmi.

    Requisiti per l'assegnazione: Il dispositivo fornisce il Supporta chiamate di funzioni, FB, metodi e programmi E Supporta le funzionalità OPC UA opzioni. Entrambe le opzioni sono attivate nel Impostazioni.

Nota: nel caso in cui il controller disponga di una gestione utenti, è possibile utilizzare i set di simboli per definire i diritti di accesso specifici del client agli stessi simboli.

Massimale

Diritti di accesso massimi per questo simbolo

Attributo

Se il diritto di accesso è stato assegnato tramite attributo, qui viene visualizzata l'icona corrispondente.

Tipo

Vengono visualizzati anche i tipi di dati alias CODESYS V3.5 SP6 e versioni successive.

Esempio: MY_INT : INT per una variabile dichiarata con il tipo di dati MY_INT (tipo INT).

Membri

È possibile aggiungere variabili di tipo dati strutturato anche selezionando una casella di controllo per la configurazione dei simboli nel file Simboli colonna. Questo causa CODESYS per esportare tutti i simboli delle variabili "membro". Tuttavia, nel Membri colonna, è possibile fare clic su _cds_icon_three_dots.png pulsante per selezionare solo componenti strutturali specifici.

Nota: questa selezione si applica a tutte le istanze di questo tipo di dati per le quali vengono esportati i simboli.

Se non è possibile selezionare un membro di tipo strutturato, verrà visualizzato un asterisco (_cds_icon_symbolconfig_checkbox_wildcard.png) viene visualizzato nelle caselle di controllo dei membri per indicare che tutti i membri esportabili di quel tipo vengono esportati.



Tabella 9. Barra degli strumenti per la configurazione del set di simboli

Casella di riepilogo

Set di simboli già definiti

_cds_icon_add_symbol_group.png Aggiungi nuovo set di simboli

Apre il Aggiungi nuovo set di simboli finestra di dialogo per specificare un nome per questo set

_cds_icon_copy_symbol_group.png Aggiungi duplicato dal set di simboli selezionato

Apre il Aggiungi duplicato dal set di simboli selezionato dialogo

Viene creata una copia per il set selezionato nella casella di riepilogo. È possibile modificare il nome predefinito (<group name>_duplicate).

_cds_icon_rename_symbol_group.png Rinomina il set di simboli selezionato

Apre il Rinomina il set di simboli selezionato finestra di dialogo per specificare un altro nome per il set selezionato nella casella di riepilogo

_cds_icon_delete_symbol_group.png Elimina il set di simboli selezionato

Apre una finestra di dialogo che chiede se eliminare o meno il set di simboli selezionato nella casella di riepilogo

Configura i diritti dei simboli

Apre il Diritti dei simboli scheda dell'editor dispositivi Una volta effettuato il login è possibile assegnare al set di simboli selezionato nella casella di riepilogo diritti di accesso diversi per ogni gruppo di utenti (client).



Per ulteriori informazioni, vedere: Scheda: Diritti sui simboli

Finestra di dialogo: commenti e attributi

Tabella 10. Contenuto della tabella dei simboli

Abilita le informazioni OPC UA estese

Nota: la disponibilità e la modificabilità di questa opzione dipendono dal dispositivo.

_cds_icon_checked.png: Ulteriori informazioni che possono essere valutate dai server OPC UA sono contenute nella tabella dei simboli. Ciò include le informazioni sull'ereditarietà dei tipi di dati definiti dall'utente e i flag del nodo dello spazio dei nomi.

Se l'impostazione OPC UA è attiva è possibile includere anche informazioni aggiuntive, come commenti e attributi.

. Quando l'impostazione OPC UA è abilitata, gli attributi vengono inclusi nella tabella dei simboli secondo la seguente regola:
  • Nelle versioni del compilatore da V3.5.5.0 a V3.5.7.X tutti gli attributi vengono contenuti secondo Corrisponde a identificatori semplici collocamento.

  • Nella versione del compilatore V3.5.8.X tutti gli attributi vengono inclusi in base all'impostazione Includi tutti gli attributi.

  • Nella versione del compilatore V3.5.9.0 e successive, è possibile personalizzare gli attributi inclusi.

Includi commenti

Requisiti: Abilita le informazioni OPC UA estese è attivato.

_cds_icon_checked.png: I commenti e gli attributi vengono salvati anche nella tabella dei simboli.

Includi attributi

Includere anche commenti e attributi per i nodi di tipo

Requisiti: Includi commenti è attivato.

_cds_icon_checked.png: Sono incluse anche le informazioni per i nodi di tipo (tipi definiti dall'utente, come STRUCT e ENUM elementi).

_cds_icon_option_deactivated.png: Solo le variabili esportate direttamente hanno commenti e attributi.



Tabella 11. Contenuto del file di simboli XML

Includi flag del nodo dello spazio dei nomi

_cds_icon_checked.png: I flag del nodo dello spazio dei nomi forniscono informazioni aggiuntive sull'origine di un nodo nello spazio dei nomi. I flag del nodo sempre nella tabella dei simboli quando OPC UA è attivato. Tuttavia, la sua inclusione nel file XML può essere disattivata poiché alcuni parser difettosi hanno problemi con esso.

Includi commenti

_cds_icon_checked.png: I commenti possono essere salvati anche nel file XML.

Nelle versioni del compilatore da V3.5.5.x a V3.5.8.0 questa include l'impostazione Preferisci i commenti sui documenti.

Includi attributi

_cds_icon_checked.png: Gli attributi possono essere salvati anche nel file dei simboli.

Includere anche commenti e attributi per i nodi di tipo

_cds_icon_checked.png: Sono incluse anche le informazioni per i nodi di tipo (tipi definiti dall'utente, come STRUCT e ENUM elementi).

_cds_icon_option_deactivated.png: solo le variabili esportate direttamente hanno commenti e attributi.



Tabella 12. Seleziona Commenti

Requisiti: Includi commenti è attivato.

Includi commenti al documento

Includi commenti normali

Includi sempre entrambi i tipi di commenti

Preferisco i commenti sui documenti, ripiego su quelli normali

Preferisci commenti normali, fallback ai commenti del documento

Le opzioni determinano i commenti che vengono salvati nella configurazione dei simboli.



Tabella 13. Attributi filtro (senza distinzione tra maiuscole e minuscole)

Requisiti: Includi attributi è attivato.

Includi tutti gli attributi

Includi attributi che iniziano con

Filtra gli attributi con l'espressione regolare

Definisce gli attributi salvati nella configurazione del simbolo

Corrisponde a identificatori semplici

Esiste principalmente a causa della compatibilità con le versioni precedenti per emulare il vecchio comportamento



Impostazione: Configura la sincronizzazione con le attività IEC

Per l'accesso coerente in modo sincrono, durante l'elaborazione di una richiesta di lettura o scrittura il client simbolico attende nel runtime finché non viene trovato un momento in cui non viene eseguito alcun task IEC. Quando viene rilevata questa lacuna, viene impedito il riavvio dei task IEC finché tutti i valori dell'elenco delle variabili non sono stati copiati. Successivamente i compiti IEC vengono nuovamente pianificati come di consueto. L'accesso sincronizzato può causare un avvio ritardato dei task IEC, che viene visualizzato come un aumento del jitter. Poiché tutte le applicazioni in runtime sono gestite da uno scheduler comune, questa potenziale compromissione del comportamento in tempo reale influisce su tutte le applicazioni sul dispositivo. Sono interessate tutte le applicazioni del dispositivo, indipendentemente dal fatto che includano o meno una configurazione di simboli o che siano state scaricate nel controller da uno o più CODESYS progetti. Pertanto, il runtime consente l'accesso sincronizzato solo se consente tutte le applicazioni scaricate nel controller al momento dell'accesso.

Suggerimento

L'impostazione si trova nell'editor della configurazione dei simboli del Impostazioni menù. Inoltre l'impostazione si trova anche nel menu contestuale del controller quando si fa clic su Proprietà comando e quindi selezionare il Opzioni scheda nella finestra di dialogo aperta.

Per le applicazioni senza configurazione dei simboli, l'impostazione può essere trovata solo nella finestra di dialogo delle proprietà.

Importante

Dopo aver modificato l'impostazione è necessario ricaricare tutte le applicazioni scaricate sul dispositivo tramite download o modifica online e aggiornare tutte le applicazioni di avvio.

In quali casi è necessario un accesso coerente sincronizzato?

Di norma non sono necessari valori coerenti per i valori visualizzati, perché nella maggior parte dei casi è irrilevante da quale ciclo di task IEC provengono i valori modificati. È completamente irrilevante per valori modificati raramente. Anche durante la scrittura non ci sono quasi richieste di coerenza perché tipicamente la macchina deve essere in una sorta di modalità standby (ad esempio quando si scrivono ricette) in cui non c'è accesso diretto ai valori scritti come ricette.

Al contrario, valori coerenti sono particolarmente necessari per i collegamenti al database per salvare i dati di produzione. Per le macchine temporizzate, tuttavia, questi valori devono essere sincroni con i tempi di produzione (un valore impostato per prodotto prodotto) e non coerenti con il riferimento a uno o più compiti IEC. Con riferimento al clock della macchina, la congruenza deve essere già assicurata dall'applicazione IEC. A questo scopo, i valori che emergono durante un ciclo produttivo vengono generalmente raccolti in un elenco di variabili globali. Alla fine del ciclo il client simbolico viene avvisato tramite una variabile aggiuntiva (BOOL o contatore) che il ciclo macchina è terminato e che i valori sono validi. Ora il cliente ha la possibilità di archiviare i valori del ciclo produttivo. A seconda delle necessità, l'avvenuta lettura può essere visualizzata anche in senso inverso tramite una variabile rilasciata, in modo da poter anche fermare la produzione nel caso in cui i dati di produzione non possano essere archiviati. L'accesso coerente sincronizzato non è necessario e utile per questo caso d'uso perché la sincronizzazione viene eseguita a livello di applicazione.

Al contrario, l'accesso coerente sincronizzato tramite client simbolici viene tipicamente applicato nell'industria di processo con sistemi in funzionamento continuo senza clock di produzione, quando, ad esempio, quando i valori di processo vengono scritti in modo coerente e ciclico in un intervallo di tempo fisso di 60 s. Ciò può avvenire o mediante sincronizzazione a livello applicativo simile alle macchine temporizzate (vedi sopra) oppure mediante sincronizzazione dell'accesso simbolico coerente sincronizzato. Il vantaggio di quest'ultimo è che non è necessario implementare alcuna logica nel programma IEC e l'accesso viene controllato interamente dal client.

Attenzione

A causa dell'aumento del jitter, il monitoraggio coerente sincronizzato non è adatto per applicazioni critiche di movimento o in tempo reale. Per questi motivi, l'accesso coerente sincronizzato dovrebbe essere rilasciato e utilizzato solo se assolutamente necessario.

Se un client utilizza l'accesso coerente sincrono rilasciato da questa impostazione, avrà effetto sul client. A seconda dello scheduler del runtime, qui il tempo di risposta può essere più tremolante per l'accesso in lettura/scrittura perché il sistema deve ancora attendere un gap di esecuzione dei task IEC. L'accesso in lettura e/o scrittura può ancora fallire quando i task IEC vengono eseguiti per un lungo periodo (nell'ordine di diverse 100 ms) o il carico della CPU è vicino al 100% per un periodo di tempo prolungato con uno o più task IEC (nel intervallo di diverse 100 ms). Pertanto la disponibilità dei valori dipende anche dal carico del controllore da parte dell'applicazione IEC.

Inoltre il client può minimizzare gli effetti su se stesso e sul runtime se osserva quanto segue nella definizione delle liste di variabili da leggere o scrivere:

  • Accesso coerente e sincronizzato solo alle variabili assolutamente e costantemente necessarie

  • Elenchi di variabili separati per le variabili che devono essere coerenti e per le variabili che potrebbero essere incoerenti

  • Dividere gli elenchi di variabili con diverse variabili coerenti in diversi elenchi più piccoli

  • Selezionare intervalli di lettura quanto più ampi possibile per la lettura ciclica dei valori

Supporto per la configurazione attuale e possibili azioni correttive

Le voci contrassegnate in rosso nella tabella dei simboli mostrano variabili che sono configurate per l'esportazione nel file dei simboli ma che attualmente non sono valide nell'applicazione. La causa può essere che la dichiarazione è stata rimossa dal blocco.

A partire dalla versione 3.5.8.0 nell'editor viene visualizzato un avviso se le variabili che hanno simboli configurati non vengono utilizzate nel codice IEC o non vengono mappate nel caso delle variabili I/O. Inoltre, il compilatore indica nella configurazione dei simboli le variabili a cui si fa riferimento da versioni di libreria obsolete.

Importante

Le variabili oggetto che non vengono utilizzate nel codice del programma rimangono non compilate per impostazione predefinita e quindi non sono disponibili nella configurazione dei simboli.

. Tuttavia, CODESYS fornisce ancora variabili da oggetti non compilati nella configurazione dei simboli quando viene soddisfatta una delle seguenti condizioni:
  • IL Collegati sempre La proprietà POU è selezionata.

  • IL {attribute 'linkalways'} viene utilizzato il pragma.

Per ulteriori informazioni, vedere: Finestra di dialogo: Proprietà: Compila e Finestra di dialogo: Proprietà: Opzioni: Controller

Esempi per i tipi di layout dei dati

Esempio 10. Grande struttura

Esempio di una struttura di grandi dimensioni, di cui non tutti i membri sono pubblicati:

STRUCT
{attribute 'symbol':='readwrite'}
PublicNumber : INT;	

{attribute 'symbol':='none'}
InternalData : ARRAY[0..100] OF BYTE;

{attribute 'symbol':='readwrite'}
SecondNumber : INT;

{attribute 'symbol':='none'}
MoreData : ARRAY[0..100] OF BYTE;
END_STRUCT
END_TYPE


Voci risultanti nel file dei simboli (prestare attenzione a "size" E "byteoffset"):

Esempio 11. File di simboli, struttura di grandi dimensioni, opzione di layout di compatibilità
<TypeUserDef name="T_GrosseStruktur" size="208" nativesize="208" typeclass="Userdef" pouclass="STRUCTURE" iecname="GrosseStruktur">
<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" />
<UserDefElement iecname="SecondNumber" type="T_INT" byteoffset="104" vartype="VAR" />
</TypeUserDef&gt>


Esempio 12. File di simboli, struttura ampia, opzione di layout ottimizzata
<TypeUserDef name="T_GrosseStruktur" size="4" nativesize="208" typeclass="Userdef" pouclass="STRUCTURE" iecname="GrosseStruktur">
<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" /&lt;UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" />
<UserDefElement iecname="SecondNumber" type="T_INT" byteoffset="2" vartype="VAR" />
</TypeUserDef>


Esempio 13. Struttura con indirizzi disomogenei

I seguenti meccanismi possono causare membri con disallineamento della memoria:

{attribute 'relative_offset':='…'} su un membro

{attribute 'pack_mode':='…'} in una dichiarazione di stringa

Target setting 'memory-layout\pack-mode' nella descrizione del dispositivo

{attribute 'pack_mode':='1'} 
TYPE UngeradeAdressen :
STRUCT
   {attribute 'relative_offset':='3'}
   {attribute 'symbol':='readwrite'}
   PublicNumber : INT;

   {attribute 'symbol':='readwrite'}
   PublicValue : LREAL;
END_STRUCT
EMDTYPE
   


Voci risultanti nel file dei simboli; (prestare attenzione a "size" E "byteoffset"):

Esempio 14. File di simboli, struttura con indirizzi irregolari, opzione di layout di compatibilità
<TypeUserDef name="T_UngeradeAdressen" size="13" nativesize="13" typeclass="Userdef" pouclass="STRUCTURE" iecname="UngeradeAdressen">
<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="3" vartype="VAR">
<UserDefElement iecname="PublicValue" type="T_LREAL" byteoffset="5" vartype="VAR" />
</TypeUserDef>


Esempio 15. File di simboli, struttura con indirizzi irregolari, opzione di layout ottimizzata
<TypeUserDef name="T_UngeradeAdressen" size="16" nativesize="13" typeclass="Userdef" pouclass="STRUCTURE" iecname="UngeradeAdressen">
<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" />
<UserDefElement iecname="PublicValue" type="T_LREAL" byteoffset="8" vartype="VAR" />
</TypeUserDef>


Esempio 16. Blocco funzione
// Each POU contains some implicit variables, which do not get published. Depending on the data type these might cause memory gaps of different sizes.
FUNCTION_BLOCK POUx IMPLEMENTS SomeInterface
VAR_INPUT
  in : INT;
END_VAR
VAR_OUTPUT
  out : INT;
END_VAR
VAR
END_VAR

Ogni POU contiene alcune variabili implicite, che non vengono pubblicate. Se si tratta di un tipo di dati come __XWORD, dimensioni diverse dei gap di memoria determinano il layout dei dati lato client, a seconda che il sistema sia a 64 o 32 bit.

Voci risultanti nel file dei simboli per 64 bit e 32 bit; (prestare attenzione a "size" E "byteoffset"):

File di simboli, blocco funzione, opzione layout di compatibilità, 64 bit

<TypeUserDef name="T_Baustein" size="24" nativesize="24" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein">
<UserDefElement iecname="in" type="T_INT" byteoffset="16" vartype="VAR_INPUT" />
<UserDefElement iecname="out" type="T_INT" byteoffset="18" vartype="VAR_OUTPUT" />
</TypeUserDef>

File di simboli, blocco funzione, opzione di layout ottimizzato, 64 bit

<TypeUserDef name="T_Baustein" size="4" nativesize="24" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein"&gt;>
<UserDefElement iecname="in" type="T_INT" byteoffset="0" vartype="VAR_INPUT" />
<UserDefElement iecname="out" type="T_INT" byteoffset="2" vartype="VAR_OUTPUT" />
</TypeUserDef>

File di simboli, blocco funzione, opzione layout di compatibilità, 32 bit

<TypeUserDef name="T_Baustein" size="12" nativesize="12" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein">
<UserDefElement iecname="in" type="T_INT" byteoffset="8" vartype="VAR_INPUT" />
<UserDefElement iecname="out" type="T_INT" byteoffset="10" vartype="VAR_OUTPUT" />
</TypeUserDef>

File di simboli, blocco funzione, opzione di layout ottimizzato, 32 bit

<TypeUserDef name="T_Baustein" size="4" nativesize="12" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein">
<UserDefElement iecname="in" type="T_INT" byteoffset="0" vartype="VAR_INPUT" />
<UserDefElement iecname="out" type="T_INT" byteoffset="2" vartype="VAR_OUTPUT" />
</TypeUserDef>


Per ulteriori informazioni, vedere: Configurazione dei simboli.