Kommunikation mit OPC - UA

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Bianco.

    Kommunikation mit OPC - UA

    Hallo Leute,

    heute habe ich nicht direkt ein Problem, dennoch würde ich gerne Wissen, ob jemand im Bereich "OPC - UA" Erfahrungen hat.
    ich möchte in Zukunft eine Kommunikation über OPC - UA realisieren, jedoch habe ich keinerlei Erfahrungen damit. ?(
    Daher wollte ich lieb und nett fragen, ob es irgendwelche kostenfreie oder auch nicht kostenfreie .dll's für vb.NET gibt, mit denen ich arbeiten kann. :D
    Leider habe ich hier in der SuFu keine Ergebnisse bekommen. :(

    Ich freue mich über jede Antwort. :thumbsup:

    LG Bianco
    .wife {right: 100%; margin: 0;}
    Hier mal die Referenzimplementierung in .NET Standard (1.3 und 2.0) sowie .NET 4.6:
    github.com/OPCFoundation/UA-.NETStandard
    Diese Implementierung steht unter GPLv2

    Um eine .NET Standard2.0 Library zu benutzen, musst du entweder mit .NET 4.7.2 Arbeiten, oder mit .NET Core 2.0/2.1/3.0
    Da die Library jedoch wohl auch net46 als Target hat, solltest du auch mit .NET 4.6 zurecht kommen.
    Alle beschränken dich jedoch auf Windows 7 und neuer, falls das ein Problem darstellen sollte.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    Bianco schrieb:

    ob jemand im Bereich "OPC - UA" Erfahrungen hat
    Die kann man bei mir fast schon unter vergessene Erfahrungen abhandeln.
    Das ist bestimmt 10 Jahre her, da war UA noch in den Kinderschuhen und die Implementation noch Pionierarbeit.
    Es gab damals eine .Net-API, die direkt von der OPC Foundation (und nur an ihre Mitglieder) verteilt wurde.
    Die hatte ich gehütet wie meinen Augapfel.
    Danke an @EaranMaleasi für den Link. Gut zu wissen, dass sich da etwas getan hat und das inzwischen öffentlich ist.

    @Bianco:
    Was schwebt dir denn so vor? Ein Client? Ein Server? Ein komplettes System?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Danke @EaranMaleasi für deine Antwort. Ich werde mir das gleich mal anschauen und mich ggf. nochmal melden. :D

    @petaod Ich wollte eigentlich einen Client erstellen, der mit einem vorhandenen Server kommuniziert.
    .wife {right: 100%; margin: 0;}

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Bianco“ ()

    Auch einen Dank an dich @Rainman.

    Allerdings weiß ich noch nicht ganz damit umzugehen. Ich habe derzeit eine Software, mit der ich "Dinge" visualisiere.
    Damit diese "Dinge" auch angezeigt werden, muss ich mir Daten auslesen. Momentan realisiere ich das mit einer Seriellenschnittstelle.
    Für die Zukunft möchte ich das dynamisch halten und es über OPC UA realisieren. Deswegen hatte ich gehofft, dass es eine Dll oder ähnliches gibt,
    welche ich in mein Projekt einbinden kann, um dann so die Daten zu erhalten und zu übertragen.
    D.h. es ist gewünscht Daten zu lesen und zu schreiben. Wenn ich das jetzt aber richtig verstanden habe, brauche ich definitiv einen eigenständigen Client, der im Background arbeitet, richtig?
    .wife {right: 100%; margin: 0;}

    Bianco schrieb:

    Allerdings weiß ich noch nicht ganz damit umzugehen
    Raketentechnik ist das nicht, sondern ganz normale Schnittstellen-Programmierung.
    Ich kenne deine Vorkenntnisse nicht, aber die Grundlagen der Programmierung sollten schon sitzen.

    Bianco schrieb:

    brauche ich definitiv einen eigenständigen Client, der im Background arbeitet
    Wenn du mehr Daten benötigst, als auf dem Server gespeichert sind, musst du permanent auslesen.
    Wenn du nur aktuelle Live-Daten benötigst, oder aggregierte Daten, die der Server speichert, benötigst du keinen Background-Prozess.

    Was ggf. nützlich sein könnte, dass du die Kommunikation mit dem Server in einen eigenen Thread auslagerst oder halt nebenläufig mit Async/Await bedienst.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „petaod“ ()

    Also um mal konkreter zu werden..

    Ich muss die Daten aus einer SPS auslesen. Diese hat einen integrierten OPC-Server, allerdings habe ich keine Samples oder Code-Schnipsel finden können, die mir beim Lernprozess helfen.
    Ich habe jetzt die "opcfoundation.netstandard.opc.ua"-Libary eingebunden, jedoch keine Ahnung, wie ich sie am besten und effektivsten anwenden kann.

    petaod schrieb:

    Ich kenne deine Vorkenntnisse nicht, aber die Grundlagen der Programmierung sollten schon sitzen.

    Also ich würde sagen, dass ich die Grundlagen beherrsche, jedoch habe ich in letzter Zeit beruflich wieder auf VB6 wechseln müssen.
    Aber im Bereich OPC-UA habe ich keinerlei Erfahrungen. Bei Seriellenschnittstellen konnte ich wenigstens auf Tutorials o.ä. zurückgreifen, falls etwas nicht so lief.
    Und unter VB6 konnte ich alles mittels MSCOMM realisieren.

    .wife {right: 100%; margin: 0;}

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Bianco“ ()

    *push*

    Besitzt jemand eine Dokumentation über die oben genannte Libary? ?(
    Ich verstehe einfach nicht, wie ich sie benutzen soll bzw. kann, um einen Client zu programmieren. ;(
    .wife {right: 100%; margin: 0;}