Smanettone15 Inserito: ieri dalle 08:15 Segnala Inserito: ieri dalle 08:15 Buongiorno a tutti ho un problema anzi due. Voglio limitare la funzione Jog+ nella selezione di un recod per impedire che continuando a premere il pulsante abbinato alla funzione il contatore vada oltre il limite massimo di record disponibili. Vengo all'esempio pratico. Ho un Recipe con numero di record variabili. Creo un pulsante al quale abbino la funzione JOG+ e come dispositivo sul quale scrivere imposto LocalHMI > Recipe > Selection. Come incremento imposto 1. Tutto funziona regolarmente se non fosse che raggiunto l'ulimo record disponibile se continuo a premere il pulsante abbinato alla funzione in realtà sembra che il contatore vada avanti anche se non sono presenti ulteriori record. Ovvero se raggiunto l'ultimo record premo altre 2 volte il tasto JOG+, per ritornare a selezionare l'ultimo record devo premere 2 volte il tasto JOG-. Pensavo di impostare dei limiti dinamici utilizzando come limite massimo la funzione Local HMI > Recipe > Count ma il risultato non è quello sperato. Se per esempio imposto come valore 0 il limite su JOG- tutto funziona perfettamente. Però non ho idea di come impostare il limite massimo su JOG+ considerando che non conosco il numero dell'ultimo record disponibile. Altro problema. Se voglio creare un nuovo record con la funzione Command > 1 è possibile aggiungere un record nuovo vuoto? Attulamente il nuovo record creato mi ripropone i valori inseriti nell'ultimo record. Grazie per le risposte. Pietro
Simone.Salarsi Inserita: 20 ore fa Segnala Inserita: 20 ore fa Recipe.count contiene il numero di ricette presenti nel database, quindi la tua ultima ricetta sarà sempre Count-1 siccome l'indice parte da zero. Pertanto se tu hai 4 ricette la i tuoi limiti devono essere 0 ( valore fisso) e 3 ( Count-1). Io per fare questa cosa ho fatto un piccolo script ed uso il valore calcolato come limite alto macro_command main() short Count, CalcCount GetData(Count, "Local HMI", RECIPE, "Prodotto.Count") // leggo numero attuale di ricette presenti nel DB // aggiorno la word che utilizzo come valore di controllo nell'action trigger // per lanciare la macro (RECIPE.Prodotto.Count <> LW190 allora lancio la macro) SetData(Count, "Local HMI", LW, 190, 1) if Count >0 then CalcCount = Count -1 else CalcCount = 0 end if SetData(CalcCount, "Local HMI", "RecipeActualCount", 1) Per il secondo problema invece non lo so, devo provare a guardare ma mi viene da pensare che non sia possibile.
Smanettone15 Inserita: 4 ore fa Autore Segnala Inserita: 4 ore fa Ok la tua macro funziona ma ho riscontrato un limite ( non della macro). Quando utilizzo la funzione JOG+ oppure JOG- viene selezionato il record relativo al rispettivo numero progressivo di " Count " ( identificativo del record). Nel mio DB è presente un campo numerico da 0 a 999 che identifica il numero della ricetta. I numeri non sono sequenziali ma possono avere degli intervalli vuoti anche di decine di posizioni ( 001, 002, 023, 140, 231,232, etc). Ovviamente quando inserisco la nuova ricetta gli viene assegnato auomaticamente un nuovo numero ID del recod ma questo numero mai corrisponderà alla ricetta. Di conseguenza scorrendo i record con JOG+ verranno selezionati i record in ordine sparso ( con riferimento al mio codice numerico). Esiste un metodo per selezionarli in modo progressivo utilizzando il mio codice numerico? Per il secondo problema credo di aver risolto utilizzando i trigger nel seguente modo. per campi numerici "Imposta Word > Scrivi costante > 0 > Local HMI > Recipe > nomecampo" per campi testo "Imposta Word > Scrivi stringa costante > > Local HMI > Recipe > nomecampo" "Imposta Word > Scrivi costante > 1 > Local HMI > Recipe > command" per creare il nuovo record vuoto nei campi testo e con il valore 0 nei campi numerici.
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