SendDataAsString

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
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
SendDataAsString | BOOL | Bei erfolgreichem Aufruf liefert die Methode den Rückgabewert TRUE. |
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. |