Inicio > Foro > Programación IEC 61131 (LogicLab) > FB HTTPGetPage y el servicio REST
- Este tema tiene 9 respuestas, 3 participantes y se actualizó por última vez 5 años, hace 11 meses da Sergio Bertana.
-
autorPublicación
-
Noviembre 24, 2015 en 9: 43 am #35883Andreapartícipe
Descargué e instalé el nuevo firmware SFW184B000 con la nueva función de administración HTTP, quería preguntar si era posible tener ejemplos de uso del FB HTTPGetPage en ST y en FBD.
Noviembre 24, 2015 en 9: 45 am #39208Sergio BertanaAdministrador del foroEn el nuevo firmware, la gestión de redes se ha rediseñado por completo con la adición de FB para gestionar las conexiones de cliente y servidor en UDP y TCP. También se ha introducido la compatibilidad con DNS para la resolución de URL. Esto nos ha permitido crear toda una serie de nuevos FB dedicados al networking, te sugiero que consultes el nueva versión del manual.
El FB HTTPGetPage le permite actuar como un navegador común adquiriendo páginas web de servidores HTTP, en el manual ya hay un ejemplo en lenguaje ladder que se conecta a un script PHP publicado en un servidor público. En el ejemplo, al activar una entrada digital, se realiza una solicitud de página en el sitio web de Altervista, los parámetros Dividendo y Divisor se pasan en GET 2.
La página solicitada es un script PHP que realiza la división entre los valores pasados. Es posible probar el funcionamiento del script directamente desde aquí. http://www.slimline.altervista.org/Mdp095a000/Ptp119b000/Division.php?Dividend=500&Divisor=10.
Si el script está activo, se devuelve una página con: El resultado es: 50. Es obvio que puede probar el script cambiando los valores en la dirección del navegador y obteniendo resultados diferentes. El propósito del FB es precisamente este apoyarse en el programa SlimLine en un servicio web en la nube para realizar operaciones.
Noviembre 24, 2015 en 10: 30 am #39209Sergio BertanaAdministrador del foroAprovecho el tema para agregar que el HTTPGetPage FB es el motor de una nueva biblioteca que hemos desarrollado para que algunos clientes administren el Internet de las cosas usando el servicio REST. Actualmente estamos trabajando en esta biblioteca que esperamos poder ofrecer lo antes posible, mientras se lanza en modo beta a los clientes que la soliciten.
Aquí hay uno captura de pantalla de la página histórica del sitio REST creado para un cliente que gestiona frigoríficos industriales, donde se ve un informe con la visualización de la temperatura de la cámara frigorífica relacionada con la del evaporador.
Noviembre 24, 2015 en 12: 32 pm #39213AndreapartícipeEl programa de ejemplo propuesto en Ptp119b000 y en lenguaje LD que es un poco difícil para mí, si lo reprodujera en ST y FBD entendería mejor cómo integrarlo en mi sistema, muchas gracias.
Noviembre 24, 2015 en 2: 57 pm #39214Sergio BertanaAdministrador del foroEn el lenguaje FBD es prácticamente lo mismo que en el lenguaje LD, por lo que preferí crear un ejemplo en lenguaje ST donde también configuré la posibilidad de pasar GET a la solicitud de valores de variable y adquirir el valor de resultado de la cadena devuelta y colocarlo en una variable REAL (Aqui esta ella impresión de programa).
Adjunto para descargar la versión actual del programa de ejemplo Ptp119b100 con el nuevo programa (Descargar programa).
Febrero 24, 2017 en 8: 23 am #39852SergiopartícipeHola, creo que encontré un error en el HTTPGetPage FB de eLLabNetworkLib_A200.plclib. Si la cadena de solicitud está vacía, se realiza una solicitud HTTP incorrecta, se repite exactamente la primera línea (por ejemplo, HTTP / ruta / a / b / c HTTP / 1.1), ya que también se encuentra en la segunda línea.
Poner incluso un solo carácter (HTTPClient.Request: = ADR ('x');) no causa el problema.
Febrero 25, 2017 en 7: 56 am #39853Sergio BertanaAdministrador del foroLa biblioteca está evolucionando (estamos trabajando en eLLabNetworkLib_A400) con mejoras y soluciones de errores, en esta versión en el FB HTTPGetPage se comprueba el valor del puntero de solicitud y, si es NULO, se realiza la solicitud correcta.
Dado que la biblioteca aún no se ha lanzado oficialmente, adjunto el programa para descargar HTTPGetPage que se conecta al servidor de Altervista donde un programa php realiza una división. En el programa está la nueva versión del HTTPGetPage FB, puedes exportarlo y usarlo en tu proyecto (Descargar programa).
Febrero 27, 2017 en 7: 24 pm #39860SergiopartícipeGracias por su ayuda, confirmo que la nueva versión no tiene el error informado.
Sin embargo, para usarlo de manera confiable (con un programa de prueba que constantemente requiere nuevas operaciones a través de http), tuve que intentar encontrar la secuencia y las condiciones correctas en Habilitar y Listo, porque de lo contrario, después de algunas solicitudes, el FB se atascaría.
Marzo 2, 2017 en 4: 08 pm #39861Sergio BertanaAdministrador del foroactivando permitir parte de la solicitud de página al final está activada Terminado. Al activar Done, Enable se puede restablecer. Si desea realizar solicitudes continuas después de un ciclo de programa, puede volver a habilitar Habilitar. A continuación se explica cómo ejecutar solicitudes consecutivas. Tenga en cuenta que la secuencialidad del programa debe mantenerse como se informó.
HTTPPr(); (* FB execution *)
IF NOT(HTTPPr.Done) AND (HTTPPr.Enable) THEN
i:=SysVarsnprintf(ADR(Request), SIZEOF(Request), ‘Dividend=%.3f’, REAL_TYPE, ADR(Dividend));
i:=SysLWVarsnprintf(ADR(Request), SIZEOF(Request), ‘$26Divisor=%.3f’, REAL_TYPE, ADR(Divisor));
END_IF;HTTPPr.Enable:=NOT(HTTPPr.Done); (* HTTP get page enable *)
Mayo 10, 2018 en 4: 12 pm #44046Sergio BertanaAdministrador del foroEl HTTPGetPage FB ha sido reemplazado por el nuevo HTTPClient FB (Tema).
-
autorPublicación
- Debe iniciar sesión para responder a este tema.