• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página

Programación Siemens

Cursos online de TIA Portal y PLC Siemens.

  • Cursos
  • Blog
  • Mi cuenta
    • Mi cuenta
    • Foros
    • Curso HMI con Python y Qt-Designer
    • Curso de AWL
    • Curso de iniciación a la Industria 4.0
    • Curso Express de TIA Portal
    • Curso de WinCC Flexible 2008
    • Crear HMI con OPC y VB.NET
    • Crear HMI con Snap7 y VB.NET
    • Curso ViSnap7
    • Curso de TIA Portal para CPU 1200
    • Curso de Step 7 V5.x
    • Curso de comunicaciones IE y Profinet
  • Contacto & Faq
Home | TIA Portal | Crear números aleatorios en TIA Portal

Crear números aleatorios en TIA Portal

Crear números aleatorios en TIA Portal

por Iñigo Gútiez · 3 comentarios

Hoy te traigo cómo generar números aleatorios en TIA Portal.

Sí, ya sé que Siemens tiene la LGF que puedes encontrar aquí, y que tiene una función de generar números aleatorios.

Pero, ¿y si quisieras hacerlo por tu cuenta? ¿o para Step 7 clásico?

Pues aquí entra la imaginación… y las matemáticas.

Para generar números pseudoaleatorios, podemos usar el generador lineal congruencial.

Casi mejor, que te lo explico en el siguiente vídeo.

Números aleatorios en TIA Portal

Como ves, la gracia de este método es que podrías usarlo con un poco de imaginación en Step7 tradicional también.

Podrías usar valores como a(multiplicador) = 1103515245,  c (incremeto) = 12345 y un módulo = 2^16

Lo mejor es que juegues con ello, eches un vistazo a las fórmulas y llegues a tu fórmula más adecuada para crear tus números aleatorios en TIA Portal.

¿Qué te ha parecido?

Espero tus comentarios sobre el tema.

Yo la verdad que a nivel industrial con un PLC nunca he usado un número random, pero nunca se sabe.

Además, ya tienes el código para saber cómo obtener la fecha y hora en UNIX en caso de necesidad.

Recuerda que los conocimientos de SCL lo puedes adquirir en el Curso completo de TIA Portal!

 

Iñigo Gútiez
Iñigo Gútiez

Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí

Puedes seguirme en cualquiera de las siguientes redes sociales.

Publicado en: TIA Portal, blog

Interacciones con los lectores

    Deja un comentario Cancelar

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

    3 Comentarios

  1. Luis Salazar dice

    24 febrero, 2023 a las 21:00

    Buenas Iñigo, algo es algo, no es un reto como tal, pero no está mal.

    Como sabes te sigo en tu blog porque me gusta, verás los números aleatorios como bien dices, de aleatorios tienen más bien poco, ya que si no se toman las debidas precauciones se repetirán cada vez que se ejecute la aplicación dentro del mismo PC, aquí la demostración:

    https://youtu.be/VxnPZBq5kpQ

    Por otra parte, en industria no se usan casi nunca por no decir nunca, pero por ejemplo en una simulación de presencia para hacer las maniobras en diferentes horas si sería una buena opción.

    Yo los he usado en una aplicación que está en mi canal sobre una máquina tragaperras, obviamente yo fuerzo los aleatorios para que ANTES de que salga el premio, predecir cual será este, es más, en dicha aplicación obligo a que salga el premio que yo quiera con la particularidad de que aunque seleccione el mismo premio, este será en diferente orden de frutas, esa aplicación tiene su historia, resulta que un cliente mío tiene un pariente que se dedica al negocio de las tragaperras, pues en una barbacoa salió el tema de que esas máquinas no son del todo claras, el insistía en que no se pueden «manipular» las máquinas y que todo era producto del azar…hombre por favor…

    https://youtu.be/xV0d59z-MmM

    Aquí os la dejo para que tus alumnos puedan trabajar con aleatorios.

    Saludos y gracias por compartir.

    Responder
    • Iñigo Gútiez dice

      2 marzo, 2023 a las 13:22

      A ver, lo que sucede es simplemente que si no cambias la semilla, y empiezas desde cero siempre con la misma semilla, pues logicamente te salen los mismos resultados. Eso es lo que hace randomize, simplemente elegir una semilla diferente, cosa que se hace con la hora del reloj en el ejemplo que he puesto, ya que tú no eres capaz de saber en qué milisegundo va a pararse y por tanto, no puedes prever el siguiente número.
      Además, lo suyo no es pedir un random cada vez que quieras, sino que el random se esté generando de forma continua de forma que cuando se solicite no sea, el 1, el 2, el 3.. sino que por si mismo sea aleatorio cuando se va a solicitar un número que se está generando de forma continua y por tanto, es impredicible cuál va a ser el siguiente número. Eso incluso sin cambiar de semilla.
      La semilla con que se genere al principio del programa, sería suficiente si luego estas generando números aleatorios de continuo y simplemente lo que haces es consultar cuando necesites el número actual, el que toque en ese momento. pero no los obtienes de forma secuenciada.
      De esa forma, ya te digo que no tienes cojones a saber cuál es el número que va a salir cuando pulses el botón, porque entre pulsaciones de botón se han generado un número indeterminado de números aleatorios, que no sabes cuántos y por tanto, si es aleatorio en gran medida por la simple incertidumbre de cuándo vas a pulsar el botón. Si a eso le añades que cada X tiempo de forma indeterminada (usando un temporizado que a su vez se base en un número aleatorio) cambie de semilla, empiezas a tener cada vez más aleatoriedad.

      Responder
      • Luis Salazar dice

        5 marzo, 2023 a las 12:53

        Hola Iñigo, totalmente de acuerdo con lo que escribes, yo lo hago operando con los milisegundos, los segundos, los minutos, incluso la hora, cualquier operación realizada con esas variables, dará un resultado diferente cada vez, eso está claro, es más, los guardas en cualquier forma para luego recorrerlos, si no está pues adelante…

        Peeeeeeero, eso no quita de que la máquina tragaperras use la programación que yo he usado, y he aquí mi duda o pregunta, de la cual obviamente ya sé la respuesta, aún así te lo pregunto, ¿Cómo crees que se ha realizado esa configuración para que de antemano se obtenga cualquier combinación ganadora, o, de antemano se anteponga los premios que dará, sin repetir la posición de la fruta?.

        La idea mía es obtener otras ideas, concretamente de gente como tú que son las que me interesan.

        Saludos.

        Responder

Footer

· Acerca de
· Misión, Visión y valores
· Aviso Legal y Política de Privacidad
· Condiciones de Venta
· Política de cookies
Utilizamos cookies propios y de terceros para mejorar nuestros servicios y tu experiencia de usuario. Si continuas navegando, consideramos que aceptas su uso. Aceptar Política de cookies
Política de Cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR