PLC como servidor web

  • 1 Respuestas
  • 2249 Vistas

InduxSA

  • Aprendiz
  • **
  • Mensajes: 25
PLC como servidor web
« : julio 13, 2016, 21:23:35 pm »
Estimado Biris

Estoy configurando el plc como servidor web

Hay una parte en el programa ejemplo en donde al cambiar el estado de la entrada DIN1 se enciende o apaga un foco

La pregunta es como puedo encender y apagar el foco pero tomando el valor de una variable del programa principal


Algo como

if (GPM>150)
{ Foco=1
}
else
{Foco=0
}

Y con el estado de foco enciende o apaga el foco

Lo intenté de esta manera y tmbien igualando la variable con las constantes nativas pero no logré que el foco cambiara de estado

Espero puedan ayudarme

Quedó atento de sus comentarios

Saludos


Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2326
  • Soporte Técnico
Re:PLC como servidor web
« Respuesta #1 : julio 13, 2016, 22:01:49 pm »
Buenas tardes Jose,

Adjunto un ejemplo para StxLadder para hacer lo que pedís.

El ejemplo utiliza la variable "Foco" de forma global en "PlcMain.p":

Código: (Pawn) [Seleccionar]
new Foco = 1
Luego en función "PlcMain()" la conmutamos de "1" a "0" y de "0" a "1" cada 5 segundos:

Código: (Pawn) [Seleccionar]
   for(;;)
   {
      //
      // Conmutar el valor de Foco segun valor actual
      // cada 5 segundos.
      //
      // Esto se verá reflejado en la pagina Web inputs.shtml al refrescarla.
      //
     
      if(Foco==1)
      {
         Foco = 0
      }
      else
      {
         Foco = 1
      }
     
      // Esperar 5 segundos.
      DelayS(5)     
   }


Finalmente, en "OnPrintEvent.p" cuando se pida desde la pagina web "inputs.shtml" imprimir la cadena numero 11, hacemos:

Código: [Seleccionar]
case 11:
WebServerPrintStr("/l%d.gif", Foco)

Como podes ver en el código anterior, la cadena resultante al llamar WebServerPrintStr() sera "/l1.gif" o "/l0.gif" según el valor entero de la variable "Foco".

Recordar que desde pagina "inputs.shtml" se pide la cadena 11 de la siguiente forma en el codigo HTML:

Código: (HMTL) [Seleccionar]
<td><img src="$! PrintStr 11 $"></td>
El comando "$! PrintStr 11 $" será reemplazado por "/l1.gif" o "/l0.gif" según el valor entero de la variable "Foco", y esto provocará en el navegador que se cargue el archivo de imagen correspondiente.

Para probarlo, necesitas recargar la pagina cada 2 o 3 segundos manualmente en el navegador, así ves el cambio de estado de la imagen.

Hay otra forma de hacerlo "mas dinámico" para no tener que recargar la pagina manualmente para ver el cambio de estado del Foco y hacerlo automáticamente, utilizando JavaScript, ¿pero no se si eso es lo que queres?.

Saludos




« Última Modificación: julio 13, 2016, 22:04:44 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com