Vai al contenuto
PLC Forum


Fb,db Istanza - ed utilizzo word all'interno della FB


luciopro

Messaggi consigliati

Salve Ragazzi,

ho un piccolo dubbio.

Devo realizzare un software con un S7-300 che gestisce 3 macchine gmelle.

Allora l'idea era di creare una FB generale e richiamarla con diverse DB di istanza e fin qui penso sia corretto.

La domanda è questa: se all'interno della FB uso delle word di appoggio per dei calcoli devo sempre dichiararle nell'interfaccia delle FB come variabili di tipo Temp......

Se ad esempio scrivo all'interno della FB

l 10

t dbw100 //provo a scrivere nella word 100 della DB di istanza

non funziona giusto?????

Altro quesito:dichiarandoli come temp all'interno della FB non posso andare a utilizzarle in altre FC o visualizzarle su un pannello......giusto????

quindi come consigliate di fare???

grazie

Link al commento
Condividi su altri siti


Ciao.

l 10

t dbw100 //provo a scrivere nella word 100 della DB di istanza

non funziona giusto?????

Giusto! Non funziona, anzi è concettualmente sbagliato.

Altro quesito:dichiarandoli come temp all'interno della FB non posso andare a utilizzarle in altre FC o visualizzarle su un pannello......giusto????

Giusto anche questo.

quindi come consigliate di fare???

Semplice, dichiari la tua variabile come STAT, e la troverai all'interno della tua DB di istanza.

P.S.: Logicamente esisteranno 3 DB di istanza (tante quante sono le macchine uguali).

Link al commento
Condividi su altri siti

Giusto! Non funziona, anzi è concettualmente sbagliato.

Perchè non dovrebbe funzionare?

Che sia concettualmente sbagliato sono perfettamente d'accordo, ma funzionare funziona, scrive 10 nella DBW100 della DB aperta (non quella di istanza, per scrivere in quella d'istanza bisogna usare l'istruzione T DIW 100)

Sconsiglio comunque di leggere/scrivere negli indirizzi assoluti (tranne in casi particolari), meglio dichiarare le variabili STAT come già detto da Eddy.

Link al commento
Condividi su altri siti

grazie ragazzi,

ora è più chiaro.

Vi pongo un altro quesito:

posso modificare la locazione di memoria in cui vengono appoggiati sulla db di istanza?

Mi spiego:

Supponiamo che creo la mia FB con 3 IN di tipo word; 2 Out di tipo word; e 100 Stat di tipo word. Finisco il mio progetto e la relativa visualizzazione.

In fase di messa in servizio mi accordo che mi serve un'altra word di tipo IN. Modifico la mia FB e la aggiungo. Il problema è che mi shifta l'indirizzo di tutte le word successive; quindi mi toccerebbe rifare completamente la visualizzazione!!!! Esiste un modo per evitare questo problema????

grazie

Link al commento
Condividi su altri siti

Diciamo che, secondo me, per fare quello di cui hai bisogno (gestire 3 macchine gemelle) la strada dell'FB non è la migliore.

Questo in primo luogo ti crea notevoli problemi in caso di modifiche e problemi ancora maggiori nel caso (penso non si possa escludere) la modifica debba essere apportata ad una sola macchina.

Anche il debug diventa più difficile.

Secondo me faresti bene ad abbandonare la strada "FB", fare il programma per una macchina, metterlo a punto, e poi copiare i blocchi per le altre macchine. Esegui poi il "ricablaggio" nei blocchi copiati.

Sarà forse meno elegante, ma sicuramente molto più pratico e gestibile.

Link al commento
Condividi su altri siti

Concordo con Batta , gli FB richiamati su più istanza hanno il punto debole del Debug e delle modifiche. Sta a te poi valutare se i PRO sono di più dei CONTRO.

...posso modificare la locazione di memoria in cui vengono appoggiati sulla db di istanza?...

Che io sappia no. Nella DB vengono creati prima i parametri di Input/Output e poi le variabili statiche. Se vuoi tutelarti dal problema delle eventuali aggiunte di parametri o variabili l'unica soluzione è di crearne alcune in più libere che eventualmente potrai utilizzare in seguito.

CIAo

Beppe

Link al commento
Condividi su altri siti

Salve Ragazzi,

pensavo di utilizzare al posto delle FB delle FC standard; e di realizzare i dati locali per il passaggio dei parametri. In questo modo realizzo una via di mezzo tra una FB con istanza ed una FC standard. Alla fine non faccio altro che copiare le FC cambiargli di nome e utilizzare db diverse per il passaggio dei valori.

Non sarà elegante ma penso funzionale.

Grazie a tutti.

Link al commento
Condividi su altri siti

Un'altra domanda.....

se io creo una DB di multiistanza alla quale accedo con + fB; è possibile condividere i dati tra le varie FB???

Mi spiego FB1 dichiarate come multiistanza e FB2 ed FB3 inseriti internamente come Stat.

Ho notato che da FB1 posso accedere ai dati di FB2 ed FB3 con la sintassi #FB2.xxx e FB3.xxx; ma non posso accedere da FB2 ai dati di FB3 e viceversa.....

E' possibile far ciò oppure no????

Grazie

Link al commento
Condividi su altri siti

Ciao.

Ho notato che da FB1 posso accedere ai dati di FB2 ed FB3

Questa affermazione non è corretta, tu non accedi ai dati di FB2 e FB3, se mai accedi ai dati che hai dichiarato in FB2 ed FB3, in realta questi dati sono presenti nella DB di istanza, quindi possono essere visti in tutto il programma.

non posso accedere da FB2 ai dati di FB3 e viceversa.....

Sicuramente se in FB2 non hai dichiarato "FB3 come STAT". Se mai ti vai a leggere direttamente la DB.

Spero di aver capito quello che intendevi dire!!!

Se posso darti un consiglio:

Mi sembra che dal tuo primo mess., dove hai esposto il problema delle 3 macchine, hai preso una strada non ottimale.

Tieni presente che le istanze sono utilissime nei casi di pezzi di codice standard (standard=già provati e riprovati). Ti dico questo perchè eseguire modifiche su FB di istanza non è molto agile.

Se è il primo impianto di questo tipo, ti consiglio di prendere la strada che ti ha indicato "Batta", poi, se in futuro devi fare altri impianti come questo, puoi prendere in considerazione il fatto di standardizzare il tutto e utilizzare FB di istanza se le ritieni più comode. Logicamente noi non conosciamo le tue esigenza nello specifico!!!

Link al commento
Condividi su altri siti

Se posso darti un consiglio:

Mi sembra che dal tuo primo mess., dove hai esposto il problema delle 3 macchine, hai preso una strada non ottimale.

Tieni presente che le istanze sono utilissime nei casi di pezzi di codice standard (standard=già provati e riprovati). Ti dico questo perchè eseguire modifiche su FB di istanza non è molto agile.

Se è il primo impianto di questo tipo, ti consiglio di prendere la strada che ti ha indicato "Batta", poi, se in futuro devi fare altri impianti come questo, puoi prendere in considerazione il fatto di standardizzare il tutto e utilizzare FB di istanza se le ritieni più comode. Logicamente noi non conosciamo le tue esigenza nello specifico!!!

Salve Ragazzi,

ho valutato un po le FB e avete pienamente ragione...............non è la strada ottimale.

Torno sui miei passi e gestisco il tutto in maniera "tradizionale".

grazie ed alla prossima

Link al commento
Condividi su altri siti

  • 1 year later...

Ciao. In una sala slot verrà realizzato un muro divisorio in cartongesso dove verranno installati dei pc per le scommesse on-line. I computer saranno dei monitor che verranno installati a muro (tipo televisori lcd) e sotto ci sarà una mensola con la tastiera. Vorrei sapere a che distanza mettere una postazione dall'altra e a che altezza fissare le cassette 503 per collegare il monitor. Ciao e grazie per l'aiuto

Link al commento
Condividi su altri siti

la cosa migliore è metterle dietro ai monitor in modo da restare nascoste... inoltre prevedi un sistema che dal case arrivi a dietro il monitor per portare i cavi di collegamento.

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