OPC-Standard

Red-Sh4nks

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

Ich habe inzwischen ein Programm erstellt, welches
Eingänge, Ausgänge, Merker und Datenbausteine
von einer CPU über Libnodave liest, und diese anschließend
in eine Datenbank schreibt.

Sieht ganz gut aus und funktioniert auch toll. Mein
Professor sagte aber, dass er als letzten Schliff diese
Daten noch gerne auf den OPC-Standard aufbereitet hätte.

Wie sehen diese Daten auf dem OPC-Standard aus?

In meiner Datenbank wird dann beispielsweise E0.2 mit dem
Zustand "1" gespeichert. Wie würde das auf dem OPC-Standard
aussehen und wie bringe ich diesen Eingang auf den OPC-Standard?

Ich danke für jede Hilfe im vorraus :)

lg Marco*
 
Nach dem OPC Standard besteht ein Wert immer aus drei Teilen "Wert", "Qualität" und "Zeitstempel". Vielleicht meint dein Prof. das?

Oder sollst Du den Wert über OPC Standard holen? Dann wären die Zusatzinfos auch dabei. Die Datenbanktabelle benötigt dann zusätzliche Spalten um diese Info aufzunehmen.
 
Aus drei Teilen? Interessant...
Mal sehen ob ich rausbekomme:
welches Format, welches Trennzeichen,
welche Datei,...

Melde mich ;-)

nein, es sind definitiv mehr sachen die man beachten muss...

du kannst dein proggy auch als richtigen opc server anbieten.
ganz einfach und zum teil kostenlos (ich glaube bis 100 Tags kostenlos) bekommst du es damit hin:
http://gray-box.net/daawrapper.php
 
OPC Standard

und das PC-Programm, das mit dem OPC-Server arbeitet willst/kannst du selber erstellen ? Hast du an deiner Steuerung eventuell eine Visu ProTool oder WinCCFlexibel. Am Besten diese als PC-Runtime oder auf einem Multipanel ?Wenn ja, dann könnte diese auch die Aufgabe übernehmen ... GrußLL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also, du liest Daten aus einer SPS und schreibst die Werte in eine Datenbank.

Das ist erstmal aus OPC-Sicht eine "Client-Funktionalität". Also ein OPC Client könnte quasi das selbe machen, er würde die Daten von einem OPC Server lesen (der sie aus der SPS holt) und dann in die Datenbank schreiben.

Ein OPC Client würde aber nicht nur den "Wert" lesen sodern auch die "Qualität" und den "Zeitstempel". Auch diese Daten könnten in die Datenbank geschrieben werden. Eventuell meint dein Prof. genau dies.

Weiterhin würde ein OPC Client die Daten nicht zyklisch lesen sondern sich beim Server nur für Datenänderungen anmelden. Dann bekommt der Client immer nur dann Daten wenn sie sich geändert haben, sonst aber nicht. Dadurch kann die Kommunikationslast stark reduziert werden. Auch in der Datenbank müssten viel weniger Werte gespeichert werden. Vielleicht meinte der Prof. genau dies.

Vielleicht fragst du auch einfach nochmal nach.
 
Danke Dr. OPC!

Eine Frage zu dieser "Client-Funktionalität"

Aktuell:
Ich lese die Daten direkt von der SPS und schreibe
sie in eine Datenbank. (Als Alternative solange der
OPC-Standard nicht funktioniert)

Ziel:
Ich lese die Daten direkt von der SPS und bereite
sie auf den OPC-Standard auf.

Das Ziel wäre dann doch eine "Server-Funkionalität", oder
lieg ich da falsch?

lg Marco*
 
Ja wenn das so ist, ich bin davon ausgegangen dass das "Abfüllen der Datenbank" die Kernfunktion ist. Sorry, ein Mißverständnis.

Um einen Server nach OPC-Standard zu schreiben, muss man schon eine Menge Code schreiben. Denn "nur ein bischen" von OPC implementieren geht nicht, dann ist es nähmlich kein Standard. Ein OPC Server MUSS alle "mandatory" Interfaces implementieren.

Daher verwenden die Meisten ein OPC-Server-Toolkit, da ist die OPC Seite schon fertig implementiert und man muss (lediglich) noch die Datenanbindung zur Datenquelle hinzuimplementieren. Je nach Toolkit ist das nicht so schwierig und wird einfach gesagt auf eine Lese/Schreib-Operation abgebildet, die dann einen "Treiber-Aufruf" oder eventuell bei dir die entsprechende "Libnodave-Funktion" aufruft.

Zusätzlich zur Datenanbindung muss ein OPC Server auch einen Adressraum anbieten. Dies ist eine (meist) hierarchische Darstellung aller möglichen erreichbaren Datenpunkte, die der Server so anbietet. Ein Client kann sich mit den Browse-Funktionen durch diesen Adressraum bewegen und sich die Datenpunkte aussuchen, die er dann Lesen/Schreiben möchte. Anders gesagt es ist eine (hierachische) Liste aller möglichen Datenpunkte. Auch das ist in dem Toolkit schon drin, muss allerdings von dir "befüllt" werden. Du musst dann überlegen woher du diese Daten bekommen kannst.
 
Zuletzt bearbeitet:
Zurück
Oben