Fox Inserito: 13 dicembre 2018 Segnala Share Inserito: 13 dicembre 2018 (modificato) Buonasera, Ho realizzato delle ricette su pannelli operatore weintek 8071ie. La prima variabile nella ricetta è il nome del prodotto composta da un dato di tipo ACSII a 10 Word. Ora il mio problema è che una volta inserite le ricette l'operatore dovrà richiamarle con il nome del prodotto che sta per mandare in produzione nella macchina. Essendo molti i nomi ho la necessità di fare una ricerca della ricetta. A questo punto sono bloccato...non so come fare! Ho anche tentato con una macro che prende il nome, lo trasferisce ad una variabile di appoggio e la confronta con la parola inserita, ma non funziona perché non capisco come indicizzare i nomi delle ricette. Usando RecipeGetData mi seleziona il nome della variabile ma non mi dà la possibilità di indicizzato in modo da confrontarli tutti. Grazie in anticipo a chi mi darà un suggerimento. Modificato: 13 dicembre 2018 da Fox Link al commento Condividi su altri siti More sharing options...
leleviola Inserita: 13 dicembre 2018 Segnala Share Inserita: 13 dicembre 2018 (modificato) Perchè una ricetta della ricetta? Hai un campo impostato come variabile stringa ti basi su quello per fare la ricerca.L'intefaccia grafica ti permette di visionare i campi delle ricette presenti e ovviamente se hai configurato come campo anche il nome della ricetta lo vedrai nell'interfaccia grafica Weintek, questo magari non ti serve ma a te serve una funzione Ricerca in base a un nome impostato. Mi sa che devi crearti una Macro che scorra dalla prima all'ultima ricetta presente tramite il campo RECPE/Selection all'interno delle variabili Local HMI, carichi ogni singola ricetta i variabili di appoggio per la ricerca, confronti il campo stringa che cerchi se uguale ovviamente carichi quella. Il problema è che non so se c'è un campo che ti determina quante ricette sono presenti per il tipo di ricetta che cerchi, insomma forse non puoi sapere quanto potrà essere lungo il tuo loop di ricerca Modificato: 13 dicembre 2018 da leleviola Link al commento Condividi su altri siti More sharing options...
leleviola Inserita: 13 dicembre 2018 Segnala Share Inserita: 13 dicembre 2018 (modificato) Aggiungo che il campo che ti permette di controllare quante ricette sono presenti dovrebbe essere il campo RECIPE/Count così definisci quante unità ha il tuo loop di ricerca del nome che cerchi Modificato: 13 dicembre 2018 da leleviola Link al commento Condividi su altri siti More sharing options...
Fox Inserita: 13 dicembre 2018 Autore Segnala Share Inserita: 13 dicembre 2018 (modificato) Effettivamente mi hai dato un'idea...con la modifica del selection posso visionare tutti i nomi delle ricette. Di volta in volta confronto con la parola inserita e se corrispondono le memorizzo su delle variabili che visualizzerò a fine ricerca. Poi devo pensare come fare in modo che selezionando un risultato seleziono la ricetta corrispondente per poi caricarla sul PLC...ma ho già una mezza idea. Domani a lavoro se riesco provo. Grazie Modificato: 13 dicembre 2018 da Fox Link al commento Condividi su altri siti More sharing options...
leleviola Inserita: 13 dicembre 2018 Segnala Share Inserita: 13 dicembre 2018 è quello che volevo farti capire, devi farti un loop di ricerca con Selection, quando le variabili stringa corrispondono è il record da caricare. Ovviamente devi avere record con nomi non uguali, è un'eventualità che può accadere, daltronde il sistema salva a numero non controlla cosa vi sta nei campi singoli e il campo stringa relativo al nome è uno dei tanti del singoli record Link al commento Condividi su altri siti More sharing options...
Fox Inserita: 14 dicembre 2018 Autore Segnala Share Inserita: 14 dicembre 2018 Dopo vari tentativi finalmente funziona. Ho capito che la funzione RecipeGetData non funzionava in modo corretto, sostituendola con GetData funziona. Condivido la macro se a qualcuno serve. Grazie a Leleviola per il suggerimento. macro_command main() short var_input[10], var_confr[10], var_risult[100] short selection = 0 short resultID = 0 short result_number = 0 int count = 0, recordIDcount = 0, recordIDselection = 0, recordIDconfr = 0 bool ok = 0, fail = 1, Compl GetData(count, "Local HMI", RECIPE, "Ricetta_modelli5.Count") //trasferisco il numero di ricette alla variabile count GetData(var_input[0],"Local HMI", LW, 100, 10) // trasferisco la stringa della parola da cercare alla variabile di input SetData(ok, "Local HMI", LB, 10, 1) //trasferisco i bit di segnalazione ai rispettivi bit di visualizzazione SetData(fail, "Local HMI", LB, 11, 1) for selection = 0 to count step 1 // Comincio la variazione di selection (numero della ricetta) da 0 al numero di ricette presenti SetData(selection, "Local HMI", RECIPE, "Ricetta_modelli5.Selection") //Ogni volta che do un valore a selection mi varia il nome della ricetta GetData(var_confr[0], "Local HMI", RECIPE, "Ricetta_modelli5.Nome_modello") //Trasferisco uno ad uno i nomi delle ricette if var_input[0] == var_confr[0] and var_input[1]==var_confr[1] and var_input[2]==var_confr[2] and var_input[3]==var_confr[3] and var_input[4]==var_confr[4] and var_input[5]==var_confr[5] then //se almeno le prime cinque lettere corrispondono SetData(var_confr[0], "Local HMI", LW, 20, 10) // allora trasferisco il nome che corrisponde alla variabile di visualizzazione result_number = selection //trasferisco il numero della ricetta corrispondente ad una variabile che mi serve per visualizzarlo SetData(result_number, "Local HMI", LW, 30, 1) //trasferisco il numero trovato alla variabile di visualizzazione ok = 1 //accendo una luce verde tramite un bit se la ricerca è andata a buon fine fail = 0 SetData(ok, "Local HMI", LB, 10, 1) //trasferisco i bit di segnalazione ai rispettivi bit di visualizzazione SetData(fail, "Local HMI", LB, 11, 1) end if next selection Compl = 0 SetData(Compl, "Local HMI", LB, 12, 1) //porto a zero il bit di ricerca in corso abilitato con il tasto di ricerca end macro_command Link al commento Condividi su altri siti More sharing options...
leleviola Inserita: 15 dicembre 2018 Segnala Share Inserita: 15 dicembre 2018 Ottimo 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