Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched.
Close
ich arbeite mit einer Wago 750-841 und übertrage per To-Pass (WagoLibToPass_01.lib) Daten in eine Datenbank bzw. an ein Script. Der Puffer des Sendebausteins ist allerdings nur 24 Übertragungen groß. Das ist uns hier zu wenig. Falls die Einheit mal vom Netz getrennt wird, muss sie die Datensätze nachliefern können.
Daher dachte ich daran, bei fehlgeschlagenen Übertragungen meine Datensätze in eine .csv Datei zu schreiben und das ganze dann - wenn die Verbindung wieder hergestellt ist - per HTTP POST Telegramm an das Script zu senden.
Leider bin ich in Sachen Netzwerkthematik nicht sonderlich bewandert, weswegen ich gern einmal erklärt hätte, wie ich ein solches Telegramm mit Bordmitteln verschickt bekomme.
Und wäre es vielleicht sogar möglich, diese Übertragung verschlüsselt zu realisieren? Das wäre ja quasi das Sahnehäubchen obendrauf.
Vielen Dank und freundliche Grüße
Marcus
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
die Größe des Buffers kannst du durch überschatten der globalen Konstanten "gc_uiTOPASS_BUFFERSIZE" mit einer gleichnamigen globale Konstante in deinem Projekt verändern.
Ah danke, dass man den Wert so einfach ändern kann, hätte ich nicht gedacht.
Die Aufgabenstellung mit dem Telegramm bleibt aber dennoch bestehen, da teilweise sehr viel mehr als 8 Werte gleichzeitig übertragen werden sollen und dabei ein nacheinander aufrufen des To-Pass-Bausteins eher kontraproduktiv ist.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Matze001 hat geschrieben:
Oder, etwas bescheuert, mehrere Bausteine "parallel" die Daten senden lassen, wie gut das klappt kann ich aber nicht sagen.
MfG
Marcel
So ähnlich wird es im Moment gemacht. Zweimaliger Aufruf mit 10 Sekunden Abstand. Das Skript muss sich dann die Daten entsprechend zusammenbasteln und in die Datenbank schreiben.
Bei zwei Aufrufen mag das noch gehen, wenn es mehr wird, wird das aber unnötig kompliziert.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
aus meiner Sicht spricht nicht dagegen mit mehreren Instanzen des ToPass-FB zu arbeiten. Es kommt halt darauf an in welcher Tabelle die Daten letztendlich landen sollen.
A1..A8 --> Tabelle "messwerte"
D1..D8 --> Tabelle "messwerte"
ModbusData --> Tabelle "messwertemodbus"
Gruss cmoeller
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
So, ich hab jetzt noch ein bisschen rumprobiert und bin zu der Erkenntnis gekommen, dass es mit TOPASS nicht geht. Ich bekomm den Buffer-Wert bei Weitem nicht hoch genug. Wir müssen im Ernstfall an die 4000 Übertragungen zwischenspeichern können. Daher auch die Idee mit dem .csv File.
Nun also nochmal die Frage: Wie schicke ich ein HTTP POST Request ab? Den Inhalt bastel ich mir dann schon zusammen, es geht eher um den netzwerktechnischen Aspekt dabei.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
ich arbeite mit einer Wago 750-841 und übertrage per To-Pass (WagoLibToPass_01.lib) Daten in eine Datenbank bzw. an ein Script. Der Puffer des Sendebausteins ist allerdings nur 24 Übertragungen groß. Das ist uns hier zu wenig. Falls die Einheit mal vom Netz getrennt wird, muss sie die Datensätze nachliefern können.
Daher dachte ich daran, bei fehlgeschlagenen Übertragungen meine Datensätze in eine .csv Datei zu schreiben und das ganze dann - wenn die Verbindung wieder hergestellt ist - per HTTP POST Telegramm an das Script zu senden.
Das Telegramm hat dabei folgendes Muster:
Leider bin ich in Sachen Netzwerkthematik nicht sonderlich bewandert, weswegen ich gern einmal erklärt hätte, wie ich ein solches Telegramm mit Bordmitteln verschickt bekomme.
Und wäre es vielleicht sogar möglich, diese Übertragung verschlüsselt zu realisieren? Das wäre ja quasi das Sahnehäubchen obendrauf.
Vielen Dank und freundliche Grüße
Marcus
Hallo Marcus,
die Größe des Buffers kannst du durch überschatten der globalen Konstanten "gc_uiTOPASS_BUFFERSIZE" mit einer gleichnamigen globale Konstante in deinem Projekt verändern.
Gruss cmoeller
Ah danke, dass man den Wert so einfach ändern kann, hätte ich nicht gedacht.
Die Aufgabenstellung mit dem Telegramm bleibt aber dennoch bestehen, da teilweise sehr viel mehr als 8 Werte gleichzeitig übertragen werden sollen und dabei ein nacheinander aufrufen des To-Pass-Bausteins eher kontraproduktiv ist.
Hallo Marcus,
wenn mehr als acht Werte zu übertragen sind kannst du auf die Modbusdaten ausweichen.
Der Name ist historisch bedingt, steht aber für ein schlichtes ARRAY OF WORD, dessen Größe du über 'gc_bTOPASS_ModbusDataCount ' festlegen kannst.
Gruss cmoeller
Oder, etwas bescheuert, mehrere Bausteine "parallel" die Daten senden lassen, wie gut das klappt kann ich aber nicht sagen.
MfG
Marcel
So ähnlich wird es im Moment gemacht. Zweimaliger Aufruf mit 10 Sekunden Abstand. Das Skript muss sich dann die Daten entsprechend zusammenbasteln und in die Datenbank schreiben.
Bei zwei Aufrufen mag das noch gehen, wenn es mehr wird, wird das aber unnötig kompliziert.
Hallo
aus meiner Sicht spricht nicht dagegen mit mehreren Instanzen des ToPass-FB zu arbeiten. Es kommt halt darauf an in welcher Tabelle die Daten letztendlich landen sollen.
A1..A8 --> Tabelle "messwerte"
D1..D8 --> Tabelle "messwerte"
ModbusData --> Tabelle "messwertemodbus"
Gruss cmoeller
ja z.B.
man könnte aber auch alle in eine schreiben und durch den parameter "ToPassID" die Datensätze unterscheiden...
MfG
Marcel
So, ich hab jetzt noch ein bisschen rumprobiert und bin zu der Erkenntnis gekommen, dass es mit TOPASS nicht geht. Ich bekomm den Buffer-Wert bei Weitem nicht hoch genug. Wir müssen im Ernstfall an die 4000 Übertragungen zwischenspeichern können. Daher auch die Idee mit dem .csv File.
Nun also nochmal die Frage: Wie schicke ich ein HTTP POST Request ab? Den Inhalt bastel ich mir dann schon zusammen, es geht eher um den netzwerktechnischen Aspekt dabei.
Hallo,
dann bau dir deinen Buffer selbst mit nem array und mach ne Funktion das er die Arrayeinträge mit der ToPass wegjagt....
MfG
Marcel