PLCnext REST API Stroomlijnen: Reverse Proxy Instellen
De PLCnext REST-interface is een fantastisch hulpmiddel om zowel data aan te bieden als te ontvangen van een back-end-systeem. REST, of REpresentational State Transfer, is een software-architectuurstijl bestaande uit richtlijnen en best practices voor het creëren van schaalbare webservices. Er is al veel geweldige informatie op de PLCnext infoportaal, zeker om te bekijken! De URI's die door de PLCnext-firmware worden aangeboden, zijn perfect als u uw systeem vanaf nul kunt bouwen. Echter, ze zijn niet ideaal als u een bestaande REST-interface op de PLCnext wilt retrofitten. Deze blog laat u zien hoe u uw eigen URI's kunt instellen en ze kunt verbinden met uw variabelen met een reverse proxy. We beginnen met het opzetten van een klein voorbeeld en werken daarvandaan uit!
Vereisten
Ik gebruik een AXC F 2152 controller met FW2020.6 en PLCnext Engineer 2020.6. Maar hetzelfde zou mogelijk moeten zijn met eerdere versies later dan 2020.0. Ik gebruik PuTTY om een SSH-verbinding op te zetten en Postman om mijn HTTP-verzoeken te hanteren. Ik heb de authenticatie uitgeschakeld voor ontwikkelingsdoeleinden, u moet dit in productie niet doen! De instructies voor PLCnext Engineer worden op hoog niveau gegeven, weet u niet wat u moet doen? Bekijk de PLCnext infoportaal en instructievideo's en/of vergelijk met het voorbeeldproject! De controller die ik gebruik heeft het IP-adres 192.168.10.10, wijzig dit in het IP-adres dat u gebruikt.
Voorbeeld
In deze blog gebruik ik een eenvoudige pomp UDT als voorbeeld. U kunt het voorbeeldprogramma downloaden van deze GitHub-pagina, of natuurlijk uw eigen maken. Schakel het gebruik van "gebruikersbeheer" uit in de eHMI-instellingen en maak een globale variabele aan. Gebruik deze variabele op een eHMI-pagina zodat we deze in de API kunnen gebruiken.
De Eerste API-aanroep
Misschien moeten we eerst ontdekken wat we precies in een paar ogenblikken gaan veranderen! Laten we een GET-verzoek sturen om de waarde van onze eerste pomp op te halen.
Gebruik Postman om een GET-verzoek te sturen naar de volgende URI:
GET https://192.168.10.10/_pxc_api/api/variables?paths=Arp.Plc.Eclr/Pump1
(U kunt Pump1 wijzigen in uw eigen variabele)
Het resultaat is:
{
"apiVersion": "1.4.0.0",
"projectCRC": 3448945666,
"userAuthenticationRequired": true,
"variables": [
{
"path": "Arp.Plc.Eclr/Pump1",
"value": {
"xStatus": false,
"iNumberOfStarts": 0,
"sStatus": ""
}
}
]
}
Een Aangepast Eindpunt Instellen
Open een shell-sessie, maak een root-wachtwoord aan en log in als root-gebruiker. Vervolgens typt u het volgende commando in uw terminal, ga naar de "onderkant" van de terminal en wees voorzichtig om niet tegelijkertijd iets te typen!
nano /etc/nginx/nginx.conf
Kopieer en plak het volgende deel in de terminal en bewaar met ctrl + s en sluit met ctrl + x.
location /Pump1 {
proxy_pass https://127.27.0.1:443/_pxc_api/api/variables?paths=Arp.Plc.Eclr/Pump1;
}
Een Verzoek Sturen naar het Nieuwe Eindpunt
Stuur een nieuw GET-verzoek met Postman, dit keer naar de volgende URI:
GET https://192.168.10.10/Pump1
Hetzelfde antwoord ontvangen? Gefeliciteerd, uw proxy is succesvol ingesteld!
Meerdere Pompen Instellen
Ok, maar wat als ik meerdere pompen heb? Wel, één benadering zou zijn om een array te maken die alle pomp UDT's huisvest. U kunt de hele array ophalen door de variabele aan te roepen of alleen het element waarin u geïnteresseerd bent door de index die u wilt te specificeren tussen rechte haakjes, bijvoorbeeld Pump2[1] geeft u het element met index 1 in de array genaamd Pump2.
Maar dat is niet het onderwerp van deze blog. We kunnen de proxy ook zo instellen dat we toegang hebben tot meerdere pompen. Wijzig de tekst die in de vorige stappen is geplakt om het volgende schema te matchen:
location /pumps {
proxy_pass https://127.27.0.1:443/_pxc_api/api/variables?paths=Arp.Plc.Eclr;
}
Een GET-verzoek sturen met Postman naar de eerste URI geeft u hetzelfde als voorheen. Een GET-verzoek sturen naar de tweede URI geeft u een array van hetzelfde datatype.
https://192.168.10.10/pumps/Pump1
https://192.168.10.10/pumps/Pump2
Nu zou u alles moeten hebben om welk API-schema u ook tegenkomt te matchen en te integreren in uw PLCnext-apparaat!
Lees Verder
https://www.howtogeek.com/343877/what-is-an-api/
https://www.w3schools.com/tags/ref_httpmethods.asp
https://medium.com/@TebbaVonMathenstien/what-is-an-api-and-why-should-i-use-one-863c3365726b
https://restfulapi.net/rest-api-design-tutorial-with-example/
Industriële technologie
- Ontdek CONNEX™: Het toonaangevende supply chain netwerkplatform voor fabrikanten
- De Top Keuze zijn: 26 essentiële checklist-items voor B2B-inkoopsucces
- Digitale marketingstrategieën om klanten in de defensieindustrie te winnen
- Waarde ontgrendelen: Geoptimaliseerde reverse logistics verhoogt ROI en klantloyaliteit
- De heropleving van reverse auctions: Leveranciers machtigen in prijsstrijd
- Efficiëntie maximaliseren: expert tips voor uw magazijnscansysteem
- ROI van uw leadgeneratie-investering maximaliseren
- Industrie 4.0 Adoptie: Spanje vs Wereldwijde Situatie
- Edge AI Inferencing meesteren: Een praktische gids voor actionable insights
- Slimme Huis Evolutie: Wat de Toekomst Inhoudt voor Verbonden Leven
- Thermohardende harsen vs. Thermoplasten: Belangrijkste verschillen en toepassingen begrijpen