Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Industrietechnik

REST-API nachrüsten – Reverse-Proxy einrichten

Die PLCnext REST-Schnittstelle ist ein fantastisches Tool, um Daten von einem Backend-System zu präsentieren und zu empfangen. REST oder REpresentational State Transfer ist ein Softwarearchitekturstil, der aus Richtlinien und Best Practices zum Erstellen skalierbarer Webdienste besteht. Auf dem PLCnext-Infoportal gibt es bereits viele tolle Informationen, schauen Sie sich das unbedingt an! Die von der PLCnext-Firmware bereitgestellten URIs sind perfekt, wenn Sie Ihr System von Grund auf neu aufbauen können. Sie sind jedoch nicht ideal, wenn Sie eine vorhandene REST-Schnittstelle auf der PLCnext nachrüsten möchten. Dieser Blog zeigt Ihnen, wie Sie Ihre eigenen URIs einrichten und sie mit Ihren Variablen über einen Reverse-Proxy verbinden. Wir beginnen mit der Einrichtung eines kleinen Beispiels und arbeiten von dort aus weiter!

Voraussetzungen

Ich verwende eine AXC F 2152 Steuerung mit FW2020.6 und PLCnext Engineer 2020.6. Aber dasselbe sollte mit früheren Versionen später als 2020.0 möglich sein. Ich verwende PuTTY, um eine SSH-Verbindung einzurichten, und postman, um meine HTTP-Anfragen zu bearbeiten. Ich habe die Authentifizierung für Entwicklungszwecke deaktiviert, Sie sollten dies nicht in der Produktion tun! Die Anweisungen für PLCnext Engineer werden auf sehr hohem Niveau gegeben, Sie sind sich nicht sicher, was Sie tun sollen? Schauen Sie sich das PLCnext-Infoportal und die Anleitungsvideos an und/oder vergleichen Sie mit dem Beispielprojekt! Der von mir verwendete Controller hat die IP-Adresse 192.168.10.10, bitte ändern Sie diese auf die von Ihnen verwendete IP-Adresse.

Beispiel

In diesem Blog verwende ich als Beispiel einen einfachen Pumpen-UDT. Sie können das Beispielprogramm von dieser GitHub-Seite herunterladen oder natürlich Ihr eigenes erstellen. Deaktivieren Sie die Verwendung der „Benutzerverwaltung“ in den eHMI-Einstellungen und erstellen Sie eine globale Variable. Verwenden Sie diese Variable auf einer eHMI-Seite, damit wir sie in der API verwenden können.

Der erste API-Aufruf

Vielleicht sollten wir in wenigen Augenblicken zuerst herausfinden, was genau wir ändern!
Lassen Sie uns eine GET-Anfrage senden, um den Wert unserer ersten Pumpe zu erhalten.

Verwenden Sie Postman, um eine GET-Anforderung an den folgenden URI zu senden:

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

(Sie können Pump1 in Ihre eigene Variable ändern)

Das Ergebnis ist:

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

Einrichten eines benutzerdefinierten Endpunkts

Öffnen Sie eine Shell-Sitzung, erstellen Sie ein Root-Passwort und melden Sie sich als Root-Benutzer an.
Geben Sie als Nächstes den folgenden Befehl in Ihr Terminal ein, gehen Sie zum „Ende“ des Terminals und achten Sie darauf, in der Zwischenzeit nichts einzugeben!

nano /etc/nginx/nginx.conf

Kopiere den nächsten Teil in das Terminal und speichere mit Strg + s und schließe mit Strg + x.

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

Senden einer Anfrage an den neuen Endpunkt

Senden Sie eine neue GET-Anfrage mit postman, diesmal an die nächste URI:

GET https://192.168.10.10/Pump1

Dieselbe Antwort erhalten? Herzlichen Glückwunsch, Ihr Proxy wurde erfolgreich eingerichtet!

Mehrere Pumpen einrichten

Ok, aber was ist, wenn ich mehrere Pumpen habe? Nun, ein Ansatz könnte darin bestehen, ein Array zu erstellen, in dem Häuser UDT pumpen. Sie können das gesamte Array abrufen, indem Sie die Variable aufrufen, oder nur das Element, an dem Sie interessiert sind, indem Sie den gewünschten Index zwischen rechten Klammern angeben, z. B. Pump2[1] gibt Ihnen das Element mit Index 1 im Array namens Pump2 /P>

Aber das ist das Thema dieses Blogs. Wir können den Proxy auch so einrichten, dass wir Zugriff auf mehrere Pumpen erhalten.
Ändern Sie den in den vorherigen Schritten eingefügten Text so, dass er dem nächsten Schema entspricht:

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

Wenn Sie eine GET-Anfrage mit postman an die erste URI senden, erhalten Sie dasselbe wie zuvor. Wenn Sie eine GET-Anforderung an den zweiten URI senden, erhalten Sie ein Array desselben Datentyps.

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

Jetzt sollten Sie alles haben, um zu jedem API-Schema zu passen, auf das Sie stoßen, und es in Ihr PLCnext-Gerät integriert haben!

Weiterführende Literatur

https://www.howtogeek.com/343877/what-is-an-api/https://www.w3schools.com/tags/ref_httpmethods.asphttps://medium.com/@TebbaVonMathenstien/what-is-an -api-und-warum-ich-eine-verwenden-863c3365726bhttps://restfulapi.net/rest-api-design-tutorial-with-example/

Industrietechnik

  1. Duroplaste vs. Thermoplaste:Lernen Sie den Unterschied kennen
  2. Machen Sie sich schlau:Die Zukunft Ihres Zuhauses
  3. Lernen Sie CONNEX™ kennen, das Supply Chain Networking Tool zur Stärkung von Herstellern
  4. Werden Sie im B2B-Kaufprozess ausgewählt:26 Artikel zum Abhaken
  5. Das ungenutzte Potenzial der Reverse Logistics
  6. Rückkehr der umgekehrten Auktion:Werden Lieferanten mitspielen?
  7. So holen Sie das Beste aus Ihrem Lager-Scansystem heraus
  8. Wie kann ich das Beste aus meiner Investition in die Lead-Generierung herausholen?
  9. Vergleich von Industrie 4.0 zwischen Spanien und den übrigen Ländern
  10. Erste Schritte mit KI-Inferenz am Edge