Zuverlässigkeit einer Visualisierung mit Libnodave und Co.

lan12

Level-1
Beiträge
35
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich arbeite seit geraumer Zeit an der Programmierung von Visualisierungen und Datenschreiber Programmen mittels Visual C# + einem Kommunikationstreiber wie beispielsweise Libnodave. Das Auslesen der Daten aus der SPS habe ich in einem separaten Thread ausgelagert und diesem höchste Priority zugewiesen. Für gewöhnlich lese ich einmal pro Sekunde das Eingangs-/Ausgangs Image der S7 (200) aus, ich arbeite also mit PPI. Im Schnitt gehen mir dabei pro Stunde, also pro 3600 mal Lesen, ca. 1 bis 2 Datensätze verloren, weil diese nicht gelesen wird. Dies entspricht einem Schnitt von 100% / 3600 * 3598 = ~ 99,95%. Ich vermute es liegt daran, dass meine Visu hin und wieder keine Prozessorzeit bekommt und daraufhin nicht lesen kann. Für meine Belange ist ein Schnitt von 99,9+ % mehr als ausreichend, ich bin mir aber auch dessen bewusst, dass es Applikationen gibt wo 100% ein absoluter muss ist.

Ich denke um 100% zu erreichen wird man nicht darum herum kommen Hardwarekomponenten (zum Beispiel Siemens) zu verbauen, die ausschließlich dafür konzipiert sind Daten aus der SPS auszulesen.

Mich würde diesbezüglich eure Erfahrungen sehr interessieren :) .
 
Was passiert denn im Fall der an hundert fehlenden Prozente?
Und warum liest du die Ein- und Ausgänge?
1. Eine SPS ist für Echtzeit-Verarbeitung konzipiert, ein Windows-Programm nicht.
2. Meine Visus zeigen nicht Ein- Ausgänge an, sondern daraus resultierende Zustände, z.B. nicht den Ein- und den Austaster, sondern den Merker "Betrieb".
3. Wenn man Eingänge protokollieren möchte, ist es sinvoller, diese in der SPS in einen Puffer zu schreiben. Die Übertragung muß dann nur noch mit der durchschnittlichen Änderungsrate mithalten, nicht mit der höchsten.
4. Wenn du sicher sein willst, nichts zu "verpassen" kannst du buchführen, was du schon übertragen hast und im Fehlerfall wiederholen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Auslesen der Daten aus der SPS habe ich in einem separaten Thread ausgelagert und diesem höchste Priority zugewiesen

ich kann mir nicht vorstellen das dein System vom dem bisschen gelesen so ausgelastet ist das sich der Windows-Scheduler für deinen High-Prio-Thread interessiert (dafür müsste der erstmal Ausgelastet sein)

Noch dazu laufen die beiden System ja nicht synchron d.h. dein kopieren ist immer nur zufällig an der "richtigen" Stelle - wenn du alle Daten brauchst kannst du ohne Handshake zwischen PC und SPS nie gewinnen

Ich denke um 100% zu erreichen wird man nicht darum herum kommen Hardwarekomponenten (zum Beispiel Siemens) zu verbauen, die ausschließlich dafür konzipiert sind Daten aus der SPS auszulesen.

ohne Handshake den dir auch keine Siemens-Hardware schenkt gibt es keine 100% Synchronität zwischen asynchronen Systemen, deine denke ist einfach falsch
 
Hallo Zottel,
Zuerst einmal sei gesagt, dass mein Beitrag bitte nicht als Angriff gegen Libnodave bewertet werden soll oder dass Libnodave schlecht sei. Ganz im Gegenteil, ich bin froh dass es Libnodave gibt und ich habe damit bereits eine Menge - durch learning by doing - gelernt, wofür ich mich nochmal bedanken möchte.

In meinem Fall stören die fehlenden 0,05 % in keinster Weise. Ich visualisiere hauptsächlich Umwelttechnische Anlagen, z. Bsp. Pumpen welche Schlamm in ein Silo fördern. Mir war und ist es ein Anliegen einfach mal meine Erfahrungen mitzuteilen und eine kleine Diskussion anzustoßen.
 
Hier fühlt sich keiner Angegriffen :) (Dein 0,05 % Problem könnte auch keine Software/Hardware von Siemens, Deltalogic, MHJ etc zu 100% lösen)

Es wurde nur versucht deinen "Denkfehler" aufzudecken - die "normale" Kommunikation zu einer SPS ist eben in keinster Weise synchronisiert mit irgendwas was dein PC möchte, d.h. du hast nur einfach nur Glück das es 99,5% sind
wäre dein PC + Netzwerk viel langsamer oder deine SPS würde im 1ms-Takt-Werte ändern wäre dein Verlust ungleich höher, und dafür gibt es von-Haus-aus keine Lösung wenn du von aussen Daten abgreifst

Mit deiner Vorgehensweise kannst du nur schnellere Kommunikationshardware/Software verwenden - dann bleiben deine Verlüste einfach klein(er), solange die SPS nicht voll belastet wird und keinen Bock hat mit dir zu reden

Es ist aber nicht so das es irgendwo einen Knopf gibt der das dann richtig macht - das geht dann nur mit Eingriff in den SPS-Code, daher machen es die meisten Datenlogger/Visus genau so wie du es machst, einfach und reicht häufig
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Noch ein kleine praktische Erfahrung meinerseits:
Wenn ich mein Programm mittels eines Notify Icon minimiere und in der Taskleiste unten rechts ablege stürzt mir regelmäßig die Verbindung zur SPS ab :-( Sollte ich in Zukunft wohl besser lassen ;)
 
aus deinem vorherigen Post

Mir war und ist es ein Anliegen einfach mal meine Erfahrungen mitzuteilen und eine kleine Diskussion anzustoßen.

für eine Diskussion musst du auch auf das Feedback reagieren - du hast z.B. noch nicht klar gestellt das dir die Ursache (nach Erklärung von Zottel und mir) für deine 0,05% Verlust zu 100% :) klar ist

Wenn ich mein Programm mittels eines Notify Icon minimiere und in der Taskleiste unten rechts ablege stürzt mir regelmäßig die Verbindung zur SPS ab

Gibt es überhaupt Code in Libnodave der auf sowas reagiert?
macht denn dein Programm irgendwas spezielles beim Minimieren?
 
Zuletzt bearbeitet:
Zurück
Oben