-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es Ihnen, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachten Sie, dass Sie nur Beiträge sehen können, die in Teilen des Forums geschrieben wurden, auf die Sie aktuell Zugriff haben.

Beiträge anzeigen-Menü

Beiträge - SKnuepfer

#1
Codesys 2 / DLOG_FILE_TO_FTP - Zwischenübertragung
11. November 2016, 13:52:25
Hallo an die OSCAT-Gemeinde,

ich habe folgendes Problem:

Einsatz desDLOG_FILE_TO_CSV mit verbundenen DLOG_FILE_TO_FTP - läuft alles Prima.

Nun ist es so, das die Tagesdatei einer Aufzeichnung, alle 60 Minuten an den FTP-Server
übertragen werden soll. Soweit ich im Forum gelesen habe, kann man das mit Enable = FALSE
am DLOG-Baustein manipulieren nur der DLOG legt dann wieder eine neue/leere Datei
lokale CSV-Datei an, aber genau dies soll er nicht machen. Ich möchte lediglich mal den
zWischenstand alle 60 Minuten per FTP ablegen, das Logging soll dann einfach mit der vorhandenen
Datei weitergehen. Ändere ich den Aufbau des Dateinamen, erhalte ich natürlich keine Tagesdatei
sondern Stunden-Dateien, die nicht gewünscht sind.

Da es sich bei mir um insgesammt 10 CSV-DatenLogging Dateien handelt, komme ich auch ganz schön
mit dem Speicher ins Druddeln, ein 750-881 hat leider nur 512 kB Programmspeicher, so habe ich mir
einen DLOG_FILE_TO_FTP - FB gebaut (nur noch eine Instanz), dem ich die entsprechenden Sachen übergebe, das funktioniert
auch schon mal. Nur stellt sich die Frage, wie bekomme ich die zwischenzeitliche FTP-Übertragung noch hin ?
(Ich dachte es reicht, wenn der DLOG_FILE_TO_FTP eine "andere" Logdatei übergeben bekommt, macht
er eine Übertragung, aber das funktioniert nicht, da scheinbar in den retain Daten "Info" drin stecken, die dem
DLOG_FIEL_TO_FTP - Baustein mitteilen, es ist noch nicht soweit (Logging noch aktiv und/oder Dateiname noch nicht gewechselt)

Danke für einen Hinweis oder Tip.

Sandro
#2
Nein, die doppelten Telegramme sind weg, es ist jetzt genau so, wie es sein soll.

Muß nur noch das Empfangstelegramm ca. 250 Byte auseinander drösseln.
#3
Hallo peewit,

Dein Beispiel hat funktioniert, ich habe nur noch die Empfangsüberwachung am 2. Aufruf des IP_CONTROL aktiviert und den MODE
am ersten IP_CONTROL Aufruf wieder auf 3 gestellt und schon ging es.
Vielen Dank für und damit alle was davon haben, habe ich nochmals den Export mit an diese Antwort mit rangehangen.

Um was ging es hier ?

Abfrage meiner 2 Wechselrichter (SMA) über ein Ethernet-Gateway (JetPort) das dann an die Wechselrichter über RS485 gekoppelt ist.

Was macht das ganze ? Mein Wunsch war die aktuelle Leistung die die Anlage auf dem Dach hat, relativ zeitnahe in meine Haussteuerung zu bekommen
um den Eigenverbrauch zu optimieren (z.B. Warmwassererhitzung)

Den Telegrammaufbau habe ich mir selbst mittels dem yasdi-Tool von SMA erarbeitet und mit WireShark analysiert.

Das Besondere hierbei war, das das Gateway auf einen definierten Port zurückantwortet. Dies wurde Dank des 2. IP_CONTROL-Aufrufes erst möglich.

Die ganze Solarauswertung mache ich allerdings mit SolarView, das ganze ist unter http://solar.knuepfer.net abrufbar.
Diese Auswertung reicht mir vollkommen.

Also vielen Dank nochmals, wer Fragen hierzu kann hier nochmals was los werden. Ein sonniges Wochenende wünsche ich.

Sandro


[gelöscht durch Administrator]
#4
Hallo peewit,

ich denke ich habe es hinbekommen. Die Empfangspuffer füllen sich  :) nun noch eine kleine Frage:
Beim auslösen der Sendabfrage gehen immer gleichzeitig 2 Telegramme von der WAGO (IP: 192.0.6.170) an den
anderen Teilnehmer, das ist schön im Wireshark zu sehen. Wo ist da noch der Wurm drin ?

Ich habe nochmals meinen Baustein (als Export) und auch den Wireshark Auszug rangehangen.

Erklärung:

192.0.6.170 (WAGO) sendet Daten an 192.0.6.91 (Ethernet-Gateway) über die IPC1-Instanz
192.0.6.170 (WAGO) empfängt Daten von 192.0.6.91 (Ethernet-Gateway) über die IPC2-Instanz

Es werden insgesamt 2 verschiedene Datensätze vom Ethernet-Gateway angefragt.

VG
Sandro




[gelöscht durch Administrator]
#5
Hallo peewit,

habe probiert einen 2. IPC_ONTROL hinzu zu nehmen, klappt leider noch nicht.

Könntest Du mir den Rumpf einer kleinen "Statemaschine" dafür mal zukommen lassen ?

Ich befürchte, das ich beim Aufrufen noch Fehler mache. Vielen Dank

Sandro
#6
Ich habe folgendes Problem.

Ich möchte mit dem IP_CONTROL von einem WAGO 750-881 ein UDP Telegramm an einen Ethernet-Gateway schicken, welches dann entsprechende Daten an den Controller
zurücksendet. Das senden der Daten funktioniert einwandfrei, es kommt auch das gewünschte Datentelegramm lt. Wireshark wieder zurück, jedoch im R_BUFF des IP_CONTROL
ist nichts zu finden (immer 0 Länge und das Array ist auch 0). Die Besonderheit bei dieser Sache wäre, das das Ethernet-Gateway auf einen festgelegten Port die Daten
zurück schickt (24273). Wie kann ich den IP_CONTROL so einstellen, das das Telegramm auch auf diesem Port gelesen wird ? Muß ich beim Empfangen der Daten den Port ändern ?
Den IP Mode denke ich richtig gewählt zu haben.

Ich habe mal die Einstellungen des Ethernet-Gateways als Screenshot angehangen. Auch habe ich meinen Baustein, der lediglich im PLC_PRG blank aufgerufen werden kann
als Export mit rangehangen. Wie schon erwähnt, Zielsystem WAGO 750-881 mit Codesys 2.3.9.46 und OSCAT NetWork_130.lib

Vielen Dank für eine kurze Hilfestellung

[gelöscht durch Administrator]
#7
Hallo Nilsflo,

der Laufwerksbuchstabe zum Flash der Wago ist "A:"
zur SDCard "S:"

VG
Sandro
#8
Codesys 2 / Re: Frage zu DLOG_STORE_MYSQL
18. Januar 2014, 15:22:48
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
#9
Codesys 2 / Re: Frage zu DLOG_STORE_MYSQL
17. Januar 2014, 19:16:09
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]
#10
Codesys 2 / Re: Frage zu DLOG_STORE_MYSQL
17. Januar 2014, 14:17:06
Mal zur Info, meine genutzten Lib's

[gelöscht durch Administrator]
#11
Codesys 2 / Re: Frage zu DLOG_STORE_MYSQL
17. Januar 2014, 14:14:30
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]
#12
Codesys 2 / Re: Frage zu DLOG_STORE_MYSQL
17. Januar 2014, 09:55:30
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]
#13
Codesys 2 / Re: Frage zu DLOG_STORE_MYSQL
13. Januar 2014, 16:21:53
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
#14
Codesys 2 / Re: Frage zu DLOG_STORE_MYSQL
10. Januar 2014, 13:05:19
Hallo peewit,

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

VG
Sandro
#15
Codesys 2 / Re: Frage zu DLOG_STORE_MYSQL
07. Januar 2014, 12:20:44
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]