SendDataAsString

SendDataAsString 1:

Diese Methode wird einmalig aufgerufen, um Daten an den Broker zu senden. Im Gegensatz zu der klassischen SendData()-Methode wird an dieser Stelle das JSON-Dokument direkt übergeben. So erreicht der Benutzer eine höhere Flexibilität, muss aber im Gegenzug dafür ein korrekt aufgebautes JSON-Dokument an die App schicken.

Die Methode richtet sich an im Umgang mit JSON-Dokumenten erfahrene Nutzer. Bei fehlerhaft formatierten JSON-Dokumenten können die Informationen nicht in der App angezeigt werden.

Syntax

METHOD SendDataAsString : BOOL
VAR_INPUT
    sJsonString : POINTER TO STRING;
    nJsonLen    : UINT;
END_VAR

SendDataAsString 2: Rückgabewert

Name

Typ

Beschreibung

SendDataAsString

BOOL

Bei erfolgreichem Aufruf liefert die Methode den Rückgabewert TRUE.

SendDataAsString 3: Eingänge

Name

Typ

Beschreibung

sJsonString

POINTER TO STRING

Pointer zu dem JSON-String, der gesendet werden soll.

nJsonLen

UINT

Länge des JSON-Strings

Mögliche Fehler werden an den Ausgängen bError und hrErrorCode der Bausteininstanz ausgegeben.

Aufbau TwinCAT JSON

Die TwinCAT IoT Communicator-Produktpalette benutzt für die Kommunikation ein JSON-Format mit dem Namen TwinCAT JSON: Im Folgenden wird der Aufbau eines TwinCAT JSON-Dokuments am Beispiel der Widgets Steckdose und Lüftung beschrieben.

{
    "Timestamp" : "2022-08-04T07:15:06.176",
    "GroupName" : "Widget Testpage",
    "Values" : {
        "sPageDesc" : "TwinCAT JSON Page",
        "stPlug" : {
            "sDisplayName" : "",
            "bOn" : true,
            "sMode" : "Manual",
            "aModes" : [ "Manual", "Automatic" ]
        },
        "stVent" : {
             "sDisplayName" : "",
             "bOn" : true,
             "nValue" : 725,
             "nValueRequest" : 400,
             "sMode" : "Manual",
             "aModes" : [ "Manual", "Automatic" ]
        }
    },
    "MetaData" : {
        "sPageDesc" : {
            "iot.DisplayName" : "Info",
            "iot.ReadOnly" : "true"
        },
        "stPlug" : {
            "iot.DisplayName" : "Plug Widget",
            "iot.ReadOnly" : "false",
            "iot.WidgetType" : "Plug",
            "iot.PlugModeVisible" : "true",
            "iot.PlugModeChangeable" : "false"
        },
        "stVent" : {
            "iot.DisplayName" : "Ventilation Widget",
            "iot.ReadOnly" : "false",
            "iot.WidgetType" : "Ventilation",
            "iot.VentilationSliderVisible" : "true",
            "iot.VentilationValueRequestVisible" : "false",
            "iot.VentilationModeVisible" : "true",
            "iot.VentilationModeChangeable" : "false"
         },
        "stVent.nValue" : {
            "iot.Unit" : "ppm",
            "iot.MinValue" : "400",
            "iot.MaxValue" : "1400"
        }
    },
"ForceUpdate":false
}

Bereich

Beschreibung

Timestamp

Muss pro Nachricht einen Timestamp im Format: "YYYY-MM-DDThh:mm:ss.fff" enthalten z. B. "2022-08-04T07:15:06.176".

GroupName

Name des Einstiegsknotens des Communicator-Bausteins in der App.

Values

Die anzuzeigenden Werte, angefangen auf der ersten Seite, mit anschließender Verschachtelung.

MetaData

Alles, was in SPS-Attributen umgesetzt ist (bspw. die Konfiguration der Widgets).

ForceUpdate

Optionaler Parameter. Wird beim OnChange-Mechanismus dafür eingesetzt, nach Änderungen ein Update zu triggern. Genauere Informationen unter OnChange-Mechanismen.