Vai al contenuto
PLC Forum


filtrare campi ricette e trasferirli a plc siemens s7 1214


Messaggi consigliati

Inserito:

Buongiorno a tutti, sto sperimentando un programmino che deve , a fronte di una misurazione fatta precedentemente dal macchinario , " pescare " da una ricetta presente su un pannello weintek i dati necessari per posizionare un asse in varie posizioni.

il macchinario misura la barra di rame e mette il dato della lunghezza in un db con la misura ( in real ) , in funzione della misura scrive il numero della ricetta in un altro db, e qui tutto semplice.

sul pannello weintek ho caricato tutte le ricette suddivise per numero e per passi di posizionamento.

Non riesco a far filtrare i dati così da poter trasferire le quote di posizionamento ( passo per passo ) al plc.

 

qualcuno può darmi una dritta ?

grazie in anticipo.

 


Simone.Salarsi
Inserita:

a parte che sei in una sezione completamente a caso (S5) visto che parli prima di 1200 e poi di weintek.

 

comunuque tanto per capire, la macchina misura il componente e rileva che ne so... 2,00. il PLC dato il valore rilevato lo trasforma in un numero secondo tue specifiche posso immaginare.

Fatto questo il weintek dovrebbe leggere il dato dal plc e richiamare la ricetta con lo stesso ID o la cosa è più complessa?

 

per filtrare cosa intendi ? o come vorresti filtrare?

 

Inserita:

buongiorno, scusate l'errore della sezione. quello che hai ipotizato è corretto.

la macchina misura la barra sia la  lunghezza che la larghezza, scrive questi due dati in un db e weintek deve trovare la ricetta che contiene questi due dati e trasferirla al plc

 

Inserita:

esempio :

lunghezza 400 mm , lkarghezza 80 mm

sul hmi  ci sono varie ricette con lunghezze , larghezze differenti e , in base a questi due dati in ingresso, vanno trasferiti solo i dati inerenti a questi due parametri  ( i dati da trasferire sono quote e passi di posizionamento )

 

Inserita:

Non conosco l'op weintek, ma per fare questo devi gestire le ricetta a plc.

Simone.Salarsi
Inserita:

quindi tu ogni volta dovresti andare a verificare all'interno di ogni ricetta nell'HMI i due dati indicati ( lunghezza e larghezza) e se entrambi corrispondono a quelli rilevati prendere l'ID della ricetta ed eventualmente caricarla nel PLC o segnalarla all'operatore.

 

Sicuramente dovrai usare le macro nell'HMI, armandoti di pazienza e leggendo il manuale dedicato.

 

il primo approccio che mi viene in mente è il seguente:

 

- un ciclo for da i := 0 to (nr_ricette -1)  // l'ID del database ricette parte sempre da 0

 

- all'interno di ogni ciclo dovrai recuperare i dati di lunghezza e larghezza dalla ricetta e confrontarli con quelli rilevati

Dovrebbe esserci una istruzione che si chiama RecipeGetData o qualcosa del genere per leggere i dati

 

- quando nello stesso ciclo entrambi risultano uguali

     if Ricetta[i].Lunghezza == PLC.Lunghezza AND Ricetta[i].Larghezza == PLC.Larghezza then

               ricetta_trovata := i;

     end if

 

 

a questo punto devi in qualche modo passare i dati al PLC con i comandi del database ricette o sempre all'interno di una macro.

 

 

Inserita:

ci provo, grazie per l'aiuto

 

Inserita:

Valuta anche quello che ti ha detto @acquaman . Di gestire le ricette nel PLC.

Se invece le gestisci dal pannello fai attenzione e non leggere i parametri vecchi invece che qualli nuovi. Magari inserisci un ritardo di 1-2 secondi, dopo che sono arrivati i primi dati della ricetta

Inserita:

Quanti parametri ci sono per ogni ricetta? Se non sono molti...100/200bytes e se le ricette sono 200/300 credo sia più conveniente in termini di codice e di sviluppo usare un DB strutturato con un UDT che raggruppa tutte le componenti della ricetta.

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...