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




Azzeramento Istanze


Messaggi consigliati

Inserito:

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


Inserita:

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?

Inserita:

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"

Inserita:
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
Inserita:

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

Inserita:

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
Inserita: (modificato)

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.

Modificato: da Claudio Monti
Inserita:

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.

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