PLCnext optimaliseren met Azure IoT Edge: Edge Analytics & Cloud-integratie
Azure IoT Edge maakt het mogelijk om cloud-analytics en custom logic naar "the edge" te verplaatsen – in ons geval naar ons PLCnext-apparaat. Dit heeft voordelen zoals het verminderen van gebruikte bandbreedte en latentie. Met Azure IoT Edge kun je je eigen applicaties ontwikkelen en deployen vanuit een centrale cloudapplicatie. In deze blog leer je hoe je Azure IoT Edge installeert en wat de basisprincipes zijn.
Inleiding
Het uitleggen van alle ins en outs van de Azure IoT Edge-oplossing gaat te ver voor een Makersblog, maar lees je er zeker in voordat je verdergaat. Op deze portal vind je alle informatie die je nodig hebt om een goed beeld te krijgen van wat we in deze blog doen. Laten we beginnen met de installatie van de runtime.
Installatie
Een Azure IoT Hub aanmaken en een device registreren
Voordat we beginnen moeten we eerst een paar dingen in de Azure-portal instellen. Ik ga ervan uit dat je al een Azure-account hebt.
De eerste stap is het aanmaken van een resourcegroep en het geven van een beschrijvende naam. Klik op "Create a new resource group". Als het niet lijkt, druk op de "+" knop en zoek naar "new resource group".
Maak een nieuwe IoT Hub-service aan. Je kunt 1 gratis IoT Hub-service hebben; je wilt misschien het type van Standard naar Free wijzigen! Laat anders alles op de standaardinstellingen en ga door met het deployen van de service. Onze laatste stap is het aanmaken van een IoT Device. Open de service en zoek in het linkerdeelvenster naar "IoT Edge". Klik erop en maak een nieuwe IoT Edge-device aan. Geef de device een ID, alle andere instellingen kunnen op hun standaardwaarden blijven.
Klik op het zojuist aangemaakte device en noteer de "Primary Connection String"; deze string hebben we in de volgende stap nodig om ons device te provisioneren.
De Azure IoT Edge Runtime installeren
Voer de onderstaande commando's in volgorde uit; een actuele versie is altijd hier te vinden.
git clone https://github.com/pxcbe/azure-iot-edge.git cd azure-iot-edge/install
sudo passwd root su
chmod +x SetupEdge.sh ./SetupEdge.sh
De volgende stap is het provisioneren van ons device. Dit kan semi- of volledig geautomatiseerd. Meer informatie daarover vind je hier op het infoportal. Typ het volgende commando in je shell en plak je connection string op regel 55 van het yaml-bestand (sluiten met ctrl+s, ctrl+x).
nano /etc/iotedge/config.yaml
Herstart de controller voor de wijzigingen.
reboot
De installatie verifiëren
Voer het volgende commando uit als root:
iotedge check --verbose
Als je geen fouten krijgt, kunnen we doorgaan! Heb je een fout? Check de GitHub-repository, misschien is er een fix beschikbaar. Anders mag je gerust een issue aanmaken!
Modules deployen
Alleen de runtime helpt ons niet verder. Laten we modules deployen! Klik op "Set modules" en vervolgens op "runtime settings". Hier moeten we de "Hostport" wijzigen om conflicten met de NGINX-server op de PLCnext te voorkomen. Voeg vervolgens een marketplace-module toe met de naam "Simulated Temperature Sensor". Druk op "review + create" en deploy de module naar het PLCnext-apparaat.
De instellingen zouden er als volgt uit moeten zien:
{
"HostConfig": {
"PortBindings": {
"443/tcp": [ { "HostPort": "444" } ],
"5671/tcp": [ { "HostPort": "5671" } ],
"8883/tcp": [ { "HostPort": "8883" } ]
}
}
}
Telemetrieberichten bekijken
Om te verifiëren of de berichten binnenkomen, volg deze procedure om Azure IoT Tools in Visual Studio Code te installeren. (Je moet inloggen op Azure, dus zorg dat eventuele certificaten ook op je ontwikkelmachine staan).
PLCnext-data naar IoT Hub brengen
De volgende stap is het brengen van onze PLCnext Engineer-data naar de cloud. Er zijn verschillende manieren om dit te doen. Je kunt de Modbus-module gebruiken en een Modbus-server in je PLCnext-project aanmaken. Je kunt de REST-service gebruiken met GET-verzoeken en een custom module, of er een zoeken op de Marketplace die aan je behoeften voldoet. Ik leg uit hoe je de OPC Publisher instelt om je data van de ingebouwde OPC UA-server van de PLCnext te publiceren.
UPDATE: Er lijkt momenteel een fout te zitten in de OPC Publisher-module; probeer voor nu een andere methode.
Disclaimer: Voor deze blog schakelen we de PLCnext-beveiligingsfuncties uit; gebruik dit niet in productie!
Schakel de gebruikersauthenticatie op de WBM van je PLCnext-apparaat uit voordat je doorgaat.
Voeg de OPC Publisher toe vanuit de Marketplace op dezelfde manier als je deed met de "Simulated Temperature Sensor". Klik op de module en ga naar "container create options". Kopieer de volgende instellingen in het venster onder container create options.
{
"Hostname": "publisher",
"Cmd": [
"publisher",
"--pf=/appdata/publishednodes.json",
"--di=60",
"--to",
"--aa",
"--si=10",
"--ms=262144"
],
"HostConfig": {
"Binds": [ "/iiotedge:/appdata" ],
"PortBindings": {
"62222/tcp": [ { "HostPort": "62222" } ]
},
"ExtraHosts": [ "localhost:127.0.0.1" ]
}
}
Pas de volgende configuratie aan aan je node-id's, maak de map /appdata aan en maak een bestand publishednodes.json met je nieuwe configuratie.
[
{
"EndpointUrl": "opc.tcp://192.168.10.10:4840",
"UseSecurity": false,
"OpcNodes": [
{
"Id": "ns=3;s=Counter",
"OpcSamplingInterval": 2000,
"OpcPublishingInterval": 5000
},
{
"Id": "ns=3;s=Sinusoid",
"OpcSamplingInterval": 2000,
"OpcPublishingInterval": 5000
}
]
}
]
Als alles goed ging, zou je de data in je Azure IoT Tools voor Visual Studio moeten zien!
Nog steeds problemen? Je kunt het volgende commando gebruiken om te zien wat er gaande is:
iotedge logs -f "namemode"
Credits
Speciale dank aan Oliver Warneke voor zijn werk waarop ik kon voortbouwen en voor de tijd die hij nam om me up to speed te krijgen!
Contact
Loopt u tegen problemen aan of wilt u meer weten? Neem contact op met axsupport@phoenixcontact.be.
Referenties
Industriële technologie
- Sprint en Ericsson lanceren 5G-klaar IoT Edge Intelligence Platform
- PCB-ontwerp voor Internet of Things meesteren: Een uitgebreide gids
- Edge-apparaten: bruggen bouwen tussen lokale netwerken en de cloud voor naadloze IoT-dataflow
- Renesas introduceert veilige RA MCU-serie voor industriële IoT- en edge-toepassingen
- Waarom Edge Computing Essentieel is voor IoT-succes
- Van Edge Naar Cloud: IoT Datapijplijnen Beheersen
- Edge Computing & IoT Strategie Inzichten van IoT World 2019
- Edge Computing Benutten voor IoT, AI en Opkomende Technologieën
- Edge & IoT: Data Harmoniseren voor Digitaal Succes
- Hoe IoT en Edge Computing Elkaar Aanvullen
- Open Source drijft de opkomst van IoT en Edge Computing