Evento Timeout

  • 1 Respuestas
  • 106 Vistas

InduxSA

  • Aprendiz
  • **
  • Mensajes: 23
Evento Timeout
« : julio 17, 2017, 14:37:13 pm »
Hola Boris

Estoy teniendo un detalle en el evento Time out
Lo que hago es hacer dos paquetes de datos en en evento uno en Timeout1 y otro en timeout2,
dentro de cada uno de ellos valido el valor de la variable Alarmas para hacer el envio correspondiente

Mi problema es que en en evento Timeout1 no se umple el ciclo  cuando el valor de la Alarmas es 1

Te dejo el codigo del evento

@OnTimeout()

{
   //
   // Comprobar si Timeout1 ha expirado.
   //
   if(Timeout1Check() == 1)
   {
     if(Alarmas==0)
    {
       
    Mq="MQ-04"
    OT=OdT1
    GPM=Count1GetEventRPM_I()
    Contador=Count1GetEventCnt()
       // Enviar 4 campos con valores de Value1,Value2,Value3 y Value4 al servidor web.
       HttpSendGet("/PLCAdmin/GetHistorico?Maquina=%s&OT=%s&GPM=%d&Contador=%d",Mq, OT, GPM, Contador)

      }
       else if(Alarmas==1)
       {
    Mq="MQ-04"
    OT=Alarm1
   
        HttpSendGet("/PLCAdmin/GetHistorico?Maquina=%s&OT=%s&GPM=%d&Contador=%d",Mq, OT, 0, 0)
   
       }
      // Recargar Timeout1 para generarse en proximos 30 segundos.
      Timeout1Reload(30)
   
   }
     
   
 if(Timeout2Check() == 1)
   {
      // Comprobar si debemos iniciar una transmision HTTP.
   
    // Revisar si se han ingresado datos
     
   if(Alarmas2==0)
    {
       
    Mq="MQ-05"
    OT=OdT2
    GPM=Count2GetEventRPM_I()
    Contador=Count2GetEventCnt()
       // Enviar 4 campos con valores de Value1,Value2,Value3 y Value4 al servidor web.
       HttpSendGet("/PLCAdmin/GetHistorico?Maquina=%s&OT=%s&GPM=%d&Contador=%d",Mq, OT, GPM, Contador)

      }
       else if(Alarmas2==1)
    {
    Mq="MQ-05"
    OT=Alarm2
   
        HttpSendGet("/PLCAdmin/GetHistorico?Maquina=%s&OT=%s&GPM=%d&Contador=%d",Mq, OT, 0, 0)
    }
       
      // Recargar Timeout1 para generarse en proximos 30 segundos.
      Timeout2Reload(30)
   }
}

Saludos

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1748
  • Soporte Técnico
Re:Evento Timeout
« Respuesta #1 : julio 17, 2017, 18:17:02 pm »
Buenas tardes,

¿No te entra en adentro del "else if" cuando Alarmas=1?

Podrías comentar la función HttpSendGet() y colocar LedToggle() para descartar algún error de argumentos que le pases a la función.

Si el Led Debug se activa/desactiva, es porque se ejecuta al código.

Te agrego el código a tu fragmento en color rojo:


@OnTimeout()

{
   //
   // Comprobar si Timeout1 ha expirado.
   //
   if(Timeout1Check() == 1)
   {
     if(Alarmas==0)
    {
       
    Mq="MQ-04"
    OT=OdT1
    GPM=Count1GetEventRPM_I()
    Contador=Count1GetEventCnt()
       // Enviar 4 campos con valores de Value1,Value2,Value3 y Value4 al servidor web.
       HttpSendGet("/PLCAdmin/GetHistorico?Maquina=%s&OT=%s&GPM=%d&Contador=%d",Mq, OT, GPM, Contador)

      }
       else if(Alarmas==1)
       {
           Mq="MQ-04"  // Comprobar si array Mq es suficientemente grande para almacenar "MQ-04"
           OT=Alarm1  // Comprobar si array OT es suficientemente grande para almacenar Alarm1
   
           // HttpSendGet("/PLCAdmin/GetHistorico?Maquina=%s&OT=%s&GPM=%d&Contador=%d",Mq, OT, 0, 0)
         
           LedToggle()
   
       }
      // Recargar Timeout1 para generarse en proximos 30 segundos.
      Timeout1Reload(30)
   
   }
     
   
 if(Timeout2Check() == 1)
   {
      // Comprobar si debemos iniciar una transmision HTTP.
   
    // Revisar si se han ingresado datos
     
   if(Alarmas2==0)
    {
       
    Mq="MQ-05"
    OT=OdT2
    GPM=Count2GetEventRPM_I()
    Contador=Count2GetEventCnt()
       // Enviar 4 campos con valores de Value1,Value2,Value3 y Value4 al servidor web.
       HttpSendGet("/PLCAdmin/GetHistorico?Maquina=%s&OT=%s&GPM=%d&Contador=%d",Mq, OT, GPM, Contador)

      }
       else if(Alarmas2==1)
    {
    Mq="MQ-05"
    OT=Alarm2
   
        HttpSendGet("/PLCAdmin/GetHistorico?Maquina=%s&OT=%s&GPM=%d&Contador=%d",Mq, OT, 0, 0)
    }
       
      // Recargar Timeout1 para generarse en proximos 30 segundos.
      Timeout2Reload(30)
   }
}

Los timeout deberían ser inicializados antes en el programa para que funcionen:

Timeout1SetEvent(30)
Timeout2SetEvent(30)

Saludos
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 1 de enero al 25 de enero de 2018, cerramos por vacaciones.
Tenga en cuenta para sus pedidos y/o consultas.