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




Contatto che chiude per un tempo definito - Aiuto Per Un Principiante


Messaggi consigliati

Inserito:

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.


Inserita:

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

In questo modo da quando il merker m0.0 va a 0 l'uscita A0.0 va a 0 dopo 2 secondi

Inserita:

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?

Inserita:

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

Inserita:

Perchè al riavvio del PLC in Ob100 setti a 1 un Marker.

poi in una qualsiasi punto del Programma, usi questo marker

per attivare un Timer di tipo SV.

Ultimato il Timmer Resetti il tuo Merker.

Inserita:

Forse non tutte le accensioni del plc sono conseguenza di cadute di tensione accidentali, la mia impressione è stata questa.

Inserita:

domanda?

ma tu hai un ingresso che segnala la presenza tensione?

Inserita:

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 OB100

in cui editare:

L #ob100_strtup

L B#16#82

==I

= M 10.0

e con questo gestire il temorizzatore.

é giusto così

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

Per 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:

SET

S M10.0

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

Inserita:

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.

ESEMPIO

UN M 128.0

L S5T#1S

SE T 0

U T 0

S M 128.0

Usi la memoria negata M 128.0 per aceendere la tua uscita

UN M 128.0

= A 0.0

Inserita:

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

Inserita:

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

Inserita:

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.

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