Vai al contenuto
PLC Forum


Array in input di un FC


STEU

Messaggi consigliati


Io non capisco se deve richiamare un FC che prevede quel tipo di parametro di input, o se deve creare un FC sulla cui interfaccia di input deve essere presente questo tipo. A me sembra più la prima, ma la chiarezza è merce rara.

Link al commento
Condividi su altri siti

Grazie Batta

 

ma il mio problema è in step 7 , come utilizzarlo nel codice all' interno dell FC, e come passarlo come parametro nel richiamo del FC

 

Link al commento
Condividi su altri siti

Premetto che non ho mai utilizzato un richiamo del genere, ma ho memorie di limitazioni dei 300/400 su richiami di fc utilizzanti array. Sempre a memoria, scl è l'unica cosa che può salvarti.

Sicuramente @batta avrà la soluzione però!

In alternativa puoi modificare il tuo fc e invece di un array di chr ti passi l'origine e la lunghezza, i vari byte poi te li vai a pescare tu direttamente nell'fc richiamato.

Link al commento
Condividi su altri siti

La sintassi in Step 7 classico è identica.

Per passarlo come parametro, devi avere un DB con un array identico.

All'interno dalla FC lo utilizzi come un normale array.

Non sono sicuro però di aver capito la domanda.

 

Di solito, quando passo array e/o strutture, anziché dichiararle come parametro IN o OUT preferisco dichiararle come INOUT.

Se dichiarate come INOUT, anziché creare nell'interfaccia dalla FC o FB tutta la struttura, viene creato solo un puntatore (6 byte).

Utilizzo abitualmente questo sistema anche quando devo condividere molti dati tra FC/FB diverse. Creo un UDT che utilizzo come parametro INOUT delle funzioni, e in un DB globale che funge quindi da area dati comuni. In un attimo, ecco che tutta la struttura passata è a disposizione di tutte le funzioni, sia in lettura, sia in scrittura, oltre che nel DB globale per accessi diretti.

Attenzione solo che, così facendo, anche nel caso di utilizzo di una FB, trattandosi in realtà di un puntatore, non si può lasciare il collegamento vuoto.

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