TIA Variable beobachten

ocraom2911

Level-2
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,


ich verwende einen MQTT-Baustein, um Messdaten erfolgreich in die Azure Cloud zu übertragen. Die Datenübertragung funktioniert soweit einwandfrei.

Allerdings habe ich ein Problem beim Beobachten einer Status-Variable. Im SCL-Code des Sendebausteins wird bei einem erfolgreichen Verbindungsaufbau eine Variable intern auf TRUE gesetzt. Diesen Verbindungsstatus möchte ich über einen OUT-Parameter an den aufrufenden Baustein weitergeben. Trotzdem wird beim Beobachten des OUT-Parameters von außen immer nur FALSE angezeigt, obwohl die Verbindung tatsächlich erfolgreich aufgebaut wird. Der Statuscode bei einem erfolgreichen Verbindungsaufbau (7004) wird korrekt übergeben.

MQTT Connected 1.pngMQTT Connected 2.png
MQTT Connected 3.png

Ich vermute, dass der OUT-Wert nicht korrekt aktualisiert oder nicht zur richtigen Zeit übergeben wird. Könnt ihr mir helfen, woran das liegen könnte oder wie ich das sauber umsetzen kann?
 
ich verwende einen MQTT-Baustein
Was für einen Baustein? Was selbst programmiertes? Oder aus einer Bibliothek? Welche? Welche TIA-Version, welche CPU und Firmware?

Im SCL-Code des Sendebausteins wird bei einem erfolgreichen Verbindungsaufbau eine Variable intern auf TRUE gesetzt.
Ist #Mdw_Status vielleicht eine TEMP-Variable und ihr wird nur manchmal was zugewiesen?

Diesen Verbindungsstatus möchte ich über einen OUT-Parameter an den aufrufenden Baustein weitergeben. Trotzdem wird beim Beobachten des OUT-Parameters von außen immer nur FALSE angezeigt, obwohl die Verbindung tatsächlich erfolgreich aufgebaut wird.
Wie beobachtest du den OUT-Parameter? Nur den Baustein-Aufruf beobachten? Wird der in jedem Zyklus aufgerufen?
Da ist gar keine Variable angeschaltet. Schalte mal eine Variable dran und beobachte die. Oder beobachte die OUT-Variable der Instanz "IDBxxx".FB_MQTT_V_4_Instance.Qx_MQTT_Verbindung_aufgebaut in einer Beobachtungstabelle oder beobachte die Variablen im IDB.

Ist #Mdw_Status = STATUS_MQTT_CONNECTED vielleicht nur 1 Zyklus lang?
Hänge mal an den Output einen Zähler dran, um zu sehen, ob die Variable zwischendurch True war.

Ich vermute, dass der OUT-Wert nicht korrekt aktualisiert oder nicht zur richtigen Zeit übergeben wird.
Bitteschön was vermutest du??? :unsure:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das sieht nach was eigenem aus, in den Versionen von Siemens gibts Signale auf der Schnittstelle, welche signalisieren dass die Mqtt Verbindung, als auch die Tcp Verbindung erfolgreich aufgebaut sind
 
Zurück
Oben