Vai al contenuto
PLC Forum


Temporizzatore S7-300


Nesus

Messaggi consigliati

Salve a tutti!

Avrei un piccolo quesito da porvi riguardo la creazione di un temporizzatore, non penso sia difficile... ma per uno che e' alle prime armi, visto che non c'e' molta spiegazione nelle guide della siemens( o almeno non sono riuscito ad interpretare in modo corretto ciò che mi interessa nello specifico ) è un arduo compito :lol:

In pratica ho 1 interruttore che chiamiamo "I1" dopodiche ci sono 2 interruttori in parallelo chiamati "T1A" e "T1F" cioè avviamento e frenatura.

Dovrei creare un temporizzatore che alla chiusura di I1 seguita poi dalla chiusura di T1A (dove T1F logicamente rimane aperto) comincia a contare per 2 minuti dopodichè fa un controllo sui giri del motore e se è >= a 200 giri/min continua non modificando lo stato di avviamento, a riscontro contrario cioè < di 200 giri/min mi manda un segnale di allarme( per farmi dare l'allarme devo creare un OB a parte ? ce n'e' uno specifico per questo caso?) aprendo cosi T1A e lasciando in caduta libera il motore.

Spero di essere stato abb. chiaro, vorrei capire come creare il temporizzatore, se fare un blocco a parte solo per il temporizzatore e se ogni temporizzatore ha bisogno di un suo blocco, se sono sulla strada giusta devo crearlo in un FB scusate i "se" ma mi ha confuso un po le idee :o

Vi ringrazio.

Link al commento
Condividi su altri siti


Non sembra, come dici, che tu sia così confuso: nella tua spiegazione del processo, hai già indicativamente tracciato un diagramma di flusso per le operazioni da eseguire nel programma, solo vorrei capire se T1A e T1F sono interruttori o teleruttori.

2 interruttori in parallelo chiamati "T1A" e "T1F
mi manda un segnale di allarme...aprendo cosi T1A

Non voglio darti il listato con le istruzioni perchè "odio" chi da o vuole ricevere la pappa pronta; vorrei aiutarti a riflettere.

Gli ingressi I1 (mi sembra sia, da come lo descrivi, start ciclo) e T1A (probabilmente contatto ausiliario di un teleruttore)condizionano entrambi l'avvio di un temporizzatore impostato come ritardo all'eccitazione (SA); lo stato di tempo trascorso, settata una memoria, condiziona il confronto (>=) dell'analogica o del contatore veloce(non dici come controlli i giri) con il valore fisso scelto da te in 200 giri/min. Se questo confronto dà RLC=1 allora proseguo con il programma, altrimenti salto all'etichetta di allarme dove, senza utilizzare OB particolari, setto una memoria per l'allarme.

L'attivazione del teleruttore di frenatura (T1F), resetta temporizzatore, memoria di confronto e memoria di allarme.

Mi sembra ci sia tutto, altrimenti fai un fischio: buona riflessione! ;)

Link al commento
Condividi su altri siti

Spero di essere stato abb. chiaro, vorrei capire come creare il temporizzatore, se fare un blocco a parte solo per il temporizzatore e se ogni temporizzatore ha bisogno di un suo blocco, se sono sulla strada giusta devo crearlo in un FB scusate i "se" ma mi ha confuso un po le idee
se dai una occhiata a questo Link vai sul netwok 23-24 trovi come si programma un temporizzatore. Prova inserirlo su un FC non so FC1. Poi se vuoi programmare altri temporizzatori, puoi farlo anche sullo stesso blocco FC1 .. devi soltanto cambiare il suo indirizzo ..T1, T2..etc. Poi per far girare il FC1 devi richiamarlo in OB1 ( CALL FC1) che sarebbe il main runtime cycle block.
Link al commento
Condividi su altri siti

Non sembra, come dici, che tu sia così confuso: nella tua spiegazione del processo, hai già indicativamente tracciato un diagramma di flusso per le operazioni da eseguire nel programma, solo vorrei capire se T1A e T1F sono interruttori o teleruttori.

CITAZIONE

2 interruttori in parallelo chiamati "T1A" e "T1F

CITAZIONE

mi manda un segnale di allarme...aprendo cosi T1A

Non voglio darti il listato con le istruzioni perchè "odio" chi da o vuole ricevere la pappa pronta; vorrei aiutarti a riflettere.

Gli ingressi I1 (mi sembra sia, da come lo descrivi, start ciclo) e T1A (probabilmente contatto ausiliario di un teleruttore)condizionano entrambi l'avvio di un temporizzatore impostato come ritardo all'eccitazione (SA); lo stato di tempo trascorso, settata una memoria, condiziona il confronto (>=) dell'analogica o del contatore veloce(non dici come controlli i giri) con il valore fisso scelto da te in 200 giri/min. Se questo confronto dà RLC=1 allora proseguo con il programma, altrimenti salto all'etichetta di allarme dove, senza utilizzare OB particolari, setto una memoria per l'allarme.

L'attivazione del teleruttore di frenatura (T1F), resetta temporizzatore, memoria di confronto e memoria di allarme.

Mi sembra ci sia tutto, altrimenti fai un fischio: buona riflessione!

Grazie per la risposta :)

non voglio la pappa pronta :P ma volevo capire come crearlo e in che modo, comunque mi hai dato un buono spunto per cominciare! Ora provo a tirar fuori qualcosa e ti faccio sapere se trovo intoppi :o un altra cosa... Il tutto deve essere creato dove? parlo sempre del temporizzatore... nell'OB1 ( non penso anche perche non saprei dove aggiungerlo ) o nell'FB1 dove sto creando tutta la fase di avviamento del motore? Poi creerò un FB2 per la fase di frenatura e cosi via... la logica del procedimento complessivo e' giusta? ad ogni FB posso associare una fase che poi andro' a richiamare nell'OB1 (anche se devo ancora capire come impostare l'OB1 visto che lavora ciclicamente)

C'e' una spiegazione per creare un lavoro seguendo magari un dato percorso/logica? che so.... tipo " per prima cosa fai questo poi pensa a fare questo etc etc etc )

comunque per rispondere alla tua domanda "T1A" e "T1F" sono teleruttori ad aria, "I1" e' un interruttore di linea a 3 Kv i quali, assunto un certo stato logico, vanno ad alimentare un motore seguito da un moltiplicatore di giri seguito da un volano etc etc etc.. applico nella funzione di avviamento il temporizzatore per capire se dopo un tot. tempo procede tutto bene.

Per quanto riguarda invece il controllo dei Giri, ho un Input analogico che mi viene dalla macchina e ..........( devo informarmi quale sensore è montato sul motore) comunque pensi che posso allocare quel valore analogico prelevato in quel dato istante che decide il temporizzatore e controllare il valore? ci sara sicuramento una funzione no?

Grazie ancora ;)

Link al commento
Condividi su altri siti

Che PLC hai? Nel caso tu abbia un S7-300 puoi tranquillamente usare FC e non FB che di solito sono riservati a gestioni un po' + complesse. Inoltre mi sembra esagerato usare un FB per ogni fase, anche perchè il numero di blocchi è limitato e se la macchina è complessa rischi di finirli prima di aver terminato la gestione di tutti gli attuatori.

Link al commento
Condividi su altri siti

Cesare Nicola
ell'OB1 ( non penso anche perche non saprei dove aggiungerlo ) o nell'FB1 dove sto creando tutta la fase di avviamento del motore? Poi creerò un FB2 per la fase di frenatura e cosi via... la logica del procedimento complessivo e' giusta? ad ogni FB posso associare una fase che poi andro' a richiamare nell'OB1 (anche se devo ancora capire come impostare l'OB1 visto che lavora ciclicamente)

Una cosa che devi imparare e mi sembra sei sulla buona strada, viste le domande che poni, è proprio l'organizzazione del tuo programma. Devi immaginare una macchina come un insieme di n funzionalità, ognuna indipendente ma che trasmette e riceve consensi e segnali ad un'altra funzionalità, di modo che il tutto possa muoversi senza interferenze tra le varie funzionalità (per esempio il motore non si deve avviare se la funzionalità "Emergenza" dice che la macchina è in appunto in stato di emergenza). Nel tuo caso, la procedura di avviamento e di frenatura la farei in un unico FC (o FB se più complessa) che chiamerai per esempio FC_Motore. Il tuo FC dovrà trasmettere dei segnali verso altri eventuali FC, per esempio un bit di uscita di "Motore_in_moto" oppure "Motore_fermo" e cose del genere. In OB1 richiami tutti gli FC o FB precedentemente programmati, con istruzioni tipo CALL FBxx, UC FCyy, CC FCzz ecc. (è ben spiegato sui manuali step7). Questa è un pò di semplice teoria: si potrebbe dire ancora molto, ma... sono al lavoro! Se segui scrupolosamente queste teorie, scrivere programmi e soprattutto farci manutenzione ed aggiungerci funzionalità diventerà molto più semplice.

Ciao

Link al commento
Condividi su altri siti

Ciao,

innanzi tutto condivido l'opinione di Nesus sull'utilizzo di FC invece che di un FB: non tanto per l'utilizzo in funzioni più complesse, quanto per il fatto che ogni FB è associata ad una DB d'istanza (o di multiistanza nel caso di più FB) che se non indispensabile al programma nella sua strutturazione, complica inutilmente le cose. Quindi, convenzionalmente, si utilizza OB1 per organizzare le chiamate ai programmi di gestione delle diverse fasi del programma ( OB: Organization Block, appunto), FC1 blocco di gestione del tuo controllo di avviamento del motore e, al limite, FC2 come blocco di gestione dell'allarme.

C'e' una spiegazione per creare un lavoro seguendo magari un dato percorso/logica? che so.... tipo " per prima cosa fai questo poi pensa a fare questo etc etc etc )

Certamente che c'è, ma questo percorso logico (detto anche Flow Chart, diagramma di flusso in italiano) lo hai già tracciato tu nel primo post, nella mia risposta l'ho ricalcato ora tu devi sostituire le espressioni "faccio quello, faccio questo" con comandi accettati dalla cpu, siano questi in awl od in kop.

comunque pensi che posso allocare quel valore analogico prelevato in quel dato istante che decide il temporizzatore e controllare il valore? ci sara sicuramento una funzione no?

Hai ancora fatto centro: il comando è T (Transfer), ma si usa con l'accumulatore ACCU1. Esiste un complesso giro di trasferimenti e caricamenti attraverso i 2 accumulatori della cpu 300 (4 accumulatori nella cpu 400); i confronti vengono effettuati caricando i valori da confrontare in ACCU1 ed ACCU 2, quindi si effettua l'operazione (>,<,=,+,-, etc.).Ti consiglio di leggerti il manuale della lista istruzioni awl (scaricabile gratis quì)dove potrai chiarire tali dubbi nel capitolo delle operazioni di confronto. ;)

Link al commento
Condividi su altri siti

  • 1 year later...

ciao, io ho una tirata di 150m con un cavo butile FG7OR 4G25mm in cui devo collegare 3 case. Quanti ampere ho disponibili con questo cavo al massimo? 40 o 50?

mi sapete aiutare e dirmi come calcolare anche da solo gli amperaggi? un cavo da 25mm quanti kw sopporta?

Link al commento
Condividi su altri siti

Ipotizzando una caduta di tensione a fondo linea del 2% massima, con un cavo del genere (interrato in tubo) puoi alimentare tranquillamente un carico trifase di 20 kW, ossia tre carichi monofase da 7 kW, distribuiti equamente tra le tre fasi.

La corrente è sui 40 A e non è imposta dalla sezione del cavo, ma dalla caduta.

Infatti, un cavo di tale sezione, per piccole distanze (qualche decina di metri) sarebbe capace di portare correnti di 90 A.

Per il calcolo degli amperaggi procurati un catalogo di uno dei costruttori dei cavi o un programma di calcolo automatico, ma ripeto, per distanze pari a quelle da te indicate, la limitazione all'utilizzo non è termica, ma di soddisfacimento del criterio elettrico (caduta di tensione massima ammissibile a fondo linea).

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