Hauptmenü

750-841 E-Mail senden

Begonnen von l.t., 17. März 2011, 11:31:56

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

l.t.

Hallo!

Ich habe ein Problem mit dem Verschicken von E-Mails mittels der OSCAT Network Lib.
Hardware ist eine Wago 750-841.

Ich habe einige eigene Einstellungen/E-Mail Accounts getestet und dann auch direkt das Beispiel ausprobiert.
Leider erhalte ich immer die Fehlermeldungen Error_C = 1; Error_T = 4 am Baustein.
Als DNS4_IP habe ich die IP der Fritzbox und die in der Fritzbox angezeigten DNS Server (217.0.43.161 bzw. 217.0.43.177) getestet.
Alles mit dem gleichen "Erfolg"...   ???

Kann mir da jemand einen Tip geben?

Danke!

Gruß L.T.

[gelöscht durch Administrator]

l.t.

Also inzwischen habe ich gefunden woram es lag/liegt:

Im Step 310 wird im Baustein SMTP Client die Angabe des Anhangs eingelesen.
Der Step 400 soll bei nicht vorhandenem Anhang in den Step 800 weiterleiten.
Das tut der Baustein bei mir aber nicht!
Es geht im Step 400 - 410 - .... weiter.
Da jedoch kein Anhang angegeben ist läuft das ins Leere.
Zwinge ich den Baustein den Anhang zu ignorieren (Sprung von 310 nach 800) funktioniert alles wie´s soll.
Ist das ein Bug oder funktioniert das nur auf meiner Steuerung nicht?


Gruß L.T.

peewit

#2
hallo

1. du sagst er läuft ins leere , kannst du das auch etwas genauer erklären

2. kannst du mal auf schritt 400 einen breakpoint setzen und mir dann sagen was
   bei FILES und cnt1 für ein wert vorhanden ist.

3. wenn du eine datei angibst geht es dann auch

4. der Fehler Error_C = 1; Error_T = 4 am Baustein sollte eigentlich nichts mit dem obigen zu tun haben ?

5. wenn FILES ='' ist dann springt er doch in schritt 400 gleich auf schritt 800 ?

l.t.

Hallo peewit,

ich hab mit ja den Step nach außen gelegt und eine Trace gemacht (siehe Anhang) und laut dieser Trace durchläuft der Baustein folgende Step´s:

....
300
310
400
410
420
430
440
450
460
470
980
996

Mit Brakepoint hab ich jetzt noch nicht getestet (da ich im Moment den Baustein mit "Zwangsumleitung" des State-Machine verwende)
Kommt aber bald.

Gruß L.T.

peewit

hallo

Error_C = 1; Error_T = 4 am Baustein heisst nichts anderes das die datei nicht geöffnet werden kann, was logisch ist, da eigentlich auch keine datei
angegeben wurde

der entscheidende punkt ist folgender block

310:   IF snd_step = 0 THEN
      cnt1 := LIST_LEN(59, FILES) - 1; (* Anzahl der Dateien *)
      step := 400;
   END_IF;

wenn die FILES einen leerstring übergibst dann ergibt cnt1 = -1
wenn du >= 00 als ergebnis bekommst dann ergibt die auswertung das FILES nicht leer ist, und die enthaltenen zeichen eine dateiangabe darstellen sollen

genau das passiert bei dir, anscheind ist FILES nicht leer , ist das vielleicht ein leerzeichen enthalten ?

und wenn files nicht leer ist bzw eine nicht vorhandene datei angegeben ist , dann ist der schrittverlauf bzw die fehlermeldung völlig richtig und logisch

du musst bei schritt 310 mal anhalten und schauen was bei cnt1 als ergebnis kommt, bzw. was denn nun wirklich bei FILES übergeben wird.


gruss peewit

l.t.

Also bei einem Brake im State 310 (bei Setze Step = 400) habe ich als cnt1 = 0.
Und am Eingang "Files" des Bausteins habe ich definitiv nur '' ohne Leerzeichen dazwischen.

Sonst noch eine Idee?

Gruß L.T.



peewit

#6
ursache ist folgendes
die LIST_LEN liefert bei leeren String immer eine 1

in der doku steht das bei leeren String eine 0 geliefert wird

das ist definitiv falsch, darum wird das auch falsch im programm verarbeitet



als schnellen patch kann ich dir folgendes anbieten

SMTP_CLIENT:


310:   IF snd_step = 0 THEN
      cnt1 := LIST_LEN(59, FILES) - 1; (* Anzahl der Dateien *)
      IF FILES = '' THEN cnt1 := -1; END_IF;
      step := 400;
   END_IF;


!! Der Fehler tritt nur auf wenn keine Dateien als Anhang versendet werden !!
!! Diese Änderung kann bei network.lib für codesys, beckhoff und pcworx genauso durchgeführt werden !!

l.t.

Hallo,

hab´s getestet und es klappt alles.
Danke!

Gruß L.T.