Zum Hauptinhalt springen

REST API

Diese Bibliothek stellt Funktionsbausteine zur Kommunikation zwischen der PLC und einem REST-fähigen Webserver zur Verfügung.

TB_ArrayToJson

TB_ArrayToJson

Der Funktionsbaustein wandelt zwei Arrays (Key- und Werte-Array; Datentyp: STRING_128_ARRAY) in einen JSON String um. Dieser wird durch den Baustein in ein Byte-Array (BYTE_4096_BMARRAY) gelegt. Jedes Byte ist ein Zeichen/Buchstabe im JSON String.

Allgemeine Beschreibung

In der Allgemeinen Beschreibung wird das JSON Format näher erklärt und ein Integrationsbeispiel gegeben.
  • Klicke hier für mehr Informationen
  • Beschreibungallgemein

    JSON (JavaScript Object Notation) ist ein schlankes Datenaustauschformat, das für Menschen einfach zu lesen und zu schreiben und für Maschinen einfach zu parsen (Analysieren von Datenstrukturen) und zu generieren ist. Es basierd auf einer Untermenge der JavaScript Programmiersprache, Standard ECMA-262 dritte Edition - Dezember 1999. Bei JSON handelt es sich um ein Textformat, das komplett unabhängig von Programmiersprachen ist, aber vielen Konventionen folgt, die Programmieren aus der Familie der C-basierten Sprachen (inklusive C, C++, C#, Java, JavaScript, Perl, Python und vielen anderen) bekannt sind. Diese Eigenschaften machen JSON zum idealen Format für Datenaustausch. JSON baut auf zwei Strukturen auf:

    • Name/Wert Paare. In verschiedenen Sprachen wird dies realisiert als ein Objekt (object), Satz (record), Struktur (struct), Wörterbuch bzw. Verzeichnis (dictionary), Hash-Tabelle (hash table), Schlüssel-Liste (keyed list) oder als ein assoziatives Array (associative array).
    • Eine geordnete Liste von Werten. In den meisten Sprachen wird das als Array (array), Vektor (vector), Liste (list) oder Sequenz (sequence) realisiert.

    Quelle: https://www.json.org/json-de.html

    Empfohlene Task: Zyklisch, Default

    Verwendete Bibliotheken: BM_TYPES_40bd04 oder höherTECH_TYPES_40bd15 oder höher

    Eingänge

    Bezeichnung:Datentyp:Beschreibung:
    x_ExecuteBOOLAusführen des Funktionsblocks
    a_KeysSTRING_128_ARRAYArray der Keys; im JSON Format sind Keys sozusagen die Variablennamen
    a_ValuesSTRING_128_ARRAYArray der zu den Keys zugehörigen Werte

    Ausgänge

    Bezeichnung:Datentyp:Beschreibung:
    x_BusyBOOLFunktion wird ausgeführt
    x_DoneBOOLFunktion ist fertig
    a_JsonDataBYTE_4096_BMARRAYUmgewandelte Keys und Values in einen JSON String im Byte Array

    Ein-/Ausgänge

    none
    Darstellung in FBD

    TB_JsonToArray

    TB_JsonToArray

    Der Funktionsbaustein wandelt einen JSON String, der in einem BYTE_4096_BMARRAY vorliegt, in zwei einzelne Arrays (Key- und Werte-Array, STRING_128_ARRAY) um. Dadurch kann bspw. nach einem Request die empfangenen JSON Daten in ein verwertbares Format in der PLC gebracht werden.

    Allgemeine Beschreibung

    In der Allgemeinen Beschreibung wird das JSON Format näher erklärt und ein Integrationsbeispiel gegeben.
  • Klicke hier für mehr Informationen
  • Beschreibungallgemein

    JSON (JavaScript Object Notation) ist ein schlankes Datenaustauschformat, das für Menschen einfach zu lesen und zu schreiben und für Maschinen einfach zu parsen (Analysieren von Datenstrukturen) und zu generieren ist. Es basierd auf einer Untermenge der JavaScript Programmiersprache, Standard ECMA-262 dritte Edition - Dezember 1999. Bei JSON handelt es sich um ein Textformat, das komplett unabhängig von Programmiersprachen ist, aber vielen Konventionen folgt, die Programmieren aus der Familie der C-basierten Sprachen (inklusive C, C++, C#, Java, JavaScript, Perl, Python und vielen anderen) bekannt sind. Diese Eigenschaften machen JSON zum idealen Format für Datenaustausch. JSON baut auf zwei Strukturen auf:

    • Name/Wert Paare. In verschiedenen Sprachen wird dies realisiert als ein Objekt (object), Satz (record), Struktur (struct), Wörterbuch bzw. Verzeichnis (dictionary), Hash-Tabelle (hash table), Schlüssel-Liste (keyed list) oder als ein assoziatives Array (associative array).
    • Eine geordnete Liste von Werten. In den meisten Sprachen wird das als Array (array), Vektor (vector), Liste (list) oder Sequenz (sequence) realisiert.

    Quelle: https://www.json.org/json-de.html

    Verwendete Bibliotheken: BM_TYPES_40bd04 oder höherTECH_TYPES_40bd15 oder höher

    Eingänge

    Bezeichnung:Datentyp:Beschreibung:
    x_ExecuteBOOLAusführen des Funktionsblocks
    a_JsonDataBYTE_4096_BMARRAYUmgewandelte Keys und Values in einen JSON String im Byte Array

    Ausgänge

    Bezeichnung:Datentyp:Beschreibung:
    x_BusyBOOLFunktion wird ausgeführt
    x_DoneBOOLFunktion ist fertig
    x_ErrorBOOLFunktion zeigt einen Fehlermeldung
    s_ErrorInfoSTRINGzeigt Informationen zum aufgetreten Fehler an
    a_KeysSTRING_128_ARRAYArray der Keys; im JSON Format sind Keys sozusagen die Variablennamen
    a_ValuesSTRING_128_ARRAYArray der zu den Keys zugehörigen Werte

    Ein-/Ausgänge

    none
    Darstellung in FBD

    TB_RestRequester

    TB_RestRequester

    Dieser Funktionsbaustein stellt Requests an einen Webserver über eine REST API. Der Baustein kann die Request-Arten GET, PUT und POST durchführen. Auf diese wird später näher eingegangen. Der Baustein basiert auf den TCP Bausteinen der Bibliothek "SYSTEM2_PCC03_40bd03". Man muss die IP-Adresse und den Port des anzufragenden Webservers angeben. Zusätzlich gibt man über einen String noch an, welche Request-Art man verwenden will. Wichtig ist auch die Angabe des anzufragenden Pfades am Server. Der Content-Type kann angegeben werden, falls nichts angegeben ist, wird "application/json" als Default eingetragen. Für den Fall eines PUT oder POST Request muss dessen Body in einem BYTE_4096_BMARRAY in JSON Format angegeben werden. Dafür kann der Baustein "TB_ArrayToJson" verwendet werden. Über einen Execute kann nach Angabe all dieser Eingangsparameter der Request durchgeführt werden. Die empfangenen Daten werden ebenfalls in ein BYTE_4096_BMARRAY geschrieben. Falls diese im JSON Format von einem Server stammen, können Sie über den Baustein "TB_JsonToArray" diese in ein leserliches Format bringen.

    Allgemeine Beschreibung

    In der Allgemeinen Beschreibung werden die vorhandenen Request-Arten näher erklärt und ein Integrationsbeispiel gegeben.
  • Klicke hier für mehr Informationen
  • Beschreibungallgemein

    GET

    Eine GET-Anfrage ist, vereinfacht ausgedrückt, eine Möglichkeit, Daten aus einer Datenquelle mit Hilfe des Internets abzurufen. Wenn Sie der API mitteilen, dass Sie Informationen abrufen möchten, senden Sie eine GET-Anfrage an den Server. Nachdem Ihre Anfrage verarbeitet wurde, erhalten Sie die Informationen in einem übersichtlichen Stapel (JSON-Format)

    PUT

    Die HTTP PUT-Anforderungsmethode erstellt eine neue Ressource oder ersetzt eine Repräsentation der Zielressource durch die Anforderungs-Payload. Wenn die Zielressource keine aktuelle Repräsentation hat und die PUT-Anforderung erfolgreich eine erstellt, muss der Ursprungsserver den User-Agent informieren, indem er eine 201 (Created) Antwort sendet. Wenn die Zielressource über eine aktuelle Darstellung verfügt und diese Darstellung entsprechend dem Zustand der beigefügten Darstellung erfolgreich geändert wird, muss der Ursprungsserver entweder eine 200 (OK) oder eine 204 (No Content) Antwort senden, um den erfolgreichen Abschluss der Anfrage anzuzeigen.

    POST

    POST ist eine HTTP-Methode, mit der Daten von einem HTTP-Client an den Server gesendet werden. Mit der HTTP-POST-Methode wird der Webserver aufgefordert, die im Textkörper der POST-Nachricht enthaltenen Daten zu akzeptieren. Die HTTP-POST-Methode wird häufig verwendet, um Anmelde- oder Kontaktformulare zu übermitteln oder Dateien und Bilder auf den Server hochzuladen. Die HTTP-POST-Methode wird verwendet, um eine Ressource auf dem Server zu erstellen oder hinzuzufügen. Normalerweise fügt die POST-Anfrage dem Server eine neue Ressource hinzu, während die PUT-Anfrage eine vorhandene Ressource auf dem Server ersetzt. Im Gegensatz zu GET- und HEAD-Anfragen können HTTP-POST-Anfragen den Serverstatus ändern.

    DELETE

    Eine HTTP-Anfrage dieser Art wird gesendet, um die Zielressource vom Server zu entfernen. Was genau auf der Seite des Servers geschieht, z. B. ob der Speicherplatz zurückgewonnen wird oder die Ressource stattdessen einfach offline genommen wird, unterliegt der Kontrolle des Servers und wie seine Umgebung konfiguriert wurde. Normalerweise wird die HTTP DELETE-Methode in Fällen verwendet, in denen Clients Ressourcen erstellen und ändern. Sie könnte verwendet werden, um beispielsweise eine Datei zu entfernen, die zuvor mit der HTTP-PUT-Methode gespeichert wurde.

    Empfohlene Task: Zyklisch, Standard

    Verwendete Bibliotheken: SYSTEM2_PCC03_40bd03BM_TYPES_40bd04 oder höherTECH_TYPES_40bd15 oder höher

    Eingänge

    Bezeichnung:Datentyp:Beschreibung:
    x_ExecuteBOOLAusführen des Funktionsblocks
    s_RequestMethodSTRINGFestlegen der Request Methode (GET, PUT, POST)
    s_IPSTRINGIP-Adresse des Gerätes auf dem der Webservers, mit dem sich verbunden werden soll, läuft
    ui_PortUINTPort auf dem der Webserver läuft
    s_PathSTRINGPfad des Servers, an den der Request gestellt wird (Bsp.: /data)
    s_ContentTypeSTRINGArt der verschickten / empfangenen Daten (Default: application/json)
    a_BodyBYTE_4096_BMARRAYByte Array, das die zu versendeten Daten enthält (JSON Form umgewandelt in Bytes)

    Ausgänge

    Bezeichnung:Datentyp:Beschreibung:
    x_BusyBOOLFunktion wird ausgeführt
    x_DoneBOOLFunktion ist fertig
    x_ErrorBOOLTRUE: Error
    s_ErrorInfoSTRINGgibt Informationen zum aufgetretenen Fehler an
    w_ErrorIDWORDError ID gemäß der Motion Control Error Liste
    s_StatusReceivedSTRINGStatus des gestellten Requests (Bsp.: 200 OK)
    a_DataOutputBYTE_4096_BMARRAYEmpfangene Daten in einem BYTE_4096_BMARRAY in JSON Form

    Ein-/Ausgänge

    none
    Darstellung in FBD