unicleid Inserito: 24 febbraio 2012 Segnala Share Inserito: 24 febbraio 2012 Buongiorno a tutti,mi trovo a convertire un programma LADDER di un vecchio AEG Gould 884 verso un PLC AB Controllogix. Vi linko tre pagine di codice http://uploading.com/files/m899bm1a/GOULD%2B884.pdf/ dove trovo serie difficoltà a capire il flusso logico. Con AB ho sempre ragionato "logicamente" da sinistra verso destra e davanti ai punti evidenziati nell'allegato non riesco a darmi una spiegazione. Qualcuno che conosce questo vecchio PLC potrebbe p.es. chiarirmi da chi è "accesa" la bobina P_1_ARR_R1 nella seconda pagina? Che seneso ha quel ZSH_021 messo in quel modo? Mi farebbe piacere capire in generale quali regole si applicano in questo particolare PLC nella gestione dei rami.Grazie a tutti,Uniclied Link al commento Condividi su altri siti More sharing options...
Lucky67 Inserita: 24 febbraio 2012 Segnala Share Inserita: 24 febbraio 2012 Anche questo mi pare che vada nel senso tradizionale da sinistra verso destra...il problema è che è molto disordinato e difficile da leggere forse frutto di molti rimaneggiamenti. Per quanto riguarda il ZSH_021 mi pare molto molto improbabile che l'interprete abbia accettato quel ramo al momento del download al plc. Secondo me la stampata non corrisponde a quello che cìè inmemoria. potrebbe essere in parallelo con STOP_REM o attaccato a PSL_033. Questo però lo puoi verificare solo tu conoscendo la logica impianto. Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 29 febbraio 2012 Segnala Share Inserita: 29 febbraio 2012 il PLC 884 come tutti i vecchi Modicon esegue scansioni verticali per colonna e non per riga Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 29 febbraio 2012 Segnala Share Inserita: 29 febbraio 2012 (modificato) l'ingresso zsh_021 nel segmento 3, network 93 non fa nulla, è semplicemente messo lì a vuoto probabilmente per una dimenticanza (ma è ininfluente) oppure per convenienza durante il commissioning o per la manutenzione (spesso attraverso lo stesso software di programmazione si eseguiva la supervisione e la manutenzione).Per luckyquei PLC ed il SW di sviluppo non poneva troppi limiti per cui permette anche righe senza uscite oppure di mettere contatti totalmente slegati (in mezzo al foglio di lavoro) Modificato: 29 febbraio 2012 da rddiego Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 29 febbraio 2012 Segnala Share Inserita: 29 febbraio 2012 P_1_arr_r1 si attiva se P-1_riemp è attivo per tutto il tempo ed allo scadere di TT-24, e si autoritiene per il tempo TT_29 scaduto il quale passa al passo seuccessivo Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 29 febbraio 2012 Segnala Share Inserita: 29 febbraio 2012 (modificato) P_1ar_tra è attivato il ciclo successivo all'attivazione di P_1_r1_tra e si disattiva solo dopo il tempo TT_27 e senza più il basso livello LSL_045 oppure senza più essere al Passo 4 della sequenza Modificato: 29 febbraio 2012 da rddiego Link al commento Condividi su altri siti More sharing options...
unicleid Inserita: 29 febbraio 2012 Autore Segnala Share Inserita: 29 febbraio 2012 Grazie rddiego, ma ancora mi sfugge la logica di ragionamento. Ok per il discorso ZSH_021, ma ancora non mi è chiaro in che direzione viaggia il flusso logico.Cerco di farmi capire: se io parto da P_1_RIEMP del network 93 vedo che mi attiva il timer TT24, la cui uscita (allo scadere del tempo scritto nel registro 41121) in serie con il parallelo dei negati di PSL_033 e ZSH_024 attiva P_1_ARR_R1. Innanzitutto ti chiedo di confermarmi se questa prima parte ti risulta corretta.Poi sempre partendo da P_1_RIEMP potrei andare in serie al negato di PSL_031 per attivare P_1_ARR_R1? Cioè si può "scendere" e "salire"?Ti sarei grato se risucissi a spiegarmi in linea di principio quale ragionamento fare per capire questo codice (che per moltissimi network è assimilabile al "solito" ladder, ma che in alcuni come quelli allegati mi porta fuori strada).Grazie mille,Unicleid Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 29 febbraio 2012 Segnala Share Inserita: 29 febbraio 2012 (modificato) quello che dici è corretto anche se impropriamente dici "scendere e salire".Il flusso logico scorre da sinistra verso destra e può essere sviluppato su 7 righe (x 11 colonne). (Andare su e giù è la normale rappresentazione degli OR).La particolarità sta nella scansione di questo codice da parte del processore. La scansione è verticale partendo da sinsitra verso destra. Tradotto in coordinate la scansione avverrebbe così=R1C1R2C1R3C1R4C1R5C1R6C1R7C1R1C2R2C2R3C2R4C2R5C2R6C2R7C2R1C3...R7C11L'esempio più classico per capire la differenza tra questo sistema ed il Ladder di AB (ma anche gli altri maggiori) è il seguente:prova a scrivere un semplice fronte di salita nel ladder "con scansione orizzontale"Riga 1 -> A e Non B = CRiga 2 -> A = BAppena A =1 C diventa 1 poi B diventa 1 ed il ciclo successivo C ritorna =0Invece nel LL884 facciamo tre possibili casi:(se B e Non B sono nella Colonna 2) Appena A =1 B diventa 1 poi C diventa 1 ed il ciclo successivo C ritorna =0(se B è nella colonna dopo Non ' Appena A =1 C diventa 1 poi B diventa 1 ed il ciclo successivo C ritorna =0(se B è nella colonna prima di Non ' Appena A =1 B diventa 1 ma C rimarrà sempre =0 Modificato: 29 febbraio 2012 da rddiego Link al commento Condividi su altri siti More sharing options...
unicleid Inserita: 29 febbraio 2012 Autore Segnala Share Inserita: 29 febbraio 2012 Grazie mille, il discorso della scansione verticale e il tuo esempio mi sono chiari.Ancora però non mi sembra del tutto chiaro come si interpretano tutte queste intersezioni di rami (che in AB non si possono fare).Ripartendo da P_1_RIEMP abbiamo assodato che:- se P_1_RIEMP è vera mi attiva il timer TT24, la cui uscita (allo scadere del tempo scritto nel registro 41121) in serie con il parallelo dei negati di PSL_033 e ZSH_024 attiva P_1_ARR_R1- se P_1_RIEMP è vera in serie al negato di PSL_031 attiva P_1_ARR_R1Ora secondo questa logica dovrebbe essere anche che:- se P_1_RIEMP è vera e STOP_RIEMP è vera si attiva P_1_ARR_R1 (in sostanza STOP_RIEMP è in parallelo a non PSL_031)Però a questo punto potrei anche partire dalla riga 7 e dalla serie P_1_ARR_R1 e non P_2_ARR_R1 e se questa serie è vera potrei "risalire" fino a P_1_ARR_R1 che si attiverebbe anche in questo caso.In sostanza è come se in AB avessi la riga 7 in parallelo sulla colonna 2?Grazie mille e ancora per la tua pazienza :-)Ciao Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 29 febbraio 2012 Segnala Share Inserita: 29 febbraio 2012 (modificato) Questo P_1_ARR_R1 dalle descrizioni sembra descrivere l'arresto della fase di riempimento della fase 1.Se l'impianto è in fase di riempimento P_1_RIEMP, si dovrà arrestare (questa fase di riempimento) per questi motivi:1) se premo stop STOP_RIEM2) se la pressione PSL031 è in allarme di bassa pressione3) se, dopo un certo tempo TT_24, la pressione PSL033 è ancora in allarme oppure la valvola 24 è ancora chiusa. (n.b. che dico "ancora" perchè il ritardo mi fa presupporre che al momento dell'attivazione di P_1_RIEMP queste due condizione siano nello stato di fermare immediatamente l'impianto e quindi serve un tempo di ritardo per permettere alla valvola 24 di aprirsi completamente ed alla pressione di portarsi al livello normale di lavoro)le condizioni 1), 2) e 3) sono indipendenti ed in OR tra di loro (una qualsiasi di quelle attiva l'arresto.. in breve un comando di stop, uno stato non corretto dell'impianto = la valvola chiusa, e due allarmi di bassa pressione)la riga 7 non è niente altro che l'auto ritenuta della fase di arresto e cioè una volta attivata la fase di arresto P_1_ARR_R1, questa deve rimanere attiva (dovrà dare il tempo di arrestare, svuotare, chiudere non so..) per tutto il tempo TT_29.Appena TT_29 scade si passa alla fase 2 dell'arresto interrompendo questa. L'autoritenuta serve perchè le condizioni che attivano la sequenza d'arresto P_1_ARR_R1 sono di breve durata.In sostanza è come se in AB avessi la riga 7 in parallelo sulla colonna 2?Con AB tu ti costruirai un unico RUNG dove la riga 7 è in OR a tutto quanto sopra. Per fare più pulito il tempo TT_29 lo metterei su un altro RUNG. Modificato: 29 febbraio 2012 da rddiego 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