Vai al contenuto
PLC Forum


Blocco Dati Di Istanza


attiliovolpe

Messaggi consigliati


Le variabiliI INOUT di una FC o FB sono variabili che possono essere lette e scritte all'interno della FC/FB.

Le variabili STAT sono tipiche di una FB e rappresentano la memoria della FB.

Sono quelle variabili che puoi vedere all'interno della DB di istanza.

Ciao

Modificato: da cdc
Link al commento
Condividi su altri siti

Ti ringrazio per la risposta, ma fatta in questa maniera non mi torna molto utile....

"Sono quelle variabili che puoi vedere all'interno della DB di istanza."

La mia domanda l'hai letta bene? Mi pare di sapere già che sono nei DB di istanza!!!

In un DB di istanza ci sono le variabili IN (ingresso), OUT (uscita), TEMP (temporanee) e so come utilizzarle!!!!

Trovo poi le variabili INOUT: a cosa servono e in cosa sono diverse dalle precedenti?

Le variabili STAT sarannpo quello che dici ma detto così ne so quanto prima: quando e come si utilizzano?

Allora dico: rispondere per scrivere? Meglio evitare! Chiediamo troppo? Allora andiamo via dai forum e li farete diventare ENGINEER CAFE' dove voi "luminari" vi fate la vostra chat.

Non vorrei apparire scortese, ti ringrazio comunque per le righe che mi hai dedicato, ti saluto

Modificato: da attiliovolpe
Link al commento
Condividi su altri siti

Livio Migliaresi
Non vorrei apparire scortese, ti ringrazio comunque per le righe che mi hai dedicato, ti saluto

E' una risposta veramente sgradevole da leggere, e, sono mortificato per doverlo rilevare.

Ciascuno risponde per quello che sa e per come sa porgerlo; se la risposta non ti soddisfa basta non tenerne conto!

E' puerile il commento <Allora andiamo via dai forum e li farete diventare ENGINEER CAFE' dove voi "luminari" vi fate la vostra chat.>.

Mi spiace, ma è troppo scortese la tua risposta!!!

Link al commento
Condividi su altri siti

In un DB di istanza ci sono le variabili IN (ingresso), OUT (uscita), TEMP (temporanee) e so come utilizzarle!!!!

Visto che sai già tutto, non capisco allora cosa tu stia chiedendo.

In ogni caso, non mi pare proprio che tu sappia veramente come usarle, altrimenti non avresti affermato che in un DB di istanza ci sono anche le variabili TEMP.

A parte questo, quando dimostrerai di aver imparato un minimo di educazione vedrò di risponderti.

Fino a quando continuerai a dare sfoggio della tua immensa maleducazione farcendo i tuoi post con frasi come:

La mia domanda l'hai letta bene? Mi pare di sapere già che sono nei DB di istanza!!!

Allora dico: rispondere per scrivere? Meglio evitare! Chiediamo troppo? Allora andiamo via dai forum e li farete diventare ENGINEER CAFE' dove voi "luminari" vi fate la vostra chat.

mi rifiuto di rispondere.

Link al commento
Condividi su altri siti

Voi vi sentirete pure offesi, e non volevo sicuramente questo risultato, il problema è che sui forum NOI neofiti, inesperti o studenti, scriviamo con le "mani tremanti" perchè sembra sempre che chi ne sa di più dia per scontato che anche da quest'altra parte sia lo stesso o magari arriva il tipo che comincia a dire robe tipo "ma cosa scrivi, tutto confuso, non si capisce niente, se vuoi una risposta comincia col fare ordine e chiarezza": perdonatemi non scriveremmo sui forum!

Se ho chiesto una spiegazione mi accontento di quello che gli altri scrivono come risposte purchè abbia un senso, ma in una risposta come quella ricevuta mi sembra che ci si prenda in giro, mi spiego meglio: ti chiedo delle variabili nei DB di istanza e mi si risponde

Sono quelle variabili che puoi vedere all'interno della DB di istanza

come poi si vede dall'immagine allegata mi pare che invece ci siano le variabili TEMP nei DB di istanza, l'immagine fa riferimento al DB di istanza del FB input scaling, e poi chiedo cosa sia INOUT e mi si dice

Le variabiliI INOUT di una FC o FB sono variabili che possono essere lette e scritte all'interno della FC/FB

quando poi ci sono i due tipi distinti di variabili IN e OUT (da li nasce la domanda!)

Per finire

Le variabili STAT sono tipiche di una FB e rappresentano la memoria della FB

mi pare di aver capito che riguardino i DB nei blocchi FB, vedi sempre screenshot allegato, ma comunque la risposta ricevuta non mi aiuta, dopo averla letta comunque non so cosa farmene delle variabili STAT.

Purtroppo succede sempre alla stessa maniera e tante volte il semplice fatto di porre umilmente una domanda finisce col trasformarti nell'essere il cretino di qualcuno, talvolta qui e poi sua altri forum questa è la mia sensazione, perdonate lo sfogo, se avete voglia di conversare diciamo che è stato un malinteso, se devo scusarmi di qualcosa allora scuse fatte, ma abbiate pazienza nei confronti di chi pone quesiti anche se magari per il semplice gusto di sapere, altrimenti sarebbe bello che uno non rispondesse proprio.

Link al commento
Condividi su altri siti

Così va molto meglio.

Cominciamo subito cercando di fare un po' di chiarezza su cosa sono i DB di istanza.

Nell'immagine allegata non si vede un DB di istanza, ma l'interfaccia delle variabili della funzione (si capisce che si tratta di una FB dal fatto che esistono anche le variabili STAT. L'interfaccia delle variabili di una FC sarebbe identica, ma zenza le variabili STAT).

Il DB di istanza è a tutti gli effetti un DB che deve essere associato alla funzione FB nel momento in cui richiami la funzione stessa.

Mentre per il richiamo di una FC basta scrivere:

CALL "NomeFC"

per il richiamo di una FB si deve scrivere:

CALL "NomeFB", "DB_diIstanza"

La creazione del DB di istanza può essere fatta in due modi: creando un nuovo DB, dichiarato come DB di istanza e associandolo alla relativa FB, oppure semplicemente collegando alla FB, nel momento in cui la richiami, un DB non esistente, e rispondendo affermativamente alla richiesta di creazione di un nuovo DB di istanza.

Attenzione che, se viene modificata l'interfaccia delle variabili, devono essere rigenerati anche tutti i DB di istanza.

Una volta creato il DB di istanza, se lo apri vedi che ti ritrovi tutte le variabili che sono state dichiarate nell'interfaccia delle variabili della funzione, ad esclusione delle TEMP.

Le TEMP infatti, come accade anche in una FC, hanno vita solo all'interno della funzione. Si appoggiano ad un'area di memoria che, una volta abbandonata la funzione, viene considerata libera. Questo significa che la prossima funzione che verrà elaborata utilizzerà la stessa area di memoria. Si deve quindi prestare molta attenzione all'utilizzo delle variabili TEMP perché, se scrivi un valore in una TEMP, non lo ritroverai più al successivo richiamo della stessa funzione. Ad una variabile TEMP deve sempre essere assegnato un valore, e solo dopo tale assegnazione si può utilizzare la TEMP in lettura. Se non si assegna nessun valore, il valore letto sarà quello scritto in quell'area di memoria dall'ultima funzione. Essendo praticamente impossibile sapere chi e cosa sarà andato a scrivere in quell'area di memoria, è come trovarsi un valore casuale.

Le variabili STAT invece (come anche le IN, OUT e INOUT) vengono tutte appoggiate al DB di istanza. Un valore scritto in una STAT lo ritroverai al prossimo richiamo della FB.

La distinzione invece tra IN, OUT e INOUT è nel modo di passare i parametri alla funzione.

Un parametro IN viene letto dalla funzione prima di iniziare l'elaborazione del codice della funzione stessa.

Un parametro OUT viene scritto dalla funzione alla fine dell'elaborazione del codice

Un parametro INOUT viene letto all'inizio e scritto alla fine.

La differenza potrebbe sembrare a volte irrilevante, ma non è così.

Facciamo dei semplici esempi.

Supponiamo di voler fare una funzione (per l'esempio va bene anche una FC) per fare il calcolo c = a + b.

Ovviamente questo è solo un esempio, dato che esistono già istruzioni per fare un calcolo così banale, senza bisogno di creare una funzione.

In questo caso sarebbe corretto dichiarare le variabili "a" e "b" come variabili IN, e la variabile "c" come variabile OUT.

Le variabili "a" e "b" devono infatti essere solo lette dalla funzione, mentre la variabile "c" deve solo essere scritta dalla funzione.

Supponiamo ora invece di voler fare una funzione per incrementare una variabile: a = a + b.

In questo caso la variabile "b" è solo letta dalla funzione, mentre la variabile "a" deve essere letta e scritta dalla funzione.

Dichiarerò quindi "b" come variabile IN, e "a" come variabile INOUT.

Chiarito (spero) questo, torniamo ai DB di istanza, cercando di spiegare a cosa servono.

Moltissime cose si possono fare utilizzando delle più semplici FC al posto delle FB (ricordo che le FC non hanno il DB di istanza, e non hanno le variabili STAT), appoggiando tutti i dati a merker e a DB globali.

Il grande vantaggio dell'utilizzo di FB con DB di istanza c'è quando si devono gestire, per esempio, parti uguali di una macchina. In questo caso risulta molto comodo fare un'unica FB, alla quale si assocerà, ad ogni richiamo, un diverso DB di istanza. La logica di funzionamento di ogni parte di macchina sarà identica, ma ogni parte di macchina utilizzerà le proprie memorie.

Link al commento
Condividi su altri siti

Bravo Batta !

Risposta esauriente ben esposta e molto professionale.

E' sempre bene ricordare che se si domanda con cortesia con cortesia si trova risposta.

Non tutti sono in grado di rispondere sempre con efficacia ma quello che conta è che chi si sente

di poter rispondere lo faccia senza timore .

Forse ci siamo abituati all'effetto Google ...... metti dei termini anche sconclusionati nel campo di ricerca

e ...... magia ti arriavano delle risposte.

A differenza di un motore di ricerca un forum è fatto per prima cosa di persone e poi anche di tecnologia.

bigalex :blink:

Link al commento
Condividi su altri siti

Questa è una risposta chiara e professionale!

Cosa avresti capito tu dalla prima risposta?

Non voglio menzionare link, ma credimi che sui forum è davvero difficile che qualcuno dia una spiegazione come quella data da te adesso al primo colpo.

Poi per carità, esiste il "dibattito" e magari si arriva alla spiegazione finale a suon di botte e risposte e magari è anche ben fatto a questa maniera, però ripeto, e questo per cdc alla prima risposta, o ci si arma di pazienza e si da un senso alla discussione o certe volte magari anche non rispondere sarebbe cosa gradita.

Ad ogni modo tutto ok, i problemi sono altri, poi magari anche virtualmente ci si conosce e le cose cambiano.

Grazie ancora a Batta e buona serata.

Link al commento
Condividi su altri siti

Cosa avresti capito tu dalla prima risposta?

Che una risposta sia o meno esauriente, non deve essere motivo di repliche scortesi.

Chi risponde lo fa, prima di tutto, gratis. Poi lo fa secondo le proprie conoscenze, il tempo e la voglia da dedicare alla risposta.

Chi risponde comunque cerca di dare aiuto. Può darsi che ci riesca, e può darsi di no. Ma ha tentato. Se non c'è riuscito, si merita lo stesso un "grazie", e non un attacco verbale.

Se la risposta ricevuta non è considerata secondo le proprie aspettative, si può semplicemente ignorare.

Non da ultimo, la qualità della risposta dipende anche dalla qualità della domanda. Domande troppo generiche, come è stata la tua, molto difficilmente possono ricevere risposte centrate.

Se, anziché scrivere mezza riga, tu avessi specificato qual è il tuo grado di conoscenza dei PLC Siemens, e spiegato bene quali fossero i tuoi dubbi sui vari tipi di variabili, probabilmente non avresti ricevuto una risposta generica.

Link al commento
Condividi su altri siti

Praticamente da quando esiste il forum che si ripete "Date i dati"!

Sinceramente non sono riuscito a capire perchè alcuni utenti pongono domande in modo criptico, con messaggi telegrafici. Il forum è gratuito, non si spende un tanto a parola come per i vecchi telegrammi. Scrivere 2 righe o 10 righe non comporta una maggior spesa di traffico dati e nemmeno una fatica sovrumana.

In compenso più dati vengono forniti più mirata potrà essere la risposta.

Inoltre una minor suscettibilità non guasterebbe. Come ha scritto Batta, il solo fatto di aver dato una risposta cercando di aiutare è meritevole di ringranziamento, non di uno ....schiaffo.

Modificato: da Livio Orsini
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...