Anuncio TOP B1 Mensaje

Colapsar

Anuncio TOP B4 Mensaje (Mobile)

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.

Tiempo activada una entrada con PLC Siemens S7-1200

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Tiempo activada una entrada con PLC Siemens S7-1200

    Buenas,

    Necesitaria saber el tiempo que esta activada una señal durante un periodo de 20 segundos(o el tiempo que esta activada otra entra), de esos periodos de tiempo saber cual a sido el mayor tiempo, sumarle una cantidad(0,5 segundos) y el resultado introducirlo en un temporizador.

    ¿Eso es posible en un S7-12000?.

    Pongo un ejemplo para que quede mas claro.

    Cuando este activada la entrada I0.0 o durante 20 segundos, me da igual.

    Tengo una entrada I0.1 que durante 20 segundo esta activado los siguientes periodos de tiempo.

    1 -> 1 seg
    2 -> 2 seg
    3 -> 5 seg
    4 -> 2.5 seg
    5 -> 3 seg
    6 -> 4 seg

    El valor maximo que son 5 segundos, se le sumaria 0.5 segundos y se introducira en un temporizador en la entrada (PT).

    Un saludo
    Editado por última vez por Henry_Marques; https://www.infoplc.net/foro/member/46583-henry_marques en 08 sep 17, 11:25:44.

  • #2
    Originalmente publicado por Henry_Marques Ver Mensaje
    Buenas,

    Necesitaria saber el tiempo que esta activada una señal durante un periodo de 20 segundos(o el tiempo que esta activada otra entra), de esos periodos de tiempo saber cual a sido el mayor tiempo, sumarle una cantidad(0,5 segundos) y el resultado introducirlo en un temporizador.

    ¿Eso es posible en un S7-12000?.

    Pongo un ejemplo para que quede mas claro.

    Cuando este activada la entrada I0.0 o durante 20 segundos, me da igual.

    Tengo una entrada I0.1 que durante 20 segundo esta activado los siguientes periodos de tiempo.

    1 -> 1 seg
    2 -> 2 seg
    3 -> 5 seg
    4 -> 2.5 seg
    5 -> 3 seg
    6 -> 4 seg

    El valor maximo que son 5 segundos, se le sumaria 0.5 segundos y se introducira en un temporizador en la entrada (PT).

    Un saludo
    No acabo de entender lo de los periodos d tienpo.
    Quieres saber durante un periodo de 20 seg. Cual de las diferentes entradas esta activa durante mas tiempo ??

    Comentario


    • #3
      Durante 20 segundos, cual es el mayor tiempo que esta activada la entrada I0.1.

      Un saludo

      Comentario


      • #4
        Originalmente publicado por Henry_Marques Ver Mensaje
        Durante 20 segundos, cual es el mayor tiempo que esta activada la entrada I0.1.

        Un saludo
        Estas diciendo entonces que i0.1 se activa y desactiva varias veces durante los 20 seg. no ?

        Comentario


        • #5
          Correcto, en 20 segundos se activa y desactiva varias veces, entonces quiero saber el máximo tiempo que se ha activado, sumarle 0.5 seg y meterlo en un temporizador

          Comentario


          • #6
            Interesante!

            Nos puedes mostrar cual es tu idea para hacerlo? Que has pensado?

            Un saludo

            Comentario


            • #7
              Yo lo haría de varias formas. Si es una de las entradas integradas en el PLC configuraría interrupciones HW para los flancos positivos y negativos y cuando se ejecute la interrupción me guardaría en una posición de un array el valor. Para sacar el valor de tiempo puede leer la fecha y la hora del PLC y restarla, de esa manera obtienes un dato en formato time.
              Una vez pasado un temporizador de 20 segundos, con una FC creada en SCL me recorrería el array buscando el valor más alto con la ayuda de un bucle FOR. Una vez localizado el valor máximo, coges el valor, le sumas esa constante de 0,5s, y se lo introduces al PT del siguiente temporizador.

              En el caso de que la precisión de este valor que necesites no sea muy alta puedes suprimir la parte de las interrupciones HW y usar simplemente por programa flancos positivos y negativos.

              Enviado desde mi Pixel C mediante Tapatalk

              Comentario


              • #8
                Buenas,

                He intentado algo parecido y luego lo que tu me recomendaste pero no he podido realizarlo. Pero no tengo suficientes conocimientos para hacerlo ni tiempo para poder aprender.

                Necesitaría saber si conoces alguna empresa o tu mismo podrías hacerme le programa. Podemos llegar a un acuerdo económico, ya que lo necesito para una aplicación que estoy realizando pero no puedo dedicarle tanto tiempo como gustaría. (Si quieres hablamos por privado).

                Un saludo

                Comentario


                • #9
                  Como dice eska89, la mejor forma es usar las interrupciones de hardware.
                  Con el flanco positivo, guardas la hora
                  Con el flanco negativo, calculas el tiempo entre flanco positivo y negativo y lo comparas con una variable que contendrá el máximo.
                  Inicialmente el máximo valdrá 0, por lo que irás almacenando un nuevo valor siempre que sea superior al anterior.

                  Con un OB ciclico cada 20 segundos, coges ese valor máximo y lo tratas como quieras. Luego pones el valor máximo nuevamente a cero para el siguiente ciclo de 20 segundos.

                  Si no te corre prisa, preparo el ejemplo para la proxima semana en el blog.

                  Saludos
                  Formación online en entorno Siemens
                  Aprovecha el mini curso gratuito de iniciación en Step 7.
                  https://programacionsiemens.com/mini-curso-step-7/

                  Comentario


                  • #10
                    Buenas,

                    Seria de gran ayudar ver el ejemplo en el blog, para poder seguir aprendiendo y mejorando.

                    Un saludo

                    Comentario


                    • #11
                      Hola!

                      Ya está publicado en el blog el ejemplo que espero que te sirva: http://programacionsiemens.com/inter...en-tia-portal/

                      Saludos!
                      Formación online en entorno Siemens
                      Aprovecha el mini curso gratuito de iniciación en Step 7.
                      https://programacionsiemens.com/mini-curso-step-7/

                      Comentario


                      • #12
                        Buenas compañeros.

                        He visto el problema y la solución aportada. Sin duda es muy buena.

                        Pero me gustaría saber, que ventajas tiene este sistema mediante interrupciones frente por ejemplo a un programa en el cual voy guardando en un array los tiempos (los sacos del valor de un temporizador a la conexión sin nada a la salida). De esta manera, almaceno todos los tiempos en el array y después, cada 20 segundos, recorro el array buscando el tiempo más alto.

                        Quizás esto hace que pierda ya que tengo que depende del tiempo de ciclo de scan para "enterarme" cuando se da la señal para comenzar la cuenta de tiempo. Pero creo que puede ser tan mínima que es despreciable.

                        Muchas gracias

                        Comentario

                        Anuncio Footer B3 Mensaje

                        Colapsar

                        Anuncio Footer B5 Mensaje (Mobile) 300x600

                        Colapsar
                        Trabajando...
                        X