ESP32 Schreibgeschwindigkeit in die Siemens-SPS mit Settimino

Guten Morgen zusammen,

habe eine Applikation, in der ich die Daten vom ESP32 zyklisch in die Siemens SPS S7 CPU 1512sp schreibe. Dafür nutze ich die Settimino Library. Allerdings ist die Schreibgeschwindigkeit sehr langsam. Dass die Kommunikation bestehen bleibt, muss ich die Daten nicht schneller als 300ms in die Steuerung schreiben. Hat jemand eine Idee, wie man das Schreiben beschleunigen kann (ca. 100ms)?

Danke im Voraus und Guten Rutsch ins neue Jahr!

Joha …

Link zur Lib?
Wenn die ganze Zeit gequasselt wird, müsstest Du die Geschwindigkeit erhöhen - kann Das die Gegenseite?
Oder schwätzt Du momentan nur alle 300ms (für maximal 100ms) und möchtest einfach nur öfter Daten senden?
DAS könnte die Lib selber bieten - könnte sich in der Beschreibung der Lib Erwähnung finden - hinter dem Link zur Lib … vll …

MfG

Hier ist die Library: https://sourceforge.net/projects/settimino/files/2.0.0/

Es ist schwierig rauszufinden, wo der Engpass entsteht. Ich sende 14 Byte zur Steuerung, nach jedem Senden wartet ESP32 bis das Senden erfolgreich verlaufen ist, sonst wird die Verbindung nach dem Timeout gekappt und wieder neue aufgebaut. Habe Timeout in der Library schon auf 1200ms erhöht und kann maximal mit ca. 300ms Takt senden, dass die Verbindung bestehen bleibt. Das Senden schneller als 300ms ist leider mit "Stottern" verbunden (neues Senden ist möglich, wenn das Senden davor erfolgreich war). Der Engpass könnte ESP32, Accesspoint oder die Steuerung sein.

MfG

Hat niemand eine Idee?

MfG

Wie sollten wir? Es sind deine Geräte, deine Welt.

Alle unsere Zeitmessungen finden in unserer Welt statt. Auch hat nicht jeder eine S7 mit deiner Anwendung drauf im Einsatz.

Der Engpass könnte ESP32, Accesspoint oder die Steuerung sein.

Wo ist dein Problem das herauszufinden?

combie: Wie sollten wir? Es sind deine Geräte, deine Welt.

Die Frage ist an die Benutzer gerichtet, die sich schon möglicherweise mit dem Problem außenanderer gesetzt haben.

combie: Alle unsere Zeitmessungen finden in unserer Welt statt.

Was ist "in unserer Welt"? Ich hoffe, dass es doch die User gibt, die sich über Arduino Uno hinaus entwickelt haben... Es geht auch um ESP32.

combie: Auch hat nicht jeder eine S7 mit deiner Anwendung drauf im Einsatz.

Das nicht jeder eine S7 - SPS auf dem Tisch stehen hat ist sogar mir klar :-), aber es gibt bestimmt einige... Es geht nur um die Daten in die Steuerung zu schreiben! Das Lesen ist mit der Library schnell genug.

combie: Wo ist dein Problem das herauszufinden?

Um das rauszufinden ist möglich, aber sehr, sehr aufwendig. Deswegen frage ich nach möglichen Lösungen bzw. Erfahrungen im Forum mit der Hoffnung, dass jemand sich schon damit beschäftigt hat...

MfG

es gibt bestimmt einige [mit S7 - SPS]

Ich kenne keinen, der auch noch Zeit für das Arduino Forum hätte.
Das sind schon ziemlich verschiedene “Welten”, und DU bereits eines der hervorragenden Bindeglieder. Wobei selbst ein ESP32 eigentlich kein Arduino ist.

Ich kenne keine S7 mehr und auch die settimino Library nicht, aber bei erforderlichen delays über 100 ms, die so die Übertragungsgeschwindigkeit bestimmen, ist sicher etwas grundfalsch…

Ich habe dies schon in Zusammenarbeit mit einer S7-1200 gemacht. Ich habe aber immer nur bei Ändeurngen der Werte die ESPs in die SPS schreiben lassen, da kamen aber die hohen Zyklen nicht vor. Ich kann mir vorstellen das dies eine Limitierung der CPU ist da die ESP quasi wie eine HMI über TSAP RFC1006 Aufruf auf die nicht optimieren Bausteine zugreifen. Da es kein echtes Profinet ist kann ich mir vorstellen das auch die CPU dicht macht um die Resourcen für das "wichtige" Profinet zu reserviern.

Hilft dir nicht direkt. Mit Modbus geht da erheblich schneller. Nur so als Tip. Auf der S7 einen Modbus/TCP Server und der ESP knüppelt da rein.

Gruß DerDani

Irgendwo entsteht ein Engpass, es könnte auch die Steuerung sein... Die HMI-Verbindung ist auch 100ms ausgelegt, deswegen denke ich, dass es mit 100ms funktionieren soll.

Aber mit 100ms Takt gibt das "Stottern" erst nach 2 - 3 Sekunden einwandfreie Übertragung. Es bleibt immer nach 2 - 3 Sekunden für 400ms bis 1100ms hängen, dann funktioniert es 2 - 3 Sekunden wieder und so weiter.

Sicherlich geht es mit Modbus TCP schneller, aber es frisst mein Codespeicher der CPU und wäre schon interessant rauszufinden woran es liegt...

fsxela: wäre schon interessant rauszufinden woran es liegt...

Da wirst Du wohl der Einzige sein, der das herausfinden kann, da nur Du über diese Hardwarekombination verfügst.

Gruß Tommy

Ich habe gehofft, dass der Libraryersteller sich auch zur Sache äußert. Der kann bestimmt gleich sagen woran es liegt...

Gruß Alex

Hi

Nur, weil Er - wann überhaupt? - diese Lib geschrieben hat, muß Er sämtliche Konstellationen dazu aus dem FF kennen? Ist dem Libraryersteller überhaupt bekannt, daß Du Probleme damit hast? Wenn Nicht - unter welchen Umständen sollte Er auf die Idee kommen, sich um irgend etwas kümmern zu müssen? Und selbst wenn, besteht hier immer noch der Unterschied zu können (statt müssen). Ist immer noch 'freie Software' - bezahle dafür und fordere Support ein.

MfG

PS: fast 9 Monate ist die dortige Version derzeit alt - viel Zeit um auch Mal neuen Kram anzufangen - zumindest hoffe ich stark, daß Sein Leben nicht daraus besteht, täglich zu prüft, ob irgend Wer mit Seiner Lib nicht zurecht kommt - zumindest ich könnte mir sinnvollere Dinge im Leben vorstellen ;)

@postmaster-ino Lieber Postmaster, ich habe einige Beiträge von dir gelesen und leider fast nichts finden können, das zu Problemlösungen führen könnte. Ich möchte dich bieten die Kommentare, die nicht zu Problemlösungen führen, für sich zu behalten. MfG

Was meinst Du, wer Du bist, dass Du Dir anmaßt Anderen vorschreiben zu wollen, was sie posten sollen und was nicht?

Spruch aus der UseNet-Zeit, der auch für Foren immer noch Gültigkeit hat:

"Wer eine Frage im UseNet (Forum) stellt, bekommt nicht immer die Antwort, die er sich wünscht."

Gruß Tommy

Lieber Tommy,

Was meinst Du, wer Du bist, dass Du Dir anmaßt Anderen vorschreiben zu wollen, was sie posten sollen und was nicht?

Auch fsxela oder ich kann in einer Weise auf Beiträge antworten, die dem postmaster, dir oder sonstwem evtl. nicht gefallen.

Aus der settimino - Frage wird hier vermutlich eh nichts mehr werden.

michael_x: Lieber Tommy, Auch fsxela oder ich kann in einer Weise auf Beiträge antworten, die dem postmaster, dir oder sonstwem evtl. nicht gefallen.

Richtig, es ging aber darum, das fsxela ihm vorschreiben wollte, was/worauf er posten solle und worauf nicht. Das ist in meinen Augen etwas anderes, als eine Antwort, die jemanden nicht gefällt.

Gruß Tommy

Hi

fsxela: @postmaster-ino Lieber Postmaster, ich habe einige Beiträge von dir gelesen und leider fast nichts finden können, das zu Problemlösungen führen könnte. Ich möchte dich bieten die Kommentare, die nicht zu Problemlösungen führen, für sich zu behalten. MfG

Immerhin hast Du dann zumindest den einen oder anderen Beitrag gefunden, Der Dich bei der Problemlösung unterstützen konnte - also immerhin :).

Somit darf ich davon ausgehen - Du schriebst Das ja nicht direkt, daß Du Dich mit dem Schreiber der Lib bereits in Verbindung gesetzt hast? Weil - Ich schrieb Es ja bereits und Das ist Dir wohl auch nicht entgangen: Er kann Dir nur helfen, wenn Er davon Bescheid weiß. Sollte Das nicht der Fall sein, dann ist mein Beitrag oben aber so was von Hilfe - Du musst halt nur selber 'aus dem Quark' kommen.

MfG