gtsolid Inserito: 23 gennaio Segnala Share Inserito: 23 gennaio CIAO, sto sviluppando un piccolo programma per gestire questo tipo di lubrificazione, In sintesi: 0. Solo al primo avvio (I7.7=1 da MCP): L'unità idraulica funziona per 30" (uscita Q42.5=1 per 30"). 1. Inizio del ciclo: Q42.5 funziona finché I34.3 è =1 per 5". Qui Q42.5 si ferma fino alla fine del ciclo (480" dall'inizio di 1.) 2. Ciclo 1 che si ripete all'infinito Condizione per la quale ho allarmi: 1. il livello dell'olio nel serbatoio è sempre superiore ad un certo livello (ingresso I34.4=1). 2. la pressione e la portata d'aria sono superiori ad un certo livello (ingressi I37.0=1 e I37.1=1). Se I37.0=0 per 8" dall'inizio ciclo ==> errore (Q42.5=0 per sicurezza); Se I37.0=0 per 3" durante il ciclo ==> errore (Q42.5=0 per sicurezza) Come svilupparlo in SCL? Utilizzerei una FC per farlo. Il mio piano era di utilizzare un timer TON per essere attivo nei primi 30" ma poi non so come mantenere un ciclo Link al commento Condividi su altri siti More sharing options...
batta Inserita: 23 gennaio Segnala Share Inserita: 23 gennaio 3 ore fa, gtsolid ha scritto: Utilizzerei una FC per farlo Più che una FC, direi una FB, in modo da utilizzare variabili STAT in pancia alla funzione stessa. Ma perché in SCL? SCL è meraviglioso per certe cose, ma non per tutto. Per "mantenere un ciclo" utilizzi una variabile (anche booleana) che imposti TRUE quando ci sono le condizioni per iniziare il ciclo, ed imposti FALSE quando ci sono le condizioni per terminare il ciclo (allarmi o ciclo finito). Link al commento Condividi su altri siti More sharing options...
gtsolid Inserita: 24 gennaio Autore Segnala Share Inserita: 24 gennaio Grazie, ci sto provando ma sono un po' frustrato perche' i video su YouTube sono abbastanza didattici, non saprei come impostare. Cosa intendi per STAT in pancia? Volevo usare SCL perche', dato che devo imparare, tanto vale impratichirsi sullo strumento piu' potente. Come lo avete imparato voi? Questo mi sembra buono per il mio caso: 1.2.8. State machine — Automation notes 0.9.1 documentation (abedgnu.github.io) Link al commento Condividi su altri siti More sharing options...
drn5 Inserita: 24 gennaio Segnala Share Inserita: 24 gennaio Sono le variabili statiche, quelle che mantengono il loro valore durante chiamate diverse a differenza delle Temporanee che vengono reinizializzate ad ogni chiamata. Le trovi nelle dichiarazioni del blocco assieme a input, output, inout, temporanee. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 25 gennaio Segnala Share Inserita: 25 gennaio (modificato) 14 ore fa, gtsolid ha scritto: Cosa intendi per STAT in pancia? Prima di cimentarsi con la scrittura del codice, si deve studiare la bestia che si vuole domare. In una FC puoi dichiarare variabili INPUT, OUTPUT, IN_OUT e TEMP. Le TEMP hanno vita solo all'interno della funzione e, una volta usciti dalla funzione, perdono il valore eventualmente acquisito. In una FB in più ci sono le STAT che, come dice il nome, sono variabili "statiche". Quando richiami una FB devi associare un DB di istanza (la stessa FB può essere richiamata più volte con DB di istanza diversi), e le variabili STAT (non solo quelle, ma non mi voglio dilungare) vendono scritte nel DB e, quindi, mantengono il valore. 14 ore fa, gtsolid ha scritto: tanto vale impratichirsi sullo strumento piu' potente Chi ha detto che sia il più potente? È sicuramente il migliore per calcoli e per gestione dati ma, per una sequenza dove basta la logica booleana, se chiedi in giro, vedrai che in tantissimi ti risponderanno che è meglio il vecchio ladder. Programmare bene significa anche scegliere il linguaggio giusto per ogni compito. Inoltre, anche fosse vero che SCL sia migliore, ti imbatterai sempre in programmi con tanto ladder e, quindi, non puoi saltare questo linguaggio. E, visto che è il più intuitivo, io direi di partire con il ladder. Quando avrai preso dimestichezza con il ladder, passa a SCL. Modificato: 25 gennaio da batta Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 25 gennaio Segnala Share Inserita: 25 gennaio 17 ore fa, gtsolid ha scritto: Grazie, ci sto provando ma sono un po' frustrato perche' i video su YouTube sono abbastanza didattici, non saprei come impostare. Cosa intendi per STAT in pancia? Volevo usare SCL perche', dato che devo imparare, tanto vale impratichirsi sullo strumento piu' potente. Come lo avete imparato voi? Questo mi sembra buono per il mio caso: 1.2.8. State machine — Automation notes 0.9.1 documentation (abedgnu.github.io) Gli stati si gestiscono efficientemente in KOP o linguaggi "simbolici". Scorrere righe e righe di SCL per sapere in che stato o modo è la macchina è poco funzionale... Link al commento Condividi su altri siti More sharing options...
gtsolid Inserita: 27 gennaio Autore Segnala Share Inserita: 27 gennaio Ok, diciamo che ho un primo stato di caricamento in cui un'uscita e' ON per 30". Poi parte un secondo stato (che dura circa 8'). L'uscita (la pompa) manda olio e la pressione nell'impianto cresce. La pompa si stacca 5" dopo che un pressostato mi legge una certa pressione, questo avviene dopo circa 30" dall'inizio del II stato. Finiti gli 8' il secondo stato si ripete. Avendo un S7-300 devo usare Timer vetusti. Ho imbastito come sotto, cosa ne pensate e come lo sviluppereste? Link al commento Condividi su altri siti More sharing options...
Simone.Salarsi Inserita: 27 gennaio Segnala Share Inserita: 27 gennaio Prima di suggerirti come sviluppare il codice, ti invito a leggere l'. dei vari blocchi che stai utilizzando per capire come "funzionano le funzioni". Partendo dal segmento 2, P_TRIG non è utilizzato in maniera corretta. In primo luogo non stai verificando lo stato del RLO sull'ingresso CLK. TIA Portal riporta un errore in fase di compilazione. Inoltre stai utilizzando come "merker del fronte" una memoria già utilizzata al ramo precedente, cosa che non è permessa. O per meglio dire, puoi farlo e non ti verrà riportato alcune errore di compilazione ma poi i risultati ottenuti saranno falsati. Proseguendo, ammetto poi di aver avuto necessità di leggere anche io l'. e provare con il simulatore il timer S_ODTS ( per i tedescofili S_SEVERZ) che non avevo mai utilizzato. Questo timer a quanto pare necessita di un reset per azzerarsi, altrimenti una volta trascorso il tempo impostato l'uscita rimarrà alta per sempre ( come nel tuo caso). Attenzione anche se sull'ingresso S viene rilevato un nuovo cambio di stato 0->1 prima che sia trascorso tutto il tempo, il timer ricomincia a contare dall'inizio. Detto questo rinnovo l'invito a leggere manuali e la guida in linea e sfruttare il simulatore. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 27 gennaio Segnala Share Inserita: 27 gennaio 1 ora fa, Simone.Salarsi ha scritto: Detto questo rinnovo l'invito a leggere manuali e la guida in linea e sfruttare il simulatore. Mi associo. Link al commento Condividi su altri siti More sharing options...
gtsolid Inserita: 27 gennaio Autore Segnala Share Inserita: 27 gennaio Sto cercando di fare dei test sul PLCSIM V17. Noto non esserci S7-300, c'e' un modo per aggiungerlo? Link al commento Condividi su altri siti More sharing options...
batta Inserita: 27 gennaio Segnala Share Inserita: 27 gennaio Per il simulatore del 300 devi installare Step 7- Simatic Manager. Ma perché vuoi usare il 300? Link al commento Condividi su altri siti More sharing options...
gtsolid Inserita: 29 gennaio Autore Segnala Share Inserita: 29 gennaio (modificato) Eh, ho quello disponibile. Attualmente sto usando TIA col 300. Lo step7 lo usavo per programmare, non per simulare. Fa anche da simulatore? Modificato: 29 gennaio da gtsolid Link al commento Condividi su altri siti More sharing options...
Simone.Salarsi Inserita: 29 gennaio Segnala Share Inserita: 29 gennaio non ho il simulatore del V17, ma con la V18 ( senza avere simatic manager installato) non ho problemi a simulare un 300 Hai avviato direttamente PLCSim dal suo eseguibile ? Se si, prova invece ad aprire il progetto in Tia e premere il tasto alla destra dell'upload (quello che ho evidenziato nell'img) Link al commento Condividi su altri siti More sharing options...
batta Inserita: 29 gennaio Segnala Share Inserita: 29 gennaio 5 ore fa, gtsolid ha scritto: Fa anche da simulatore? Certo che sì. E, se non sbaglio, una volta installato il Simatic Manager (con PLC Sim), il simulatore lo lanci anche da TIA. In quanto al "programmare il 300 perché hai un 300", per imparare non ti serve il PLC, ti basta il simulatore. Quindi, io mi concentrerei sulla serie 1200/1500. Link al commento Condividi su altri siti More sharing options...
gtsolid Inserita: 30 gennaio Autore Segnala Share Inserita: 30 gennaio Il 29/1/2024 alle 08:25 , Simone.Salarsi ha scritto: Hai avviato direttamente PLCSim dal suo eseguibile ? Vedo questa finestra, ma non mi chiede come impostare il 300. Inoltre e' su "STOP" Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 30 gennaio Segnala Share Inserita: 30 gennaio Quella è la finestra dell'S7 PLCSIM ergo è il simulatore del 300. Non Va impostato, sta già simulando una CPU S7-300, tramite interfaccia TCP/IP simulata. In basso a destra vedi: Indirizzo MPI simulato=2, indirizzo IP simulato=192.168.0..... praticamente sono l'indirizzo Profibus e IP della CPU 300 che stai simulando. Link al commento Condividi su altri siti More sharing options...
Simone.Salarsi Inserita: 30 gennaio Segnala Share Inserita: 30 gennaio metti tu manualmente la spunta su run e vedrai che parte Link al commento Condividi su altri siti More sharing options...
gtsolid Inserita: 1 febbraio Autore Segnala Share Inserita: 1 febbraio (modificato) Sto avendo questo problema. Il software gira in macchina ma non nel simulatore. Avete suggerimenti? Nell'hw vedo dispositivi "not reachable", ma non dovrebbero essere simulati? Modificato: 1 febbraio da gtsolid 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