gtsolid Posted January 23, 2024 Report Posted January 23, 2024 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
batta Posted January 23, 2024 Report Posted January 23, 2024 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).
gtsolid Posted January 24, 2024 Author Report Posted January 24, 2024 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)
drn5 Posted January 24, 2024 Report Posted January 24, 2024 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.
batta Posted January 25, 2024 Report Posted January 25, 2024 (edited) 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. Edited January 25, 2024 by batta
dina_supertramp Posted January 25, 2024 Report Posted January 25, 2024 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...
gtsolid Posted January 27, 2024 Author Report Posted January 27, 2024 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?
Simone.Salarsi Posted January 27, 2024 Report Posted January 27, 2024 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.
batta Posted January 27, 2024 Report Posted January 27, 2024 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.
gtsolid Posted January 27, 2024 Author Report Posted January 27, 2024 Sto cercando di fare dei test sul PLCSIM V17. Noto non esserci S7-300, c'e' un modo per aggiungerlo?
batta Posted January 27, 2024 Report Posted January 27, 2024 Per il simulatore del 300 devi installare Step 7- Simatic Manager. Ma perché vuoi usare il 300?
gtsolid Posted January 29, 2024 Author Report Posted January 29, 2024 (edited) Eh, ho quello disponibile. Attualmente sto usando TIA col 300. Lo step7 lo usavo per programmare, non per simulare. Fa anche da simulatore? Edited January 29, 2024 by gtsolid
Simone.Salarsi Posted January 29, 2024 Report Posted January 29, 2024 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)
batta Posted January 29, 2024 Report Posted January 29, 2024 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.
gtsolid Posted January 30, 2024 Author Report Posted January 30, 2024 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"
dina_supertramp Posted January 30, 2024 Report Posted January 30, 2024 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.
Simone.Salarsi Posted January 30, 2024 Report Posted January 30, 2024 metti tu manualmente la spunta su run e vedrai che parte
gtsolid Posted February 1, 2024 Author Report Posted February 1, 2024 (edited) 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? Edited February 1, 2024 by gtsolid
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now