Beispiel zum automatischen Konvertieren von Strukturen in eine JSON-Nachricht

alb

Level-2
Beiträge
74
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Ich möchte die Aktualwerte von SPS-Datenstrukturen zu Json-Nachrichten serialisieren, bzw. die Werte aus Json-Nachrichten in passendes Structs schreiben. Ziel ist Datensicherung von Rezepten, Einstellungen, etc.
Bei Beckhoff gibt es eine Json Bibliothek und ein Beispielprojekt, welches genau das tut:

Beispiel in knowledgebase

Git Sample code

Es werden Json-Strings erzeugt, die sehen gut aus und beinhalten die aktellen Daten. In Zeile 13 wird mit der Methode "SetSymbolFromJson" die erzeugte Nachricht ausgewertet und in in die Struktur "stValuessRcv" geschrieben (zumindest verstehe ich das so).
Das funktioniert bei mir leider nicht :-(
"stValuessRcv" wird nicht beschrieben, sondern bleibt auf Initialisierungswerten stehen. Durch die gleichen Ini-Werte, sieht es esstmal gut aus, aber wenn mann Werte ändert, merkt mann das es nicht klappt.

Verstehe ich das Beispiel nicht richtig, ist das Beispiel kaputt oder Benutze ich es falsch?
Habe Zeile 13 dann etwas erweitert, um die Rückgabewerte zu erhalten:
bSuccess = fbJsonDataType.SetSymbolFromJson( ... hrErrorCode => Error)
Das ergibt Success = False und Fehler -1743714560
Leider finde ich die Fehlercodes der Json-Lib irgendwie nicht.

Was mache ich falsch, hat jemand nen Tip für mich?

Grüße und Danke im Vorraus!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
98110700 - allgemeiner Gerätefehler. Hilft mir leider nicht weiter.

ps: Ach Mist, die Fehlerliste war garnicht so gut versteckt. Manchmal ist man echt blind 🙈
 
Habe das Beispiel mal in soweit angepasst, dass alle HRESULT eingesammelt werden. Der erste Fehler tritt schon beim Erzeugendes Strings auf (obwohl der Json-String gut aussieht). Zeile 6:
fbJsonDataTyp.AddJsonKeyValueFromSymbol(..., HRESULT = 9811070c
bedeutet DSERR_DEVICE_NOTFOUND | Nicht gefunden (Dateien,...)




 
Bei "Geräte-Fehler" würde ich auch nach einem Gerät suchen, z.B. AMS-NetId / ADS-Adresse falsch oder nicht leer gelassen für lokalen Zugriff, Laufwerk falsch nicht bereit, falsche Pfadangabe, Sender-/Empfänger nicht bereit o.ä.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also Probleme mit ADS-Adressen etc. kann ich nirgenwo finden. Glaube langsam das mit dem Beispielcode oder der Library irgendwas nicht stimmt, und werde es mal an den Support reichen.

Trotzdem Danke
 
Zurück
Oben