SMTP Baustein Network Lib Fehler

Begonnen von klaus1, 11. Mai 2011, 22:00:13

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

klaus1

Hallo,

Hab jetzt einen Taster am Active dran. wenn ich den kurz drück, dann sehe ich jetzt über HUB und Wireshark die DNS Abfrage:
35   0.529362   10.0.0.100   195.3.96.67   DNS   Standard query A mail.gmx.net

und den response:
120   3.453888   195.3.96.67   10.0.0.100   DNS   Standard query response A 213.165.64.20 A 213.165.64.21

das wars dann aber auch schon wieder.
es folgt sonst kein Datentransfer...

klaus1

#16
Soeben gelöst:

- Umlaute im Betreff und Body entfernt
- Server direkt über IP von mail.gmx.net angegeben.


jetzt klappts!
Danke für den netten und schnellen Support.

PS: SSL Connections klappen leider nicht:
Meldung vom SMTP: smtp must issue a starttls command first

klaus1

was ich noch bemerkt habe:
- geht mein Modem mal längere Zeit Offline und später wieder online, so habe ich einen FF00000 fehler am Baustein stehen den ich nur durch Restart der Steuerung wegbekomme...
muss man im Fehlerfall doch was manuell zurücksetzen?
Danke,
Klaus

peewit

du musst manuell gar nichts machen

der fehler bedeutet das der verbindungsaufbau (vermutlich tcp-verbindung) nicht erfolgreich war bzw. timeout fehler kam.
an welcher stelle nun aber das eigentliche problem liegt, ist mir noch nicht klar..

es kann auch sein das der tcp-server (beckhoff) die tote tcp-verbindung nicht bemerkt, bzw, der interne verbindungstimeout sehr lange braucht
um die tote verbindung zu eliminieren

wir schliessen jedoch normalerweise immer nach einen timeout den socket

ich werde mal das ausprobieren.....


kannst du deine testbedingungen mal näher beschreiben

welchen baustein nutzt du
wann fällt die verbindung aus
etc...

klaus1

Ich verwendet nur die SMTP Sende Routine der Network Lib.

Was ich bemerkt habe:
Wenn ich im SMTP_CLIENT Baustein im IP_C einen Error anstehen habe, und danach dem TIME_RESET kurz einen Pos. Boolean gebe, dann klappt wieder alles.
(Im Debug Modus manuell den BOOLEAN setzen).

Hätte das so probiert:

IF smtp_client.IP_C.ERROR <> 0 THEN
SMTP_CLIENT.IP_C.TIME_RESET := TRUE;
END_IF

Fehlermeldung Twincat:
Operanden von 'ST', 'STN', 'S','R' müssen Variable mit Schreibzugriff sein. (Tritt genau in der Zeile auf wo ich das ganze auf TRUE setze.

Bitte um Hilfe.
danke,
Klaus

peewit

hallo

ganz verstanden habe ich es noch nicht ....

es wäre immer gut , zu beschreiben
was wann wie passiert ist
und bekommst du eine fehlermeldung, wenn ja welche


machst du den reset online über smtp.ip_c.time_reset ?


den code was du probiert hast, wohin schreibst du den ?
ist das innerhalb es smtp_client oder ausserhalb
(sieht aus wie von aussen )


wenn es ausserhalb ist, dann wird dein problem sein, das die bausteinkapselung dir keinen
schreibzugriff von aussen gewährt !


mir ist noch nicht klar, wodurch bei dir das ausgelöst wird
ist es eine ausfallende routerverbindung, oder was anderes ?


zum testen ist im anhang die networb.lib 1.20 (wird bald freigegeben)

du habe ich bezüglich timeout probleme etwas verändert
ob es dein problem löst kann ich noch nicht sagen



[gelöscht durch Administrator]

klaus1

oben genannter code von mir wird online gemacht über smtp.ip_c.time_reset auf TRUE setzen. genau

Der Code von oben hängt direkt in meiner Routine drinnen wo ich auch SMTP anwende. d.h. von außen!
Du hast recht, die Bausteinkapselung gibt mir keinen Schreibzugriff.

Ausgelöst wird der Fehler dadurch, wenn mein Router offline geht, und nicht von selbst wieder online kommt. (Muss den Router öfters resetten).
Wird in der "offline" Phase ein Mail versandt, kommt es zu dem Fehler, der nach Online Beginn nicht wieder behoben werden kann.

Die Lib werde ich demnächst testen.
Danke,
Klaus

klaus1

lib getestet! Meine probleme sind weg. Danke!

vicky

#23
Hallo,
habe auch mal  das Demo "SMTP_CLIENT_DEMO" aus der beckhoff_network_120.lib versucht.
Bei direkter Angabe des Email-Servers über die IP gehts,
bei Angabe des Email-Servers über Text "mail.gmx.net" gibts Fehler FF00,

Hat jemand von euch nee Idee, wo man noch was einstellen muß?

Eine weitere Frage ist: Muß man eigentlich für die Network-Bausteine bestimmte Ports freigeben?

Noch eine Frage: Wo wird den folgender Parameter definiert "STRING_LENGTH"?


[gelöscht durch Administrator]

peewit

hallo

1. du verwendest network.lib 1.20
2. du verwendest das original demo programm "SMTP_CLIENT_DEMO"
3. du hast bei parameter DNS_IP4 einen echten dns-server angegeben 
4. du hast bei den sps-settings eine korrekte gateway adresse angegeben


wenn die direkte ip geht, und sonst nicht , dann gibt es ein problem mit dem dns-server
was wird dort dem baustein übergeben ?
dem demo dns-ip4 wird bei dir zu 99% nicht funktionieren



bei fehler bitte immer

"error_t" und "error_c"  mit angeben, sonst kann man den genauen fehler nicht feststellen


vicky

Hallo peewit,

1.-4. sind das jetzt Fragen oder Feststellungen?

Zitatbei fehler bitte immer
"error_t" und "error_c"  mit angeben, sonst kann man den genauen fehler nicht feststellen
=> hab ich doch, siehe Bild!!!


hallo



Zitatwenn die direkte ip geht, und sonst nicht , dann gibt es ein problem mit dem dns-server
=> Wo kann ich den bestimmte Einstellungen kontrollieren?
Zitatwas wird dort dem baustein übergeben ?
=> Wo?
Zitatdem demo dns-ip4 wird bei dir zu 99% nicht funktionieren
=> Warum?


peewit

hallo

error_t , error_c  , das habe ich übersehen das bedeutet das an dieser ip-adresse kein dns-server ist, der antwortet

das kann eine sinnlose ip-adresse sein, aber auch ein nicht vorhandene oder falsche gateway adresse

beim smtp_client musst du beim parameter DNS_IP4  die adresse des dns_servers angeben das kann meistens die adresse des routers sein, oder du nimmst z.b. 8.8.8.8
(google-dns)

die gatewayadresse musst du bei den netzwerkeinstellungen eintragen (setup der sps) bzw. wenn du dhcp oder bootp nutzt kannst du das damit machen, ansonsten manuell einstellen

die demo dns_ip4 ist wahrscheinlich auf 192.168.0.1 (fritzbox router im lan) eingestellt, was (unglücklich gewählt ist) das solltest du auf deinen dns_server anpassen

vicky

Hallo,

Zitatdie demo dns_ip4 ist wahrscheinlich auf 192.168.0.1 (fritzbox router im lan) eingestellt, was (unglücklich gewählt ist) das solltest du auf deinen dns_server anpassen
=> Wer ist eigentlich mein dns_server, nicht die FritzBox?


Danke für die Antworten

peewit

nicht alle haben eine fritzbox als router, somit ist es nicht optimal wenn im demo programm kein allgemein gültiger dns_server
angegeben ist

wenn du eine fritzbox hast, und die router-adresse ebenfalls 192.168.178.1 ist, dann solltest du auch damit kein problem haben

klaus1

Wie kann ich die Priorität auf "HOCH" einstellen ? Gibts dazu möglichkeiten?
danke,