Beispiel: Verwenden der Bibliothek AWS IoT Core Client SL
Produkt: CODESYS IIOT Libraries SL
Beschreibung
Das Beispiel AWS IoT Core Client SL Example.project
demonstriert die Verwendung der Bibliothek AWS IoT Core Client SL
.
Die Applikation AWSDeviceShadow
demonstriert das Schreiben und Lesen des "Device Shadows".
Die Applikation AWSPubSub
zeigt, wie Nachrichten über die enthaltenen Funktionsbausteine veröffentlicht und abonniert werden können.
Die Applikation AWS_JSON_DeviceSchadow
zeigt die Updatemöglichkeit des "Device Shadows" mit Hilfe des JSONBuilders.
Erste Schritte
Installation eines Clientzertifikats
Die Authentifizierung eines Geräts bei AWS IoT Core
erfolgt über Clientzertifikate. Das Clientzertifikat kann über die AWS-Weboberfläche erzeugt, heruntergeladen und anschließend auf dem entsprechenden Gerät installiert werden.
Auf der Steuerung wird eine CSR-Datei (Certificate Signing Request) erzeugt. Mit dieser Datei wird anschließend ein Zertifikat erzeugt.
Eine Anleitung dazu finden Sie im nachfolgenden Abschnitt.
Das Zertifikat und der Private-Key werden über AWS angelegt, heruntergeladen und auf das Gerät installiert.
Für weitere Informationen siehe: Import of client certificates with private key
Erzeugen des Zertifikats mit einer CSR-Datei
Das Package CODESYS Security Agent muss auf Ihrem Computer installieren sein.
Für weitere Informationen siehe: CODESYS Security Agent
Sie benötigen einen Account bei AWS.
Legen Sie ein Gerät (
Thing
) inAWS IoT Core
über die Weboberfläche an.Sie können Ihre Geräte (
Things
) im Navigations-Seitenpanel unterManage > All Devices > Things
einsehen und verwalten.Öffnen Sie im Beispielprojekt die Applikation
AWSPubSub
.Setzen Sie den Endpoint auf den Eingang
AWSIoTClient.sHostname
.Beispiel:
xxxxxxxxxxxxxxx.iot.yyyyyyyy.amazonaws.com)
Sie finden Ihre Endpoints im Navigations-Seitenpanel unter
Connect > Domain configurations
. Dort können Sie gegebenenfalls auch einen neuen Endpoint erstellen.Setzen Sie den zuvor vergebenen Gerätenamen ("Name of thing") auf den Eingang
AWSIoTClient.sClientId
.Verwenden Sie den Eingang
AWSIoTClient.sCertCNPrefix
, wenn dieClientId
mit dem Hostnamen identisch ist. Dies verhindert das Laden eines falschen Zertifikats (beispielsweise vonWebServer
).Tipp
Wenn der Eingang nicht angezeigt wird, führen Sie den Befehl Anschlüsse zurücksetzen aus.
Beispiel:
sCertCNPrefix := 'AWSClient', sClientId := 'MyHostname';
Der "Common Name" (CN) des Zertifikats lautet:
AWSClient@MyHostname
Laden Sie die Applikation auf die Steuerung und starten Sie sie.
Die Applikation wird nun versuchen, eine verschlüsselte Verbindung zu AWS aufzubauen, was jedoch aufgrund des fehlenden Zertifikats scheitern wird. Dennoch ist dieser Aufbauversuch im Folgenden relevant.
Setzen Sie das Flag
xEnable
desAWSIoTClient
aufTRUE
.Wählen Sie im Geräteeditor die Registerkarte SPS-Shell.
Führen Sie folgenden Befehl aus:
cert-getapplist
In der Ausgabe wird eine Komponente mit dem angegebenen Gerätenamen und einer Nummer angezeigt.
Hinweis: Das Gerät wird nicht angezeigt, wenn Sie zuvor nicht versucht haben, eine Verbindung zu AWS aufzubauen (Schritt 5).
Führen Sie folgenden Befehl aus:
cert-createcsr <number> encoding=Base64
Ersetzen Sie
<number>
durch die im Schritt 8 erhaltene Nummer. Das Erzeugen der CSR-Datei kann einige Sekunden dauern.Im Geräteeditor, unter der Kategorie Log, wird nach dem Generieren eine entsprechende Meldung ausgegeben.
Wählen Sie im Geräteeditor die Registerkarte Dateien.
Kopieren Sie die CSR-Datei vom Verzeichnis
cert/export
auf das lokale Dateisystem.Mit der erzeugten CSR-Datei können Sie nun über die AWS-Weboberfläche ein Zertifikat erstellen.
Sie können im Navigations-Seitenpanel über
Security > Certificates
zu einer Verwaltungsübersicht all Ihrer Zertifikate gelangen.Erstellen Sie über den Befehl
Add certificate > Create certificate
mit der exportierten CSR-Datei ein neues Zertifikat.Downloaden Sie das Zertifikat und das Root-Zertifikat.
Wählen Sie in CODESYS den Menübefehl Ansicht -> Security Screen.
Installieren Sie Ihr Client-Zertifikat unter Eigene Zertifikate.
Installieren Sie das Root-Zertifikat unter Vertrauenswürdiges Zertifikat.
Wählen Sie den Befehl Online -> Reset kalt und starten Sie die Applikation.
Ein erneuter Verbingungsaufbauversuch des Funktionsbausteins
AWSIoTClient
wird nun den AusgangAWSIoTClient.xConnectedToBroker
aufTRUE
setzen.Die Verbindung wird korrekt hergestellt.
Wichtig
Wenn Sie ein per CSR erstelltes Zertifikat von einer Steuerung deinstallieren, dann wird es bei einer erneuten Installation nicht mehr funktionieren.
Grund dafür ist, dass beim Deinstallation Informationen zum Private-Key entfernt werden.Sie müssen in diesem Fall ein neues Zertifikat für das Gerät erstellen.
Systemvoraussetzungen und Einschränkungen
Programmiersystem | CODESYS Development System Version 3.5.18.0 oder höher |
Laufzeitsystem | CODESYS Control Win Version 3.5.18.0 oder höher Hinweis: Verwenden Sie das kostenlos im CODESYS Store International erhältliche Projekt |
Zusatzkomponenten | - |
Zusätzliche Anforderungen | AWS Account (AWS IoT Core) |
Hinweis
DOWNLOAD Projekte