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 lese alle 12h 2 Wasserzähler per MBUS aus. Klappt super und die Werte werden auch korrekt in der CSV Datei abgespeichert.
Damit ich mich nicht selbst um den Download der Daten aus der WAGO 750-881 selbst bemühen muss, möchte ich die Daten gern per Mail an meine Adresse senden.
Testmails senden klappt auch ohne Anhang super.
Jetzt kommt mein Problem, die gespeicherte Datei als Anhang zu versenden. Es wird "irgend etwas" angehangen, mit ein paar lustigen Sonderzeichen, aber nicht der eigentliche Inhalt wird versendet.
die letzten beiden Zeilen hab ich quasi als Dateigrößenermittlung dazugefügt, um die Infos den beiden Eingängen Mail_ESMTP_Client zu übergeben.
gemeint ist also die WagoLibMail_02.lib Baustein Mail_ESMTP_Client
ich verstehe nicht ganz, wie ich anhand der Datei das Bytearray festlegen kann.
An der Dateigröße liegt es auch nicht, da ich den MAX_SEND_TCP_CLIENT in den glob. Variablen mit einem höheren Wert überschattet habe.
Die Dateigröße selbst beträgt ebenfalls nur max. 7-9kb. (Also auch noch im Standard-Modus vertretbar)
Wer kann mir hier weiter helfen?
vielen Dank
der Joko
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Zitat:
An der Dateigröße liegt es auch nicht, da ich den MAX_SEND_TCP_CLIENT in den glob. Variablen mit einem höheren Wert überschattet habe.
das hilft nichts wenn der DSL-Router nicht mehr durchlässt.
vom Code bräuchte ich noch etwas mehr um Deine Gedanken verstehen zu können. Ich sehe keine Deklaration (z.B. was soll maildata sein?) noch verstehe ich was die CSV-Geschichte mit E-Mail zu tun hat. Ich verwene nicht den gleichen E-Mail client, aber so wie ich den Codeauszug verstehe wird ein Pointer auf die Daten im Ram erwartet, das hat mit der CSV erst mal gar nichts zu tun.
Im Zweifelsfall mal das ganze Projekt posten.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
ok, hab mal das Projekt in den Anhang gepackt.
Das Projekt kann "etwas" wirr aussehen, da ich es nach und nach - wie man eben Zeit hat - aufgebaut habe.
Ebenfalls habe ich noch ein paar Modbus Tests durchgeführt. Daher sind auch ein paar nicht mehr genutze Variablen vorhanden, die später aber wieder ihren Dienst verrichten sollen.
EDIT:\ Eines wollte ich noch angemerkt haben: Dies ist mein erstes WAGO Projekt und das eher im "privaten" Bereich, da ich so den Einstieg in und mit WAGO lernen wollte.
Mit simplen DI und DO wollte ich nicht anfangen, daher dachte ich mir, visualisierst du eben deine Bus-Zähler.
Also bitte seid nicht all zu hart, falls meine Programmstruktur für euch nicht als "Struktur" ersichtlich sein sollte. Es sind immer nur abends 1-2 Stunden zur Verfügung und das nach der Arbeit
also erst mal musst Du dafür sorgen dass Du die zu versendenden Daten wieder in einem Array landen. Entweder gleich parallel mit dem Schreiben ins Filesystem auch in ein Array packen, alternativ wieder aus dem Dateisystem lesen (was den Vorteil hat dass die Daten bei Stromausfall nicht weg sind).
Reihenfolge:
SysFileGetSize -> wir müssen wissen wieviel geladen werden soll
SysFileOpen
SysFileRead, bei Size die Rückmeldung vom SysFileGetSize angeben, bei Buffer reicht ADR(bytearray), das scheint ja sonst nirgendswo verwendet zu sein. Hier ein Auszug aus einer Schrittkette (mit Case Anweisung):
Hallo liebe Forengemeinde,
Ich habe folgendes Problem mit einem Bytearray:
Ich lese alle 12h 2 Wasserzähler per MBUS aus. Klappt super und die Werte werden auch korrekt in der CSV Datei abgespeichert.
Damit ich mich nicht selbst um den Download der Daten aus der WAGO 750-881 selbst bemühen muss, möchte ich die Daten gern per Mail an meine Adresse senden.
Testmails senden klappt auch ohne Anhang super.
Jetzt kommt mein Problem, die gespeicherte Datei als Anhang zu versenden. Es wird "irgend etwas" angehangen, mit ein paar lustigen Sonderzeichen, aber nicht der eigentliche Inhalt wird versendet.
Hier mal ein Auszug vom Code:
die letzten beiden Zeilen hab ich quasi als Dateigrößenermittlung dazugefügt, um die Infos den beiden Eingängen Mail_ESMTP_Client zu übergeben.
gemeint ist also die WagoLibMail_02.lib Baustein Mail_ESMTP_Client
ich verstehe nicht ganz, wie ich anhand der Datei das Bytearray festlegen kann.
An der Dateigröße liegt es auch nicht, da ich den MAX_SEND_TCP_CLIENT in den glob. Variablen mit einem höheren Wert überschattet habe.
Die Dateigröße selbst beträgt ebenfalls nur max. 7-9kb. (Also auch noch im Standard-Modus vertretbar)
Wer kann mir hier weiter helfen?
vielen Dank
der Joko
das hilft nichts wenn der DSL-Router nicht mehr durchlässt.
vom Code bräuchte ich noch etwas mehr um Deine Gedanken verstehen zu können. Ich sehe keine Deklaration (z.B. was soll maildata sein?) noch verstehe ich was die CSV-Geschichte mit E-Mail zu tun hat. Ich verwene nicht den gleichen E-Mail client, aber so wie ich den Codeauszug verstehe wird ein Pointer auf die Daten im Ram erwartet, das hat mit der CSV erst mal gar nichts zu tun.
Im Zweifelsfall mal das ganze Projekt posten.
Hallo cheffe,
ok, hab mal das Projekt in den Anhang gepackt.
Das Projekt kann "etwas" wirr aussehen, da ich es nach und nach - wie man eben Zeit hat - aufgebaut habe.
Ebenfalls habe ich noch ein paar Modbus Tests durchgeführt. Daher sind auch ein paar nicht mehr genutze Variablen vorhanden, die später aber wieder ihren Dienst verrichten sollen.
EDIT:\ Eines wollte ich noch angemerkt haben: Dies ist mein erstes WAGO Projekt und das eher im "privaten" Bereich, da ich so den Einstieg in und mit WAGO lernen wollte.
Mit simplen DI und DO wollte ich nicht anfangen, daher dachte ich mir, visualisierst du eben deine Bus-Zähler.
Also bitte seid nicht all zu hart, falls meine Programmstruktur für euch nicht als "Struktur" ersichtlich sein sollte. Es sind immer nur abends 1-2 Stunden zur Verfügung und das nach der Arbeit
wasser.pro [129.47 KiB]
also erst mal musst Du dafür sorgen dass Du die zu versendenden Daten wieder in einem Array landen. Entweder gleich parallel mit dem Schreiben ins Filesystem auch in ein Array packen, alternativ wieder aus dem Dateisystem lesen (was den Vorteil hat dass die Daten bei Stromausfall nicht weg sind).
Reihenfolge:
SysFileGetSize -> wir müssen wissen wieviel geladen werden soll
SysFileOpen
SysFileRead, bei Size die Rückmeldung vom SysFileGetSize angeben, bei Buffer reicht ADR(bytearray), das scheint ja sonst nirgendswo verwendet zu sein. Hier ein Auszug aus einer Schrittkette (mit Case Anweisung):
dann sollte das funktionieren. Code natürlich jetzt nicht getestet, sollte aber ungefähr so funktionieren
Hallo Cheffe,
besten Dank für die Info.
Ich glaube auch zu wissen, warum er nicht richtig gesendet hatte:
Wie du beschrieben hast, muss ich aber die komplette Dateigröße ermitteln...
Ich denke mal, dies war der eigentliche Fehler.
Ich werd den Code mal testen, und melde mich, wenn ich Ergebnisse hab.
Vielen Dank nochmals...
mfg
Joko