Vai al contenuto
PLC Forum


Serbatoio Cilindrico Orizzontale E Sferico - FC S7-300/400 per calcolo volume


batta

Messaggi consigliati

Ho sviluppato 2 funzioni per plc S7-300/400 per calcolare il volume del liquido in un serbatoio cilindrico orizzontale e in un serbatoio sferico.

Nel progetto in allegato trovate le due funzioni. Quella per il serbatoio cilindrico orizzontale l'ho già messa nel forum Plc Siemens (dove era sorta la richiesta), ma qui c'è una versione leggermente migliorata.

Le funzioni non sono protette (ci mancherebbe) e sono descritte, mi sento di affermare, in modo dettagliato.

Questo perché lo scopo non è solo quello di fornire un lavoro pronto all'uso, ma soprattutto spero possa essere d'esempio per chi non è molto abituato ad effettuare calcoli in AWL con Step 7.

Le funzioni possono essere utilizzate, modificate, ridistribuite liberamente.

Chiedo una sola cosa: non modificate il nome dell'autore. Grazie.

Clicca qui per scaricare il file

Link al commento
Condividi su altri siti


Non entro nel merito tecnico perche' non ho nemmeno aperto gli FC in questione per motivi di tempo, ma volevo ringraziarti per il gesto, sperando che ne seguano altri (di ringraziamenti).

Link al commento
Condividi su altri siti

Mi sono accorto che nella funzione calcolo volume serbatoio cilindrico orizzontale è ancora dichiarata ed inizializzata la variabile locale "PI", e poi non viene più usata. E' un residuo della precedente funzione. In questa può essere eliminata.

Link al commento
Condividi su altri siti

  • 2 weeks later...

Batta, personalmente non uso Siem..., nè mi serve il tipo di calcolo che hai postato, ma volevo comunque farti i complimenti per come hai approcciato i problemi e per la disponibilità a pubblicare il tuo lavoro.

Bravo ! :)

Link al commento
Condividi su altri siti

Ciao a tutti, sono un neofita della programmazione S7-300 (ho sempre programmato apparecchiature custom) e quindi sono affamato di informazioni. Ringrazio l'autore del file e spero un giorno non troppo lontano di poter fare la mia parte...

Link al commento
Condividi su altri siti

Ciao Batta,

sono nuovo al forum - ho aperto il tuo progetto per curiosità

Mi occupo di automotive pertanto credo che il tuo lavoro non sia utile al mio

Comunque è molto interessante ma soprattutto complimenti per lo spirito di gruppo

Grazie e buon lavoro :)

Link al commento
Condividi su altri siti

  • 4 weeks later...

GRAZIE BATTA

veramente per le mie piccole applicazioni uso quasi sempre l'S7200 ,

con il 300 sono un pò indietro ( perche l'ho uso poco )

comunque cercare di capire il tuo lavoro mi darà una rinfrescata .

( sempre che ci riesca ;) )

Link al commento
Condividi su altri siti

  • 2 weeks later...

Nello specifico non credo mi occorra, ma apprezzo l'opera di diffusione di informazioni ed esperienze che possono arricchire tutti.

Così dovremmo operare tutti, condividere al massimo esperienze e lavori in modo di semplificare il alvoro a tutti noi.

La crescita è nella diffusione della conoscenza ed attraverso questa possiamo miglioraci senza dover ogni volta rifare qualcosa che è già stato fatto da altri ed evitando che altri ripetano fatica e errori già fatti da noi.

Appena avrò occasione cercherò anche io di condividere quella parte dei lavori che potranno essere utili ad altri.

Auguri!

Modificato: da cibe
Link al commento
Condividi su altri siti

  • 2 weeks later...
  • 1 month later...

Grazie Batta, io ho unzippato il tuo file ma non sono nemmeno riuscito a capire come e con quale sw aprirlo!

Sono da pochissimo approdato in questo settore, ed il tuo biglietto da visita mi ha fatto tirare un sospiro di sollievo.

Complimenti.

imparsa

PS" ringrazio ugualmente chi volesse indicarmi come cacchio si visualizzano queste soluzioni di calcolo!!!"

Link al commento
Condividi su altri siti

Dal mio primo post puoi scaricare il file "VolSerb.zip" che contiene un progetto Step7. Ti serve quindi Step7 per aprirlo.

Nel post di Gabriele Corrieri trovi il link per scaricare il file "Volserbatoio.zip". Questo file contiene due files con estensione .awl. Sono dei sorgenti che, se compilati con Step7, generano due FC da utilizzare, ovviamente, sempre in Step7. Questi files li puoi però aprire con qualsiasi editore di testi. La sintassi è quella dei plc Siemens S7-300/400, ma puoi prendere lo spunto per sviluppare gli stessi calcoli per altri plc. Il procedimento è ampiamente commentato. Alla fine si tratta di due semplici problemi di geometria.

Link al commento
Condividi su altri siti

grazie Batta,

:D ora ci sono arrivato,..grazie.

Ma per me che devo fare il salto dal logo ad un st-200, risulto ancora acerbo per comprendere a pieno il tuo lavoro.

Link al commento
Condividi su altri siti

  • 2 weeks later...

:) Ciao Batta,

io programmo da pochissimo con Siemens in linguaggio ladder,non ho aperto ancora il tuo file zippato,ma desidero ringraziarti anch'io per lo spirito di gruppo dimostrato.

Sono nuovo del forum,ma spero in futuro di poter mettere a disposizione qualcosa anch'io.

Grazie ancora,

Frank

Link al commento
Condividi su altri siti

  • 4 weeks later...
Claudio Monti

Riprendo questa discussione interessantissima, ringraziando Batta innanzitutto.

Ho scritto la funzione su PLC Telemecanique (in ST - letterale strutturato) in quanto mastico poco e male l'AWL (soprattutto il Siemens).

Ho modificato leggermente la funzione ma il risultato e' lo stesso, inoltro ho aggiunto una variabile "Distanza" che e' la distanza dello strumento dal bordo del cilindro.

(*Calcolo del volume del serbatoio*)
(*formula usata: r*r*(2*arccos((H-r)/r)-sen(2*arccos(H-r)/r)))/2 *)
Segmento:=Altezza_letta-Raggio-Distanza;
Angolo:=2.0*(ACOS(Segmento/Raggio));
Area:=((Raggio*Raggio)/2.0)*(Angolo-(SIN(Angolo)));
Volume:=Area*Lunghezza;

In questo caso si presume che lo strumento legga il valore max col serbatoio vuoto, nel caso contrario bisogna togliere l'area calcolata dalla sezione dello stesso.

Per comodita' (e per i calcoli) occorre dichiarare tutte le variabili come REAL (virgola mobile).

Bisogna avere l'accortezza di non eseguire i calcoli quando la distanza letta e' uguale al diametro (divisione per 0).

Link al commento
Condividi su altri siti

Bisogna avere l'accortezza di non eseguire i calcoli quando la distanza letta e' uguale al diametro (divisione per 0).

Claudio è sufficiente inserire in testa alla funzione il test

Altezza_letta < 2*raggio

se il risultato è vero si esegue la funzione.

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