Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

Retrofitten van de REST API - Een reverse proxy instellen

De PLCnext REST Interface is een fantastische tool om zowel data te presenteren als te ontvangen van een back-end systeem. REST, of REpresentational State Transfer, is een software-architectuurstijl die bestaat uit richtlijnen en best practices voor het creëren van schaalbare webservices. Op het infoportaal PLCnext staat al veel leuke informatie, neem zeker eens een kijkje! De URI's van de PLCnext Firmware zijn perfect als u uw systeem van de grond af aan kunt opbouwen. Ze zijn echter niet ideaal als u een bestaande REST-interface achteraf op de PLCnext wilt inbouwen. Deze blog laat je zien hoe je je eigen URI’s instelt en verbindt met je variabelen met een reverse proxy. We beginnen met het opzetten van een klein voorbeeld en werken van daaruit verder!

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 zal PuTTY gebruiken om een ​​SSH-verbinding en postbode op te zetten om mijn HTTP-verzoeken af ​​te handelen. Ik heb de authenticatie uitgeschakeld voor ontwikkelingsdoeleinden, u zou niet hetzelfde moeten doen in productie! De instructies voor PLCnext Engineer worden zeer hoogstaand gegeven, weet u niet wat u moet doen? Bekijk de PLCnext infoportal en instructievideo’s en/of vergelijk met het voorbeeldproject! De controller die ik gebruik heeft het IP-adres 192.168.10.10, verander dit in het IP-adres dat je gebruikt.

Voorbeeld

In deze blog gebruik ik een eenvoudige pomp UDT als voorbeeld. Je kunt het voorbeeldprogramma downloaden van deze GitHub-pagina, of je kunt er natuurlijk zelf een maken. Schakel het gebruik van "gebruikersbeheer" in de eHMI-instellingen uit en creëer een globale variabele. Gebruik deze variabele op een eHMI-pagina zodat we deze in de API kunnen gebruiken.

De eerste API-aanroep

Misschien moeten we over enkele ogenblikken eerst ontdekken wat we precies aan het veranderen zijn!
Laten we een GET-verzoek sturen om de waarde van onze eerste pomp te krijgen.

Gebruik Postman om het GET-verzoek naar de volgende URI te sturen:

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

(Je kunt Pump1 veranderen in je 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.
Typ vervolgens het volgende commando in uw terminal, ga naar de "onderkant" van de terminal en zorg ervoor dat u in de tussentijd niets typt!

nano /etc/nginx/nginx.conf

Kopieer en plak het volgende deel in de terminal en sla op met ctrl + s en sluit af met ctrl +x.

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

Een verzoek verzenden naar het nieuwe eindpunt

Stuur een nieuw GET-verzoek met de postbode, dit keer naar de volgende URI:

KRIJG https://192.168.10.10/Pump1

Hetzelfde antwoord gekregen? Gefeliciteerd, uw proxy is succesvol ingesteld!

Meerdere pompen instellen

Oké, maar wat als ik meerdere pompen heb? Welnu, een benadering zou kunnen zijn om een ​​​​array te maken waarin huizen pomp-UDT zijn. Je kunt de hele array krijgen door de variabele aan te roepen of alleen het element waarin je bent geïnteresseerd door de gewenste index tussen rechte haakjes op te geven. Pump2[1] geeft je bijvoorbeeld het element met index 1 in de array met de naam Pump2.

Maar dat is het onderwerp van deze blog. We kunnen de proxy ook zo instellen dat we toegang krijgen tot meerdere pompen.
Pas de tekst die in de vorige stappen is geplakt aan zodat deze overeenkomt met het volgende schema:

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

Als u een GET-verzoek met de postbode naar de eerste URI stuurt, krijgt u hetzelfde als voorheen. Als u een GET-verzoek naar de tweede URI stuurt, krijgt u een array van hetzelfde gegevenstype.

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

Nu zou je alles moeten hebben dat past bij welk API-schema je ook tegenkomt en het in je PLCnext-apparaat integreren!

Verdere metingen

https://www.howtogeek.com/343877/what-is-an-api/https://www.w3schools.com/tags/ref_httpmethods.asphttps://medium.com/@TebbaVonMathenstien/what-is-an -api-en-waarom-ik-een-gebruiken-863c3365726bhttps://restfulapi.net/rest-api-design-tutorial-met-voorbeeld/

Industriële technologie

  1. Thermosets vs. thermoplasten:leer het verschil kennen
  2. Wees slim:de toekomst van je huis
  3. Maak kennis met CONNEX™ De Supply Chain Networking Tool om fabrikanten te versterken
  4. Laat u selecteren in het B2B-aankoopproces:26 items om af te vinken
  5. Hoe u digitale marketing kunt gebruiken om klanten te werven in de defensie-industrie
  6. Het onbenutte potentieel van omgekeerde logistiek
  7. Terugkeer van de omgekeerde veiling:spelen leveranciers mee?
  8. Hoe u het maximale uit uw magazijnscansysteem haalt
  9. Hoe haal ik het meeste uit mijn leadgeneratie-investering?
  10. Vergelijking van Industrie 4.0 tussen Spanje en de rest van de landen
  11. Aan de slag met AI-inferentie aan de rand