JSON (MQTT) in Siemens SIMATIC

DCDCDC

Level-3
Beiträge
1.835
Reaktionspunkte
391
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich hab noch so meine Probleme zu verstehen wie ich eine JSON Datei korrekt formatiere.

Das hier ist die Beschreibung von Siemens zu einem JSON Element:
Screenshot 2023-11-15 175658.png
Screenshot 2023-11-15 180752.png

Hier die pdf: https://support.industry.siemens.com/cs/attachments/109781165/109781165_LStream_DOC_v1_6_de.pdf


So wie ich das verstehe, verwende ich den type 0 um Abschnitte zu deklarieren, welche durch den Wert welcher bei depth eingegeben wird getrennt sind.

Der Code ist im Anhang in der Textdatei (wäre sonst zu lange)

Wenn ich mir jetzt das im MQTT Explorer anschaue, ist das keine sauber formartiere JSON, sondern nur ein String, wäre das korrekt formartiert, würde es mir das direkt im JSON Format anzeigen:
Screenshot 2023-11-15 180158.png

Hier ist die Formatierung, welche im MQTT ankommt:
Code:
{"Control":{,"Done":FALSE,"Interlock":FALSE,"Position":+0,"Start":FALSE,"Stop":FALSE"Inputs":{,"ActivateMotor":FALSE,"Enable":FALSE,"OperationMode":+0,"PositionMode":FALSE,"PositioningStart":FALSE,"PositioningStop":FALSE"Outputs":{,"DonePositioning":FALSE,"DoneVelocity":FALSE,"Error":FALSE,"ErrorCode":+0,"Ready":TRUE,"Referenced":FALSE"PositionData":{,"ActualPosition":+1.000000E-2,"ActualVelVelocity":+0.000000E+0,"LimitAccDcc":+1.000000E+2,"LimitOverride":+1.000000E+2,"LimitPosition":+2.900000E+2,"LimitVelocity":+1.000000E+2,"TargetAccDcc":+0.000000E+0,"TargetPosition":+0.000000E+0,"TargetVelocity":+0.000000E+0}}}}}

Wo habe ich meinen Verständnisfehler?

Dankeschön!
 

Anhänge

  • json mqtt tree axis-x.txt
    15,4 KB · Aufrufe: 7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab gestern mal mit https://jsonlint.com/ geschaut, wo es klemmt.. Siemens möchte für type 4 "0" oder "1" haben, was ich bisschen ungeschickt finde für boolsche Signale, da benutze ich jetzt type 2.. desweiteren liegt es daran, dass bei allen Variablen die ich als type 3 übergebe, noch das Vorzeichen mit dabei ist, das meckert zB JSONlint an, ob das so korrekt ist, oder nicht, kann ich nicht beurteilen da ich bisher noch keine Berührungen mit dem JSON Format hatte..

Ich könnte natürlich alles type 2 übergeben, aber das wäre für mich irgendwie nicht Sinn der Sache, wenn es schon die Möglichkeit gibt datentyp-spezifisch eine Parametrierung durchzuführen.

Ich hatte auch depth komplett falsch aufgebaut.

Das größte Problem ist aber der Arbeitsspeicher meiner kleinen Steuerung, das ist zu wenig um alle Datenpunkte vorzuhalten.

Danke trotzdem!
 
desweiteren liegt es daran, dass bei allen Variablen die ich als type 3 übergebe, noch das Vorzeichen mit dabei ist, das meckert zB JSONlint an, ob das so korrekt ist, oder nicht, kann ich nicht beurteilen da ich bisher noch keine Berührungen mit dem JSON Format hatte..
Das ist die Unart von Siemens, bei der Int/Dint in String Wandlung einer positiven Zahl ein "+" voranstellen zu wollen.
 
Zurück
Oben