Optimizar API REST PLCnext: Configurar un Proxy Inverso
La Interfaz REST de PLCnext es una herramienta fantástica tanto para presentar como para recibir datos de un sistema back-end. REST, o Transferencia de Estado Representacional, es un estilo de arquitectura de software que consiste en directrices y mejores prácticas para crear servicios web escalables. Hay mucha información excelente ya en el portal de información PLCnext, ¡asegúrese de revisarla! Las URIs proporcionadas por el Firmware PLCnext son perfectas si puede construir su sistema desde cero. Sin embargo, no son ideales si quiere adaptar una interfaz REST existente en el PLCnext. Este blog le mostrará cómo configurar sus propias URIs y conectarlas con sus variables con un proxy inverso. ¡Empezamos con un pequeño ejemplo y trabajamos desde ahí!
Requisitos previos
Estoy usando un controlador AXC F 2152 con FW2020.6 y PLCnext Engineer 2020.6. Pero lo mismo debería ser posible con versiones anteriores posteriores a 2020.0. Usaré PuTTY para configurar una conexión SSH y Postman para manejar mis peticiones HTTP. He deshabilitado la autenticación para propósitos de desarrollo, ¡no debería hacer lo mismo en producción! Las instrucciones para PLCnext Engineer se darán a muy alto nivel, ¿no sabe qué hacer? Eche un vistazo al portal de información PLCnext y videos de instrucciones y/o compare con el proyecto de muestra. El controlador que estoy usando tiene la dirección IP 192.168.10.10, por favor cámbielo a la dirección IP que esté usando.
Ejemplo
En este blog usaré un UDT de bomba simple como ejemplo. Puede descargar el programa de muestra desde esta página de GitHub, o por supuesto crear el suyo propio. Desactive el uso de "gestión de usuarios" en la configuración eHMI y cree una variable global. Use esta variable en una página eHMI para que podamos usarla en la API.
La primera llamada API
Tal vez primero deberíamos descubrir qué exactamente estamos cambiando en unos momentos. Enviemos una petición GET para obtener el valor de nuestra primera bomba.
Use Postman para enviar una petición GET a la siguiente URI:
GET https://192.168.10.10/_pxc_api/api/variables?paths=Arp.Plc.Eclr/Pump1
(Puede cambiar Pump1 por su propia variable)
El resultado es:
{
"apiVersion": "1.4.0.0",
"projectCRC": 3448945666,
"userAuthenticationRequired": true,
"variables": [
{
"path": "Arp.Plc.Eclr/Pump1",
"value": {
"xStatus": false,
"iNumberOfStarts": 0,
"sStatus": ""
}
}
]
}
Configurar un endpoint personalizado
Abra una sesión de shell, cree una contraseña de root e inicie sesión como usuario root. A continuación, escriba el siguiente comando en su terminal, vaya al "final" de la terminal y tenga cuidado de no escribir nada mientras tanto.
nano /etc/nginx/nginx.conf
Copie y pegue la siguiente parte en el terminal y guarde con ctrl + s y cierre con ctrl + x.
location /Pump1 {
proxy_pass https://127.27.0.1:443/_pxc_api/api/variables?paths=Arp.Plc.Eclr/Pump1;
}
Enviar una petición al nuevo endpoint
Envíe una nueva petición GET con Postman, esta vez a la siguiente URI:
GET https://192.168.10.10/Pump1
¿Recibió la misma respuesta? ¡Felicidades, su proxy se configuró exitosamente!
Configurar múltiples bombas
Bueno, pero ¿qué pasa si tengo múltiples bombas? Un enfoque podría ser hacer un array que contenga nuestros UDT de bomba. Puede obtener el array completo llamando a la variable o solo el elemento que le interesa especificando el índice que quiere entre corchetes, por ejemplo Pump2[1] le dará el elemento con índice 1 en el array llamado Pump2.
Pero ese no es el tema de este blog. También podemos configurar el proxy de una manera que podamos acceder a múltiples bombas. Modifique el texto pegado en los pasos anteriores para que coincida con el siguiente esquema:
location /pumps {
proxy_pass https://127.27.0.1:443/_pxc_api/api/variables?paths=Arp.Plc.Eclr;
}
Enviar una petición GET con Postman a la primera URI le dará lo mismo que antes. Enviar una petición GET a la segunda URI le dará un array del mismo tipo de dato.
https://192.168.10.10/pumps/Pump1
https://192.168.10.10/pumps/Pump2
¡Ahora debería tener todo para adaptar cualquier esquema de API que encuentre e integrarlo en su dispositivo PLCnext!
Lecturas adicionales
- ¿Qué es una API?
- Métodos HTTP
- ¿Qué es una API y por qué debería usar una?
- Tutorial de diseño de API RESTful con ejemplo
Tecnología Industrial
- Descubra CONNEX™: La Plataforma Premier de Redes de Cadena de Suministro para Fabricantes
- Sea la primera opción: 26 puntos esenciales de checklist para el éxito en compras B2B
- Estrategias de marketing digital para ganar clientes en la industria de defensa
- Desbloquear valor: Logística inversa optimizada impulsa ROI y lealtad del cliente
- El resurgimiento de las subastas inversas: Empoderar a los proveedores en guerras de precios
- Maximiza la Eficiencia: Consejos de Expertos para tu Sistema de Escaneo en Almacén
- Maximiza el ROI de tu Inversión en Generación de Leads
- Adopción de Industria 4.0: España vs Panorama Global
- Domina la inferencia Edge AI: Guía práctica para insights accionables
- Evolución del Hogar Inteligente: Qué Nos Depara el Futuro de la Vida Conectada
- Termofijos vs. Termoplásticos: Entendiendo sus Diferencias Clave y Aplicaciones