Ricky_motoraro Inserito: 13 febbraio 2019 Segnala Share Inserito: 13 febbraio 2019 Salve, avrei bisogno di una mano. vorrei creare una media mobile usando un'array con plc s7-300.. so che sul TIA esiste il blocco funzione DEMUX, vorrei appunto fare un blocco per poi salvarlo nella mia libreria, non so usare il linguaggio scl... grazie in anticipo.. Link al commento Condividi su altri siti More sharing options...
elettromirko85 Inserita: 13 febbraio 2019 Segnala Share Inserita: 13 febbraio 2019 Ciao, perdonami ma non riesco a capire cosa intendi per media mobile... comunque la strada più semplice la vedo un ciclo for in scl se vuoi possiamo provare a buttare giù un’esempio semplice (se legge Batta che è un mago in queste cose sarà sicuramente più bravo di me a spiegarti la cosa). Non è poi così difficile l’scl e per queste cose è una goduria... è fattibile anche in kop anche se è abbastanza macchinoso e molto meno leggibile. Con il 300 non ho quasi mai lavorato ma la sostanza non cambia buona serata Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 14 febbraio 2019 Segnala Share Inserita: 14 febbraio 2019 FUNCTION_BLOCK "FilterAverageReal" { S7_Optimized_Access := 'FALSE' } VERSION : 0.1 VAR_INPUT Input : Real; SamplesNum : Int; InitValueReq : Bool; InitValue : Real; END_VAR VAR_OUTPUT Output : Real; END_VAR VAR Samples : Array[0..100] of Real; Index : Int; Summe : Real; END_VAR BEGIN #Summe := 0.0; IF #InitValueReq THEN FOR #Index := 100 TO 0 BY -1 DO #Samples[#Index] := #InitValue; END_FOR; END_IF; FOR #Index := 100 TO 1 BY -1 DO #Samples[#Index] := #Samples[#Index - 1]; IF (#Index <= #SamplesNum) THEN #Summe := #Summe + #Samples[#Index]; END_IF; END_FOR; #Samples[0]:=#Input; #Output := #Summe / (#SamplesNum); END_FUNCTION_BLOCK Link al commento Condividi su altri siti More sharing options...
Ricky_motoraro Inserita: 14 febbraio 2019 Autore Segnala Share Inserita: 14 febbraio 2019 ciao, grazie intanto, faccio una prova, vediamo cosa viene fuori.. per fare una media si possono sommare i vari campioni e dividerli per il numero di campioni.. in teoria si può anche spalmare i vari campioni di misura sulle variabili di un'array, diciamo di 10 campioni di misura, ora quello che non ho capito, è se il mio risultato finale è il valore più alto registrato nei 10 campionamenti. ho citato il demux del TIA portal, perchè serve appunto per fare delle medie usando l'array...ma mi sfugge cosa fa il demux... non volevo usare SCL, perchè a volte usiamo anche il GE, e quindi volevo capire come usare gli array.. 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