Vai al contenuto
PLC Forum


UNITRONICS MODIFICA PROGRAMMAZIONE


machisse

Messaggi consigliati

Salve a tutti, c'è qualcuno di Voi che conosce il plc jazz della Unitronics? Devo modificare il programma per un cliente, ma non ho trovato nessuno che mi dia una mano a farlo. C'è un tutorial in inglese ma c'ho capito poco.

Link al commento
Condividi su altri siti


15 minuti fa, machisse scrisse:

Salve a tutti, c'è qualcuno di Voi che conosce il plc jazz della Unitronics? Devo modificare il programma per un cliente, ma non ho trovato nessuno che mi dia una mano a farlo. C'è un tutorial in inglese ma c'ho capito poco.

 

Non dovrebbe avere la classica programmazione ladder?

Link al commento
Condividi su altri siti

Si la programmazione è fatta con U90 ladder, ho scaricato il programma ho iniziato a lavorarci su, ma la modifica ha avuto esito parziale. Mi spiego alla macchina ho sostituito un contalitri ad impulsi, la casa costruttrice me lo ha fornito settato come quello originale, purtroppo il costruttore della macchina aveva cambiato le specifiche, così ora mi ritrovo una riempitrice che se imposto 5lt, mi eroga 0,5lt, se metto 50lt eroga 5lt. 

La soluzione che avevo provato era nel display di mettere dL invece di L, così l'utente avrebbe capito che doveva moltiplicare tutto x10, avevo aggiunto una cifra alla variabile, perchè prima riempiva fino a 99lt. 

Il quantitativo inseribile dopo la modfica è fino a 999 dl, solo che se voglio riempire 25lt, quindi sul display imposto 250 dl, l'erogatore mi distribuisce praticamente niente.

Da qui ho capito che devo modificare qualche variabile altrove.

Link al commento
Condividi su altri siti

Marco Fornaciari

Direi che il programma del PLC non c'entra nulla.

Molto probabilmente è stata modificata la configurazione dell'uscita del contalitri: ipotizzo un impulso = 0,01 litri: che poi è quello che occorre fare.*

 

* Nei sistemi di dosaggio o/e misura è necessario che l'apparecchio di rilevamento abbia come risoluzione minima 1/10 dell'unità di misura utilizzata, e che il PLC sia in grado di leggere lo stato a 1 del segnale impulsivo almeno 2 volte.

 

Nota

Se cambiando un apparecchio fuori dal PLC il sistema non funziona più come prima, va da se che il problema non è il PLC. 😉

Link al commento
Condividi su altri siti

il 8/6/2019 at 17:42 , Marco Fornaciari scrisse:

Direi che il programma del PLC non c'entra nulla.

Molto probabilmente è stata modificata la configurazione dell'uscita del contalitri: ipotizzo un impulso = 0,01 litri: che poi è quello che occorre fare.*

 

* Nei sistemi di dosaggio o/e misura è necessario che l'apparecchio di rilevamento abbia come risoluzione minima 1/10 dell'unità di misura utilizzata, e che il PLC sia in grado di leggere lo stato a 1 del segnale impulsivo almeno 2 volte.

 

Nota

Se cambiando un apparecchio fuori dal PLC il sistema non funziona più come prima, va da se che il problema non è il PLC. 😉

Concordo perfettamente con quanto detto. Purtroppo mi trovo a dover far funzionare questa macchina, l'azienda produttrice è latente, il cliente mi ha passato la palla e "Non posso dire di no". Ho trovato il nuovo ricambio, che mi è stato fornito settato come da prima fornitura all'azienda produttrice della macchina. Il problema stà nel fatto che il nuovo prodotto sicuramente manda più impulsi rispetto al precedente con l'effetto che se imposto 50lt mi corrispondono a 5lt, 25lt sono 2,5. 

Purtroppo non ho possibilità di modificare il misuratore di flusso, se non intervenendo con un accessorio che non possiedo, dovrei far intervenire un tecnico del produttore, ma fra trasferta intervento mi costa una cifra rilevante.

Tutto sommato non sarebbe un problema moltiplicare tutto x 10 volte, se non fosse che quando devo riempire 25lt devo impostare 250, qui la variabile ha una limitazione ed il valore restituito è negativo, con l'effetto che non viene erogato alcun chè.

Chi di voi mi può dare qualche consiglio?

Link al commento
Condividi su altri siti

1 ora fa, machisse scrisse:

Concordo perfettamente con quanto detto. Purtroppo mi trovo a dover far funzionare questa macchina, l'azienda produttrice è latente, il cliente mi ha passato la palla e "Non posso dire di no". Ho trovato il nuovo ricambio, che mi è stato fornito settato come da prima fornitura all'azienda produttrice della macchina. Il problema stà nel fatto che il nuovo prodotto sicuramente manda più impulsi rispetto al precedente con l'effetto che se imposto 50lt mi corrispondono a 5lt, 25lt sono 2,5. 

Purtroppo non ho possibilità di modificare il misuratore di flusso, se non intervenendo con un accessorio che non possiedo, dovrei far intervenire un tecnico del produttore, ma fra trasferta intervento mi costa una cifra rilevante.

Tutto sommato non sarebbe un problema moltiplicare tutto x 10 volte, se non fosse che quando devo riempire 25lt devo impostare 250, qui la variabile ha una limitazione ed il valore restituito è negativo, con l'effetto che non viene erogato alcun chè.

Chi di voi mi può dare qualche consiglio?

 

Di far intervenire il produttore in garanzia el flussometro, se hai chiesto un ricambio equivalente e te ne vien mandato uno che in uscita da 10 volte gli impulsi del precedente allora non va bene. Per loro è una scemenza , si tratta di regolare un parametro. 

Link al commento
Condividi su altri siti

Cose che capitano, se gli impulsi sono in più si risolve con un divisore. Comunque mi è successo cosa simile con kronhe e con due spedizioni da 7€ di corriere in abbonamento me li hanno ritardato in giornata.

Link al commento
Condividi su altri siti

26 minuti fa, max.bocca scrisse:

Cose che capitano, se gli impulsi sono in più si risolve con un divisore. Comunque mi è successo cosa simile con kronhe e con due spedizioni da 7€ di corriere in abbonamento me li hanno ritardato in giornata.

 

il misuratore è giusto della kronhe, ma per modificarlo mi chiedono molto di più nell'ordine di 100 volte. Anch'io avevo pensato di dividere il contatore per 10, ho modificato il programma ma non l'ho provato sul plc.

 

Modificato: da machisse
Link al commento
Condividi su altri siti

ho provato a dividere per un valore costante il valore del contatore, praticamente ho inserito questa operazione A/B=C, dove A è il valore del contatore, B la costante a cui ho dato valore di 10, C è la variabile che dovrebbe avere il valore derivato dal risultato di A div B, solo che nel plc il valore resta sempre 0. Vi chiedo perchè?

Link al commento
Condividi su altri siti

Marco Fornaciari

Supponendo che A sia il contatore degli impulsi, deve contenere sempre un valore più alto di B, altrimemti la divisione non è eseguita.

 

Scusa, ma nei primi posta hai scritto " trovo una riempitrice che se imposto 5lt, mi eroga 0,5lt, se metto 50lt eroga 5lt. "

Quindi significa che il contalitri da un impulso ogni 0,1 litri.

Pertanto se a te serve dosare 5 litri, devi impostare 5,0 cioè 50 visto che il PLC vede solo interi e il contatore in ingresso ad ogni impulso di ingresso incrementa di 1 = 0,1 litri, quindi la divisione non c'entra nulla.

Infine sei sicuro che l'impulso in uscita dal misuratore duri almeno il doppio della somma del tempo di lettura dell'ingresso + il tempo di scansione? Per sicurezza sarebbe opportuno duri almeno 30 ms.

 

Link al commento
Condividi su altri siti

Io parlavo di divisori hw non la funzione sw  per non toccare il PLC, così si allargava anche l'impulso che magari è troppo stretto.

Io ho trattato khrone qualche anno fa, ma è stato importato in Italia da khrone Italia? Ma se ti chiedono 500 euro per una taratura, cosa vendono un contalitri magnetico ??

 

Link al commento
Condividi su altri siti

2 ore fa, Marco Fornaciari scrisse:

Supponendo che A sia il contatore degli impulsi, deve contenere sempre un valore più alto di B, altrimemti la divisione non è eseguita.

 

Scusa, ma nei primi posta hai scritto " trovo una riempitrice che se imposto 5lt, mi eroga 0,5lt, se metto 50lt eroga 5lt. "

Quindi significa che il contalitri da un impulso ogni 0,1 litri.

Pertanto se a te serve dosare 5 litri, devi impostare 5,0 cioè 50 visto che il PLC vede solo interi e il contatore in ingresso ad ogni impulso di ingresso incrementa di 1 = 0,1 litri, quindi la divisione non c'entra nulla.

Infine sei sicuro che l'impulso in uscita dal misuratore duri almeno il doppio della somma del tempo di lettura dell'ingresso + il tempo di scansione? Per sicurezza sarebbe opportuno duri almeno 30 ms.

 

PER QUANTO concerne la divisione ho notato che quando sono in linea con il plc, e riesco a vedere tutti i valori delle variabili, supposto il valore A=4230, B valore costante 10 il risultato C=0 e non si muove mai, in questo caso la macchina eroga continua senza alcun limite. Il programma azzera il contatore al raggiungimento del valore impostato dei litri.

Link al commento
Condividi su altri siti

Marco Fornaciari

Ma hai provato a fare la cross reference delle variabili, per vedere dove e come sono utilizzate?

Le variabili sono dichiarate tutte dello steso tipo?

Se la variabile C è scritta in un altro punto del programma, e magari più a valle, sul PC non vedi il risultato del tuo calcolo, ma l'ultimo valore caricato all'interno del programma.

Attenzione che se la variale C è scritta tramite indici puntatori o è all'interno di array, non la puoi utilizzare liberamente, in quasto caso non è detto di trovarla nella cross reference, anzi al 99,9% non la trovi.

Modificato: da Marco Fornaciari
Link al commento
Condividi su altri siti

12 ore fa, Marco Fornaciari scrisse:

Ma hai provato a fare la cross reference delle variabili, per vedere dove e come sono utilizzate?

Le variabili sono dichiarate tutte dello steso tipo?

Se la variabile C è scritta in un altro punto del programma, e magari più a valle, sul PC non vedi il risultato del tuo calcolo, ma l'ultimo valore caricato all'interno del programma.

Attenzione che se la variale C è scritta tramite indici puntatori o è all'interno di array, non la puoi utilizzare liberamente, in quasto caso non è detto di trovarla nella cross reference, anzi al 99,9% non la trovi.

LA VARIABILE C L'HO CREATA IO E SETTATA AD HOC, per sostituire la precedente variabile del contatatore.

Piuttosto pensavo che il risultato della divisione non sarà quasi mai un numero intero, da qui la restituzione del valore 0. Che ne dite?

 

Link al commento
Condividi su altri siti

Marco Fornaciari

Allora se il numero è divisibile, e le variabil sono degli interi, qualsiasi PLC come risultato della divisione "normale" rende sempre la parte intera del risultato, se si vuole anche il resto c'è l'apposita divisone.

Se le variabili sono REAL il risultato non è mai zero, a meno che la divisione sia "impossibile" secondo le regole della matematica.

Link al commento
Condividi su altri siti

il 15/6/2019 at 12:48 , Marco Fornaciari scrisse:

Allora se il numero è divisibile, e le variabil sono degli interi, qualsiasi PLC come risultato della divisione "normale" rende sempre la parte intera del risultato, se si vuole anche il resto c'è l'apposita divisone.

Se le variabili sono REAL il risultato non è mai zero, a meno che la divisione sia "impossibile" secondo le regole della matematica.

il valore che il contatore rende, ovvero la variabile A è sempre intero, ma se lo divido per la costante 10, per forza di cose sarà quasi sempre un decimale il risultato di C.

Link al commento
Condividi su altri siti

Pensavo per tanto di sostituire tutto con una funzione di linearizzazione. Dove all'asse x metto il valore della lettura del contatore e ad y il valore che avrebbe dovuto avere il contatore, con il risultato di avere come risultato un valore leggibile dal PLC.

Link al commento
Condividi su altri siti

Marco Fornaciari

Scusa, ma fai venire dei dubbi a riguardo delle tue ncomoscenze in fatto di calcoli con il PLC. Onestamente non ci stò capendo nulla.

Se faccio 12340 / 10 = 1234

ma se faccio 12344 / 10 = 1234

così come 12349 / 10 = 1234

E questo vale per tutti i microprocessori, il calcolo con i decimali è una convenzione solo in fase di visualizzazione.

Link al commento
Condividi su altri siti

18 ore fa, Marco Fornaciari scrisse:

Scusa, ma fai venire dei dubbi a riguardo delle tue ncomoscenze in fatto di calcoli con il PLC. Onestamente non ci stò capendo nulla.

Se faccio 12340 / 10 = 1234

ma se faccio 12344 / 10 = 1234

così come 12349 / 10 = 1234

E questo vale per tutti i microprocessori, il calcolo con i decimali è una convenzione solo in fase di visualizzazione.

Le mie conoscenze di programmazione PLC sono scarse, direi tendenti a zero purtroppo, da qui il mio post. Capito che non mastico l'idioma PLC dovete avere pazienza se risulto fuorviante nelle mie risposte. Non sapevo che i decimali venissero ignorati. Appurato questo il risultato della divisione non capisco perchè sia zero. Se volete posso incollare un pezzo del programma che ho inserito.

Link al commento
Condividi su altri siti

COmunque credo di non aver sbagliato nell'inserimento dell'operazione matematica di divisione, perchè è il software che ha un bottone con scritto divisione, che inserisce tutto nel programma.

Link al commento
Condividi su altri siti

Marco Fornaciari

Oddio, se non funziona, qualcosa che non è posto c'è!

Posta una schermata del programma.

Modificato: da Marco Fornaciari
Link al commento
Condividi su altri siti

Marco Fornaciari

All'inizio della riga c'è una istruzione (P) immagino sia un fronte di salita, quindi quella parte di prgramma è eseguita una sola volta.

La funzione ST cosa sarebbe? Se è una comparazione non ha senso scritta così, se è un trasverimento di valore, metti zero nella variabile.

In poche parole quella parte di programma potrebbe non avere nessun senso.

Ma è meglio che posti una videata dove si vedono gli stati e i valori delle variabili.

 

Link al commento
Condividi su altri siti

Simone.Salarsi
15 minuti fa, Marco Fornaciari scrisse:

 

La funzione ST cosa sarebbe? Se è una comparazione non ha senso scritta così, se è un trasverimento di valore, metti zero nella variabile.

 

 

 

 è da un pò che non uso U90 Ladder ma se non ricordo male dovrebbe essere un MOVE

 

@machisse

in pratica sul fronte di salita della marcia macchina MB0 scrivi il valore 0 nel contatore MI10 e poi lo dividi per 10, da qui il risultato 0 della variabile c= MI11 (contatore rettificato). Dopodichè la divisione non viene più eseguita fino al successivo fronte di MB0 ricadendo però sempre nello stesso problema.

Sposta la sola istruzione della divisione in un nuovo ramo

 

 

 

 

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...