Vai al contenuto
PLC Forum


S7 1200 E Numeri Random


Giuseppe Signorella

Messaggi consigliati

Giuseppe Signorella

Buongiorno ragazzi,

Ho la necessità di generare un numero Random.

Esiste un modo semplice per generare tale numero o un (pseudo Random) con un S7 1200?

Grazie

Link al commento
Condividi su altri siti


Buongiorno ragazzi,

Ho la necessità di generare un numero Random.

Esiste un modo semplice per generare tale numero o un (pseudo Random) con un S7 1200?

Grazie

Come no?

Nella tendina a dx, ci deve essere la funzione" lancia i dadi". Su ogni fronte di salita del segnale il plc soffia sui dadi, li lancia e si puó sentire " rien va plus,le jeux sont fais!" . Provata e funziona alla grande. C' è pure la funzione " slot machine" ma il plc va collegato in rete col monopolio di stato.

Va beh, scherzavo..... Qui fa caldo.....

A parte gli scherzi, non saprei se esiste tale possibilità Giuseppe.

Link al commento
Condividi su altri siti

Ci sono degli algoritmi per la generazione dei numeri random; ora sono ancora al mare e non ho con me niente ed a memoria non mi ricordo.

Comunque se fai una ricerca in rete con le parole "generazione numeri random" dovresti avere solo l'imbarazzo della scelta.

Link al commento
Condividi su altri siti

Giuseppe Signorella

Avevo pensato d leggere ciclicamente (o quando mi necessita generare il numero random) i nanosecondi dell'ora di sistema della CPU.

Non sarà un vero numero random, ma comunque potrebbe essere una soluzione. Ritengo alquanto improbabile che il tempo di ciclo della CPU sia assolutamente costante, anche perchè dopo la "generazione" del primo numero random la CPU eseguirà una porzione di codice che sarà in funzione dle numero random generato. La successiva generazione/lettura sarà influenzato da quello precedente.

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Ho capito bene: nanosecondi? ovvero 10-9 ?

Comunque sarebbe poco randommizzato. Un'analisi statistica ti darebbe una distribuzione di tipo gaussiano con concentramento delle letture su una gamma limitata di valori; anche perchè la basr di partenza sarebbe <=999.

Link al commento
Condividi su altri siti

  • 1 month later...
Giuseppe Signorella

Metto a disposizione una biblioteca che genera numeri Pseudo_Random.

Pseudo perchè si basa sulla lettura dei nanosecondi dell'ora di sistema della CPU, per tale motivo se il richiamo del blocco fosse eseguita per assurdo con una cadenza ciclica assolutamente perfetta (cosa impossibile) genererebbe sempre lo stesso numero.

La libreria è parametrizzabile secondo le vostre esigenze, da 0 a 65535, e genera un numero random ogni qual volta viene richiamata con un fronte di salita.

Può generare anche numeri negativi.

Resto a disposizione per ogni ulteriore chiarimento in merito.

Per scaricare la libreria: clicca qui

Link al commento
Condividi su altri siti

Ho usato anch'io questo sistema anni fa sul 300, leggevo i millisecondi dell'orario di sistema, non ciclicamente però, mi serviva raramente, alla pressione di un tasto.

Link al commento
Condividi su altri siti

Giuseppe Signorella

Si, anche io non lo uso ciclicamente.

Nel progetto in cui lo utilizzato, il numero random viene convertito in "tempo".

Il successivo richiamo avviene allo scadere della frazione temporale precedente, pertanto non è un richiamo costante.

C'è chi afferma, e condivido tale opinione, che in un sistema a logica programmabile, un esiste un vero sistema per generare numeri casuali, in quanto sarebbero comunque prevedibili.

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...