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




Attivare Un Elettrovalvola Attraverso Il Plc


Messaggi consigliati

Inserito:

Carissimi amici,Cortesemente potreste darmi una dritta su come procedere per:Attivare una elettrovalvola, attraverso il plc.Vengo

al dunque:plc Siemens S7 300 CPU 315 2DP,Ts Adapter v5.0 MPI/DP,

Software Simatic step7 v 5,4, winCC scada VersV7.0 computer portatile

toschiba con S.O. Vista.

Nel PLC è stato caricato un

programma con tre blocchi: OB1, FB1, DB1, nel blocco funzionale FB1 è

stato messo un timer S_AVERZ con un pulsante nominato #pulsante1,

#timer1,#uscita1. il Blocco FB è stato messo Nel Blocco OB1 nominando

il pulsante "pulsante1" indirizzo EO.O "timer1" indirizzo T0 uscita

indirizzo E0.2 poi è stato creato il blocco di istanza DB1 con il

seguente indirizzo:O.O dichiarazione IN nome pulsante1 tipo BOOL valore

iniziale FALSE valore attuale FALSE ecc.ecc. Poi é stato costruita la

pagina grafica con winCC. mettendo un pulsante di grafica che possa

azionare il pulsante1 nel PLC.Logicamente creando il collegamento

protocollo suit e creando la variabile sopranominato pulsante1 tipo

variabile binaria parametro DB1,D0.0. nella pagina grafica è stata

accoppiata al pulsante con il pannello proprieta collegamento diretto.Purtroppo

non funziona, i due led sul ts adapter quando vado in runtime da winCC

si accendono quindi significa che il collegamento c'è ma il pulsante

non si aziona, diversamente se faccio la simulazione da step7 vat_1

riesco ad azionare il pulsante.Confido nelle vostre risposte voi che siete sicuramente più esperti di me .E solo per scopo didattico, e per passione.SALUTI.


Inserita:

intanto l'uscita non può avere indirizzo E0.2 semmai A0.2.

Seconda cosa verifica bene nel manuale S7 come funziona il timer SA soprattutto in relazione alla sua attivazione perchè se il pulsante che hai configurato è per l'appunto "pulsante" cioè finchè premuto =1 e quando è rilasciato =0 il tuo temporizzatore non si avvierà.

Terza cosa mi sembra di capire che hai due pulsanti: uno hardware E0.0 ed uno software da PC. Immagino che siano gestiti in parallelo per azionare il temporizzatore. Fai sempre attenzione a ciò detto sopra ed al funzionamento dei timer.

Inserita:

intanto ti ringrazio per avermi risposto,si è vero l'uscita è A4.0 ho commesso un errore di scrittura.

questo punto non capisco "se il pulsante che hai configurato è per l'appunto "pulsante" cioè finchè premuto =1 e quando è rilasciato =0 il tuo temporizzatore non si avvierà"

perchè? tieni presente che il pulsante quando simulo da vat_1 mi fa partire il timer e quando aziono il pulsante grafico dal runtime da winCC che non funziona.

"Terza cosa mi sembra di capire che hai due pulsanti: uno hardware E0.0 ed uno software da PC. Immagino che siano gestiti in parallelo per azionare il temporizzatore.

Che significa pulsante hardware?e uno software cortesemente me l'ho spieghi meglio?

Spero mi continuerai a rispondermi te ne sono enormemente grato.

Saluti

Inserita:

Pulsante hardware è quello che vedi collegato fisicamente al plc mentre quello software è quello che hai disegnato sul tuo pc!!!!

Il temporizzatore si avvia quando l'RLC(risultato logico combinatorio) "S" commuta da 0 ad 1, e temporizza per il tempo specificato all'ingresso TW purchè lo stato del segnale all'ingresso S sia ad 1.

Quando l'RLC all'ingress di reset "R" è 1 il valore di tempo corrente e la base dei tempi sono cancellati el'uscita Q viene resettata.

Cordiali saluti

Inserita:

Attenzione "SA2 e' un temporizzatore con ritardo alla diseccitazione , quindi

se rlc=1 uscita vale 1

se rlc=0 dopo il tempo programmato uscita =0

cordialmente

Lorenzo

Inserita:

saluti a tutti.

Si ho un pulsante analogico che fa funzionare perfettamente il temporizzatore, anzi ne ho pure un altro di reset.Poi un pulsante di grafica dal runtime di wincc. il mio problema e che non riesco a dare l'indirizzo giusto al pulsante grafico che mi fa azionare il timer.

confido nelle vostre risposte e vi saluto tutti, GRAZIE

Inserita:
Si ho un pulsante analogico

cioè?

il mio problema e che non riesco a dare l'indirizzo giusto al pulsante grafico

hai creato la tua tag booleana?? Che indirizzo gli hai dato? Prova con M0.0

Nel plc metti M0.0 al posto di E0.0 o in parallelo o in serie come serve: l'importante è che possa attivare il temporizzatore e lo fai tenendo ben presente ciò che ti hanno detto frezza e lobalo sul discorso rlc

oppure

visto che hai configurato il pulsante con indirizzo DB1.DBX0.0 usa questo indirizzo nel plc

Inserita:

con il pulsante analogico intendo dire il pulsantino con i due fili che vanno nel PLC.

hai creato la tua tag booleana?? Che indirizzo gli hai dato? Prova con M0.0

si alla tag ho dato come indirizzo DB1,D0.0

Nel plc metti M0.0 al posto di E0.0 o in parallelo o in serie come serve:

ho provato ha mettere M0.0 ma mi blocca il PLC

visto che hai configurato il pulsante con indirizzo DB1.DBX0.0 usa questo indirizzo nel plc

si il pulsante nel tag di Wincc è configurato DB1,D0.0 in realta dovrebbe puntare sul "pulsante1" caricato nel PLC che si trova nel blocco DB1 con indirizzo E0.0

Ho allegato una foto del blocco chi sa se si vede

saluti e grazie ancora

Inserita:
ho provato ha mettere M0.0 ma mi blocca il PLC

ti blocca il PLC???!!!!! va beh lasciamo stare....... chissà che macello stai combinando....

Comunque mi è tutto chiaro..

Intanto non credo tu abbia bisogno di un S_Averz ma di un S_Everz.... ad ogni il principio è lo stesso

Non hai necessità di usare un FB con DB di istanza, ma se è a scopo didattico ok..........

quando crei la variabile IN nel blocco d'istanza, questa variabile assumerà il valore della variabile immessa dove fai la chiamata alla FB: nel tuo caso un ingresso fisico E0.0 (cioè il tuo pulsante.... che per inciso non è analogico ma semmai digitale e comunque basta dire pulsante, che può essere o hardware e cioè fisicamente cablato al plc o virtuale cioè creato via software)

Da questo ne consegue che il tuo temporizzatore sarà avviato sempre e solo dalla variabile #pulsante che fa riferimento a E0.0.

Se hai configurato il pulsante in WinCC come DB1.DBX0.0, nella tua logica devi aggiungere in OR questo contatto al contatto #pulsante.

Ora con S_Averz se non erro il tuo temporizzatore (così come hai scritto la logica) dovrebbe iniziare a contare non appena rilasci uno dei due pulsanti. La tua uscita andrà subito a 1 fino allo scadere del tempo e tornerà a 0. Se è questa la tua necessità, cioè di avere solo un impulso ci sono dei temporizzatori apposta.

Inserita:

ciao diego

Mi scuso della orrenda figuraccia che ho fatto.

Purtroppo sono alla prima esperienza e non so usare bene i termini tecnici.

ma la tua bastonatalezione mi è servita: ormai mi è chiaro il concetto dei temporizzatori e dei pulsanti.

Tu hai capito perfettamente cosa volevo dire e cosa mi serve:

quando crei la variabile IN nel blocco d'istanza, questa variabile assumerà il valore della variabile immessa dove fai la chiamata alla FB: nel tuo caso un ingresso fisico E0.0

esatto

Da questo ne consegue che il tuo temporizzatore sarà avviato sempre e solo dalla variabile #pulsante che fa riferimento a E0.0.

esatto

Se hai configurato il pulsante in WinCC come DB1.DBX0.0, nella tua logica devi aggiungere in OR questo contatto al contatto #pulsante.

purtroppo è questo che non so fare, te ne sarei grato se mi indicassi passo passo come fare.

Ora con S_Averz se non erro il tuo temporizzatore (così come hai scritto la logica) dovrebbe iniziare a contare non appena rilasci uno dei due pulsanti. La tua uscita andrà subito a 1 fino allo scadere del tempo e tornerà a 0. Se è questa la tua necessità, cioè di avere solo un impulso ci sono dei temporizzatori apposta.

esatto è proprio cosi.

ti ringrazio anticipatamente sei stato molto preciso e competente.

Ciao

Inserita:

Se non ho capito male, con il pulsante di Wincc cerchi di comandare il bit DB1.DBX0.0, che è il bit del DB di istanza di FB1 che corrisponde all'ingresso "#pulsante1".

Se è così, non può funzionare!!!

Infatti è inutile che tu cerchi di assegnare uno stato al bit DB1.DBX0.0, perché verrà sempre sovrascritto con lo stato dell'ingresso E0.0, che tu passi a FB1 come parametro "#pulsante1".

Come ti hanno già detto, per far funzionare il tuo programma devi utilizzare un merker di appoggio (es. M10.0). A FB1 passi questo merker al posto dell'ingresso E0.0, ed il merker sarà comandato mettendo in parallelo E0.0 e, per esempio, il merker M10.1 comandato da Wincc.

Comunque...

se hai difficoltà solo a mettere in OR due bit, io ti consiglierei di abbandonare, per ora, oggetti complessi come sono le funzioni FB, e di orientarti su cose più semplici, tipo una funzione FC senza parametri contenente semplici istruzioni booleane.

Inserita:

Intanto il bit da comandare non è DB1.DBX0.0 ma DB1.DB0.0.0 è il bit del DB di istanza di FB1 che corrisponde all'ingresso "#pulsante1". si

Se è così, non può funzionare!!! perchè

Potresti spiegare meglio come fare, che significa mettere in OR due bit te ne sarei molto grato, si è meglio fare cose più semplice, ma io voglio imparare.

Inserita:

savino ti ringrazio del informazione. Si ho letto la discussione come mi hai indicato,infatti quello l,ho fatto. ma secondo me non è questo il problema ma sicuramente quello che carico nel PLC da STEP 7. che non so proprio come fare.

grazie e saluti.

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