OPC UA Server: Simulationsmodus und Serverkonfiguration

RasPIoneer
2018-05-29
2018-07-17
  • RasPIoneer - 2018-05-29

    Hallo,

    ich hätte ein paar Fragen zur OPC UA Server Funktion von Codesys.
    Im Rahmen eines Uniprojektes arbeite ich gerade daran, ein bestehendes Codesys Steuerungsprogramm per OPC UA ansprechbar zu machen. Es handelt sich um eine recht simple Steuerung einer Kaffeemaschine, die auf einem Raspberry Pi 3 ausgeführt wird. Ziel ist es, die Ausführung bestimmter Funktionsblöcke des Steuerungsprogramms von einem OPC UA Client aus zu triggern.
    Ich habe es bereits geschafft, die OPC UA Funktionalität in der Symbolkonfiguration zu aktivieren und konnte daraufhin auch zur Laufzeit mit UAExpert per OPC UA die Steuerungsvariablen auslesen.
    Leider funktioniert das ganze nicht mehr, sobald ich in Codesys den Simulationsmodus anschalte und die Software lokal am PC statt auf dem PI ausführe. In diesem Fall finde ich in UAExpert keinen OPC UA Server in der Discovery, und eine direkte Verbindung zum Endpoint opc.tcp://<meineip>:4840 klappt auch nicht.
    Dazu sei noch gesagt, dass ich gerade auf einem anderen PC arbeite als auf demjenigen, auf dem ich die OPC UA Verbindung erfolgreich herstellen konnte, aber da ich das Projekt auch hier erfolgreich bauen und starten kann denke ich nicht, dass das der Grund für mein Problem ist. Ich vermute eher, dass es am Simulationsmodus liegt.</meineip>

    Daher meine Fragen:

    1. Funktioniert der Codesys OPC UA Server überhaupt, wenn das Programm im Simulationsmodus läuft?

    2. Wie kann ich den OPC UA Server in Codesys weiter konfigurieren? Ich würde gerne Endpoint URL, den verwendeten Port und ggf. sogar NodeIDs der freigegebenen Variablen selbst einstellen.

    3. Bezieht sich das Tool "OPC Configurator" auch auf den OPC UA Server, oder ist das nur für OPC zuständig? Soweit ich weiß ist OPC ja die Vorgängertechnologie von OPC UA und nicht direkt kompatibel.

    4. Und aus Interesse: gibt es eine Möglichkeit, Funktionsbausteine als OPC UA Method im Namespace des Servers bereitzustellen, sodass ich diese von einem OPC UA Client aus direkt aufrufen kann?

    Ich bin für jede Hilfe sehr dankbar!

    Falls das relevant ist: ich nutze für die Simulation Codesys V3.5 SP12 Patch 4 (32 bit)

     
  • eschwellinger

    eschwellinger - 2018-05-31

    Hallo,
    Zu deinen Fragen:
    1. Nein der OPCUA Server geht in Simulation nicht allerdings hast du ja auf deinem PC Control Win die
    Du ja einfach starten kannst und dich darauf einloggen kannst. Dann geht der OPCUA Server.
    2. Der UA Port lässt sich über das SPS Konfig file CODESYSControl.cfg einstellen ... liegt unter c:/ProgramData/CODESYS Url und
    NodeID usw sind fest eingestell lassen sich nicht ändern am besten mal mit OPCUA EXPERT browsen ..
    3. OPCDA Konfigurator - nur für OPCDA
    4. Aktuell öeider noch nicht wird aber kommen ( allerdings dauert das noch)
    Grüsse
    Edwin

     
  • RasPIoneer - 2018-06-04

    Hallo Edwin,
    vielen Dank für deine Antwort, die hat mir schon sehr geholfen!
    Zu deinen Antworten hätte ich noch weitergehende Fragen:
    1. Inwiefern muss ich das Codesys Projekt anpassen, damit ich mich in Control Win einloggen kann?
    Muss ich z.B. ein neues Gerät im Projekt hinzufügen (das "Originalprojekt" ist ja für Codesys Control for Raspberry Pi geschrieben)?
    Ich habe hier gerade das Problem, dass ich im Projekt unter Device > Kommunikation wenn ich "Netzwerk durchsuchen..." auswähle kein Gerät finde. (Siehe angehängter Screenshot).
    2. Gibt es für das Configfile irgendwo eine Dokumentation der möglichen/nötigen Angaben und der Syntax?

    Danke noch einmal für die schnellen und hilfreichen Antworten!

    Grüße
    Jakob

    IMG: Screenshot1.png

     
  • eschwellinger

    eschwellinger - 2018-06-04

    Hi,
    ganz einfach:

    1. Update Device / Gerät aktualisieren im Gerätbaum (rechtsclick)
      dann COntrol WIn auswählen.
      Also das Projekt auf Control Win umändern über diesen Weg.
    1. Gibt es für das Configfile irgendwo eine Dokumentation der möglichen/nötigen Angaben und der Syntax?
      nein leider nicht, sorry es gibt nur die online Hilfe:
      https://help.codesys.com/webapp/_cds_wi ... n=3.5.12.0
      aber da ist das nicht drin.
      Für OPC UA den Port ändern:

    [CmpOPCUAServer] NetworkPort=4841

    Grüße
    Edwin

     
  • RasPIoneer - 2018-06-04

    Perfekt, das hat geklappt!
    Jetzt läuft es so wie ich es brauche, vielen Dank für die schnelle Hilfe Edwin!

     
  • RasPIoneer - 2018-06-06

    Hallo,

    ich habe noch einmal eine Frage zu den OPC UA Möglichkeiten von Codesys.

    Ist es möglich, einen in Codesys definierten Enum Typ per OPC UA bereitzustellen, sodass Variablen die in Codesys von diesem Enum Typ sind auch im Namespace des OPC UA Servers diesen Datentyp beibehalten? In der Symbolkonfiguration habe ich den Enum Typ nicht gefunden.
    Mein konkretes Beispiel kann man in den beiden angehängten Screenshots sehen; leider ist der Datentyp der Variable in OPC UA nicht mehr "PACKML_STATUS" sondern Int16.
    Damit kann ich zwar auch arbeiten, aber da OPC UA ja Enums eigentlich auch unterstützt frage ich mich, ob ich nur etwas falsch konfiguriert habe.

    Grüße
    Jakob

    IMG: Screenshot3.png

    IMG: Screenshot2.png

     
  • eschwellinger

    eschwellinger - 2018-06-11

    Hi,
    das geht schon.
    Allerdings nur wenn Support OPC UA Features aktiviert ist.
    Der UaExpert zeigt die Enum Werte nur im Attributes Fenster mit an und
    auch nur dann, wenn der Wert zum Ändern markiert wird. Die Information steht über OPC UA aber zur Verfügung.

    Grüße
    Edwin

    IMG: OPCEnum2.jpg

    IMG: OPCENUM.jpg

     
  • RasPIoneer - 2018-07-12

    Hi,

    vielen Dank noch einmal für die bisherige Hilfe, das hat mich schon sehr voran gebracht!

    An sich funktioniert jetzt alles so, wie es geplant war. Jetzt würde ich zusätzlich gerne noch die Security verbessern.
    Dazu würde ich den Codesys Server gerne so konfigurieren, dass er nur Sessions mit gültiger Userauthentifizierung (Username + Passwort) zulässt.
    Laut dem Profil "Micro Embedded Device Server"

    Zusätzlich würde ich gerne als SecurityMode SignAndEncrypt und als SecurityPolicy Basic256 oder Basic256Sha256 benutzen, wie kann ich das konfigurieren und wo werden die Zertifikate gespeichert, die Codesys dafür nutzt?

    Grüße und einen schönen Tag
    Jakob Lammel

     
  • eschwellinger

    eschwellinger - 2018-07-17

    Hi,
    das geht erst mit 3.5SP13 (ist ja nun verfügbar) verwenden und dann User anlegen in CODESYS + Symbolconfiguration usw..
    Ich denke es müsste hier in der Hilfe beschrieben sein:

    https://help.codesys.com/webapp/_cds_ru ... ter-opc-ua

    Grüße
    Edwin

     

Log in to post a comment.