Vai al contenuto
PLC Forum


Generatore di numeri casuali in S7


Akira

Messaggi consigliati

Qualcuno sa indicarmi una funzione capace di emettere un numero casuale da 0 a n...?

Avrei bisogno di un algoritmo (tipo una fc) che mi accetti in ingresso il valore di "n" per specificare il limite superiore del campo dei numeri. Ad ogni chiamata deve generare un numero casuale <=n.

Chi mi da' una mano?

Grazie...

Link al commento
Condividi su altri siti


Federico Milan

Mai fatto una cosa del genere con il PLC ... cosa ti serve ?!? ... generare rumore !?? PWM ?!? sono curioso ...

comunque se non erro, qualche tempo fa ho usato un algoritmo ricorsivo e il problema di questi algoritmi sono le costanti ...

questo è quello che ho usato e le costanti le ho trovate, non mi ricordo più dove, ovviamente le devi agiustare per i tuoi scopi :) questo genera una segquenza di numeri pseudo-casuali tra 0-1 e sono reali ... adattalo alle tue esisgenza ... io ho dato a Y_k con k= 0 Y_0 = 1.

Y_(k+1) = (a*Y_k+c) mod m k > 0

dove per le costanti si potrebbe scegliere

m=2^31-1;

a=1103515245 e c=0.

ciao

Link al commento
Condividi su altri siti

Luca Bettinelli

Se il tuo PLC è uno Step7, ed hai il linguaggio di programmazione SCL esiste una funzione che genera un numero casuale.

Se vuoi ti posso inviare un blocco che genera un numero casuale dati due limiti del valore in ingresso.

Ciao

Link al commento
Condividi su altri siti

Luca Bettinelli

Ti allego il sorgente AWL del blocco, non sapendo se hai l'SCL, questo blocco utilizza l'SFC 64 per leggere il timer di sistema come base per la generazione del numero casuale.

Ciao

Modificato: da NULL
Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...