RRD- Logging: Wago 750-841 zu ubuntu 11.04 server

Begonnen von neonightmare, 30. Mai 2011, 09:43:41

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

neonightmare

#15
Guten Morgen

Ja, die aktuelle Zeit wird übergeben.



THX Neo

neonightmare

#16
Hallo peewit
Zitat

http:\\ubuntudellserver/rrd/test_rrd.php?rrd_db=test.rrd&value=5|5|5|5|5|5|5

kannst du von so einem vorgang (abfrage von fremden rechner mittels browser)
eine aufzeichnung mittels etherreal bzw wireshark machen und mir zukommen lassen
denn dann kann ich erkennen was hier anders abläuft als angenommen.

hier das Resultat:
Aufruf via Firefos:
http://ubuntudellserver/rrd/test_rrd.php?rrd_db=test.rrd&value=10:10:10:10:10:10:10
Resultat:
0/usr/bin/rrdtool update test.rrd N:10:10:10:10:10:10:10

und anbei das Logging von Wireshark

THX Neo

PS: ich habe nun wieder auf trig_m mit einem Timer umgestellt und für beide Programme verschiedene Aufrufintervalle definiert. und nun funktionieren beide Programme einwandtfrei!!
;D ;D ;D


Jetzt fehlt noch eine anständige Grafik dazu und das Howto

[gelöscht durch Administrator]

peewit

#17
1. wo ist die wireshark aufzeichnung ?
   ist für mich wichtig , damit ich sehe was beim browser mit dns auflösung passiert

2. was heisst hier "beide programme ?"

  hast du zweimal den DLOG_STORE_RRD verwendet , und die arbeiten noch dazu mit gleichen trigger

  ich habe nun mit einer wago 750-841 zweimal das gleiche programm verwendet, das heisst
  sie benutzen den gleichen trig_t und arbeiten somit parallel zur gleichen zeit auf den gleichen zielrechner und php-script

  dabei sind bei mir keine probleme aufgetaucht !

  somit wäre auch hier eine wireshark aufzeichnung sehr hilfreich !!!!


3. wenn du in deiner applikation mit zwei programmen arbeitest, warum gibst du mir dann ein anderes testprogramm


neonightmare

#18
Zitat1. wo ist die wireshark aufzeichnung ?
    ist für mich wichtig , damit ich sehe was beim browser mit dns auflösung passiert
siehe post oben, der upload funktionierte gestern nicht, dies ist aber die Aufzeichnung des entsprechenden Browseraufrufes und nicht der der Wago!

Zitat2. was heisst hier "beide programme ?"
   hast du zweimal den DLOG_STORE_RRD verwendet , und die arbeiten noch dazu mit gleichen trigger
Ja, siehe beigefühten Export der Bausteine

Zitatich habe nun mit einer wago 750-841 zweimal das gleiche programm verwendet, das heisst
   sie benutzen den gleichen trig_t und arbeiten somit parallel zur gleichen zeit auf den gleichen zielrechner und php-script
   dabei sind bei mir keine probleme aufgetaucht !
Das war bei mir nicht so, es funktioniert nun mit dem trig_m und den Clk's.

Zitatsomit wäre auch hier eine wireshark aufzeichnung sehr hilfreich !!!!

Hier die Aufzeichnung mit tshrak auf dem Server (192.168.1.9), gefiltert nach den Anfragen von 192.168.1.44 (Wago)
58  17.735279 192.168.1.44 -> 192.168.1.9  TCP 32125 > http [SYN] Seq=0 Win=16000 Len=0 MSS=1460
59  17.735315  192.168.1.9 -> 192.168.1.44 TCP http > 32125 [SYN, ACK] Seq=0 Ack=1 Win=14600 Len=0 MSS=1460
61  17.736395 192.168.1.44 -> 192.168.1.9  TCP 32125 > http [ACK] Seq=1 Ack=1 Win=16000 Len=0
62  17.737267 192.168.1.44 -> 192.168.1.9  HTTP GET /rrd/test_rrd.php?rrd_db=amb.rrd&value=51:41:9:4:6:0:81:0:0 HTTP/1.1
63  17.737309  192.168.1.9 -> 192.168.1.44 TCP http > 32125 [ACK] Seq=1 Ack=96 Win=14600 Len=0
64  17.754097  192.168.1.9 -> 192.168.1.44 HTTP HTTP/1.1 200 OK  (text/html)
66  17.954740 192.168.1.44 -> 192.168.1.9  TCP 32125 > http [ACK] Seq=96 Ack=249 Win=16000 Len=0
67  17.966820 192.168.1.44 -> 192.168.1.9  TCP 32125 > http [FIN, ACK] Seq=96 Ack=249 Win=16000 Len=0
68  17.966926  192.168.1.9 -> 192.168.1.44 TCP http > 32125 [FIN, ACK] Seq=249 Ack=97 Win=14600 Len=0
69  17.967416 192.168.1.44 -> 192.168.1.9  TCP 32125 > http [ACK] Seq=97 Ack=250 Win=16000 Len=0
114  34.747677 192.168.1.44 -> 192.168.1.9  TCP 64210 > http [SYN] Seq=0 Win=16000 Len=0 MSS=1460
115  34.747712  192.168.1.9 -> 192.168.1.44 TCP http > 64210 [SYN, ACK] Seq=0 Ack=1 Win=14600 Len=0 MSS=1460
116  34.748359 192.168.1.44 -> 192.168.1.9  TCP 64210 > http [ACK] Seq=1 Ack=1 Win=16000 Len=0
117  34.750399 192.168.1.44 -> 192.168.1.9  HTTP GET /rrd/test_rrd.php?rrd_db=temp.rrd&value=16:23:23:25:18:23:21:22:16:20:24:10 HTTP/1.1
118  34.750440  192.168.1.9 -> 192.168.1.44 TCP http > 64210 [ACK] Seq=1 Ack=112 Win=14600 Len=0
120  34.767588  192.168.1.9 -> 192.168.1.44 HTTP HTTP/1.1 200 OK  (text/html)
122  34.967466 192.168.1.44 -> 192.168.1.9  TCP 64210 > http [ACK] Seq=112 Ack=265 Win=16000 Len=0
123  34.976941 192.168.1.44 -> 192.168.1.9  TCP 64210 > http [FIN, ACK] Seq=112 Ack=265 Win=16000 Len=0
124  34.977049  192.168.1.9 -> 192.168.1.44 TCP http > 64210 [FIN, ACK] Seq=265 Ack=113 Win=14600 Len=0
125  34.977569 192.168.1.44 -> 192.168.1.9  TCP 64210 > http [ACK] Seq=113 Ack=266 Win=16000 Len=0
237  72.734889 192.168.1.44 -> 192.168.1.9  TCP dyn-site > http [SYN] Seq=0 Win=16000 Len=0 MSS=1460
238  72.734930  192.168.1.9 -> 192.168.1.44 TCP http > dyn-site [SYN, ACK] Seq=0 Ack=1 Win=14600 Len=0 MSS=1460
239  72.735444 192.168.1.44 -> 192.168.1.9  TCP dyn-site > http [ACK] Seq=1 Ack=1 Win=16000 Len=0
241  72.736148 192.168.1.44 -> 192.168.1.9  HTTP GET /rrd/test_rrd.php?rrd_db=amb.rrd&value=51:42:9:4:7:0:81:0:0 HTTP/1.1
242  72.736188  192.168.1.9 -> 192.168.1.44 TCP http > dyn-site [ACK] Seq=1 Ack=96 Win=14600 Len=0
243  72.750530  192.168.1.9 -> 192.168.1.44 HTTP HTTP/1.1 200 OK  (text/html)
245  72.950808 192.168.1.44 -> 192.168.1.9  TCP dyn-site > http [ACK] Seq=96 Ack=249 Win=16000 Len=0
246  72.959936 192.168.1.44 -> 192.168.1.9  TCP dyn-site > http [FIN, ACK] Seq=96 Ack=249 Win=16000 Len=0
247  72.960045  192.168.1.9 -> 192.168.1.44 TCP http > dyn-site [FIN, ACK] Seq=249 Ack=97 Win=14600 Len=0
248  72.960483 192.168.1.44 -> 192.168.1.9  TCP dyn-site > http [ACK] Seq=97 Ack=250 Win=16000 Len=0



THX Neo

[gelöscht durch Administrator]

peewit

#19
die aufzeichnung als text ist wertlos !
ich brauche die datei ungefiltert !

so wie der wireshark-text aussieht, gibt es ja gar kein problem
daten werden korrekt übermittelt, und auch quittiert, aber wie gesagt man sieht keine details .....

was du wieder nicht angegeben hast, sind die testbedingungen..

was hast du hier aufgezeichnet ?
etwas was deiner meinung nicht funktioniert hat, oder schon funktioniert ?
mit oder ohne dns-namen ?
2 parallele programme ?
mit trig_t oder mit trig_m


aufgaben:

1. wireshark starten
2. http:\\ubuntudellserver/rrd/test_rrd.php?rrd_db=test.rrd&value=5|5|5|5|5|5|5 über browser ausführen
3. aufzeichnung beenden , wireshark datei speichern und hier online stellen, oder mir als email schicken....

---------------------------------
das wiederholst du mit einem test mit der wago sps genau mit dieser url (nicht beide rrd-programme gleichzeitig laufen lassen)
wieder aufzeichnen und mir geben

dann sehe eventuell warum die dns auflösung in dem fall nicht klappt

---------------------------------

weiters noch einen test wo du dein testprogramm (2 programme gleichzeitig) mit gleichen trig_t laufen lässt
wieder aufzeichnen und mir geben

------------------------------------

alles andere bringt nichts...


funktioniert ein einzelnes programm mit trig_t ?
was ist wenn du bei 1.prg einen trig_t = 50 nimmst und bei 2.prg einen trig_t = 56 ?

neonightmare

Hallo peewit

Ich denke wir "reden" aneinander vorbei. Deshalb hier meine Statusmeldung:

Die beiden Programme mit jeweils einem DLOG_STore-Baustein (Umwelt, Temperatur) laufen parallel auf der Wago und werden via trig_m über einen CLK-PRG "manuell" getriggert, jeweils mit 50s und 56s. Dies funktioniert nun einwandtfrei. Der Aufruf der php-Datei auf dem Server (url des Bausteines DLOG_Store) erfolgt nun ohne DNS-Name direkt über die IP-Adresse.

Was ich für dich nun rekonstruieren und Loggen kann wäre folgendes:

  • Beide Programme Umwelt und Temperatur parallel laufen lassen, aber mit trig_t automatisch triggern lassen.
    Aufruf der PHP-Funktion via DNS-Name http://ubuntudellserver...

So könnten wir evtl. die Bausteine bzw. meine Fehler finden...

THX NEo

peewit

ok dann machen wir diesen schritt

aber es muss auch mit http://ubuntudellserver... funktionieren
da es im browser funktioniert, aber über sps nicht, würde mich das sehr interessieren

ich würde mich deswegen auch über einen ethernet-mitschnitt des http://ubuntudellserver... über browser freuen....



peewit

hallo neonightmare
wie siehts aus..... ?

ZitatWas ich für dich nun rekonstruieren und Loggen kann wäre folgendes:

Beide Programme Umwelt und Temperatur parallel laufen lassen, aber mit trig_t automatisch triggern lassen.
Aufruf der PHP-Funktion via DNS-Name http://ubuntudellserver...


So könnten wir evtl. die Bausteine bzw. meine Fehler finden...


neo

Hallo peewit

ich war geschäfltich abwesend und konnte leider noch nicht den Test machen.

Mein Benutzername funktioniert leider nicht mehr, ich musste mich neu anmelden.

Ich melde mich, sobald ich die Logs gemacht habe.

THX Neo

neonightmare

#24
Hallo peewit

Hier die Testumgebung:

rrdtool / DNS  server: 192.168.1.9  (statische IP)
Wago: 192.168.1.44 (statische IP)
__________________________________
Testfall 1: TEST_DNS_1.EXP -> 2 Programme parallel mit trig_t=60 und DNS-Eintrag "http://ubuntuuserver..."
tshark Log: capture.cap
_______________________
Testfall 2: TEST_OHNE_DNS_2.EXP -> 2 Programme parallel mit trig_t=60 und kein DNS-Eintrag, sondern direkt 192.168.1.9
tshark-Log: capture2.cap
_____________________

bei beiden Testfällen wurde jeweils 1x manuell ein trig_m getastet, um eine manuelle Triggerung zu provozieren.

Aktuell ist bei mir der Testfall 2 in Betrieb, wobei die Triggerung mittels trig_t=60 nicht funktioniert. Eine manuelle Triggerung mittels trig_m funktioniert hingegen.

THX
Neo


[gelöscht durch Administrator]

peewit

#25
hallo neonightmare

-------------------------------
Testfall 1: TEST_DNS_1.EXP -> 2 Programme parallel mit trig_t=60 und DNS-Eintrag "http://ubuntuuserver..."
tshark Log: capture.cap

bei diesen fall , kann ich nachvollziehen warum nichts passiert

dein dns-server liefert zwei adressen zurück

1. 127.0.1.1
2. 192.168.1.9

beide haben TimeToLive (TTL) = 0

der dns_client nimmt die ip-adresse mit der höchsten TTL
da die 127.0.1.1 als erstes kommt und beide eine Gültigkeitsdauer von 0 sekunden haben
ergibt sich hier das die ip 192.168.1.9 genommen wird

aber mein baustein meint bei einer TTL von 0 sekunden das eigentlich keine
gültige ip erkannt wurde, und genau in diesen fall gibt es weder eine positiv noch negativ meldung
also auch kein fehler und somit bleibt der ablauf wegen fehlenden ergebnis hängen

lösung
wenn du die TTL auf grösser 0 änderst und sicherstellst das die 127.0.1.1 immer die niedrigere TTL hat dann wird die dns-auflösung funktionieren

ich muss noch klären , inwieweit eine TTL = 0 überhaupt sinn macht, bzw wie ich diese verarbeiten soll, und muss noch eine kleine änderung
machen das im notfall immer ein fehler gemeldet wird.

problem1 = TTL = 0
problem2 = 127.0.1.1 (loopback-adresse wird als ip-adresse weitergegeben, obwohl diese nur lokal funktionieren kann)
              (ich weiß noch nicht wie ich sicher erkennen kann, ob diese adresse sinn macht oder nicht bzw ob ich sie ignorieren soll oder nicht)

also der fall 1 ist theoretisch geklärt



ich habe auch aus einem anderen forum folgende info zu deinem dns-server verhalten bekommen

"Fehler in der Konfiguration. Beides wird im Zonefile (bzw je nach DNS-Server in der Datenbank) behoben"

so wie es aussieht hast du deinen dns-server nicht richtig konfiguriert ?


kannst du deine dns-server konfiguration hier online stellen, denn dann kann ich versuchen dies von anderen spezialisten
prüfen bzw korrigieren zu lassen

welche plattform, dns-server, konfiguration .......


------------------------------------------------------

fall 2

da habe ich noch nichts gefunden

man sieht nur das dlog_tmp den rrd-aufruf ohne fehler beendet, jeodch von dlog_amp fehlt jeglicher hinweis

wie gesagt bei mir funktioniert das ohne probleme

-----------------------
test:

trig_m := DT_TO_UDINT(DTI) MOD TRIG_T = 0;

einen manuellen trigger auslösen der genauso funktioniert wie der trig_t

------------------------

ich weiß nicht wie gut du dich auskennst ?

du könntest im baustein DLOG_STORE_RRD einen breakpoint setzen , und dann einen trig_t auslösen, und dann schauen was passiert


   IF (TRIG_M AND NOT trig_m_last) OR ra OR X.ADD_DATA_REQ THEN (* manueller, automatischer oder externer Trigger *)
---->      X.ADD_DATA := TRUE; (* Daten loggen *)
   END_IF;

oder du machst eine trace aufzeichnung der dlog_store_rrd variablen von beiden instanzen
zb. variable 'ra' und 'step' aufzeichnen


neonightmare

Hallo peewitt

So, ich konnte nun wieder einiges Testen.

Zum DNS-Problem
---------------------

Ich habe einen Ubuntu dnsmasq-dienst http://wiki.ubuntuusers.de/Dnsmasq installiert, dieser wurde von mir nicht weiter konfiguriert. Es kann also gut sein, dass einige Einstellungen nicht richtig bzw. optimal sind.


Zum RRD-Logging Problem
------------------------------

Die Zeit von meiner Wetterstation (DCF77) wird und wurde nicht immer von der Steuerung übernommen. D.h. für die Funktion
trig_m := DT_TO_UDINT(DTI) MOD TRIG_T = 0;
war der Wert DTI nicht immer vorhanden bzw. es konnte sein dass die Zeit sprang, also ein Nulldurchgang verfehlt wurde. Nun habe ich als Zeitbasis die "echte" SPS-Systemzeit genommen und nun funktioniert das Logging richtig!

Was ich noch nicht ganz verstehe, wie ich die SPS-Systemzeit auf Sommer- bzw. Winterzeit umstellen bzw. dies automatisieren kann.

THX neo

peewit

1. ich werde bei gelegenheit noch etwas am dns-baustein verbessern !

2. schön wenn es nun bei dir auch funktioniert.
    nachdem es bei mir funktionierte, musste eigentlich bei dir etwas anders sein


3. lokalzeit - sommerzeit

   dazu kannst du den baustein utc_to_ltc nehmen

   oder du verwendest den baustein calendar_calc , der berechnet viele sachen automatisch
   ist aber nicht ganz so einfach wie utc_to_ltc


wie sieht es mit deiner geplanten rrd-installations-anleitung aus ?
ich habe das mal mit WAMPP probiert (Paket für Windows) das machte überhaupt keine probleme, lief sofort !

neonightmare

Hallo peewit

Hast du eine Vorlage, wie die Anleitung aussehen sollte? Als Textrohfassung habe ich bereits etwas zusammengestellt.

PS: habe die Sache mit drraw nun auch super Visualisieren können!

Gruss Neo

peewit

du kannst mir deine textrohfassung auch genauso übergeben
um die formatierungen etc.. kümmere ich mich dann schon...

du kannst mir deinen entwurf per email schicken....

dankie schon mal vorab...