Frage zu DLOG_STORE_MYSQL

Begonnen von SKnuepfer, 06. Januar 2014, 14:45:36

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 3 Gäste betrachten dieses Thema.

SKnuepfer

Hallo,

ist es möglich auf einer WGO 750-881 zwei unabhängige DLOG_STOR_MYSQL Instanzen gleichzeitig laufen zu lassen ?

Hintergrund:

1. Instanz speichert Anlage Daten in eine Tabelle (zyklisch alle 60 sec) - läuft seit 3 Monaten problemlos ! - Danke ans Team
2. Instanz soll Event-Daten ausschließlich Boolsche Daten (mit DLOG_BOOL und Delta=TRUE) in eine andere Tabelle schreiben

Meine bisherigen Ergebnisse/Test sehen so aus, das die erste Instanz nachwie vor schön Ihr "Ding" macht, aber die zweite Instanz
macht ein bisschen was sie will. Es kommen auch Daten an, aber viel zu viel. Diverse Eintellungen am Delta-Eingang vom DLOG_BOOL
bewirken unterschiedliches Verhalten (in der Doku ist die Rede vom TYP UINT, muß aber glaube ich BOOL heißen).

Steht nichts dran, dann erschient der erste Eintrag in der Tabelle nach Änderung des Signals.
Darauf hin wird allerdings die Tabelle "zugeschüttet", auch wenn das Signal wieder auf 0 geht.

Und was noch interessant wäre:
Was muß am Parameter TRIG_T an der "DLOG_STORE_MYSQL" - Instanz stehen, wenn alles nach Event laufen soll ?

Danke für eine kurze Info !

VG
S.Knüpfer

peewit

was meinst du genau mit zweiter instanz

hast du den kompletten logger baustein zweimal oder benutzt du einfach den mysql baustein nur zweimal ?

dlog_bool verwendet natürlich bool    -> doku fehler


TRIG_T wird in form von sekunden angegeben
also alle x sekunden werden daten abgespeichert

SKnuepfer

Hallo peewit,

ich rufe den Baustein DLOG_STORE_MYSQL schon zweimal in unterschiedlichen Modulen mit
entsprechend vorgelagerten DLOG_* Bausteinen auf.

Dann halt mit einer anderen DLOG_DATA - Struktur.

Im Anhang mal mit dem Codesysexport der beiden Aufrufe.

VG
Sandro

[gelöscht durch Administrator]

SKnuepfer

Hallo peewit,

hast Du noch ne Idee, ob das möglich ist ?

VG
Sandro

peewit

hi

wenn du beide dlog programme einzeln laufen lässt (also nicht gleichzeitig) funktioniert jedes so wie es soll ?
das problem ist eben herauszufinden wo hier die vermischung passiert

kannst du mal testweise das zweite dlog-programm auf einen zweiten mysql loggen zu lassen
wenn das geht würde es beudetuen das auf tcp-stack eben eine vermischung passiert (also innerhalb der firmware)

der problempunkt könnte sein das zweimal an die gleiche ip-adresse und zielport eine verbindung aufgebaut wird.
hier könnte es auf betriebssystem ebene zu einer vermischung kommen.

habe aber leider auch keine zeit um das selbst auszuprobieren

es würde ansich reichen das dlog_mysql demo programm zweimal laufen zulassen ..... mit unterschiedlichen datenbanknamen
und schauen was passiert...

SKnuepfer

Hallo peewit,

die ersten Erkenntnisse sind folgende:

1. anderer DB-Host mit anderer Datenbank -> funktioniert
2. Einstellungen zyklische Speicherung alle 60 sec (bspw.) -> funktioniert

stelle ich den DELTA-Parameter am DLOG_BOOL auf TRUE, dann werden sofort die Daten bei Änderung in die Tabelle gschrieben, aber scheinbar so schnell er kann, habe dabei
den Parameter am DLOG_STOR_MYSQL TRIG_T: leer gelassen. Er schreibt dies halt unaufhörlich, bis ich im Programm den Baustein wieder "aushänge".

Muß der Parameter TRIG_T: doch einen Wert enthalten ? Scheinbar aber auch nicht - auch bei einem angegebenen Wert, verhält sich das ganze so.

Ich würde die Ursache im DLOG_BOOL und der Eventbehandlung suchen.
(Das >>X.ADD_DATA_REQ := TRUE;<< in Zeile 24 steht behaarlich an, deswegen wird auch in die Tabelle geschrieben, was das Zeug hält)

Habe die anderen Bausteine DLOG_DINT noch nie im Delta-Modus laufen lassen - soll ich das mal testen ?

VG
Sandro

peewit

die primäre frage dazu ist bleibt dein bool wert gleich unter trotzdem loggt er ?

wenn aber dein bool wert sich so oft ändert gibt es gezwungener weise auch viele log anforderungen.

mysql_t ist der globale speicher takt
mit die delta parameter kannst du aber bezielt aufgrund einer gewissen zustandsänderung eine aufzeichnung auslösen
wenn aber dieser aufgrund der wechselnden werte ständig auslöst wirst du ein performace problem bekommen

geklärt gehört nun ob sich der wert auch wirklich so oft ändert, dann wäre das viele loggen auch korrekt !

SKnuepfer

Hallo peewit,

ja, das kann ich bestätigen, der Bool-Testwert bleibt wirklich gleich !

Ich habe mal versucht die Signale am DLOG_BOOL per Screenshot "einzufangen"

Sobald der DELATA Parameter am DLOG_BOOL auf True ist, kommt permanent ein ADD_DATA_REQ intern zu stande,
der dann die Speichervorgänge anstösst. Ab und an "wackelt" auf der CLOCK_TRIG zumindest, was man in der Online
anzeige sehen kann. Egal ob der BOOL-Wert sich ändert oder nicht, es wird unentwegt in die Tabelle eingefügt.

Soll ich das DELTA-Verfahren mal mit einem anderen DLOG-Baustein ausprobieren ?

VG
Sandro



[gelöscht durch Administrator]

peewit

hi

das erscheint mir sehr komisch, da die dlog_xxx bausteine für alle arten des datenloggen die gleichen sind, und somit überall probleme machen sollten

kannst du mal datenloggen in gleicher weise ausprobieren aber in eine normale datei

da sollte dann das gleiche problem auftreten


SKnuepfer

HAllo peewit,

das ganze habe ich mal mit dem DLOG_REAL probiert. Hier ist das verhalten identisch, wenn sich der Wert geändert hat (!) dann
wird die Tabelle gefüllt (Siehe Screenshot) Auch hier "wackelt" das ADD_DATA_REQ der DLOG_x Instanz unaufhörlich.
Lt. Screenshot kommen dann 4-6 Werte je Sekunde an.

Mit der Dateispeicherrei komme ich leider nicht so zu recht, deshalb halt wieder in eine mySQL Datenbank.
Das ist über den FTP-Zugang auf den WAGO-Controller ein gekrampfe ;-(

als DELTA am DLOG_REAL habe ich eine 1.0 vorgegeben. Wird das Programm gestartet der VAL: vom DLOG noch 0 ist - dann
ist noch Ruhe, sobald ich den Wert am DLOG verstelle, dann geht es unaufhörlich los, bis ich den Programmteil deaktiviere
(Aufruf aushänge) dann wird nichts mehr geloggt. Die Parameter am DLOG_STORE_MYSQL kannst Du dem 2. Screenshot entnehmen.

Am "schindern" hier übrigens ist ein 750-881.

VG
Sandro

[gelöscht durch Administrator]

SKnuepfer

Mal zur Info, meine genutzten Lib's

[gelöscht durch Administrator]

peewit

#11
hi


danke das du das ausprobiert hast und mir die info zur verfügung gestellt hast.

ich habe nun aufgrund deiner infos auch den fehler gefunden
anscheinend habe ich beim mysql logger baustein die delta funktion nie ausprobiert

tja, mein leben ist zu kurz um alles auszuprobieren


importiere den geänderten baustein in deine network bibliothek und teste nochmal

gib mir dann bitte bescheid ob es jetzt bei dir passt

danke...



[gelöscht durch Administrator]

SKnuepfer

Sorry peewit,

den Baustein bekomme ich weder in die lib noch als neuen Baustein im mein Projekt.

Letzteres würde ich erst mal vorziehen:

Soweit bin ich:

Alle Variablen soweit Kopf angepasst
Etliche Convertierungen DT/UDINT noch nachgezogen,
aber am _STRING_TO_BUFFER vom Typ: _STRING_TO_BUFFER_NW => da hörts dann auf, neue basic-Bib evtl. erforderlich ?

...

Ein Bild sagt tausend worte ...

[gelöscht durch Administrator]

peewit

#13
sorry , ich habe die export dateien von pcworx und codesys verwechselt

die richtige findest du im anhang



[gelöscht durch Administrator]

SKnuepfer

Hallo peewit,

das funktioniert nun prima - ich habe:

- das ganze mit mehreren DLOG_BOOL Instanzen probiert
- das ganze mit verschiedenen DLOG_xxx Typen (BOOL/INT/REAL) probiert
- das ganze in eine separate Datenbank schreiben lassen
- und zum Schluss in eine separate Tabelle in einer vorhandenen Datenbank schreiben lassen ...

immer noch im Hinterkopf :-) da läuft schein ein "zyklischer" DLOG_STORE_MYSQL bereits auf dem Controller.

Also besten Dank an Dich und das ganze Team für die schnelle Hilfe, die Funktion eröffnet neue Horizonte :=)

Noch eine abschließende Frage: Ist die network.lib auch mal für SIMATIC S7 geplant ?

Viele Grüße und ein schönes Restwochenende
Sandro