Jump to content
PLC Forum


verbaweb

Fronte di Salita dentro un FB

Recommended Posts

verbaweb

Buongiorno ragazzi,

chiedo scusa per la banalità della mia richiesta.

Sto traducendo un software da Allenbradley a Siemens.

Per me un po complicato in quanto si parla di comunicazione modbus etc etc etc

 

Per la prima volta in vita mia sto usando un FB in quanto la funzione la dovrò richiamare 20 volte.

 

venendo al dunque: come posso utlizzare un fronte di salita dentro un FB?

 

Grazie mille

Share this post


Link to post
Share on other sites

acquaman

Come in una FC solo che il bit di appoggio devi usare un bit dichiarato nelle variabili stat della DB di istanza.

Share this post


Link to post
Share on other sites
verbaweb

Alberto,

ti ringrazio per la risposta.

ma davvero è la prima volta che uso FB FC e DB.

 

potresti cortesemente dirmi passo passo come fare?

la FB verrà richiamata 20 volte

 

Grazie mille

Share this post


Link to post
Share on other sites
drugo66

Ciao,

innanzitutto come scrive Acquaman (tutto ok, Alberto ? Spero di vederti presto ...) crea la variabile in STAT e non in TEMP; le variabili TEMP sono locali, quindi non mantengono il loro valore una volta usciti dal blocco; poi ti crei il tuo fronte con l'istruzione P_TRIG o -(P)- che sia, inserendo la variabile creata in STAT.

Devi richiamare il blocco FB 20 volte ? Dovrai creare 20 DB di istanza diversi per ogni volta che richiami il blocco, altrimenti non funziona.

Tutto qui.

Share this post


Link to post
Share on other sites
step-80

Cosa ovvia, ma la dico lo stesso..

se il fronte di salita è dello stesso segnale proveniente da esterno, credo convenga rilevare il fronte una sola volta all'esterno dell'FB e poi portarsi dentro solo il bit alto per una scansione..no?

 

 

Share this post


Link to post
Share on other sites
TravelMen
Quote

se il fronte di salita è dello stesso segnale proveniente da esterno, credo convenga rilevare il fronte una sola volta all'esterno dell'FB e poi portarsi dentro solo il bit alto per una scansione..no?

 

Io faccio così perchè per me è più leggibile.

 

Saluti

Share this post


Link to post
Share on other sites
pigroplc
13 ore fa, step-80 scrisse:

se il fronte di salita è dello stesso segnale proveniente da esterno, credo convenga rilevare il fronte una sola volta all'esterno dell'FB e poi portarsi dentro solo il bit alto per una scansione..no?

nel caso in cui devi modificare la logica e non prendere il fronte di salita ma il fronte di discesa (faccio un esempio) oppure ritardare il segnale lo fai una volta sola nella FB e non 20 volte fuori, senza poi contare la leggibilità già messa in luce da TravelMen.

Share this post


Link to post
Share on other sites
acquaman
14 ore fa, drugo66 scrisse:

tutto ok, Alberto ? Spero di vederti presto

Ciao Drugo si, ci vedremo presto.

 

14 ore fa, step-80 scrisse:

se il fronte di salita è dello stesso segnale proveniente da esterno, credo convenga rilevare il fronte una sola volta all'esterno dell'FB

Dipende se è un blocco che riutilizzo in futuro preferisco chiudere tutto nel FB per non dovermi ricordare che devo gestire il bit su un fronte, inoltre verbaweb non ha specificato di cosa è il fronte, potrebbe essere di un bit interno es un busy di un FC di comunicazione visto che parla di Modbus.

Share this post


Link to post
Share on other sites
verbaweb

Buongiorno Ragazzi,

il fronte di salita mi serve su un pulsante.

Sto avendo grossi problemi a tradurre da AB a TIA.

riesco a leggere i dati tranquillamente dal MODBUS ma cavolo, non riesco a scrivere completamente.

sto diventando scemo, oltre ad avere il fiato sul collo dalla committente.

 

posso postare il progetto fatto in TIA 15.1?

 

grazie ancora

 

Share this post


Link to post
Share on other sites
batta
38 minuti fa, verbaweb scrisse:

posso postare il progetto fatto in TIA 15.1?

Sì, posta pure.

 

Tornando ai fronti: io faccio largo uso delle FB, così ogni parte di programma ha già in pancia tutte le sue variabili.
In ogni FB, nelle STAT, non manca mai un array (solitamente di 16 bool) che generalmente chiamo "xos" (Aux One Shot), e che uso proprio per generare fronti.
Se non mi serve (ma accade molto raramente che non si usino fronti), pazienza, ho sprecato 16 bit. Se 16 bit non mi bastano, porto l'array a 32 bit.

 

Riguardo al fatto di genenare i fronti all'interno o all'esterno della funzione, si deve valutare caso per caso.

Share this post


Link to post
Share on other sites
verbaweb
11 minuti fa, batta scrisse:

Sì, posta pure.

 

Tornando ai fronti: io faccio largo uso delle FB, così ogni parte di programma ha già in pancia tutte le sue variabili.
In ogni FB, nelle STAT, non manca mai un array (solitamente di 16 bool) che generalmente chiamo "xos" (Aux One Shot), e che uso proprio per generare fronti.
Se non mi serve (ma accade molto raramente che non si usino fronti), pazienza, ho sprecato 16 bit. Se 16 bit non mi bastano, porto l'array a 32 bit.

 

Riguardo al fatto di genenare i fronti all'interno o all'esterno della funzione, si deve valutare caso per caso.

 

Grazie Batta

Allego il progetto in tia portal e il pdf del software da tradurre.

Di leggere leggo...

 

di scrivere.... neance a colpi di tromba come si suol dire dalle mie parti

 

 

.tiaportaltiaportal

Share this post


Link to post
Share on other sites
step-80

Ho aperto il pdf,che dire...senza uno straccio di commento sui segmenti, sugli operandi..è dura. Mettici poi che sei nella sezione Siemens, e che posti un codice Rockwell..

 

Poi ho aperto anche il progetto Tia. non so se è colpa di qualche mia impostazione, ma io dentro non ci vedo nulla. Non vedo cpu, non vedo blocchi di codice..niente:unsure:

Share this post


Link to post
Share on other sites
verbaweb
44 minuti fa, batta scrisse:

Sì, posta pure.

 

Tornando ai fronti: io faccio largo uso delle FB, così ogni parte di programma ha già in pancia tutte le sue variabili.
In ogni FB, nelle STAT, non manca mai un array (solitamente di 16 bool) che generalmente chiamo "xos" (Aux One Shot), e che uso proprio per generare fronti.
Se non mi serve (ma accade molto raramente che non si usino fronti), pazienza, ho sprecato 16 bit. Se 16 bit non mi bastano, porto l'array a 32 bit.

 

Riguardo al fatto di genenare i fronti all'interno o all'esterno della funzione, si deve valutare caso per caso.

 

Grazie Batta

Allego il progetto in tia portal e il pdf del software da tradurre.

Di leggere leggo...

 

di scrivere.... neance a colpi di tromba come si suol dire dalle mie parti

 

bravo..... quella è la condizione con cui sto lavorando io.

unica cosa a mio supporto è l'estrapolazione dei tag i excell che ora allego.

Per il tia portal? non saprei io lo apro.

Provo a riallegarloEstratto PLCProgramma Tia

 

 

Grazie ancora

Share this post


Link to post
Share on other sites
verbaweb

Un piccolo specchietto che mi sono fatto per capire...

 

 

Grazie ancora

SKM_C30819100112040.jpg

Share this post


Link to post
Share on other sites
batta

Premetto che non ho analizzato il programma a fondo.

Non so se il problema sia questo, ma non vedo, nel ciclo di scrittura, nessun reset della variabile "Process".modbusMaster.req.
Nel manuale effettivamente non c'è scritto che la funzione "Modbus_Master" abbia bisogno di un fronte sull'ingresso REQ, ma non sono sicuro che cambiare parametri al volo mantenendo sempre alto REQ non crei problemi.

Anche se, almeno sulla lettura, pare che funzioni lo stesso. Nei cicli di lettura, infatti, dopo il "Done", resetti "Process".modbusMaster.req, ma subito dopo la setti di nuovo. In questo modo, "Modbus_Master" non vede mai REQ = FALSE. Di fatto, equivale a mantenere "Process".modbusMaster.req sempre TRUE.

Io comunque preferirei, tra una lettura e l'altra, e tra una scrittura e l'altra, avere una scansione con REQ = False.

Fare una diagnosi più approfondita offline, e senza conoscere i codici di errore, è impresa piuttosto ardua.

 

Share this post


Link to post
Share on other sites
batta

Mi autocito:

Quote

Fare una diagnosi più approfondita offline, e senza conoscere i codici di errore, è impresa piuttosto ardua.

 

Mi pareva che la richiesta implicita di postare i codici di errore fosse abbastanza chiara.

Scrivere "nada" non ci dà certo elementi in più.

Share this post


Link to post
Share on other sites
verbaweb
1 ora fa, batta scrisse:

Mi autocito:

 

Mi pareva che la richiesta implicita di postare i codici di errore fosse abbastanza chiara.

Scrivere "nada" non ci dà certo elementi in più.

 

Scusami Batta ero convinto di averlo scritto, scusa ancora.

il bello è che non ricevo nessun codice di errore.

Se vado sul db quando lancio il comando di apertura o chiusura viene settato a TRUE.

Secondo me l'errore sta nel FB della valvola, avrò sicuramente interpretato male qualche passaggio dell'AB.

 

In azienda sono l'unico che "programma" i PLC non ho nessuno con cui confrontarmi purtroppo.

Grazie sempre anticipatamente e scusami ancora.

 

Ciao

 

Share this post


Link to post
Share on other sites
batta
48 minuti fa, verbaweb scrisse:

Secondo me l'errore sta nel FB della valvola, avrò sicuramente interpretato male qualche passaggio dell'AB.

Ma, allora, non sei sicuro che sia la scrittura via Modbus il problema. Se ti dà il Done, e non ti dà codici di errore, significa che i dati vengono scritti.
Io ho guardato, piuttosto velocemente, solo la parte che riguarda lettura/scrittura via Modbus. Tra l'altro, perché l'hai fatta nel main? Non è meglio se la fai in un blocco dedicato e, nel main, richiami solo il blocco?
Gli altri blocchi li ho solo aperti e subito richiusi perché, come già detto da Step-80, non c'è uno straccio di commento. Non ci sono nemmeno i nomi dei merker.
 

Share this post


Link to post
Share on other sites
step-80

 

Quote

Gli altri blocchi li ho solo aperti e subito richiusi perché, come già detto da Step-80, non c'è uno straccio di commento. Non ci sono nemmeno i nomi dei merker.

 

Per la precisazione io mi sono limitato ad aprire solo il file pdf  .

Da quanto dici però deduco che nemmeno il progetto ha i commenti ed i nomi dei Merker fatta eccezione per quello di lettura/scrittura Modbus.

 

 

 

 

Edited by step-80

Share this post


Link to post
Share on other sites
verbaweb
1 ora fa, step-80 scrisse:

 

 

Per la precisazione io mi sono limitato ad aprire solo il file pdf  .

Da quanto dici però deduco che nemmeno il progetto ha i commenti ed i nomi dei Merker fatta eccezione per quello di lettura/scrittura Modbus.

 

 

 

 

Per la parte TIA ho commentato i segmenti.

commenti e descrizioni purtroppo nel vecchio software non ce ne sono. unica cosa che sono riuscito un po a fare è buttare giù quel file excell...

Share this post


Link to post
Share on other sites
batta

A parte che stiamo divagando, dato che la discussione ha per titolo "Fronte di salita dentro un FB" e stiamo parlando di tutt'altra cosa, motivo per il quale ti consiglierei di aprire una  nuova discussione a tema, ma non ci aiuti certo a capire quale sia il tuo problema.
Sei partito dai fronti, per passare al problema nella scrittura via Modbus. Ma poi pare che non sia la scrittura che non funziona, ma qualcosa dentro al blocco della valvola.
Sinceramente, non capisco più niente. O ti spieghi, o non so proprio come aiutarti.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...