Vai al contenuto
PLC Forum


Puntatori in S7-1500


cobe72

Messaggi consigliati

Buongiorno a tutti...

Sono alle prese con la conversione di un sw da s5 a S7-1500.

Ho fatto passaggio intermedio da S5 a S7-400 e dopo aver corretto alcune cose è tutto ok.

Ora passando da S7-400 a S7-1500 non mi riconosce la parte di sw riportata di seguito.  

 

L'errore che ho è:

"L'istruzione accede al registro DB o DI. Tuttavia non è stato caricato alcun blocco dati in questo registro."

 

Qualcuno è gentilmente in grado di darmi un supporto?

Grazie

Saluti

 

    T     #conv_akku1
      L STW
      T     #conv_stw
      L     "Tag_126"
      SLW   4
      LAR1
      L     #conv_stw
      T STW
      L     #conv_akku1
      L DBW [ AR1 , P#0.0 ]
      T     "Tag_127"
      L     #INP                 // Contr.in che campo di mis.e'
      L     "Tag_127"            // l'input
      >=I
      JC    M002
      L     "Tag_124"
      L     #LUNG
      +I
      T     "Tag_125"

Link al commento
Condividi su altri siti


  • 1 month later...

Ciao, 

L' riga d'istruzione

L DBW [AR1, P#0.0]

Indica il puntamento in una DB 'Locale' del blocco, controlla tutti gli I/O e le memorie create all'interno del blocco.. Poi convertendolo nel 1500 controlla che il blocco nuovo NON abbia l'attributo di "accesso ottimizzato" altrimenti, nel caso di un FB, non avrai valori di offset, di conseguenza né nella sua DB d'istanza e né all'interno del blocco potrai puntare a bit, byte, word ecc.. Ma soltanto in modo simbolico.. 

Poi dovrai convertire anche l'istruzione 

L DBW [AR1, P#0.0] nella versione TIA PORTAL. 

Link al commento
Condividi su altri siti

Quote

Indica il puntamento in una DB 'Locale' del blocco

Se con "Locale" intendi il DB di istanza del blocco, non è corretto.
Per accedere al DB di istanza si dovrebbe scrivere
L DIW [AR1, P#0.0].

 

Come dice Ken, l'istruzione

L DBW [AR1, P#0.0]

carica la word del DB aperto in quel momento (non del DB di istanza).
Ma dalle istruzioni inserite nel primo post non si legge nessuna istruzione AUF DB, quindi non si sa a quale DB si acceda.
Se all'interno della funzione non c'è nessuna istruzione di apertura del DB, significa che il DB attualmente aperto è quello che era aperto prima del richiamo della funzione stessa.
Il compilatore fa notare proprio questa cosa: non è chiaro a quale DB si faccia riferimento.
 

Link al commento
Condividi su altri siti

  • 8 months later...

Ciao,

è capitato anche in una traduzione che abbiamo fatto noi. Nell'S7300 consentiva di aprire la DB a cui puntare esternamente ad una FC poi richiamata. Mi spiego meglio, il software sul 300 era fatto così:

 

image.png.cb5d4385d33d305758531f469a2a4ace.png
 

 

Quindi l'FC223 utilizza la DB210 al suo interno.

 

Abbiamo verificato che le CPU1500 non ti permettono più di fare questo, quindi nella nostra traduzione TIA Portal ha generato automaticamente una TEMP con l'appoggio della DB aperta, per  poi passare la temp come parametro di ingresso all'FC. Infine per prima cosa apre con un AUF della temp all'interno dell'FC.

 

Per spiegarmi meglio:

 

image.png.b5508e46539f6c1415f1fc84a1ff16db.png 

 

TIA Portal ha creato un nuovo parametro in ingresso alla FC223 chiamato "__PlcmigInputBlockDB" dove carica la DB210, poi se apri la FC223 vedi che la prima cosa che fa è un AUF #"__PlcmigInputBlockDB" per aprire proprio la DB210 che gli ha passato come parametro in ingresso.

 

In seguito per prova abbiamo cercato di fare una FC con un semplice L DBW0 scritto, e non te la fa compilare, ti restituisce l'errore che dà anche a te. Si vede che con TIA Portal e PLC1500 non puoi più aprire esternamente la DB da usare all'interno di una FC, deve avere l'AUF al suo interno.

 

Spero di essermi spiegato bene.

 

 

Modificato: da JulesTechnic
Link al commento
Condividi su altri siti

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