Vai al contenuto
PLC Forum


Accesso Array di UDT in Function Block


rumbolo

Messaggi consigliati

Ciao

mi trovo a dover inserire come parametro di ingresso un array di UDT in una funzione scritta in SCL.

In pratica l'UDT4 ha 3 parametri ID-String[36], PW-String[16] e LVL[DINT] e la DB8 contiene un array (0..10) di questa struttura.

quando vado ad inserirla all'ingresso dell'FB mi da sempre un errore. 

Nella funzione SCL il dato e definito come VAR_INPUT, ho provato anche come VAR_INOUT ma poi non riesco più a compilarlo.

cosa sto sbagliando? magari è una cavolata... sapete darmi una mano?

 

Andrea

errore_1.png

Link al commento
Condividi su altri siti


La var in rosso manca di "puntatore".

L'array usa [xx], ma tu hai due puntini che non definiscono nulla.

Definisci l'array correttamente, ad esempio con "HMIData".UserArray[1]

Link al commento
Condividi su altri siti

Ciao Desmo

ho fatto queste prove:

nell' array ho tolto le parentesi risultato e da errore.

nelle parentesi ho messo i numeri da 0 a 10 e da errore.

nelle parentesi ho messo la sintassi [0..10] e da errore.

all'ingresso della funzione ho scritto l'indirizzo dell'area di memoria e da errore.

all'ingresso della funzione ho scritto P#DB8.DBD 22 e da errore.

ho cambiato il parametro da INPUT a INOUT e non compila la funzione.

Per variare ho creato un array di 10 interi e mettendo il nome senza le parentesi quadre S7 non da errori.

Ricapitolando questa sintassi che elenco NON funziona:

"HMIData".UserArray[0] <-- cambiando il valore da 0 a 10 nisba...

"HMIData".UserArray[..]

"HMIData".UserArray[0..10]

"HMIData".UserArray

DB8.DBD22 (dove 22 è l'offset dove iniziano i dati dell'array, prima ci sono altri dati...)

DB8.DBW22

idee???

Link al commento
Condividi su altri siti

Ciao

 

com'è definita la variabile d'ingresso "I_UserDataBase"?

 

deve essere dello stesso tipo di " "HMIData".UserArray[0]"

 

Saluti

Link al commento
Condividi su altri siti

Ragazzi siemens è una tragedia comica... ho fatto un nuovo progetto con solo l'UDT la DB e la funzione gurdate un pò...

Normalmente quando ho un array di qualcosa nelle FB lo scrivo Nome.Cognome senza parentesi quadre o altro e generalmente funziona questa volta non so perchè

in qualsiasi modo lo scrivessi non lo prendeva... DELIRIO !!!!

tragicomica.png

Link al commento
Condividi su altri siti

Quote

Ragazzi siemens è una tragedia comica...

Anche a me è capitato, qualche volta, che il sistema non mi accettasse qualche collegamento a funzioni.

Ma si è sempre trattato di un mio errore, spesso banale, di quelli che hai sotto gli occhi e non riesci a vedere.

Mandami il progetto (ti scrivo la mia mail in pm), che sono proprio curioso di vedere se realmente è un problema del TIA.

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