TIA CPU 1217C: CP 1243-1 <-> MQTT

DCDCDC

Well-known member
Beiträge
1.297
Reaktionspunkte
256
Zuviel Werbung?
-> Hier kostenlos registrieren
Hardwareumgebung:
CPU 1217C DC/DC/DC 6ES7 217-1AG40-0XB0 V4.6
CP 1243-1 6GK7 243-1BX30-0XE0 V3.3
LMQTT_Client V04.00.00 | 2023-08-04 (Bibliotheken für Kommunikation V2.0.0 für TIA Portal V18)
TIA Portal V18 Update 2

Hallo zusammen,

ich hab leider nur eine 1217C und muss darüber von allen Modulen die ich hab, viele Werte und Zustände wegschicken zyklisch, also definitiv mehr publishen als subscriben.
Zykluszeit liegt aktuell zwischen 10-20ms bei eingestellter 20% Kommunikationslast-Belastung

Jetzt wollte ich die zyklische Belastung für die CPU so niedrig wie möglich halten und dafür die ganze Kommunikation über den CP erledigen, reicht es dafür aus wenn ich die hwId (Aus dem Handbuch: hwId HW_ANY Hardware-Kennung der PN/IE-Schnittstelle für den Verbindungsaufbau. Bei "0" wird automatisch eine passende gewählt.) auf den CP zu legen, wenn ja direkt auf den Port oder reicht nur das Modul aus?
Screenshot 2023-08-16 112830.png

Ich hatte auch angedacht für jedes Modul eine eigene Verbindung einzurichten, so muss ich nicht alles über eine Verbindung abhandeln sondern kann alles schön sauber in dem Bereich des Moduls machen (Schrauber, Achsen usw.). Kann ich dafür die hwId mehrfach angeben und muss nur darauf achten, dass ich eindeutige Verbindungs-IDs hab?

Danke!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

komme jetzt erst wieder zu der Thematik.

Hat schon mal jemand eine MQTT Verbindung (ohne TLS und ohne QoS) mit der Bibliothek von Siemens eingerichtet?

LMQTT_Client Version 04.00.00: Bekomme immer wieder ein Error: ERR_TCP_RECONNECTING
LMQTT_Client Version 02.01.01: Will sich gar nicht rühren, kein Error, kein gar nichts.

Kommunikation versuche ich über CP 1243-1 aufzubauen, der hat die IP Adresse 10.10.100.10 mit Subnetz 255.0.0.0.
Der Broker hat die IP Adresse: 10.10.13.50, Port 1883.. sollte ja durch die eingestellte Subnetzmaske erreichbar sein.

Kann auch mit dem Tool MQTT Explorer auf den Broker verbinden.
Der Broker läuft im Docker, hat auch noch ein zweites vLAN mit der IP Adresse vom "SPS-Netz"
 
Sieht aktuell nach einer Sackgasse aus.. ich wende mich mal parallel ans Siemens Forum, hab auch mal Feedback unter dem Eintrag im SIOS gegeben und wende mich parallel mal ans Eclipse Forum.

Ich weiß auch nicht wie die reelle Verbreitung von MQTT mittlerweile in produktiven Systemen ist.

Kann ich denn über den CP/die CPU einen Ping ausführen um zu sehen ob die IP-Adresse überhaupt auch von da aus erreichbar ist?
 
mosquitto[57]: 1692878758: New connection from IP-AdresseCP:50874 on port 1883.
mosquitto[57]: 1692878758: New client connected from IP-AdresseCP:50874 as Stationsname (p2, c1, k60).
mosquitto[57]: 1692878759: Bad client Stationsname sending multiple CONNECT messages.
mosquitto[57]: 1692878759: Client Stationsname disconnected due to protocol error.

Jemand eine Idee?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab vom Support Antwort bekommen!

Aktuell steht in Zeile 237:
#statConnParam.paramIP.ConnPara.ID := #connParam.connId;

Verbindung steht jetzt!

Das sagt der Support:
Zeile 237 im LMQTT_Client FB ersetzen durch:

#statConnParam.paramIP.ConnPara.ID := #statConnParam.paramQDN.ConnPara.ID := #connParam.connId;

Für weitere Fragen stehe ich Ihnen gerne zur Verfügung.

Mit freundlichen Grüßen

Ihr Technical Support für Digital Industries
 
Neues von Siemens:
der Austausch der Zeile 237 zu
#statConnParam.paramIP.ConnPara.ID := #statConnParam.paramQDN.ConnPara.ID := #connParam.connId;



konnte Ihr Problem lösen? Verwunderlich, denn diese Zeile macht im Grunde auch nichts anderes, als den Parameter #connParam.connId in #statConnParam.paramIP.ConnPara.ID und #statConnParam.paramQDN.ConnPara.ID zu schreiben.

Sie arbeiten mit einer IP-Adresse, sodass der Parameter „QDN“ nicht beachtet wird.

Weiterhin habe ich jetzt für den Support Messungen gemacht.. weil mir manchmal der Watchdog für keepAlive nach Ablauf der Zeit das ausführen sperrt und ich erst mein Kommando zurücksetzen muss bis der Baustein wieder ausgeführt wird.
 
Habe aktuell noch ein Problem mit dem Baustein von Siemens..

Wenn ich beim Hochladen reintialisieren muss, dann schmeisst mir die Verbindung einen Error, ich kann das nur dadurch "wiederbeleben" wenn ich einmal die Steuerung in den STOP versetze und dann wieder in den RUN. Die Freigabe (Enable Eingang) zum abarbeiten des Bausteins wegzunehmen reicht nicht aus. Hat jemand eine Idee?

Ich denke mal der Baustein versucht eine neue Verbindung aufzubauen mit dem gleichen Client Identifier, bekommt diese aber nicht hergestellt weil auf dem Broker noch eine Verbindung besteht mit diesem Client Identifier und die ist nicht ordentlich terminiert.

Würde ungern nur deswegen für die MQTT Verbindung einen eigenen globalen DB + IDB erzeugen wollen und damit meine Struktur umwerfen.. es gibt auch keine Ack/Rest Routine soweit ich das sehe und dafür auch keinen Eingang am Baustein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich hab aktuell das Problem, wenn ich beim Herunterladen Bausteine reinitialisieren muss, dass meine Verbindung dann zum Broker abbricht, ich aber auch aktuell keine Möglichkeit sehe, die Verbindung zurückzusetzen. (Habs schon über EN und Enable versucht)

Aktuell starte ich dann immer einmal die CPU neu, was definitiv nicht so bleiben kann.
Ich verwende den Client der aktuellen Bibliothek von Siemens für V18

Hat jemand da schon eine saubere Lösung für gefunden?

Keepalive steht auf 60
 
Zurück
Oben