LibNoDave - Datentransferrate

FordPrefect

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, liebe SPS-Experten

ich möchte LibNoDave einsetzen, um eine Kommunikation zwischen S7 (bisher nicht näher spezifiziert) und einem PC einzurichten. Da wir bisher ein Beckhoff-System (Software-SPS mit ADS) einsetzen, benötigen wir etwa zwei Millisekunden für einen kompletten Datentransfer zur SPS. Über Callbackfunktionen werden sich ändernde SPS-Daten vom Beckhoff-System an die Hochsprache (im Augenblick Delphi) "gemeldet". Meine Fragen sind nun:

1.Welche Hardware setze ich ein, um eine möglichst hohe Kommunikationsgeschwindigkeit zu erreichen ?
2.Wieviel Zeit vergeht zwischen Funktionsaufruf zum Datentransfer
und Datenverfügbarkeit ?

Vielen Dank
 
zu 1) eine 400er mit Profibus 12 MBaud nur für die Kommunikation
zu 2) das hängt z.B. von der Datenmenge und von der Zykluszeit ab
Mit libnodave habe ich selber keine Tests gemacht. Bei ACCON-AGLink geht es bei obiger Konstellation unter Idealbedingungen bei ca. 5 ms los.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit libnodave habe ich selber keine Tests gemacht. Bei ACCON-AGLink geht es bei obiger Konstellation unter Idealbedingungen bei ca. 5 ms los.
Mit einer 400er und Profibus hab ich noch nicht getestet, aber mit libnodave per Ethernet (ISO-over-TCP) auf 300er-CPUs mit Onboard-Schnittstelle (317-2 PN/DP bzw. VIPA 317SE). Die Laufzeiten pro Datenpaket lagen bei meinen Tests jeweils bei knapp 10 ms.


Gruß Axel
 
Ich denke, die 400er sind da von Haus aus noch etwas schneller. Bei der 300er ist aber eine deutliche Abhängigkeit der Kommunikationszeit von der Zykluszeit vorhanden.
 
Danke erstmal für die Statements, die Zykluszeit sollte 1-2 ms betragen. Anfragen an die S7 (1*lesen, 1*schreiben) werden etwa alle 5-10 ms losgeschickt. Da in der Delphi-Applikation Daten für die Visualisierung berechnet werden, sind je Schreibzugriff i.A. 5 KB Daten zu transferieren (ich hoffe die kann man zur Not in ein Array packen und mit einem Befehl schreiben). Das scheint knapp zu werden ! Vielleicht kann man eine Software-SPS verwenden ? Aber unser Kunde verlangt Siemens.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke erstmal für die Statements, die Zykluszeit sollte 1-2 ms betragen. Anfragen an die S7 (1*lesen, 1*schreiben) werden etwa alle 5-10 ms losgeschickt. Da in der Delphi-Applikation Daten für die Visualisierung berechnet werden, sind je Schreibzugriff i.A. 5 KB Daten zu transferieren (ich hoffe die kann man zur Not in ein Array packen und mit einem Befehl schreiben). Das scheint knapp zu werden ! Vielleicht kann man eine Software-SPS verwenden ? Aber unser Kunde verlangt Siemens.
Sorry, das wir nicht nur knapp! Ein Datenpaket, das in einer Anfrage-Antwort übertragen wird, ist nur 240-18=222 Byte (die meisten 300er) oder 480-18=462 Byte groß!
 
Sorry, das wir nicht nur knapp! Ein Datenpaket, das in einer Anfrage-Antwort übertragen wird, ist nur 240-18=222 Byte (die meisten 300er) oder 480-18=462 Byte groß!
Das ist nicht nur knapp, das ist mit einer normalen S7-Hardware-SPS unmöglich. EInfach mal die WinAC von Siemens anschauen. Die gibt es in mehrere Varianten (RT oder normal). Eine weitere Alternative ist vielleicht die SLot-SPS von Siemens. Über den internen Bus könnte es wesentlich schneller gehen. Bei Bedarf kann ich ja mal Tests mit ACCON-AGLink durchführen.
 
Steckt da vielleicht der Fehler im Konzept ?

... sind je Schreibzugriff i.A. 5 KB Daten zu transferieren (ich hoffe die kann man zur Not in ein Array packen und mit einem Befehl schreiben).
Sowohl libnodave als auch meine Delphi-Komponente für libnodave bieten Funktionen, um größere Datenpakete an die SPS zu schicken. Diese Funktionen bieten aber nur einen höheren Programmierkomfort, intern müssen die Daten in mehreren kleinen Paketen aufgeteilt an die SPS geschickt werden, so wie Zottel das bereits beschrieben hat. Die Übertragung dauert also entsprechend lange, und das Ganze ist auch nur dann wirklich brauchbar, wenn die Daten in fortlaufenden Adressen liegen.

Aber unser Kunde verlangt Siemens.
Dann solltet Ihr Euch unbedingt mal Gedanken über Euer Konzept machen:

Anfragen an die S7 (1*lesen, 1*schreiben) werden etwa alle 5-10 ms losgeschickt. Da in der Delphi-Applikation Daten für die Visualisierung berechnet werden ...
Ist es z.B. denn wirklich notwendig, alle 5-10 ms die Visu-Daten zu aktualisieren ?
Wer soll das denn so schnell lesen ? *ROFL*


Gruß Axel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielleicht geht es nicht um das Lesen durch Bediener sondern um das Weiterverarbeiten und das Darstellen des Ergebnisses der Weiterverarbeitung. Aber jetzt kommen wir in den Bereich der Spekulationen.

Wir sehen uns am Wochenende :D :D :D
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist nicht nur knapp, das ist mit einer normalen S7-Hardware-SPS unmöglich. EInfach mal die WinAC von Siemens anschauen. Die gibt es in mehrere Varianten (RT oder normal). Eine weitere Alternative ist vielleicht die SLot-SPS von Siemens. Über den internen Bus könnte es wesentlich schneller gehen. Bei Bedarf kann ich ja mal Tests mit ACCON-AGLink durchführen.

Hab mal nachgesehen und denke auch WinAC RTX 2008 mit ODK und SMX (Shared Memory) wird die beste Lösung sein. Ich weiß zwar nicht ob das dann mit "OpenFileMapping" etc. so einfach funktioniert, aber irgendwie muß es ja funktionieren. Vielen Dank für Dein Angebot, aber ich soll meinem Auftraggeber bisher nur sagen, ob es funktioniert. Ich denke, davon kann man ausgehen.
 
Sowohl libnodave als auch meine Delphi-Komponente für libnodave bieten Funktionen, um größere Datenpakete an die SPS zu schicken. Diese Funktionen bieten aber nur einen höheren Programmierkomfort, intern müssen die Daten in mehreren kleinen Paketen aufgeteilt an die SPS geschickt werden, so wie Zottel das bereits beschrieben hat. Die Übertragung dauert also entsprechend lange, und das Ganze ist auch nur dann wirklich brauchbar, wenn die Daten in fortlaufenden Adressen liegen.


Dann solltet Ihr Euch unbedingt mal Gedanken über Euer Konzept machen:


Ist es z.B. denn wirklich notwendig, alle 5-10 ms die Visu-Daten zu aktualisieren ?
Wer soll das denn so schnell lesen ? *ROFL*


Gruß Axel

Einerseits ist unsere Firma ist bestrebt, möglichst viele Berechnungen in der SPS durchzuführen weil sie ein C++ oder Delphi-Programm nicht supporten können. Andrererseits müssen sehr komplexe Gleichungen etc. berechnet werden, die C++, Delphi oder Ähnliches erfordern.

Leider habe ich keinen Einfluß auf die "großen" Konzepte meines Auftraggebers.

Gruß Ford
 
Vielleicht geht es nicht um das Lesen durch Bediener sondern um das Weiterverarbeiten und das Darstellen des Ergebnisses der Weiterverarbeitung. Aber jetzt kommen wir in den Bereich der Spekulationen.

Wir sehen uns am Wochenende :D :D :D

Richtig erkannt:Am Ende gibt es keinen Grund einer Visualisierung mehr als 30-50 mal je Sekunde Daten zu schicken. Siehe Böse-Symbol im letzten Beitrag.

Wer in einem gewissen Alter nich merkt,das er hauptsächlich von Idioten umgeben ist, merkt es aus einem gewissen Grund nicht. (Curt Götz)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mich würde mal interessieren, welche Berechnungen ihr durchführt, dass ihr C++ oder Delphi braucht?

Aber die Aktualisierungsrate bekommst du mit LibNoDave nicht hin, dass kann ich dir sagen. Habe ich auch schon versucht. :)

Wie das mit Deltalogic oder Prodave aussieht weiß ich nicht, dass sollte sich aber ähnlich verhalten.

Du könntest allerdings die 5K Daten direkt über Socket-Verbindungen zu der Software übertragen. Die Software könnte so die Daten evtl. zyklisch von der SPS bekommen.

Gruß aus Mexiko
 
Am Ende gibt es keinen Grund einer Visualisierung mehr als 30-50 mal je Sekunde Daten zu schicken. Siehe Böse-Symbol im letzten Beitrag.
Da Du ganz offensichtlich mich in dem genannten Beitrag so böse angeschaut hast, will ich Dich mal an Deine eigenen Worte erinnern:

Anfragen an die S7 (1*lesen, 1*schreiben) werden etwa alle 5-10 ms losgeschickt. Da in der Delphi-Applikation Daten für die Visualisierung berechnet werden, sind je Schreibzugriff i.A. 5 KB Daten zu transferieren ...
Da konnte ich mir den kleinen Scherz nun mal nicht verkneifen ... :p

Falls die Daten für den Ablauf gebraucht werden, dann schreib das beim nächsten mal einfach, dann mach ich auch keine dumme Bemerkung. Falls sie aber tatsächlich für die Visu sind, dann bleibe ich bei meiner Aussage, daß Ihr das Konzept noch mal genauer unter die Lupe nehmen solltet.

Was das

Leider habe ich keinen Einfluß auf die "großen" Konzepte meines Auftraggebers.
angeht, ist Dir doch hoffentlich nicht verboten worden, Dir Gedanken über bessere Lösungsansätze zu machen, und die dann ggf. auch Deinem Chef, Auftraggeber oder wem auch immer vorzuschlagen, oder ?

Meiner bescheidenen Meinung nach ist jedenfalls libnodave (und auch jede andere Bibliothek, die mit dem gleichen Kommunikationsprotokoll wie libnodave arbeitet) ungeeignet, die aufgestellten Anforderungen zu erfüllen. Also mußt Du entweder die Anforderungen ändern, oder die Art der Kommunikation, auf jeden Fall ist beides ist eine Änderung an Deinem Konzept.

Und mit dem

Wer in einem gewissen Alter nich merkt,das er hauptsächlich von Idioten umgeben ist, merkt es aus einem gewissen Grund nicht. (Curt Götz)
hast Du Dich hoffentlich nicht auf

Wir sehen uns am Wochenende :D :D :D
bezogen, das würde Dir bestimmt nicht nur der Rainer übel nehmen, da ich ihn hier treffen werde. Wenn Du hingegen nur mich als Idiot bezeichnen wolltest, damit kann ich dann mit schmerzverzerrtem Gesicht gerade noch so leben ... :ROFLMAO: :ROFLMAO: :ROFLMAO:

Ich hoffe, Du verbringst Dein Wochenende in so angenehmer Gesellschaft, wie ich es tun werde ... :cool:


Gruß Axel
 
Mich würde mal interessieren, welche Berechnungen ihr durchführt, dass ihr C++ oder Delphi braucht?

Aber die Aktualisierungsrate bekommst du mit LibNoDave nicht hin, dass kann ich dir sagen. Habe ich auch schon versucht. :)

Wie das mit Deltalogic oder Prodave aussieht weiß ich nicht, dass sollte sich aber ähnlich verhalten.

Du könntest allerdings die 5K Daten direkt über Socket-Verbindungen zu der Software übertragen. Die Software könnte so die Daten evtl. zyklisch von der SPS bekommen.

Gruß aus Mexiko

Wir berechnen u.a. spezielle schwachbesetzte lineare, symmetrische Gleichungssysteme mit mehreren tausend Unbekannten mittels eines modifizierten Cholesky-Verfahrens (siehe Wiki) zur Berechnung des Profils einer Stange. Ich kann das nich mit Step7.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da Du ganz offensichtlich mich in dem genannten Beitrag so böse angeschaut hast, will ich Dich mal an Deine eigenen Worte erinnern:


Da konnte ich mir den kleinen Scherz nun mal nicht verkneifen ... :p

Falls die Daten für den Ablauf gebraucht werden, dann schreib das beim nächsten mal einfach, dann mach ich auch keine dumme Bemerkung. Falls sie aber tatsächlich für die Visu sind, dann bleibe ich bei meiner Aussage, daß Ihr das Konzept noch mal genauer unter die Lupe nehmen solltet.

Was das


angeht, ist Dir doch hoffentlich nicht verboten worden, Dir Gedanken über bessere Lösungsansätze zu machen, und die dann ggf. auch Deinem Chef, Auftraggeber oder wem auch immer vorzuschlagen, oder ?

Meiner bescheidenen Meinung nach ist jedenfalls libnodave (und auch jede andere Bibliothek, die mit dem gleichen Kommunikationsprotokoll wie libnodave arbeitet) ungeeignet, die aufgestellten Anforderungen zu erfüllen. Also mußt Du entweder die Anforderungen ändern, oder die Art der Kommunikation, auf jeden Fall ist beides ist eine Änderung an Deinem Konzept.

Und mit dem


hast Du Dich hoffentlich nicht auf


bezogen, das würde Dir bestimmt nicht nur der Rainer übel nehmen, da ich ihn hier treffen werde. Wenn Du hingegen nur mich als Idiot bezeichnen wolltest, damit kann ich dann mit schmerzverzerrtem Gesicht gerade noch so leben ... :ROFLMAO: :ROFLMAO: :ROFLMAO:

Ich hoffe, Du verbringst Dein Wochenende in so angenehmer Gesellschaft, wie ich es tun werde ... :cool:


Gruß Axel

Halt, halt, ich habe nur meine Auftraggeber zu Idioten erklärt und auch das Böse-Symbol nicht für euch vorgesehen. Ich erkäre meine Mitmenschen nicht ohne Not zu Idioten. Viel Spaß für's Wochenende, bei uns is auch Party (Die schenken mir bestimmt Viagra und ne Rheumadecke).
 
Halt, halt, ich habe nur meine Auftraggeber zu Idioten erklärt und auch das Böse-Symbol nicht für euch vorgesehen. Ich erkäre meine Mitmenschen nicht ohne Not zu Idioten.
In dem Fall ist Dir natürlich mein Mitgefühl und die weitere Unterstützung im Rahmen meiner Möglichkeiten sicher. Ich hoffe nur für Dich, daß Deine Auftraggeber hier nicht auch mitlesen ... ;)

Wir berechnen u.a. spezielle schwachbesetzte lineare, symmetrische Gleichungssysteme mit mehreren tausend Unbekannten mittels eines modifizierten Cholesky-Verfahrens (siehe Wiki) zur Berechnung des Profils einer Stange. Ich kann das nich mit Step7.
Da fallen mir direkt ein paar Fragen zu ein:
Ist das wirklich in so einem kurzen Intervall notwendig ?
Bekommt Ihr alle 10ms 5kB neue Daten in der SPS ? Wenn ja, woher ?
Wie lange dauert eigentlich die Berechnung am PC ?
Müssen die Ergebnisse der Berechnung unbedingt zurück in die SPS ?
Und als krönenden Abschluß: Wofür ist das Ganze eigentlich gut ?

Viel Spaß für's Wochenende, bei uns is auch Party (Die schenken mir bestimmt Viagra und ne Rheumadecke).
Danke, werden wir ganz bestimmt haben. Ich wünsch Dir auch viel Spaß bei Deiner Party. :cool:


Gruß Axel
 
Zurück
Oben