idrive Inserito: 30 marzo 2006 Segnala Inserito: 30 marzo 2006 Ciao a tutti sono alle prime armi con i plc e mi sono scontrato con un problema che ci terrei a risolvere, sicuramente per molti di voi sarà una sciocchezza, mi potete aiutare?avrei bisogno di un contatto che mi si chiude per un tempo definito(pochi secondi), quando c'è una caduta di tensione, in modo da resettare un apparecchiatura che altrimenti si ferma fino ad un ripristino manuale.mi date qualche consiglio.Grazie.
STEU Inserita: 30 marzo 2006 Segnala Inserita: 30 marzo 2006 Spiegati meglio , hai bisogno di un'uscita ritardata alla diseccitazione?Per Siemens è il timer di tipo SV:u m0.0 l s5t#2s sv t1 u t1 = a 0.0In questo modo da quando il merker m0.0 va a 0 l'uscita A0.0 va a 0 dopo 2 secondi
idrive Inserita: 30 marzo 2006 Autore Segnala Inserita: 30 marzo 2006 ciao Steu il problema sta nel fatto che quando c'è una mancanza di tensione, al suo ritorno mi serve questo timer SV. in effetti servirebbe un merker ritentivo in modo che al riavvio del plc questo mi possa far partire un timer che si apre dopo un tempo T ma come rendo ritentivo il merKer in un plc s7 300?
RickyM Inserita: 30 marzo 2006 Segnala Inserita: 30 marzo 2006 Non ho ben capito il problema iniziale comunque:Per rendere ritentivo un byte di merker lo devi impostare in Nomeprogetto> Stazione simatic 300> Hardware,seleziona la cpu, edita le proprietà (alt+enter) seleziona la cartella ritenzione.Altrimenti puoi scrivere un valore in un intero di un blocco dati e fare un confronto quando riaccendi la cpu.Steu, mi sa che hai confuso gli SV con gli SA.Ciao
Henon Inserita: 30 marzo 2006 Segnala Inserita: 30 marzo 2006 Perchè al riavvio del PLC in Ob100 setti a 1 un Marker.poi in una qualsiasi punto del Programma, usi questo markerper attivare un Timer di tipo SV.Ultimato il Timmer Resetti il tuo Merker.
RickyM Inserita: 30 marzo 2006 Segnala Inserita: 30 marzo 2006 Forse non tutte le accensioni del plc sono conseguenza di cadute di tensione accidentali, la mia impressione è stata questa.
rddiego Inserita: 31 marzo 2006 Segnala Inserita: 31 marzo 2006 domanda?ma tu hai un ingresso che segnala la presenza tensione?
idrive Inserita: 3 aprile 2006 Autore Segnala Inserita: 3 aprile 2006 Scusami RickyM penso che mi hai dato la soluzione ma non mi è chiara se vado in ritenzione trovo Numero byte di merker da MB0 ed è impostato a 16 scusa la mia ignoranza mi potresti spiegare che vuol dire?Henon research ,anche la tua soluzione mi sembra buona correggimi se sbaglio in effetti devo creare un nuovo blocco OB100in cui editare:L #ob100_strtupL B#16#82==I= M 10.0e con questo gestire il temorizzatore.é giusto così
batta Inserita: 4 aprile 2006 Segnala Inserita: 4 aprile 2006 in ritenzione trovo Numero byte di merker da MB0 ed è impostato a 16 scusa la mia ignoranza mi potresti spiegare che vuol dire?16 è il valore di default, che puoi cambiare a tuo piacimento. Indica semplicemente che, a partire dal byte N. 0 (compreso) ci sono 16 byte di merker ritentivi, ovvero da M0.0 a M15.7Per il secondo quesito, se per te non è veramente importante determinare se l'avviamento è avvenuto a seguito di ritorno alimentazione o per altri motivi, io direi che non vale la pena complicarsi la vita. In questo caso è sufficiente scrivere in OB100:SETS M10.0M10.0 Dovrà essere resettato nel programma dopo aver svolto la sua funzione.Del resto, a meno ché non ci siano errori di programmazione, oppure non venga messa apposta la cpu in stop, l'unica causa di avvio (salvo casi un po' particolari) è il ritorno dell'alimentazione.
Simone70 Inserita: 4 aprile 2006 Segnala Inserita: 4 aprile 2006 Potresti anche lavorare al contrario; mi spiego meglio: usi un merker non retentivo negato che setti dopo un tempo t che si resettera con lo spegnimento della CPU.ESEMPIOUN M 128.0L S5T#1SSE T 0U T 0S M 128.0Usi la memoria negata M 128.0 per aceendere la tua uscitaUN M 128.0= A 0.0
batta Inserita: 4 aprile 2006 Segnala Inserita: 4 aprile 2006 Sì, è praticamente la stessa cosa. Solo che chi lavora con S7 è abituato a quardare in OB100 per rendersi subito conto di cosa viene fatto all'avviamento. In OB100 inoltre, anche se in modo non proprio semplice, puoi discrimanare il tipo di avviamento. Sfruttando il merker non ritentivo invece non è possibile sapere che tipo di avviamento è avvenuto. Se questo non è importante (come credo) si utilizza la soluzione che piace di più.
idrive Inserita: 4 aprile 2006 Autore Segnala Inserita: 4 aprile 2006 Vi ringrazio tutti adesso ho le idee più chiare.Hai ragione Batta non è importante la ragione dell'avviamento,ma visto che siamo in tema e mi piace capire le cose, potresti spiegarmi perchè la mia editazione non và bene? ho provato a scriverla ma digitando L #ob100_strtup mi dice che la variabile L #ob100_strtup non corrisponde nè alla dichiarazione nè è ob100_strtup nella tabella dei.....
batta Inserita: 6 aprile 2006 Segnala Inserita: 6 aprile 2006 Credevo di aver già risposto, ma evidentemente ho fatto un po' di casino.L'istruzione L #OB100_STRTUP è corretta. Assicurati di non aver commesso un banale errore di battitura.Attenzione, la variabile locale OB100_STRTUP esiste solo in OB100, non la puoi richiamare in altri blocchi.
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora