Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Sovrapposizione Non Funziona


Messaggi consigliati

Inserito: (modificato)

Probabilmente sono io che stasera sono più fuori del solito :wacko: , ma volevo usare la sovrapposizione e non ne vuole sapere di andare:

1 - Creo il mio DB e gli tolgo l'accesso ottimizzato

2 - Apro il mio DB e creo una variabile Pippo come word

3 - Scrivo Pluto e come tipo di dati AT

... e mi dice che non riconosce il tipo di dati; ho provato anche a scrivere AT"Pippo", ma non c'è verso ...

Ma non era così che funzionava ?

Tra l'altro, con il vecchio step 7, se dichiaravo 16 bool in un db e poi volevo azzerarle tutte, potevo sempre chiamare un move a DBn.DBW0 (non molto bello e senza simboli, ma quando avevo fretta era una pacchia, soprattutto durante il debug :P ) : mi confermate che con il TIA non si può ?

Grazie

Modificato: da drugo66

Inserita:

Dal manuale in linea:

  • La sovrapposizione di variabili è possibile nei seguenti blocchi:

    • Nei blocchi di codice con accesso standard

    • Nei blocchi di codice con accesso ottimizzato alle variabili con l'impostazione della ritenzione "Imposta nell'IDB"

Quindi la sovrapposizione con "AT" non si può fare nei DB.

Tra l'altro, con il vecchio step 7, se dichiaravo 16 bool in un db e poi volevo azzerarle tutte, potevo sempre chiamare un move a DBn.DBW0 (non molto bello e senza simboli, ma quando avevo fretta era una pacchia, soprattutto durante il debug :P ) : mi confermate che con il TIA non si può ?

Certo che si può anche con il TIA. Ovviamente, solo se il DB non è "ottimizzato".

Inoltre si può anche, per esempio, dichiarare la variabile "Pippo" come WORD ed accedere ai singoli bit con la sintassi

Pippo.%Xn

dove "n" è il numero del bit della word (e il % si può anche non scriverlo, che viene aggiunto in automatico).

Lo stesso vale per accedere ai singoli byte di una variabile da 2 o da 4 byte, oppure alle singole word di una dword.

E questo sistema vale anche nel caso di "accesso ottimizzato".

Da non dimenticare che, almeno da quanto dicono i tecnici Siemens, la CPU è molto più veloce ad elaborare dati con accesso ottimizzato.

Inserita:

Per "AT", ecco scoperto l'arcano !!

mi era sfuggita quella frase del manuale, che trovo un po' criptico, devo dire.

Per l'utilizzo di una intera word con i bit definiti, non vuole saperne di andare; mi segnala che il simbolo non è definito; normalmente lo utilizzavo con gli allarmi, definendo i singoli bit, in modo da avere i commenti e riunendoli in diverse "categorie" che altro non erano che word; poi, durante le prove, andavo a trattare l'intera word per comodità.

Comunque non è un problema.

Dell'ultimo utilizzo che mi proponi (<var>.Xn, mi sembra si chiami "accesso slice"), ne faccio già uso con successo; lo utilizzo per i passi delle singole stazioni.

Infine per la velocità, vedrò come si comporta: è il primo progetto un po' "corposo" che scrivo per S7-1200.

Grazie, Batta

Come al solito, preciso, puntuale ed esauriente :thumb_yello:

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...