Vai al contenuto
PLC Forum


Fronte di Salita dentro un FB


verbaweb

Messaggi consigliati

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

Link al commento
Condividi su altri siti


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

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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?

 

 

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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

 

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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:

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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.

 

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

 

Link al commento
Condividi su altri siti

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.
 

Link al commento
Condividi su altri siti

 

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.

 

 

 

 

Modificato: da step-80
Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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.

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