Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

CODESYS Raspberry Pi 2 - OPC UA Funktionen

makome06
2017-04-18
2017-09-14
  • makome06 - 2017-04-18

    Guten Tag,

    ich beschäftige mich gerade mit der CODESYS Control for Raspberry Pi SL Runtime. Und zwar untersuche ich den Implementierungsgrad von Codesys, bezogen auf die OPC UA Spezifikationen. Dazu verwende ich den Test-Client "UA Expert", der alle Spezifikationen der Foundation unterstützt.
    Die Runtime liefert einen OPC UA Server, der über die Symbolkonfiguration aktiviert werden kann. Dort kann ich dann auch die Nodes bzw. Variable auswählen die mein OPC UA Server darstellen soll. Das bedeutet die OPC UA Spezifikation "Data Access" wird unterstützt.
    Nun zum eigentlichen Thema, laut Codesys Website und der OPC Foundation unterstützt Codesys
    folgende Spezifikationen:

    OPC Common Definitions and Interfaces Version 1.0
    Data Access Custom Interface Standard Version 1.0a
    Data Access Custom Interface Standard Version 2.05A
    Data Access Custom Interface Standard Version 3.0
    Data Access Automation Interface Standard Version 2.02
    

    Alarms and Events Interface Version 1.10
    Unterstützung von hierarchischem Browsen der Variablen

    1.)Wie kann ich in meinem Projekt die Spezifikation "Alarms and Events" testen bzw. implementieren? Ich möchte über den UA Expert dann Alarme bzw. Events registrieren können , und somit die Funktion beweisen.

    2.)Des Weiteren können ab V3 Zertifikate genutzt werden. Ich würde gerne die Kommunikation zwischen Server und Client per Zertifikat absichern und die Daten verschlüsselt übertragen (was laut dem Security Screen ->"verschlüsselte Kommunikation erzwingen") auch möglich sein sollte. Leider kommt beim übertragen des Projekts: "Verschlüsselte Kommunikation wird nicht unterstützt". Wird die Funktion des OPC UA Servers überhaupt unterstützt?

    Da es sich bei dieser Untersuchung um ein wichtiges Projekt meines Studiums handelt, wäre ich über hilfreiche Antworten sehr dankbar.

    Grüße

     
  • Bucky2k - 2017-08-17

    Hi,

    hast Du hier noch etwas in Erfahrung bringen können? Ich versuche gerade mittels OPC UA Client aus dem National Instruments OPC UA Toolkit auf einen Codesys 3.5 SP11 OPC UA Server zuzugreifen (Raspi und auch Wago PFC200). Aber ich bekomme keine Verbindung hin und vermute es liegt an nicht vorhandenen/ungültigen Zertifikaten. Nun gibt es bei Codesys einige Hinweise auf eine hinsichtlich Zertifikatverwendung verbesserte Version ab Codesys 3.5 SP10 - wir sind nun bei SP11 und es hat sich nichts getan, oder?

    Gruß

    Sascha

     
  • eschwellinger

    eschwellinger - 2017-08-18

    Hi,

    es ist so das die Linux SL runtimes aktuell noch keine verschlüsselte OPUCA Kommunikation implemententiert haben (3.5SP12 release Dezember).
    Control Win hat es, damit könntest du es verwenden.
    Es wird ein zusätzliches PlugIn geben für CODESYS (wird im Store erscheinen) mit dem man das Zetifikatshandling sehr komfortable machen kann.

    Funktionieren tut es dann so:

    Was muss man tun um mit OPCUA verschlüsselt zu Kommunizieren?

    Um Daten verschlüsselt und sicher mit dem Client auszutauschen,
    benötigt der Server ein Zertifikat, das beim ersten Verbindungsaufbau vom Client als "vertrauenswürdig" eingestuft werden muss.
    1. Installieren von Add-On CODESYS Security Agent
    2. Wählen Sie den Befehl „Ansicht è Security-Screen“
    3. Selektieren Sie in der linken Ansicht die Steuerung
    - In der rechten Ansicht werden alle Dienste der Steuerung, die ein Zertifikat erfordern, angezeigt
    Selektieren Sie den Dienst „CmpOPCUAServer“
    5. Erzeugen Sie ein neues Zertifikat für das Gerät. Dazu klicken
    Sie auf das Icon
    Es öffnet sich der Dialog „Zertifikatseinstellungen“
    6. Definieren Sie die Parameter des Zertifikats und schließen
    Sie den Dialog mit „Ok“
    - Das Zertifikat wird auf der Steuerung erzeugt

    7. Führen Sie einen Neustart des Laufzeitsystems durch
    

    Erstellen einer verschlüsselten Verbindung mit dem Client UaExpert

    Der OPC-Client "UaExpert" ist eine frei verfügbare Software, die
    Sie aus dem Internet herunterladen können. Mit diesem Client
    können Sie sich mit dem CODESYS OPC UA-Server verbinden.
    Die nachfolgende Beschreibung bezieht sich auf dieses Programm. Andere OPC AO-Clients funktionieren ähnlich.
    1. Starten Sie das Programm UaExpert
    2. Wählen Sie den Befehl „Server è Add...“
    -Es öffnet sich der Dialog „Add Server“
    3. Expandieren Sie in der Baumansicht „Local
    -PCUAServer@...“
    4. Wählen Sie die Verbindungsart „Basic256Sha256 - Sign &
    Encrypt (uatcp-uasc-uabinary)“ und schließen Sie den Dialog
    mit OK

    1. Wählen Sie den Befehl „Server - Connect“
      -Er öffnet sich der Dialog „Certificate Validation“ mit einer
      Fehlermeldung
    2. Aktivieren Sie die Option „Accept the server certificate
      temporarily for this session“ und klicken Sie auf „Continue

    7.Aktualisieren Sie im CODESYS Developement System die
    Ansicht (Klick auf )
    8. Selektieren Sie den Zertifikatsordner „Quarantined
    Certificates“
    -Im der rechten Ansicht wird das Client-Zertifikat
    „UaExpert@...“ angezeigt

    1. Ziehen Sie das Zertifikat mit der Maus in den Zertifikatsordner „Trusted Certificates“
      -Das Clientzertifikat ist nun von Server als "vertrauenswürdig" beurteilt worden.
    2. Wählen Sie im Client UaExpert den Befehl „Server
      è Connect“
      -Er öffnet sich der Dialog „Certificate Validation“ mit einer
      Fehlermeldung

    3. Aktivieren Sie die Option „Accept the server certificate
      temporarily for this session“ und klicken Sie auf „Continue“
      -Die Verbindung ist aufgebaut, in der Ansicht „Address
      Space“ werden Objekte angezeig

    Grüße
    Edwin

    IMG: SecurityAgent.jpg

     
  • Bucky2k - 2017-08-18

    Vielen Dank für die Antwort!

    Ich verstehe also, das die Security Features erst zum Jahresende kommen. Ungesichert müsste es aber schon heute funktionieren, was mit dem UAExpert (Zertifikat einmal akzeptieren) schon heute klappt.

    Leider funktioniert die Kommunikation mit dem von uns teuer eingekauften National Instruments OPC UA Toolkit nicht, welches mit anderen OPC Servern problemlos läuft. Es wird mit der Fehler ausgegeben: "Der OPC-UA-Server konnte mindestens einen Parameter in der Anfrage des OPC-UA-Clients nicht validieren. -356619

    NI schiebt das Problem Richtung Codesys. Es ist korrekt, das ich mir für eine einfache OPC UA Verbindung keine Gedanken um Zertifikate machen muss? In UA Expert muss ich ein unbekanntes Zertifikat, welches in der Steuerung heute drin ist, einmalig bestätigen. Im NI Toolkit kann ich das so nicht. Bei reinen Zertifikatsproblemen müsste NI wiederum aber auch eine spezifische Meldung generieren...

     
  • eschwellinger

    eschwellinger - 2017-08-18

    Hi,
    wäre gut wenn wir es verifizieren, damit meine ich,
    mit Control Win und OPCUA verschlüsselt einen Test machen mit der NI Software.

    Grüße
    Edwin

     
  • Bucky2k - 2017-08-21

    Zumindest mit einem SoftIng DataFeed OPC UA Server, den ich testweise aufgesetzt habe, lässt sich die NI OPC UA Toolbox planmäßig verbinden.

    Ein analog zum Raspberry aufgesetzter OPC UA Zugang auf ControlWin basis wird mit der selben Fehlermeldung zurückgewiesen. Jetzt muss ich mal schauen, wann ich Zeit finde um den OPC UA Server auf ControlWin abzusichern um das zu validieren.

    Da ich aber nun schon 2-3 Server abgesehen von ControlWin ohne Probleme mit NI anwählen/subscriben konnte, vermute ich das Problem eher bei euch als bei NI Codesys. Im Laufe der Woche teste ich auch nochmal die WAGO PFC200 auf Basis eCockpit statt Codesys 3.5 - mal schauen ob es da klappt.

    PS: Ist der "Bug" bekannt, dass ich seit SP11 sowohl bei der PFC200 als auch am RPi3 einen Neustart/Reset nach übertragen eines neuen Builds ausführen muss? Die Kiste stürzt einfach ab (nur Profinet Master und OPC UA aktiv). War bei SP10 nicht so.

    Bucky

     
  • eschwellinger

    eschwellinger - 2017-09-01

    Hi,
    Bitte verwende den Security Agent...das Plugin für CODESYS um ganz einfach die verschlüsselte OPCUA Kommunikation zu konfigurieren.
    https://store.codesys.com/codesys-security-agent.html

    Wie beschrieben mit Control Win sollte deine Kommunikation zum NI OPCUA Client dann funktionieren

    Absturz mit SP11: Nein ist nicht bekannt... bitte ins SPS log schauem für mehr details.. und posten.
    cat /tmp/codesyscontrol.log
    Über ssh in der console ausführen
    Grüsse
    Edwin

     
  • Bucky2k - 2017-09-11

    Hallo Edwin,

    entschuldige bitte die lange Funkstille trotz deiner ausführlichen Hinweise. Die Projektarbeit setzt oft ihre eigenen Prioritäten.

    Noch konnte ich die Situation mit Control Win nicht erproben. Jedoch folgendes:

    • der Fehler scheint dem NI Support schon mehrmals genannt worden zu sein. Steuerungen auf Codesys Basis scheinen betroffen (Wago PFC (mit eCockpit! und auf Codesys 3.5), Festo PLCs und eben Codesys Control auf dem RPI wurden genannt)
    • der NI support versucht diesen aktuell im Entwicklungszentrum in den USA nachzustellen
    • Wir haben uns wie folgt beholfen: Die SoftIng DadaFeed Suite ist "zwischengeschaltet", sprich nimmt den Codesys OPC UA Server auf und stellt diesen unbearbeitet auf einem eigens bereitgestellten OPC UA Server wieder bereit. Aber auch hier treten seltsame Effekte auf, nicht immer ist auf dem geklonten Server der Adress-Space bis in die letzte Ebene zugänglich. Mal komme ich nur bis zu dem Punkt wo mir z.B. ein Array of Integer gezeigt wird, den ich als ganzes Subscriben kann, mal geht es bis zum individuellen Integer. Auch Softing vermutet hier (naturgemäß) den Fehler eher auf Seiten des aufgenommenen OPC UA Servers von der Wago Steuerung. Siehe zum Vergleich die beiden Screenshots:

    IMG: Capture1.PNG

    IMG: Capture.PNG

     
  • eschwellinger

    eschwellinger - 2017-09-12

    Hi,
    wie heißt das NI Produkt?
    hast mir einen Link, ich würde es einfach gerne kurz ausprobieren.

    Grüße
    Edwin

     
  • Bucky2k - 2017-09-14

    Das NI Produkt ist LabView 2017 mit dem zugehörigen OPC UA Toolkit. Beides vollwertig läuffähig als Testversion. In der LabView Hilfe direct im Programm findet man ein Beispielprojekt, in dem ein paar Client/Serverbeispiele zu finden sind. Weiterhin gibt es in der NIZone (google: OPC UA Toolkit Tutorial) ein paar Infos zu verschiedenen implementierungen - darunter auch ein Minimalbaispeil bei dem nichts geschieht als die Verbindung zu Server aufzubauen (was bereits scheitert).

    Gruß

    Sascha

     

Log in to post a comment.