Vai al contenuto
PLC Forum


Programma Stupido Ma Complicato - ho bisogno di aiuto su un programma


Messaggi consigliati

Inserito:

Salve a tutti! Mi appello alla vostra esperienza visto che io sono un principiante del plc ma mi appassiona molto.

Io devo eseguire un programma che mi permetta di attivare-disattivare un uscita mediante un solo ingresso (nel mio caso un pulsante).

Il problema viene quando io ho solo a disposizione due funzioni base piu' i merker.

Le funzioni basi sono -| |- e -|/|- qualcuno sa come posso fare???


  • Risposte 83
  • Created
  • Ultima risposta

Top Posters In This Topic

  • Claudio Monti

    11

  • Luca Bab

    10

  • ken

    6

  • TRUNC

    6

Inserita: (modificato)

CIAO

ti serve un set reset

in questo esempio X e' un fronte di salita del tuo pulsante

Y e' la memoria che cambia di stato ogni volta che pigi il pulsante(SE NON HO SBAGLIATO)

LD X

AND NOT Y

OR

LD NOT X

AND Y

OUT Y

CIAO

DARIO

Modificato: da Dario Valeri
Inserita:

Ciao.

Guarda questo esempio in S7: :blink:

          U  E0.0        // INPUT START/STOP
           FP M10.0
           =  M10.1     // Fianco Positivo


           U  M10.1
           UN M20.0
           S  M20.0     // MARCA START/STOP
           SPB AQUI
           U M10.1
           U M20.0
           R M20.0
AQUI:    NOP 0
           BE

Inserita:

ciao

che tipo di plc hai (marca)?

ad esempio quelli della MOELLER

i Marker hanno 3o4 funzioni

1 marker di set

2 marker di reset _

3 marker sul fronte di salita(questo è il simbolo _/ )

un impulso si setta un secondo si resetta come un rele passo/passo

ciao luca

Inserita:

Il tuo problema ha tutta l'aria di essere un compito/esercizio scolastico...

Se è così, probabilmente ti è stato proposto per introdurti in modo empirico al concetto di SET/RESET dei Merker di memoria.

Con queste istruzioni, fare il "toggle" di un merker su di un unico ingresso diventa una banalità...

Senza... Non ci sono mai riuscito :(

Ricordo che a suo tempo, quando mi sono imbattuto nel problema, ero giunto alla conclusione che dovevo realizzare, in pratica, un Flip-Flop R-S con la logica Ladder, poi mi sono arenato perchè qualsiasi soluzione non andava d'accordo con la logica sequenziale del PLC...

Buona fortuna :rolleyes:

Stefano Sormanni
Inserita:

in ladder con il PL7 è molto semplice:

ld %I1.0 // ingresso

st %M10 // mi appoggio ad un merker

ldr %M10 // faccio il fds del merker

andn %M100 // verifico che non è stata ancora settata

s %M100 // setto la memoria

jmpc %L1 // salto condizionato

ldr %M10 // fds

and %M100 // memoria settata

r %M100 // resetto la memoria

%L1: //etichetta

Inserita:

Non avete capito...

Gek (non chiedetemi il perchè...) deve fare il SET / RESET di un bit su impulso di un unico ingresso, usando SOLAMENTE contatti NO, NC e Merker... Vero Gek?

Con altri elementi (SET-RESET, fronti di salita, di discesa e così via) sappiamo tutti che è semplicissimo... :)

Sono curioso di vedere se qualcuno riesce nell'impresa.

Per quanto mi riguarda, ribadisco che, a suo tempo, ho dovuto rinunciare...

Ma, ora che ci sono tornato sopra, sento qualche formicolio nei meandri del cervelletto, e se son rose... ;)

Buon lavoro!!! :D

Inserita: (modificato)

Si ha ragione TRUNC devo realizzare questo programma solo contatti NO -| |- e i contatti NC -|/|- e' qusta la difficolta!!!

Si per puntualizzare e' un esercizio dato dal prof e ci dira' la soluziuone per la fine di dicembre + o -

Il plc e' un siemenc e il programma devo eseguirlo mediante miro win 32

Modificato: da Gek
Inserita:

Guarda che come ha detto DARIO funziona perfettamente, l'unico problema è che se tieni attivo X l'uscita Y cambia ad ogni ciclo.

Inserita: (modificato)

GRAZIE TANTE!!!!!!!!!!!!!!!!!!!!!

VOGLIO CONOSCERE CHI E' COSI BRAVO DA PIGIARE UN PULSANTE PER UN TEMPO PARI AD UN SOLO CICLO LOGICA!!!!!!!

CHE PLC USI, CLAUDIO???????? :blink:

Comunque, Gek, quando avrai la soluzione, ci farai il favore di comunicarcela (anche se temo di conoscerla già....) <_<

Modificato: da TRUNC
Inserita:

Io sono veramente un principiante e non ho capito molto e visto che so solo utilizzare una programmazione in visuale (utilizzando solo i due simboli -| |- e -|\|-) non riesco a ricavare molto.

La locica utilizzata da dario la comprendo avendo fatto qualcosa di elettronica ma per ora nel plc non ho la possibilita' di utilizzare funzioni lociche

Inserita:
TRUNC+13 Nov 2003, 02:24 PM-->
CITAZIONE(TRUNC @ 13 Nov 2003, 02:24 PM)

Uso PLC che ti mettono a disposizione un sacco di cose, fronti, salti, ecc... <_<

Se il discorso che ha proposto GEK è solo a scopo didattico, possiamo anche presupporre che uno riesca ad attivare un ingresso anche solo x 1 ms (questo non è stato negato, o sbaglio?)

Inserita: (modificato)

Bisogna vedere come la pensa il prof di Gek, Claudio... :lol:

E' lui che scrive i numerini sul registro.... :P

Modificato: da TRUNC
Inserita: (modificato)

OK, allora prova così:

ingresso I1.0

uscita Q2.0

merker interni M0, M1 e M2

LD I1.0
AND NOT M1
= M0
LD I1.0
=M1
LD M0
AND Q2.0
=M2
LD M0
OR Q2.0
AND NOT M2
=Q2.0

Praticamente M0 è un fronte di salita (ma è stato creato con NO e NC :P )...

Dovrebbe funzionare ;)

Modificato: da Claudio Monti
Inserita:

Questa e' la versione con siemens

A I 0.0

AN M 1.0

= M 1.1 fronte

A I 0.0

= M 1.0 memoria di appoggio per fronte

A M 1.1

AN M 2.0

O

AN M 1.1

A M 2.0

= M 2.0 uscita

Inserita:

Ciao Luca,

... sicuro che funzioni?

Con M1.1 accendi M2.0, se cade I0.0 rimane accesa l'uscita, ma quando ri-accendi I0.0 l'uscita rimane alta...

O sbaglio?

Ivan Castellaro
Inserita:

// Fronte pulsante
U    E0.0
FP   M0.0
=    M0.1

// Comando uscita

U   M0.1
O   A0.0
U(
ON  M0.1
ON  M0.2
)
=   A0.0

// Uscita attivata un giro in ritardo

U   A0.0
=   M0.2

Spendi qualche memoria in piu' ma funziona!

Inserita: (modificato)

I miei più sinceri complimenti, Claudio...

Il tuo codice funziona alla grande :D ... Senza SET/RESET e senza Fronti di salita/discesa!!!

Una soluzione da manuale, non esagero!

Anche perchè l'hai buttata lì in quattro e quattr'otto senza pensarci sù più di tanto...

Ed è giusto che sia così, perchè quando si comincia a pensarci troppo alla fine non si combina niente...

Questo vale per me, almeno... <_<

Dici che sia il caso di tradurla in ladder per l'amico Gek o che sia meglio lasciarlo rimuginare, in fondo non è giusto farsi fare i compiti dagli altri (soprattutto gratis...) :P

Complimenti ancora...

N.B.: do per scontato che sia "farina del tuo sacco" ;)

Modificato: da TRUNC
Inserita:

Visto che siamo in ballo do anch'io la mia versione, che è comunque simile alle versioni già date.

Ingresso__Memoria1____Memoria2

----( )------------(/)--------------(OUT)

Ingresso______Memoria1

----( )-----------------(OUT)

Memoria2____Uscita______Uscita

----( )--------------(/)-------------(OUT)

Memoria2____Uscita

----(/)--------------( )----(da collegare all'OUT della riga sopra)

x Gek

Concordo con TRUNC, chiedere ad altri soluzioni già fatte non ti porta da nessuna parte. Le soluzioni bisogna ragionarsele da se.

Il succo del giochetto come vedi sta nel crearsi un fronte di salita utilizzando contatti NO e NC. Il resto poi viene da se.

CIAO

Inserita:

per claudio

certo che funzia anzi ti diro' che gira in certe macchine

i0.0 al primo fronte M1.1 accende o2.0

l'altro fronte spegne o2.0

e cosi via

per scipione

hai tradotto in kop il mio awl ??

ciao

Luca

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