Syntax für POST-Anforderungen

Mit POST-Anforderungen werden zu lesende oder zu beschreibende Arrays im Rumpf der HTTP-Anforderung angegeben.

Grundlegende POST-Syntax

POST-Anforderungen enthalten die IP-Adresse, Portnummer und den Befehl plcpost in der URL. Die Nutzdaten müssen im JSON-Format im HTTP-Rumpf eingegeben werden.

Syntax

Für externe Aufrufe: http://IP_OF_DEVICE:API_PORT/plcpost

Beispiel: http://192.168.100.155:2000/plcpost

Für interne Aufrufe, wenn der Code in das FP-I4C-Modul geladen wurde: plcpost

Parameter

IP_OF_DEVICE

IP-Adresse des FP-I4C-Moduls

API_PORT

API-Port, der auf der Seite REST-API/HTTP-Server eingestellt wurde

Die Nutzdaten müssen wie im Beispiel strukturiert sein.

Beispiel

Mehrere Anforderungen: Integerwerte in DT0 bis DT9 lesen, Zeichenfolge ab DT677 lesen, boolesche Werte in YF bis Y18 lesen, Integerwerte 1 bis 10 in DT100 bis DT109 schreiben

  • {
  •      "req":[
  •           {
  •                "area": "dt",
  •                "type": "int",
  •                "start": 0,
  •                "count": 10
  •           },
  •           {
  •                "area": "dt",
  •                "type": "string",
  •                "start": 677,
  •           },
  •           {
  •                "area": "y",
  •                "type": "bool",
  •                "start": f,
  •                "count": 10
  •           },
  •           {
  •                "area": "dt",
  •                "type": "int",
  •                "start": 100,
  •                "count": 10,
  •                "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  •           },
  •      ],
  •      "interface": 0,
  •      "station": 0
  • }

Wurzelelemente

"req"

Anforderungsliste (Array), max. 20 Objekte

"interface" (optional)

COM-Schnittstelle der SPS

  • 0: COM1 (RS232)
  • 1: COM2 (RS232/RS485)
  • 2: COM3 (USB)
  • 3: INTERN (interner Speicher des FP-I4C-Moduls)
  • 4: COM4 (Ethernet)

Achten Sie darauf, dass die angegebene Schnittstelle auf der Seite COM-Schnittstelle aktiviert und für sie ein Port auf der Seite Port geöffnet wurde.

Wird der Parameter weg gelassen, wird die unter COM-Schnittstelle > Schnittstelle zur Steuerung der Dienste > COM-Schnittstelle zum Steuergerät (SPS) gewählte Schnittstelle verwendet.

"station" (optional)

Teilnehmeradresse: 0 bis 99 (0 für USB und RS232 verwenden)

Wird der Parameter weg gelassen, wird die unter COM-Schnittstelle > Schnittstelle zur Steuerung der Dienste > COM-Schnittstelle zum Steuergerät (SPS) > Teilnehmeradresse des Steuergeräts (SPS) eingestellte Teilnehmeradresse verwendet.

Anforderungsliste

Die Anforderungsliste "req" ist ein Array von Objekten. Jedes Objekt stellt eine eigene Anforderung dar und kann folgende Eigenschaften enthalten:

"area"

Datenspeicherbereich. Gültige Bereiche (Groß-/Kleinschreibung egal):

DT, FL (nur FP2/FP2SH und MEWTOCOL), LD, WR, WX, WY, WL, R, X, Y, L

"type"

Datentyp. Gültige Datentypen (Groß-/Kleinschreibung egal):

INT, UINT, DINT, UDINT, REAL, STRING, ANY (nur Lesen für Register, liefert alle Datentypen außer BOOL), BOOL

"start"

Anfangsadresse des Registers oder Merkers. Für Register ist dies eine Zahl. Für boolesche Merker ist es eine Zeichenfolge.

"count"

Anzahl der zu lesenden oder zu schreibenden Werte. Diese Eigenschaft wird für den Datentyp STRING nicht benötigt.

"value" (Schreiben)

Ein oder mehrere zu schreibenden Werte. Diese Eigenschaft wird nur für Schreibanforderungen benötigt. Fehlt die Eigenschaft, wird eine Leseanforderung angenommen. Der Wert kann ein einzelner Datentyp oder ein Array sein. Achten Sie darauf, dass der Wert von "count" der Anzahl der zu schreibenden Werte entspricht.

Beispiele:

  • "value": true oder 1, "count" = 1: Ein einzelnes Bit auf TRUE setzen
  • "value": false oder 0, "count" = 1: Ein einzelnes Bit auf FALSE setzen
  • "value": [1, 1, 1, 1], "count" = 4: Vier Werte schreiben
  • "value": 123, "count" = 1: Eine einzelne Zahl schreiben
  • "value": "Zeichenfolge schreiben": Eine Zeichenfolge schreiben ("count" wird nicht benötigt)
  • "value": 188.33, "count" = 1: Eine einzelne Fließkommazahl schreiben
  • "value": [13.87, 20.8, 388.7], "count" = 3: Drei Fließkommazahlen schreiben

Wichtigste Punkte

  • Die Anforderungsliste kann mehrere unterschiedliche Anforderungen enthalten (Lesen, Schreiben, verschiedene Datentypen usw.).

  • Die Daten in der Antwort liegen in derselben Reihenfolge vor wie in der Anforderung.

  • Boolesche Werten werden mit den Schlüsselwörtern "true"/"false” oder “1"/“0” (ohne Anführungszeichen) geschrieben.

  • Groß-/Kleinschreibung ist bei den Werten der Eigenschaften "area" und "type" egal (erlaubt sind z.B. “dt”, “Dt” und “DT”).

  • Zum Lesen einer Zeichenfolge ist die Eigenschaft "count" nicht erforderlich.

  • Der Wert der Eigenschaft "start" ist für Register (DT, LD, WX usw.) eine Zahl und für Merker eine Zeichenfolge (R, Y, usw.)

  • Sollen die im FP-I4C-Webinterface eingestellte Schnittstelle und Teilnehmeradresse verwendet werden, lassen Sie die Eigenschaften "interface" und "station" weg.

Beschränkungen

  • "req": Die Anzahl der Objekte in der Anforderungsliste ist auf 20 begrenzt.

  • "count": Es können maximal 100 Register oder Merker gelesen oder geschrieben werden.

  • Die zu schreibende Zeichenfolge darf maximal 1000 Zeichen enthalten.

Antwort auf POST-Leseanforderung

Die Antwort auf eine POST-Leseanforderung ist eine JSON-Zeichenfolge, die Fehlerinformationen und angeforderten Daten enthält.

Jede Antwort enthält die Eigenschaften err, err_msg und data. Die Eigenschaft err ist TRUE, wenn ein Fehler aufgetreten ist, und FALSE, wenn kein Fehler aufgetreten ist. Die Eigenschaft err_msg enthält die Fehlermeldung, wenn die Eigenschaft err TRUE ist, oder sie ist leer, wenn die Eigenschaft err FALSE ist. Die Eigenschaft data ist ein Array, das die Daten in der gleichen Reihenfolge wie in der Anforderung enthält.

  • {
  •      "err": false,
  •      "err_msg": "",
  •      "data": []
  • }

Die Anforderungsliste kann mehrere unterschiedliche Anforderungen enthalten (Lesen, Schreiben, verschiedene Datentypen usw.). Das Antwortformat unterscheidet sich jedoch je nach Anforderung.

Antwortdaten

Das Datenarray der Antwort hat dieselbe Länge und Reihenfolge wie in der Anforderung. Jedes Objekt enthält in der Antwort die Eigenschaften err, err_msg und err_code. Die Eigenschaft err ist TRUE, wenn ein Fehler aufgetreten ist, und FALSE, wenn kein Fehler aufgetreten ist. Die Eigenschaft err_msg enthält die Fehlermeldung, wenn die Eigenschaft err TRUE ist, oder sie ist leer, wenn die Eigenschaft err FALSE ist. Der Fehlercode ist abhängig vom verwendeten Protokoll (MEWTOCOL, MEWTOCOL7 oder Modbus). Die Eigenschaft request enthält den angeforderten Speicherbereich und die Anfangsadresse. Die Datenwerte werden zusammen mit dem Datentyp entweder in einem Array (wenn die Anforderung mehr als einen Wert enthält) oder als einzelne Werte geliefert. Bei booleschen Werten gibt die Eigenschaft state den Status (0 oder 1) entweder als Array für einen Merkerbereich oder als einzelnen Wert an.

Beispiel 1

Einzelne Anforderung: Integerwerte in DT10 bis DT19 lesen

  • {
  •      "req":[
  •           {
  •                "area": "dt",
  •                "type": "int",
  •                "start": 10,
  •                "count": 10
  •           }
  •      ]
  • }

Antwort:

Die Antwort enthält das angeforderte Array (Datentyp „int“ und count = 10). Für count = 1 wäre die Antwort eine einzelne Zahl.

  • {
  •      "err": false,
  •      "err_msg": "",
  •      "data": [
  •           {
  •                "err": false,
  •                "err_msg": "",
  •                "err_code": 0,
  •                "request": "DT10",
  •                "int": [
  •                     20,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                ]
  •           }
  •      ]
  • }

Beispiel 2

Mehrere Anforderungen: Zeichenfolge in DT673 lesen, Werte eines beliebigen Datentyps in DT100 bis DT109 lesen, boolesche Werte in Y0 bis Y15 lesen

  • {
  •      "req":[
  •           {
  •                "area": "dt",
  •                "type": "string",
  •                "start": 673,
  •           },
  •           {
  •                "area": "dt",
  •                "type": "any",
  •                "start": 100,
  •                "count": 10
  •           },
  •           {
  •                "area": "y",
  •                "type": "bool",
  •                "start": 0,
  •                "count": 16
  •           }
  •      ]
  • }

Antwort:

Für type = „any“ enthält die Antwort alle Datentypen außer BOOL.

  • {
  •      "err": false,
  •      "err_msg": "",
  •      "data": [
  •           {
  •                "err": false,
  •                "err_msg": "",
  •                "err_code": 0,
  •                "request": "DT673",
  •                "string": "This is a string"
  •           },
  •           {
  •                "err": false,
  •                "err_msg": "",
  •                "err_code": 0,
  •                "request": "DT100",
  •                "int": [
  •                     1,
  •                     2,
  •                     3,
  •                     4,
  •                     5,
  •                     6,
  •                     7,
  •                     8,
  •                     9,
  •                     10,
  •      ],
  •                "uint": [
  •                     1,
  •                     2,
  •                     3,
  •                     4,
  •                     5,
  •                     6,
  •                     7,
  •                     8,
  •                     9,
  •                     10,
  •      ],
  •                "udint": [
  •                     131073,
  •                     262147,
  •                     393221,
  •                     524295,
  •                     655369,
  •      ],
  •                "dint": [
  •                     131073,
  •                     262147,
  •                     393221,
  •                     524295,
  •                     655369,
  •      ],
  •                "hex": [
  •                     0001,
  •                     0002,
  •                     0003,
  •                     0004,
  •                     0005,
  •                     0006,
  •                     0007,
  •                     0008,
  •                     0009,
  •                     000A,
  •      ],
  •                "real": [
  •                     5.969307950918661e-39,
  •                     6.061144848375116e-39,
  •                     6.152981745831572e-39,
  •                     6.244818643288028e-39,
  •                     6.336655540744483e-39,
  •      ],
  •                "string": "",
  •                "request": "DT100"
  •           },
  •           {
  •                "err": false,
  •                "err_msg": "",
  •                "err_code": 0,
  •                "request": "Y0",
  •                "state": [
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                     0,
  •                ]
  •           }
  •      ]
  • }
Verwandte Themen

Antwort auf POST-Schreibanforderung

Die Antwort auf eine POST-Schreibanforderung ist eine JSON-Zeichenfolge, die Fehlerinformationen enthält.

Jede Antwort enthält die Eigenschaften err, err_msg und data. Die Eigenschaft err ist TRUE, wenn ein Fehler aufgetreten ist, und FALSE, wenn kein Fehler aufgetreten ist. Die Eigenschaft err_msg enthält die Fehlermeldung, wenn die Eigenschaft err TRUE ist, oder sie ist leer, wenn die Eigenschaft err FALSE ist. Die Eigenschaft data ist ein Array, das die Daten in der gleichen Reihenfolge wie in der Anforderung enthält.

  • {
  •      "err": false,
  •      "err_msg": "",
  •      "data": []
  • }

Die Anforderungsliste kann mehrere unterschiedliche Anforderungen enthalten (Lesen, Schreiben, verschiedene Datentypen usw.). Das Antwortformat unterscheidet sich jedoch je nach Anforderung.

Antwortdaten

Das Datenarray der Antwort hat dieselbe Länge und Reihenfolge wie in der Anforderung. Jedes Objekt enthält in der Antwort die Eigenschaften err und err_code. Die Eigenschaft err ist TRUE, wenn ein Fehler aufgetreten ist, und FALSE, wenn kein Fehler aufgetreten ist. Der Fehlercode ist abhängig vom verwendeten Protokoll (Mewtocol, Mewtocol7 oder Modbus). Die Eigenschaft request enthält den angeforderten Speicherbereich und die Anfangsadresse.

Beispiel

Mehrere Anforderungen: Integerwerte 22 und 23 in DT10 bis DT11 schreiben, Y0 auf TRUE und Y1 auf FALSE setzen, die reelle Zahl 22,88 in DT20 schreiben.

  • {
  •      "req":[
  •           {
  •                "area": "dt",
  •                "type": "int",
  •                "start": 10,
  •                "count": 2,
  •                "value": [22, 33]
  •           },
  •           {
  •                "area": "y",
  •                "type": "bool",
  •                "start": 0,
  •                "count": 2,
  •                "value": [1, false]
  •           },
  •           {
  •                "area": "dt",
  •                "type": "real",
  •                "start": 20,
  •                "count": 1,
  •                "value": 22.88
  •           }
  •      ]
  • }

Antwort:

Die Antwort enthält keine Datenwerte und bestätigt, dass die Schreibanforderung erfolgreich war oder fehlgeschlagen ist.

  • {
  •      "err": false,
  •      "err_msg": "",
  •      "data": [
  •           {
  •                "request": "DT10",
  •                "err": false,
  •                "err_code": 0,
  •           },
  •           {
  •                "request": "Y0",
  •                "err": false,
  •                "err_code": 0,
  •           },
  •           {
  •                "request": "DT20",
  •                "err": false,
  •                "err_code": 0,
  •           }
  •      ]
  • }
Verwandte Themen

Letzte Änderung: 2022-08-10Feedback zu dieser SeitePanasonic Hotline