Sonstiges ESP32 Verbindung mit Siemens SPS

tp23031990

Level-1
Beiträge
29
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.
Für meine Bachelorarbeit versuche ich gerade eine Verbindung mit einem ESP32 (https://templates.blakadder.com/wireless_tag_WT32-ETH01.html) eine Verbindung mit einer Siemens 1500 CPU herzustellen.
Laut Settimo und Snap7 sollte das ganze mit einem einfachen tcpClient funktionieren. Aber leider bekomme ich immer als Antwort, dass die Verbindung fehl schlug....
Hat sowas mit Tasmota schon mal jemand gemacht und kann mir vielleicht sagen, was ich tun muss, damit ich eine Verbindung mit der CPU herstellen kann? Wäre für jede Hilfe dankbar.
Aktuell versuch ich nur folgendes:
tcp = tcpclient()
tcp.connect("192.168.0.200", 102)
print("connected:", tcp.connected())

Bekomm als Antwort aber immer false....
Würd bitte wirklich jemanden suchen, der mir hier irgendwie helfen kann :(
 
Also eine TCP-Verbindung auf Port 102 aufbauen sollte immer möglich sein. Welche Dienste du dann später darauf abrufen kannst ist eine andere Sache.

Wenn du einen Bibliothek wie Snap7 verwenden möchtest, dann muss in der Hardwarekonfiguration der1500 die Put/Get Kommunikation freigegeben sein. Wenn du keine Bibliothek verwenden willst und Zugriff auf das SPS Programm hast, dann kannst du auch eigen entwickeltes Protokoll auf TCP oder UDP programmieren.
 
Dann liegt da wohl an deinem Programm im ESP ein Fehler vor. Wenn du über TIA Portal bei der CPU online gehst, dann läuft das auch über Port 102 ab.
 
Naja, was kann viel falsch sein?
Mach ja nur eine tcpConnection mit IP und port und die wird schon abgelehnt...
Hab den Code eh im Hauptpost.
 
So wie ich das verstanden habe, bist du der Meinung es liegt an der SPS, dass diese die Verbindung nicht annehmen würde. Was macht man um das auszuschließen? Man verwendet einen eigenen TCP Server über den man die Kontrolle hat und weiß, dass er funktioniert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nö nö.
Ich bin absolut nicht der Meinung, dass das Problem an der SPS liegt...
Eher bin ich mir sicher, dass das Problem an mir und meinem ESP liegt.
Is ja eigentlich einfach: man nimmt den ESP und stellt eine tcp Connection zur IP und Port 102 her. Das ist mein Problem, dass ich nicht weiß, was ich am ESP falsch mach dass die einfachste tcp Verbindung failed.
 
Der ESP32 hat WLAN, die S7 hat LAN.
Kommst überhaupt vom WLAN auf die 1500er?
Manchmal sind es die einfachen Dinge.
Ich würd Tasmota erstmal bei Seite lassen und mit dem ESP nur ne Verbindung aufbauen.
wenn dass läuft kann man die Integration in Tasmota angehen.
 
Der ESP32 hat WLAN, die S7 hat LAN.
Kommst überhaupt vom WLAN auf die 1500er?
Manchmal sind es die einfachen Dinge.
Ich würd Tasmota erstmal bei Seite lassen und mit dem ESP nur ne Verbindung aufbauen.
wenn dass läuft kann man die Integration in Tasmota angehen.
Wie es nach dem Link im ersten Beitrag aussieht, hat er ein Dev-Board mit Ethernet.

EDIT: kann auch nur als ein Seriell-Ethernet-Adapter verwendet werden:

 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie es nach dem Link im ersten Beitrag aussieht, hat er ein Dev-Board mit Ethernet.

EDIT: kann auch nur als ein Seriell-Ethernet-Adapter verwendet werden:

Sorry hab ich gar nicht gesehen. Das macht die Sache mit Tasmota interessant.
Wenn ich es richtig im Kopf hab, dann werden ein paar Ethernet-Adapter in der Firmware unterstützt.
Allerdings muss diese dann selbst kompiliert werden. Ist kein Hexenwerk.
Dann noch ne S7-Verbindung oben drauf … Hmmm
Es gibt ne Modbus-Integration für Tasmota. Vielleicht ist das der bessere Weg um mit ner 1500er zu kommunizieren.
 
Tasmota hat mittlerweile Ethernet Standardmäßig aktiviert in allen Firmwaren.
Und den den ich hab is auch einer von den Unterstützen. Wenn ich den mit LAN an den Router häng, dann bekommt er auch eine IP mit der ich dann auch auf die Tasmota Seite komm. Also der schein schon so zu funktionieren. Was ich nicht versteh ist, wieso eine einfache tcp Verbindung dann nicht geht...
 
Ok. Du kommst per Browser über LAN auf Tasmota.
Und nun?
Wie soll nun die Kommunikation zur S7 stattfinden?
Normalerweise tauscht Tasmota per MQTT oder API die Daten aus. Du willst nun das S7-Protokoll als weiteren Kommunikationsweg in Tasmota nutzen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja genau. Wenn ich einfach mal mit dem LAN an den Router geh, dann scheint er zu funktionieren.
Aber eben nicht mit LAN an der SPS. Das Ziel ist, die Daten mit dem ESP und Tasmota zu lesen und per MQTT an eine App oder so zu senden. Also ja, das S7-Protokoll soll mehr oder weniger implementiert werden. Ähnliches gibts ja schon bei Settimo und Snap7
 
Aber macht es dann nicht mehr Sinn den MQTT Teil direkt in der 1500er zu programmieren?
Gibt da auch ein Beispielprojekt von Siemens.
 
Also Integration von Settimo in Tasmota und ein S72MQTT-Gateway bauen.

Schon mal versucht nur mit Settimo eine Kommunikation zur S7 aufzubauen.
Auf der 1500er würde ich einen Nicht optimierten Datenbaustein anlegen. In den Einstellungen für HMI sichtbar anwählen und dann mal probieren.
Vielleicht vorher auf dem PC Snap7 oder libnodave installieren und damit erstmal testen.
Da hast du bessere Debugmöglichkeiten als auf dem ESP
 
Zuviel Werbung?
-> Hier kostenlos registrieren
I glaub des Hilft mir auch nicht viel weiter. Wenns so geht, dann weiß ich, dass Settimo funktioniert. Aber trotzdem nicht wieso es mit Tasmota nicht funktioniert.
Man kann Snap7 auf dem PC installieren? Verhält sich dass dein wie eine CPU? Hast du da eventuell einen Link dazu?

Aber macht es dann nicht mehr Sinn den MQTT Teil direkt in der 1500er zu programmieren?
Gibt da auch ein Beispielprojekt von Siemens.
Klar könnt ichs direkt in der SPS machen den MQTT Teil, aber des is leider nicht die Aufgabe meines Bachelor Projektes :)
 
I glaub des Hilft mir auch nicht viel weiter. Wenns so geht, dann weiß ich, dass Settimo funktioniert. Aber trotzdem nicht wieso es mit Tasmota nicht funktioniert.
Vielleicht steh ich jetzt auf dem Schlauch, aber du sollst doch doch Settimino in Tasmota implementieren.
Warum macht es dann keinen Sinn zuerst auf dem ESP32 eine Kommunikation mit Settimino zum Laufen zu bringen?
 
Haha, ja stimmt schon. Aber ich nehm halt schon an, dass das Standard Settimo funktionieren sollte. Aber hast schon recht. Hab eh noch einen zweiten von den Teilen rum liegen, mit dem werd ich mal das original Programm von Settimo testen.
Aber wie is das mit dem Snap7 was du vorher geschrieben hast? Wie funktioniert das?
 
Zurück
Oben