Vai al contenuto
PLC Forum


Ho Bisogno Di Controllare Un Merker Di Clock


coquinati

Messaggi consigliati

ciao amici.

ho un problema, sto facendo uno dei miei classici programmini di svago serale, devo controllare una elettrovalvola , chiuderla per 2 secondi, aprirla per 2 secondi , io ho creato un programma utilizzando dei temporizzatori (3temp per essere precisi) funzionava alla grande però era abbastanza incasinato.

ho deciso di usare dei merker di clock per semplificare il sw. nel farlo sono incappato in un problema abbastanza grave,

allora semplicemente:

U "PULSANTE_ON"

U "MERKER CLOCK 2000MS"

= "ELLETROVALVOLA"

il mio è un problema banale . quando attivo il pulsante on la valvola chiaramente si apre ma , e dico ma perché si apre in ritardo delle volte, io vorrei controllare il merker per renderlo sincrono con il pulsante on, si può fare ?

grazie mille ragazzi ciao

Link al commento
Condividi su altri siti


MERKER CLOCK 2000MS immagino sia un'onda quadra con un periodo di 2 secondi. Chiaro che se azioni il pulsante quando la forma d'onda è in fase di riposo non avrai alcuna accensione fino all'intervento della fase attiva del clock.Per tempi così lunghi sconsiglierei di usare un clock asincrono ma usare dei timer che partano al momento che vuoi tu.

Link al commento
Condividi su altri siti

si si esatto un onda quadra di 2 secondi. ma su che tempi si basa la cpu per emanare questi segnali?


ho sbagliato a scrivere elettrovalvola :( sorry. ;)

Link al commento
Condividi su altri siti

Non puoi sincronizzare i M di clock, vanno per i fatti loro.

Devi usare 2 timer (non 3)

|   E0.0    M10.1
+---[ ]-----[/]------[T1]------(M10.0)
|   M10.0
+---[ ]--------------[T2]------(M10.1)
|   M10.0
+---[ ]------------------------(A0.0)
|   E0.0    M10.0
+---[ ]-----[/]----------------(A0.1)

E 0.0 è un interruttore (non un pulsante)

A 0.0 è una elettrovalvola che rimane accesa per il tempo T2 e spenta per il tempo T1 ma la sua accensione non è sincronizzata con l'interruttore

A 0.1 è una elettrovalvola che rimane accesa per il tempo T1 e spenta per il tempo T2 e la sua accensione è sincronizzata con l'interruttore

;)

Link al commento
Condividi su altri siti

Non puoi sincronizzare i M di clock, vanno per i fatti loro.

Devi usare 2 timer (non 3)

|   E0.0    M10.1
+---[ ]-----[/]------[T1]------(M10.0)
|   M10.0
+---[ ]--------------[T2]------(M10.1)
|   M10.0
+---[ ]------------------------(A0.0)
|   E0.0    M10.0
+---[ ]-----[/]----------------(A0.1)
E 0.0 è un interruttore (non un pulsante)

A 0.0 è una elettrovalvola che rimane accesa per il tempo T2 e spenta per il tempo T1 ma la sua accensione non è sincronizzata con l'interruttore

A 0.1 è una elettrovalvola che rimane accesa per il tempo T1 e spenta per il tempo T2 e la sua accensione è sincronizzata con l'interruttore

;)

graziè mille jump man ,:-)ma nel primo caso,dovè la valvola non è sincronizzata con il pulsante,non è sincronizzata per il motivo che usi due temporizzatori diversi ciòe, quando premo resta chiusa per il tempo dettato dal timer, è poi si apre giusto? Per intenderci meglio fa un ciclo (chiuso aperto chiuso ecc ecc) O perché la cpu impiega del tempo a passare da segmento a segmento così ti viene sfasata dì pochi ms?
Link al commento
Condividi su altri siti

A0.0 non è sincronizzata perchè dal momento in cui accendi l'interruttore (E0.0) a quando si accende la valvola passa sempre il tempo T1.

A0.1 invece Si accende subito, si spegne dopo il tempo T1, rimane spenta per il tempo T2, si riaccende per il tempo T1 e così via (quello che vuoi tu)

Il tempo di scansione del PLC non lo consideriamo, sono pochi ms.

O perché la cpu impiega del tempo a passare da segmento a segmento

Questo concetto è sbagliato, o meglio non è del tutto corretto, nei plc c'è in tempo ler l'elaborazione dell'immagine degli ingressi, poi c'è un tempo per l'elaborazione del codice (tutto il codice), e infine uno per l'elaborazione delle immagini delle uscite, in quest'ultimo vengono attivate le uscite (cioè non vengono attivate man mano ma tutte insieme alla fine).

Modificato: da JumpMan
Link al commento
Condividi su altri siti

ora ho capito tutto grazie mille . :smile: praticamente usi due timer con ritardo al inserzione,

sarei curioso di farti vedere il mio programma che apre la valvola sincronizzata con il pulsante, il primo che ho scritto. solo che ho aggiunto un stop di emergenza, e un pulsante che lo setto e resetto cosi mi sono risparmiato di prendere un interruttore.in più su un altro FC ho fatto un altra parte del programma per accendere delle segnalazioni luminose per segnalare lo stato della valvola

ecco dal primo segmento alla fine(riguardante fc elettrovalvola temporizzata):

fh08.png

64c4.png

938e.png
yx5w.png

6lbf.png
zyap.png

bel casino è=)=) :lol:

Link al commento
Condividi su altri siti

jump man posso chiederti una cosa?

su un segmento ho provato a settare una uscita,e su un terzo segmento lo resettata facendo così rimaneva allo stato logico 1, poi ho provato a resettarla prima e poi darli il set, succedeva che rimaneva a lo stato logico dì 0 come doveva essere, ma sè il plc apre tuttè le uscite alla fine come mai non me la resettava sul primo caso? Graziè cìao

Modificato: da coquinati
Link al commento
Condividi su altri siti

Premetto che le istruzioni S e R dipendono dallo stato dell'RLC (risultato logico combinatorio) che dipende dalle istruzioni a monte, se vuoi settare l'RLC per fare qualche prova senza inserire istruzioni OR/AND ecc. puoi usare l'istruzione SET.

Cerco di spiegarti meglio il discorso dell'immagine delle uscite con un esempio:

Se tu nel segmento 1 setti una uscita, nel 10 la resetti, nel 20 la setti, nel 30 la resetti:

La tua uscita (bada bene non quella fisica ma quella dell'immagine) sarà TRUE nei segmenti 1...9 e nei segmenti 20...29, sarà FALSE in tutti gli altri segmenti.

Quando tutti i blocchi sono stati elaborati il PLC prende l'immagine delle uscite e la trasferisce alle uscite fisiche, nel caso dell'esempio anche se nel programma ha cambiato di stato 4 volte l'uscita fisica sarà sempre FALSE e non emetterà una onda quadra.

Link al commento
Condividi su altri siti

grazie mille jump man,an ok intendi dire che il plc prende il risultato finale del programma e lo rende fisico , ok però mi sono spiegato male io ora ti faccio l'esempio del mio caso :

SEGMENTO 1:

E0.0

----| |-----------------------------()A.0.2

|------------------------®A0.0

|------------------------®A0.1

SEGMENTO 2:

EO.1

----| |-----------------------------()A0.0

SEGMENTO 3:

E0.2

---|\|------------------------------()A.0.1

IN QUESTO CASO L'USCITA A0.1(ACCUSATA) RIMANE ALTA

SEGMENTO 1:

E0.2

---|\|------------------------------()A.0.1

SEGMENTO 2:

EO.1

----| |-----------------------------()A0.0

SEGMENTO 3:

E0.0

----| |-----------------------------()A.0.2

|------------------------®A0.0

|------------------------®A0.1

IN QUESTO CASO L'USCITA A0.1 RIMANE RESETTATA

come mai succede questo ? ho molta confusione

grazie mille ciao

Link al commento
Condividi su altri siti

Non si capiscono bene i disegni, la prossima volta usa il tasto codice [<>]

In ogni caso sul primo codice che hai messo, l'ultima istruzione è una assegnazione di A0.1 = E0.2 negato, quindi prenderà il valore negato di E0.2, se tu alimenti l'ingresso vedrai che andrà a 0.

Per capire come funziona immagina di essere tu la cpu e leggi le istruzioni partendo dal primo segmento e andando avanti...

Link al commento
Condividi su altri siti

scusa E0.2 è un contatto normalmente chiuso.

e mi scusò ancora per averè sbagliato a scrivere l'ingressi perché E 0.2 e comune con l'uscita A0.0 quindì E0.1 va sustituito da E 0.2 , io sul primo caso ho alimentato, e testato sul quadro, che e A0.1 non si resetta,

,mi viene da dire che la cpu la tiene accesa per il motivo che nel ultimo caso è accesa, è mi verrebbe da dire che( semprè nel primo caso) sè voglio resettarè l'uscita A0. 0 devo metterla prima del segmento 1

forsè ci sono arrivato:-) cè sè uso la stessa uscita la cpu applica l'ultimo stato logico all'interno del blocco, è quellö che prima hai cercato dì spiegarmi, graziè mille:-) ho ragione? Meglio tardi che mai:-)

Link al commento
Condividi su altri siti

forsè ci sono arrivato

Bene, a ogni modo spero siano solo esperimenti perchè non è un modo corretto di programmare...

Se non usi --(S) e --® l' uscita la devi assegnare solo una volta: --( ) !!!

Se usi --(S) e --® non usare anche --( ) per la stessa uscita !!!

ciao

Link al commento
Condividi su altri siti

an grazie mille per avermelo detto,, praticamente nel mio caso per scrivere lo stesso programma in un modo corretto al posto dì resettarè,con il reset , me la portò a 0 con dei contatti normalmente chiusi,

invece sè uso il reset per correttezza devo usare il set, è nel mio caso dovevo settare l'uscita A 0.0 è la A 0.1 per poi resettarla, graziè mille davvero graziè per l'aiuto:-)

Link al commento
Condividi su altri siti

Esempio di marcia/arresto con S/R

|   Pulsante_Start              Relè_Termico_ok            Motore
+-------[ ]---------------------------[ ]-------------------(S)
|
|      P_Stop                                              Motore
+-------[/]---------------+---------------------------------(R)
|                         |
|    Relè_Termico_ok      |
+-------[/]---------------+
|
|


Esempio di marcia/arresto con coil

|   Pulsante_Start    Pulsante_Stop    Relè_Termico_ok       Motore
+-------[ ]-------+--------[ ]-------------[ ]-----------------( )
|                 |
|    Motore       |
+-------[ ]-------+
|
|

n.b. nei due esempi il pulsante stop è invertito perchè di solito si collega un pulsante NC sull'ingresso, così se si rompe il filo il motore si ferma.

Link al commento
Condividi su altri siti

capito jump man graziè mille :-) sono tuttè nozioni nuove per me queste, è ti sono veramente grato per questo, le imparo molto volentieri:-):-)

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