antho Inserito: 8 marzo 2023 Segnala Share Inserito: 8 marzo 2023 Buongiorno a tutti! ho una linea industriale rotoli con un Siemens S7-400 come Plc e un Robox come controllo assi. Sull' Hmi ho in visualizzazione i metri di carta avvolti (valore istantaneo, Dbw passata dal Robox e non gestibile da Plc) che si resettano ogni volta che la macchina fa lo scambio. Avrei bisogno di usare questo valore per fare una sommatoria infinita per arrivare al numero totale di metri di carta consumati, che non si resetti neanche con lo spegnimento della macchina. Ho cercato tra le varie funzioni ma non riesco a trovare niente con la memoria che possa essermi utile per il lavoro. Avete qualche idea? Grazie Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 8 marzo 2023 Segnala Share Inserita: 8 marzo 2023 5 ore fa, antho ha scritto: Siemens S7-400 come Plc e un Robox Robox suscita ricordi di gioventù, era un controllo molto performante basato su micro inttel. Comunque, se non ricordo male, il 400 dovrebbe avere un'area di memoria ritentiva, baste che memorizzi il risultato della somma in quell'area. Link al commento Condividi su altri siti More sharing options...
mc1988 Inserita: 8 marzo 2023 Segnala Share Inserita: 8 marzo 2023 Ciao, come avviene la misura della lunghezza di avvolgimento? Link al commento Condividi su altri siti More sharing options...
antho Inserita: 8 marzo 2023 Autore Segnala Share Inserita: 8 marzo 2023 Ricordi di gioventu'? Sei mica nativo di Lucca?:) So che il Robox era molto usato soprattutto in queste zone nel settore cartario. Riguardo alla memoria ritentiva c'è ma riguarda i Merker e i Timer. Perlomeno è quella che ho trovato io, una inerente in cui posso andare a scrivere o a muovere il dato dei metri non riesco a trovarla. Link al commento Condividi su altri siti More sharing options...
antho Inserita: 8 marzo 2023 Autore Segnala Share Inserita: 8 marzo 2023 Ciao mc1988, avviene tramite un encoder ma come ti dicevo e' gestito dal robox e noi non possiamo toccarlo. Link al commento Condividi su altri siti More sharing options...
p.fabio Inserita: 8 marzo 2023 Segnala Share Inserita: 8 marzo 2023 Per la memoria ritentiva crea una nuova DB con dentro le variabili che ti servono. Le DB del 300/400 sono ritentive Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 8 marzo 2023 Segnala Share Inserita: 8 marzo 2023 19 minuti fa, antho ha scritto: Sei mica nativo di Lucca? No Robox è (era?) una piccola azienda della provincia di Novara, ma appena ad Ovest del Ticino, vicinissima a Varese (dove vivo). Nel 1987 o 1988 (non ricordo bene) ero impiegato in un'azienda che aveva un accordo con Robox e trascorsi circa un meso da loro; poi sino ad un ventina di anni fa avevo ancora sporadici contatti con quelcuno di loro. Il 400 l'ho usato poco, inoltre son più di 20 anni che non mi occupo di PLC, però ricordo che c'erano DB ritentivi. Devi solo crearti un DB dove memorizzare i tuoi dati. Link al commento Condividi su altri siti More sharing options...
antho Inserita: 8 marzo 2023 Autore Segnala Share Inserita: 8 marzo 2023 Si' ma io non riesco a "congelare" il valore durante il funzionamento. Cercando di essere piu' chiaro: con l' ADD I addiziono la DBW10 (quella che mi passa il robox) ad esempio con zero e in uscita metto la DBW20 che invece mi rappresenta i metri totali. Pero' una volta che la macchina scambia e la DBW10 mi torna a zero va a zero anche la DBW20. Magari esiste un passaggio semplice che non faccio e non ne sono a conoscenza: io sono in manutenzione e faccio piu' che altro diagnostica, ho dei limiti nella programmazione Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 8 marzo 2023 Segnala Share Inserita: 8 marzo 2023 10 minuti fa, antho ha scritto: Magari esiste un passaggio semplice che non faccio Come ti è stato detto devi crearti un DB ad hoc ed assicurarti che sia in area ritentiva o che sia stato spuntata l'opzione per la ritentività. Non so essere più preciso perchè non ricordo più i dettagli di come si opera sul 400 ( ma anche su altri PLC). Link al commento Condividi su altri siti More sharing options...
drn5 Inserita: 8 marzo 2023 Segnala Share Inserita: 8 marzo 2023 (modificato) if valorerobot = 0 then if flag = FALSE then totale = totale + ultimo flag = TRUE end_if else ultimo = valorerobot totaleistantaneo = totale + ultimo flag = FALSE end_if con gli opportuni ; : o quantaltro serva valorerobot è quello che ti passa il robot totale sarà ritentivo totaleistantaneo può anche non essere ritentivo totale si aggiorna solo quando il robot rimette a 0 il suo conteggio totaleistantaneo è istantaneo lo so che potevo fare di meglio ma mi aspetta cena.... ciao Modificato: 8 marzo 2023 da drn5 Link al commento Condividi su altri siti More sharing options...
mc1988 Inserita: 9 marzo 2023 Segnala Share Inserita: 9 marzo 2023 8 ore fa, antho ha scritto: avviene tramite un encoder ma come ti dicevo e' gestito dal robox e noi non possiamo toccarlo. Ipotetica soluzione alternativa (senza fare modifiche o intrugli strani sulla parte Robox): contare gli impulsi forniti dall'encoder, se è possibile farlo, sommarli e memorizzarli. Dividendo il numero di impulsi per la risoluzione dell'encoder ottieni il numero di giri compiuti. Devi poi misurare, o calcolare, la lunghezza di avvolgimento corrispondente a un giro encoder. Una volta saputo questo valore, ti basta moltiplicarlo per il numero di giri totali fatti per avere la lunghezza totale avvolta. In questo modo puoi "trasdurre" l'uscita dell'encoder (impulsi) in un valore corrispondente ad una grandezza fisica (lunghezza). Ciao mc1988 Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 9 marzo 2023 Segnala Share Inserita: 9 marzo 2023 3 ore fa, mc1988 ha scritto: potetica soluzione alternativa (senza fare modifiche o intrugli strani sulla parte Robox): contare gli impulsi forniti dall'encoder, se è possibile farlo, sommarli e memorizzarli. Ha già tutto nel PLC deve solo memorizzare la somma incrementale in un'area ritentiva. Link al commento Condividi su altri siti More sharing options...
antho Inserita: 9 marzo 2023 Autore Segnala Share Inserita: 9 marzo 2023 Ciao mc1988, no, non ho il dato, e non posso ricavarlo, degli impulsi contati dall' encoder. Il dato che ho sono i metri istantanei e devo elaborarlo in qualche modo col Plc. Link al commento Condividi su altri siti More sharing options...
antho Inserita: 9 marzo 2023 Autore Segnala Share Inserita: 9 marzo 2023 19 ore fa, drn5 ha scritto: if valorerobot = 0 then if flag = FALSE then totale = totale + ultimo flag = TRUE end_if else ultimo = valorerobot totaleistantaneo = totale + ultimo flag = FALSE end_if con gli opportuni ; : o quantaltro serva valorerobot è quello che ti passa il robot totale sarà ritentivo totaleistantaneo può anche non essere ritentivo totale si aggiorna solo quando il robot rimette a 0 il suo conteggio totaleistantaneo è istantaneo lo so che potevo fare di meglio ma mi aspetta cena.... ciao L' S7-400 pero' non utilizza ST come linguaggio bensi' KOP o AWL. E' possibile convertire cio' che hai scritto in suddetti linguaggi? Link al commento Condividi su altri siti More sharing options...
batta Inserita: 9 marzo 2023 Segnala Share Inserita: 9 marzo 2023 (modificato) 21 ore fa, antho ha scritto: con l' ADD I addiziono la DBW10 (quella che mi passa il robox) ad esempio con zero e in uscita metto la DBW20 che invece mi rappresenta i metri totali. Pero' una volta che la macchina scambia e la DBW10 mi torna a zero va a zero anche la DBW20 Direi che non ci si può aspettare nulla di diverso. Se sommi zero al valore di DBW10, il risultato sarà sempre il valore di DWB10. È su quello "zero" che devi agire! Questa è la variabile che deve essere ritentiva (se è la variabile di un DB, di default è già ritentiva). Una variabile nella quale memorizzare i metri precedentemente fatti. Supponiamo che questa variabile sia la DBW24 (di un non meglio identificato DB). Devi capire qual è l'evento che ti azzera la DBW10 e, subito prima di azzerare la DBW10, devi sommare al valorea attuale di DBW24 il valore di DBW10, e mettere il risultat ancora in DBW24 (incrementi DBW24 del valore di DBW10). Poi, nella DBW20, metti la somma tra DBW24 (metri memorizzati) e DW10 (metri in corso). Se l'unico od che hi per ccorgerti dello scambio è la DBW10 che ritorna a zero, devi usare una strategia leggermente diversa. Supponiamo sempre che DBW24 sia la tua variabile di memoria metri fatti, DBW20 ls somma tra metri memorizzati e metri in corso, e DBW10 i metri in corso che ti arrivano da Robox. Sommi in continuo DBW24 + DBW10 e metti il risultato in DBW20. Nell'istante in cui DBW10 ritorna a zero, prima di fare la somma di cui sopra, copi DBW20 in DBW24. Modificato: 9 marzo 2023 da batta Link al commento Condividi su altri siti More sharing options...
p.fabio Inserita: 9 marzo 2023 Segnala Share Inserita: 9 marzo 2023 // Calcolo variazione dall'ultima scansione L DB(ROBOX).DBWxx // Contametri da ROBOX L DBx.DBW0 // memo contatore ROBOX -I T DBx.DBW2 // variazione dall'ultima scansione L DB(ROBOX).DBWxx // Contametri da ROBOX T DBx.DBW0 // memo contatore ROBOX //Incremento il contatore U( L DBx.DBW2 // variazione dall'ultima scansione L 0 >I ) SPBN M000 L DBx.DBD4 // Contatore generale L DBx.DBW2 // variazione dall'ultima scansione +D T DBx.DBD4 // Contatore generale M000: nop 0 Puoi farlo girare a tempo ciclo o ogni secondo. Ogni volta calcola la differenza dall'ultima scansione di programma. se è positiva la somma al contatore generale. Anche se il contatore è un doppio intero a seconda della velocita della macchina fra qualche hanno potrebbe resettarsi Link al commento Condividi su altri siti More sharing options...
antho Inserita: 10 marzo 2023 Autore Segnala Share Inserita: 10 marzo 2023 Il 9/3/2023 alle 15:32 , batta ha scritto: Direi che non ci si può aspettare nulla di diverso. Se sommi zero al valore di DBW10, il risultato sarà sempre il valore di DWB10. È su quello "zero" che devi agire! Questa è la variabile che deve essere ritentiva (se è la variabile di un DB, di default è già ritentiva). Una variabile nella quale memorizzare i metri precedentemente fatti. Supponiamo che questa variabile sia la DBW24 (di un non meglio identificato DB). Devi capire qual è l'evento che ti azzera la DBW10 e, subito prima di azzerare la DBW10, devi sommare al valorea attuale di DBW24 il valore di DBW10, e mettere il risultat ancora in DBW24 (incrementi DBW24 del valore di DBW10). Poi, nella DBW20, metti la somma tra DBW24 (metri memorizzati) e DW10 (metri in corso). Se l'unico od che hi per ccorgerti dello scambio è la DBW10 che ritorna a zero, devi usare una strategia leggermente diversa. Supponiamo sempre che DBW24 sia la tua variabile di memoria metri fatti, DBW20 ls somma tra metri memorizzati e metri in corso, e DBW10 i metri in corso che ti arrivano da Robox. Sommi in continuo DBW24 + DBW10 e metti il risultato in DBW20. Nell'istante in cui DBW10 ritorna a zero, prima di fare la somma di cui sopra, copi DBW20 in DBW24. Implementato e funzionante. Grazie! E' la seconda volta che mi sei molto di aiuto, se passi da Lucca fammi sapere che hai un aperitivo pagato. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 10 marzo 2023 Segnala Share Inserita: 10 marzo 2023 2 ore fa, antho ha scritto: Implementato e funzionante. Grazie! E' la seconda volta che mi sei molto di aiuto, se passi da Lucca fammi sapere che hai un aperitivo pagato. Felice di esserti stato di aiuto. Anche il metodo proposto da @p.fabio funziona. Link al commento Condividi su altri siti More sharing options...
antho Inserita: 30 marzo 2023 Autore Segnala Share Inserita: 30 marzo 2023 Il 10/3/2023 alle 21:03 , batta ha scritto: Felice di esserti stato di aiuto. Anche il metodo proposto da @p.fabio funziona. Il suggerimento che mi hai hai dato come ti ho scritto è funzionante ma soltanto se al posto dei metri istantanei uso gli scambi macchina e moltiplico il valore uscente per il numero di metri richiesti per ciascuno scambio. Avrei bisogno pero' di un valore piu' preciso perche' in questo modo mi vanno persi i metri della steccata in corso. Mi spiego meglio: la macchina ad esempio mi scambia ogni 100 metri ma io voglio avviare la lubrificazione ogni 550: fino a 500 con il calcolo sovra descritto riesco a sommare ma se metto un comparatore per avviarla con 550 questo mi esegue la funzione allo scambio successivo, ossia a 600 metri, e perdo 50 metri di carta nel calcolo. Per cui avrei bisogno come ti ho detto di farlo direttamente coi metri ma non mi funziona. Ho messo in allegato gli screenshot dei segmenti della parte di programma che ho fatto (usando i metri)i darci un' occhiata e magari mi dici dove sbaglio? Grazie Link al commento Condividi su altri siti More sharing options...
batta Inserita: 31 marzo 2023 Segnala Share Inserita: 31 marzo 2023 Devi descrivere meglio cosa sono le variabili e da dove arrivano. Link al commento Condividi su altri siti More sharing options...
antho Inserita: 3 aprile 2023 Autore Segnala Share Inserita: 3 aprile 2023 (modificato) Il 31/3/2023 alle 09:12 , batta ha scritto: Devi descrivere meglio cosa sono le variabili e da dove arrivano. M178.1 Ciclo di lubrificazione che deve essere attivato a un tot di metri e durante il quale non deve essere effettuato il conteggio dei metri stessi DB56.DBW92 Numero di metri istantanei log fatti dalla macchina che arrivano dal Robox DB56.DBW70 Variabile di memoria metri fatti DB56.DBW224 Somma tra metri memorizzati e metri in corso DB56.DBW124 Numero di metri richiesti per ogni log da scheda di produzione DB56.DBW256 Numero di metri inizio finestra da prendere come riferimento prima che la DBW92 torni a zero. Quota Modificato: 3 aprile 2023 da antho Link al commento Condividi su altri siti More sharing options...
batta Inserita: 3 aprile 2023 Segnala Share Inserita: 3 aprile 2023 Tu, da Robox, ricevi i metri istantanei. Per le tue operazioni, ti devi creare dei contatori partendo da questo unico dato che ti arriva da Robox. Come hai creato un contatore metri totali aggiornando una variabile di offset, allo stesso modo ti dovrai creare dei contatori per gestire la lubrificazione. Prova ad usare il metodo suggerito da @p.fabio Link al commento Condividi su altri siti More sharing options...
antho Inserita: 3 aprile 2023 Autore Segnala Share Inserita: 3 aprile 2023 3 ore fa, batta ha scritto: Tu, da Robox, ricevi i metri istantanei. Per le tue operazioni, ti devi creare dei contatori partendo da questo unico dato che ti arriva da Robox. Come hai creato un contatore metri totali aggiornando una variabile di offset, allo stesso modo ti dovrai creare dei contatori per gestire la lubrificazione. Prova ad usare il metodo suggerito da @p.fabio Ok provo. Pero' come mai secondo te quello che ho messo sopra non funziona? Perche' come ti ho scritto la cosa strana è che se al posto dei metri istantanei metto gli scambi macchina e poi moltiplico per i metri richiesti per ogni log da scheda di produzione conta tutto correttamente. 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