Jump to content

Azzeramento Istanze


Recommended Posts

Posted

Ciao è possibile con un comando azzerare un instanza di un FB prima di eseguirlo, oppure bisogna farlo all'interno dell' FB?

Posted

non mi sembra che esista un comando o che si possano fare dei comandi sulle istanze.

Esattamente cosa ti serve fare? Magari ci sono altri metodi o suggerimenti per arrivare al risultato desiderato...

Per azzerare l'istanza intendi azzerare tutte le variabili corrispondenti ad una chiamata di una dfb?

Posted

esattamente, più che altro dovrei suare un FB come un.....FC Siemens ovvero senza istanza.....

...temporaneamente ho risolto azzerando i valori all'inizio dell'FB....pensavo che ci fosse qualche istruzione "dedicata"

Posted
Esattamente cosa ti serve fare? Magari ci sono altri metodi o suggerimenti per arrivare al risultato desiderato...
dovrei suare un FB come un.....FC Siemens ovvero senza istanza

prova a dirmi più nel dettaglio.. magari ho qualche dritta (difficile... mah!)

una FC parametrizzata però altrimenti è l'equivalente di una SR

Stefano Sormanni
Posted

fai una chiamata condizionata CALC, dove prima di chiamarla la azzeri

Posted

Il funzionamento dell' FB è semplicissimo, mi serve solo per suddividere i dati che mi arrivano da una bilancia, siccome per ogni ricetta mi arriva una serie di dati :

PesoStep1,NrProdottoStep1,PesoStep2,NrProdottoStep2,PesoStep3,NrProdottoStep3...

..e così via per poter archiviare i dati devo trasferite il peso nella word corretta in modo tale da avere delle word "definite" per ogni prodotto.

l' FB lo uso per ogni prodotto facendogli leggere tutta la ricetta e indicandogli come parametro aggiuntivo il numero di prodotto relativo.

non mi serve che tenga i dati in memoria per questo l'istanza è un pò inutile e devo azzerarla perchè se in una ricetta un prodotto non è usato l'FB non fa niente ma mantiene in memoria i dati della ricetta precedente quindi mi sballa i valori.....

...spero che la mia spiegazione sia chiara....forse per quello che dovevo fare non dovevo usare un FB ma qualche altra funzione.....

Claudio Monti
Posted (edited)

Usa i puntatori...

es.:
%MW10:=%MW100[%MW200];
all'interno della %MW10 ti scrive il valore contenuto nella WORD che parte dalla %MW100 ma con indice contenuto nella %MW200, ovvero mettiamo ad esempio che i valori siano:
%MW100 = 1
%MW101 = 10
%MW102 = 3
%MW103 = 5
se %MW200 = 0, %MW10 conterra' 1 (il valore della %MW100)
se %MW200 = 3, %MW10 conterra' 5 (il valore della %MW103)

Sper di essere stato utile.

Edited by Claudio Monti
Posted

come dice Monti mi sembra una buona via.

Non ne sono certo ma se per fare i calcoli nella DFB usi variabili "private" credo che ad ogni chiamata si azzerino ( o forse non vengono toccate un po' come le Local in Siemens). Prova!

Comunque indicizzando con puntatori che sono molto semplici da usare piuttosto che con S7 puoi fare cose più performanti.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...