Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Modernisation de l'API REST - Mise en place d'un proxy inverse

L'interface PLCnext REST est un outil fantastique pour présenter et recevoir des données d'un système back-end. REST, ou REpresentational State Transfer, est un style d'architecture logicielle composé de lignes directrices et de meilleures pratiques pour la création de services Web évolutifs. Il y a déjà beaucoup d'informations intéressantes sur l'infoportail PLCnext, assurez-vous de le consulter ! Les URI fournies par le micrologiciel PLCnext sont parfaites si vous pouvez construire votre système à partir de zéro. Cependant, ils ne sont pas idéaux si vous souhaitez moderniser une interface REST existante sur le PLCnext. Ce blog vous montrera comment configurer vos propres URI et les connecter à vos variables avec un proxy inverse. Nous commençons par configurer un petit exemple et travaillons à partir de là !

Prérequis

J'utilise un contrôleur AXC F 2152 avec FW2020.6 et PLCnext Engineer 2020.6. Mais la même chose devrait être possible avec les versions précédentes ultérieures à 2020.0. J'utiliserai PuTTY pour configurer une connexion SSH et un facteur pour gérer mes requêtes HTTP. J'ai désactivé l'authentification à des fins de développement, il ne faut pas faire la même chose en production ! Les instructions pour PLCnext Engineer seront données à un niveau très élevé, vous ne savez pas quoi faire ? Jetez un coup d'œil à l'infoportail PLCnext et aux vidéos d'instructions et/ou comparez avec l'exemple de projet ! Le contrôleur que j'utilise a l'adresse IP 192.168.10.10, veuillez la remplacer par l'adresse IP que vous utilisez.

Exemple

Dans ce blog, je vais utiliser une simple pompe UDT comme exemple. Vous pouvez télécharger l'exemple de programme à partir de cette page GitHub, ou bien sûr créer le vôtre. Désactivez l'utilisation de la « gestion des utilisateurs » dans les paramètres eHMI et créez une variable globale. Utilisez cette variable sur une page eHMI afin que nous puissions l'utiliser dans l'API.

Le premier appel d'API

Peut-être devrions-nous d'abord découvrir ce que nous changeons exactement dans quelques instants !
Envoyons une requête GET pour obtenir la valeur de notre première pompe.

Utilisez Postman pour envoyer une requête GET à l'URI suivant :

GET https://192.168.10.10/_pxc_api/api/variables?paths=Arp.Plc.Eclr/Pump1

(Vous pouvez remplacer Pump1 par votre propre variable)

Le résultat est :

{
"apiVersion": "1.4.0.0",
"projectCRC": 3448945666,
"userAuthenticationRequired": true,
"variables": [
{
"path": "Arp.Plc.Eclr/Pump1",
"value": {
"xStatus": false,
"iNumberOfStarts": 0,
"sStatus": ""
}
}
]
}

Configuration d'un point de terminaison personnalisé

Ouvrez une session shell, créez un mot de passe root et connectez-vous en tant qu'utilisateur root.
Ensuite, tapez la commande suivante dans votre terminal, allez au "bas" du terminal et faites attention de ne pas taper quelque chose entre-temps !

nano /etc/nginx/nginx.conf

Copiez-collez la partie suivante dans le terminal et enregistrez avec ctrl + s et fermez avec ctrl + x.

location /Pump1 {
proxy_pass https://127.27.0.1:443/_pxc_api/api/variables?paths=Arp.Plc.Eclr/Pump1;
}

Envoi d'une requête au nouveau point de terminaison

Envoyez une nouvelle requête GET avec postman, cette fois à l'URI suivant :

OBTENEZ https://192.168.10.10/Pump1

Vous avez reçu la même réponse ? Félicitations, votre proxy a été configuré avec succès !

Configuration de plusieurs pompes

D'accord, mais que se passe-t-il si j'ai plusieurs pompes ? Eh bien, une approche pourrait être de faire un tableau qui abrite des pompes UDT. Vous pouvez obtenir le tableau entier en appelant la variable ou simplement l'élément qui vous intéresse en spécifiant l'index que vous voulez entre crochets droits, par exemple Pump2[1] vous donnera l'élément avec l'index 1 dans le tableau nommé Pump2.

Mais c'est le sujet de ce blog. Nous pouvons également configurer le proxy de manière à pouvoir accéder à plusieurs pompes.
Modifiez le texte collé aux étapes précédentes pour qu'il corresponde au schéma suivant :

location /pumps {
proxy_pass https://127.27.0.1:443/_pxc_api/api/variables?paths=Arp.Plc.Eclr;
}

L'envoi d'une requête GET avec postman au premier URI vous donnera la même chose qu'avant. L'envoi d'une requête GET au deuxième URI vous donnera un tableau du même type de données.

https://192.168.10.10/pumps/Pump1
https://192.168.10.10/pumps/Pump2

Vous devriez maintenant avoir tout pour correspondre à n'importe quel schéma d'API que vous rencontrez et l'intégrer dans votre appareil PLCnext !

Autres lectures

https://www.howtogeek.com/343877/what-is-an-api/https://www.w3schools.com/tags/ref_httpmethods.asphttps://medium.com/@TebbaVonMathenstien/what-is-an -api-et-pourquoi-je-devrais-en-utiliser-un-863c3365726bhttps://restfulapi.net/rest-api-design-tutorial-with-example/

Technologie industrielle

  1. Soyez intelligent :l'avenir de votre maison
  2. Découvrez CONNEX™ L'outil de mise en réseau de la chaîne d'approvisionnement pour renforcer les fabricants
  3. Soyez sélectionné dans le processus d'achat B2B :26 éléments à cocher
  4. Le potentiel inexploité de la logistique inverse
  5. Retour de l'enchère inversée :les fournisseurs joueront-ils ?
  6. Comment tirer le meilleur parti de votre système de numérisation d'entrepôt
  7. Comment tirer le meilleur parti de mon investissement dans la génération de prospects ?
  8. Comparaison de l'industrie 4.0 entre l'Espagne et le reste des pays
  9. Comment démarrer avec l'inférence IA en périphérie