TravelMen Inserito: 20 luglio 2018 Segnala Share Inserito: 20 luglio 2018 Buongiorno a tutti e da un bel po che non mi faccio sentire, oggi ho bisogno del vostro aiuto, vorrei rendere una funzione creata da me il più "automatica" possibile. Mi spiego ho creato una funzione che ricerca il valore massimo, in una struttura dati chiamata "utensile" composta da una stringa ed n "Profili" che a sua volta è una struttura composta da 10 dati (una stringa e 9 valori real), Il tutto visibile nel file allegato. Ma arriviamo alla domanda mi piacerebbe che la funzioni calcolasse in automatico alcuni dati, come quanti byte occupa il nome della prima struttura "Utensile" e quanti byte è composta la struttura "Profilo", come si può vedere dal file la funzione già calcola il numero di profili presenti nella struttura "utensile". Chiede pure se volte avere maggiori informazioni. Ricerca valore massimo Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 22 luglio 2018 Segnala Share Inserita: 22 luglio 2018 Non vedo perchè incasinarsi con l'AWL , io risolverei il tutto con 9 righe di codice in SCL (Che è fornito col Tia Portal anche per S7300) in questo modo : TYPE "UDT_PROFILO" VERSION : 0.1 STRUCT Nome : String; Altezza : Real; DiametroLavoro : Real; END_STRUCT; END_TYPE TYPE "UDT_UTENSILE" VERSION : 0.1 STRUCT AryProfili : Array[0..10] of "UDT_PROFILO"; END_STRUCT; END_TYPE FUNCTION "ComputeMaxDiameter" : Real { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_INPUT UsedData : Int; END_VAR VAR_IN_OUT Data : Array[0..10] of "UDT_PROFILO"; END_VAR VAR_TEMP MaxDiam : Real; i : Int; END_VAR BEGIN #MaxDiam := #Data[0].DiametroLavoro; FOR #i := 0 TO #UsedData DO IF #Data[#i].DiametroLavoro > #MaxDiam THEN #MaxDiam := #Data[#i].DiametroLavoro; END_IF; END_FOR; #ComputeMaxDiameter := #MaxDiam; END_FUNCTION Link al commento Condividi su altri siti More sharing options...
TravelMen Inserita: 24 luglio 2018 Autore Segnala Share Inserita: 24 luglio 2018 Ciao ifachsoftware Grazie per il suggerimento, ma il cliente vuole awl. in più la tua funzione prevede che sia tu a fornire il numero di profili, la mia lo calcola in automatico, per modificare il software mi basta modificare UDT utensile e ri-compilare. Saluti 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