coquinati Inserito: 16 ottobre 2013 Segnala Share Inserito: 16 ottobre 2013 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 More sharing options...
Lucky67 Inserita: 16 ottobre 2013 Segnala Share Inserita: 16 ottobre 2013 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 More sharing options...
coquinati Inserita: 16 ottobre 2013 Autore Segnala Share Inserita: 16 ottobre 2013 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 More sharing options...
JumpMan Inserita: 16 ottobre 2013 Segnala Share Inserita: 16 ottobre 2013 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 More sharing options...
coquinati Inserita: 17 ottobre 2013 Autore Segnala Share Inserita: 17 ottobre 2013 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 More sharing options...
JumpMan Inserita: 18 ottobre 2013 Segnala Share Inserita: 18 ottobre 2013 (modificato) 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: 18 ottobre 2013 da JumpMan Link al commento Condividi su altri siti More sharing options...
coquinati Inserita: 19 ottobre 2013 Autore Segnala Share Inserita: 19 ottobre 2013 ora ho capito tutto grazie mille . 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): bel casino è=)=) Link al commento Condividi su altri siti More sharing options...
coquinati Inserita: 21 ottobre 2013 Autore Segnala Share Inserita: 21 ottobre 2013 (modificato) 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: 21 ottobre 2013 da coquinati Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 21 ottobre 2013 Segnala Share Inserita: 21 ottobre 2013 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 More sharing options...
coquinati Inserita: 21 ottobre 2013 Autore Segnala Share Inserita: 21 ottobre 2013 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 More sharing options...
JumpMan Inserita: 21 ottobre 2013 Segnala Share Inserita: 21 ottobre 2013 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 More sharing options...
coquinati Inserita: 21 ottobre 2013 Autore Segnala Share Inserita: 21 ottobre 2013 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 1forsè 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 More sharing options...
JumpMan Inserita: 22 ottobre 2013 Segnala Share Inserita: 22 ottobre 2013 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 More sharing options...
coquinati Inserita: 22 ottobre 2013 Autore Segnala Share Inserita: 22 ottobre 2013 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 More sharing options...
JumpMan Inserita: 22 ottobre 2013 Segnala Share Inserita: 22 ottobre 2013 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 More sharing options...
coquinati Inserita: 22 ottobre 2013 Autore Segnala Share Inserita: 22 ottobre 2013 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 More sharing options...
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