Jump to content
PLC Forum


Giacomo Grassi

Barcode & Ricette

Recommended Posts

Giacomo Grassi

Buonasera; scrivo per chiedere un vostro aiuto non avendo mai dovuto gestire un problema di questo tipo. 

Ho un lettore Barcode che invia al Plc un codice identificante un prodotto da lavorare; ad ogni codice "battuto" il Plc deve caricare in macchina sette dati di lavorazione.

Fino ad oggi ho sempre usato la gestione delle ricette (perchè è di questo che si parla) con la pagina predefinita dell'Hmi; ora però devo scrivere tutto nel Plc.

Quindi, per ricapitolare, i codici che identificano i prodotti da lavorare saranno circa cento e ad ogni codice devo associare sette dati diversi per le varie lavorazioni.

Non so come procedere e avrei bisogno del vostro aiuto.

 

Grazie.

Share this post


Link to post
Share on other sites

batta

Crei un "tipo di dati" con struttura con i dati di una ricetta.
In un DB crei un array di 100 elementi del "Tipo di dati" della ricetta.
Punti alla ricetta con un indice.

 

Oppure, crei le ricette nel pannello operatore, e tramite ordini da PLC effettui il cambio ricetta.

Share this post


Link to post
Share on other sites
Giacomo Grassi

Ciao batta;Grazie per le prime indicazioni....

ho creato un Db (DbRicette) contenente un Array[1..100] of Struct; la struttura è composta da 7 dati; ho creato un secondo db (DbRicettaDiLavoro) contenente un'unica Struct con i medesimi dati che rappresenta il Db dei dati effettivi di lavoro; ho definito una variabile di tipo Int dove caricare l'indice dell'Array (IndiceRicetta). Con una Move sposto la ricetta definita dall'indice nella ricetta di lavoro.

La domanda è: come faccio ad associare all'indice dell'Array (intero da 1 a 100) il codice in arrivo dal Barcode ? 

Potresti indicarmi quali sono questi "ordiini da Plc" per far eseguire al pannello il cambio ricetta ?

 

Grazie ancora.

 

(DbRicette)

 

DbRicette.jpg.b81994d9f5af771f4c557b853d55f634.jpg

 

(DbRicettaDiLavoro)

 

DbRicettaDiLavoro.jpg.a8941605b4afbb67dcaa758b23613dd0.jpg

 

 

RicettaRichiamataInRicettaLavoro.jpg.6a98340e2df756163b7ab3796edd906d.jpg

 

 

Share this post


Link to post
Share on other sites
Cesare Nicola
8 ore fa, Giacomo Grassi scrisse:

La domanda è: come faccio ad associare all'indice dell'Array (intero da 1 a 100) il codice in arrivo dal Barcode ? 

Potresti indicarmi quali sono questi "ordiini da Plc" per far eseguire al pannello il cambio ricetta ?

Non conosco gli ordini da PLC, non posso aiutarti. Per associare il puntatore al codice del barcode, penso tu debba fare 100 confronti tra stringhe (o valori, se il barcode ti restituisce un valore): se il codice è "pippo" indice vale 1, se il codice è "pappa" indice vale 2, ecc. Il problema, se ho ben capito la tua applicazione, è che l'associazione tra codice e indice ricetta non deve mai variare, altrimenti il tuo confronto non funziona più. Cioè, se domani al codice "pippo" deve corrispondere l'indice 5, sei fregato. Idem se, viceversa, al codice 1 domani dovrà essere associato "peppe" e non più "pippo". L'ideale sarebbe che oltre ai sette dati, nella ricetta ci sia il codice che ci aspetta dal barcode: con un ciclo FOR, allora fai il confronto tra il codice letto dal barcode e i 100 dati della struttura in cui è memorizzato il codice. Quando il FOR trova nella struttura il codice uguale a quello letto, quella è la ricetta che ti serve. In questo modo dai la possibilità all'operatore o chi per esso, di associare un qualunque codice a qualunque ricetta.

Share this post


Link to post
Share on other sites
pigroplc

io farei così:

1) sul fronte di lettura del segnale di ricezione barcode alzerei un bit

2) questo bit è in lettura ciclica su HMI con limite inferiore e superiore uguale a zero

3) al superamento dei limiti metterei uno script che contiene sia la lettura del set di dati puntato al nome della ricetta che il reset del bit

4) valuterei il valore di ritorno della funzione per far apparire la popup con "avvenuto con successo" oppure "caricamento fallito"

5) se avvenuto con successo mi leggo i dati e li utilizzo per i miei controlli / attuatori ecc altrimenti blocco il sistema e sputo fuori il pezzo oppure blocco il flusso o qualche altra diavoleria.

6) ci metti tutto quello che vuoi tu in cascata.....

 

ah, ovviamente nel pannello ci devi mettere tutte le ricette che ti servono coi dati..

Share this post


Link to post
Share on other sites
Giacomo Grassi

Ciao batta;Grazie per le prime indicazioni....

ho creato un Db (DbRicette) contenente un Array[1..100] of Struct; la struttura è composta da 7 dati; ho creato un secondo db (DbRicettaDiLavoro) contenente un'unica Struct con i medesimi dati che rappresenta il Db dei dati effettivi di lavoro; ho definito una variabile di tipo Int dove caricare l'indice dell'Array (IndiceRicetta). Con una Move sposto la ricetta definita dall'indice nella ricetta di lavoro.

La domanda è: come faccio ad associare all'indice dell'Array (intero da 1 a 100) il codice in arrivo dal Barcode ? 

Potresti indicarmi quali sono questi "ordiini da Plc" per far eseguire al pannello il cambio ricetta ?

 

Grazie ancora.

 

(DbRicette)

 

DbRicette.jpg.b81994d9f5af771f4c557b853d55f634.jpg

 

(DbRicettaDiLavoro)

 

DbRicettaDiLavoro.jpg.a8941605b4afbb67dcaa758b23613dd0.jpg

 

 

RicettaRichiamataInRicettaLavoro.jpg.6a98340e2df756163b7ab3796edd906d.jpg

 

Grazie ad entrambi; credo che userò il metodo proposto da Cesare inserendo quindi nella struttura un dato tipo "String" oltre agli altri sette dati andando poi a confrontare il codice appena battuto con gli altri cento memorizzzati nella struttura.

 

Ancora una volta il Forum non ha deluso.....

 

Grazie ancora a tutti.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...