Performance mit Libnodave

Speedy

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

habe folgendes Problem.
Eine Messung liefert mir jede ms 50 Byte an Daten. Die gesamte Messung Dauert ca. 30 Sek. (ca 1. 4 MB an Daten). Diese werden in der S7-400 Zwischengespeichert in 6 Datenbausteinen a 64 KB als Ringbuffer Wie bekomme ich nun diese Daten in den PC.
Ist es möglich mit Libnodave 64kB in ca 1,2 Sek zu Lesen?

Vielen Dank
Speedy
 
Hallo,
das hängt ja auch wohl von deiner Anbindung PC>SPS ab, wenn da nur eine Verbindung von 19,2K besteht..............
 
Hallo,
probiers aus, Libnodave kostet nichts, und wenn das nicht geht, probiers mit Deltalogic ACCON-AGLink, gibt es als Demo.
 
Hallo,

diese Daten in 1,2 Sekunden wird nicht funktionieren. In dieser Zeit werden sich ca. 6-7KByte übertragen lassen.
Die schnellste Variante wäre den gesamten DB zu ziehen, aber auch das wird nicht reichen.
Vielleicht mal bei den Herstellern nachfragen ob die das Laden von DBs in deren Treiber implementieren (wenns nicht drin ist).

Treiber gibts von MHJ, DeltaLogic, PI usw.

Auf jeden Fall schon mal Gedanken über eine Optimierung machen, z.B. nur Daten in den DB schreiben, wenn der Wert sich verändert hat.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kenne das Ergebnis auch nicht, da ich keinen CP zur Verfügung habe, schon gar keinen 443. Abschätzung: Der CP begrenzt die Länge eines Paketes (PDU) auf 480 oder 960 byte. Ein einzelner Aufruf von daveReadBytes kann dann bis zu 18 Bytes weniger lesen, also 462 oder 942. Das macht dann ca 140 bzw. 70 Aufrufe.
mit testISO_TCP -b <IP-Adresse> kannst du einen Benchmark fahren. Der macht 100 1-Byte reads und 100 reads mit 200 Byte.
Ich wäre auch an dem Ergebnis interessiert.
 
Speedy schrieb:
Hallo,

Eine Messung liefert mir jede ms 50 Byte an Daten. Die gesamte Messung Dauert ca. 30 Sek. (ca 1. 4 MB an Daten). Diese werden in der S7-400 Zwischengespeichert in 6 Datenbausteinen a 64 KB als Ringbuffer Wie bekomme ich nun diese Daten in den PC.

Hallo,

wir haben mit AGLink kurz ein paar Test gemacht:

CPU 416-2 mit CP 443-1 (Ausgabestand 11)
Bei einer Verbindung ca. 50 KB/Sekunde
Bei zwei parallelen Verbindungen ca. 65 KB/Sekunde
Bei vier parallelen Verbindungen ca. 68 KB/Sekunde

Das können Sie auch selbst testen mit den AGLink-Tools
AGLink_SPSTest.exe und AGLink_Performance.exe
(sind beide in der Demo-Version enthalten):

http://www.deltalogic.de/download/aglink.htm

Viele Grüße

Gerhard Bäurle
 
Nur zur Info.
Der Benchmark hat folgende Ergebnisse gebracht:
100 * 1 Byte in 0.611 secs.
100 * 434 Bytes in 0.951 secs
100 * 5 Var. in 0.841 secs

Wir werden das Problem erstmal mit einer anderen CPU (417 mit 2 Mb Speicher) lösen. Ist nicht schön aber die Sache ist eilig.

Speedy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Speedy schrieb:
Nur zur Info.
100 * 434 Bytes in 0.951 secs
Na ja, das ist 43kByte/Sekunde+5%=45kByte/s. Das paßt zu Deltalogics Angbe: Bei einer Verbindung ca. 50 KB/Sekunde.
Das mit den mehreren Verbindungen kannst du mit Libnodave auch probieren. Da es laut Deltalogic bei 2 Verbindungen am meisten bringt, vermute ich, daß folgendes passiert: Bei einer Verbindung wartet der PC auf die Antwort. Während dieser Wartezeit schickt er die nächste Anfrage auf der anderen Verbindung.
 
Zurück
Oben