Opc ua c#

Bastler83

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
hat hier schon jemand Erfahrungen mit OPC UA und .net C#.
Versuche einen Client zu programmieren. Komme aber nicht vorwärts. Leider fehlen Tutorials im Netz.
Hab diverse Beispiele angeschaut. Folgendes hab ich herausgefunden:
Folgende Verweise sind nötig:

using Opc.Ua.Client;
using Opc.Ua.Client.Controls;
using Opc.Ua.Configuration;

Diese findet man auf:
https://github.com/OPCFoundation/UA-.NET

Gerne hätti ich ein Button für die Verbindung:
private void button1_Click(object sender, EventArgs e)
{
//Verbindung aufbauen zu opc.tcp://192.168.1.53:4840
}

Zusätzlich einen für einen Wert schreiben und lesen.


Als OPC UA Server benutze ich ein Raspi mit CoDeSys (geile Sache!)

Viellicht hat mir jemand einen "einfachen" Sample Code. beispiele im Netz sind sehr komplex für mein Verständnis.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ciao

Ja das hab ich mir schon angeschaut, und vieles anderes mehr. Aber es ist alles für mich viel zu kompliziert. War bei OPC DA viel einfacher :).
--> https://infosys.beckhoff.com/index..../1031/tcopcserver/html/sample1_netapi.htm&id=
Die ganze Zertifizierungssache und Sicherheitssachen sind für mich alle nebensächlich. Zuerst wäre es schön ein einfaches prgm am Laufen zu haben.
Codesys kann eh noch keine Zertifikatsachen.... (wird es aber glaubs mal, laut Forum)

Ich denke Verbinden, ein Wert schreiben und einer lesen sollten so ca. 80 Zeilen nicht überschreiten
 
Vielen Dank Jochen. Ich habe diese Applikation gestartet. Folgendes ist noch anzupassen für den CoDeSys Raspi:
var discoveryUrl = "opc.tcp://192.168.1.53:4840"; // Workstation.NodeServer
Jetzt Spuckt die Console folgendes aus:

Step 1 - Describe this app.
Step 2 - Create a certificate store.
Step 3 - Create a session with your server.
Opened channel with endpoint 'opc.tcp://192.168.1.53:4840'.
SecurityPolicyUri: 'http://opcfoundation.org/UA/SecurityPolicy#None'.
SecurityMode: 'None'.
UserIdentity: 'Workstation.ServiceModel.Ua.AnonymousIdentity'.
Press any key to continue...

Step 4 - Browse the server namespace.
+ Root
+ Views: 0:Views, Object
+ Types: 0:Types, Object
+ DataTypes: 0:DataTypes, Object
+ OPC Binary: 0:OPC Binary, Object
+ ReferenceTypes: 0:ReferenceTypes, Object
+ VariableTypes: 0:VariableTypes, Object
+ ObjectTypes: 0:ObjectTypes, Object
+ CtrlTypes: 3:CtrlTypes, Object
+ Objects: 0:Objects, Object
+ DeviceSet: 2:DeviceSet, Object
+ CODESYS Control for Raspberry Pi SL: 4:CODESYS Control for Raspberry Pi SL, Object
+ Server: 0:Server, Object
+ ServerRedundancy: 0:ServerRedundancy, Object
+ VendorServerInfo: 0:VendorServerInfo, Object
+ ServerDiagnostics: 0:ServerDiagnostics, Object
+ ServerCapabilities: 0:ServerCapabilities, Object
+ Auditing: 0:Auditing, Variable
+ ServiceLevel: 0:ServiceLevel, Variable
+ ServerStatus: 0:ServerStatus, Variable
+ NamespaceArray: 0:NamespaceArray, Variable
+ ServerArray: 0:ServerArray, Variable
Press any key to continue...

Step 5 - Create a subscription.
Step 6 - Add items to the subscription.
Step 7 - Subscribe to PublishResponse stream.
Press any key to delete the subscription...

sub: 3; handle: 12345; value: 04.05.2017 16:56:04; status: 0x00000000; timestamp: 04.05.2017 16:56:04
sub: 3; handle: 12345; value: 04.05.2017 16:56:05; status: 0x00000000; timestamp: 04.05.2017 16:56:05
sub: 3; handle: 12345; value: 04.05.2017 16:56:06; status: 0x00000000; timestamp: 04.05.2017 16:56:06
sub: 3; handle: 12345; value: 04.05.2017 16:56:07; status: 0x00000000; timestamp: 04.05.2017 16:56:07
sub: 3; handle: 12345; value: 04.05.2017 16:56:08; status: 0x00000000; timestamp: 04.05.2017 16:56:08
sub: 3; handle: 12345; value: 04.05.2017 16:56:09; status: 0x00000000; timestamp: 04.05.2017 16:56:09


Jetzt die Node Id in UaExpert wäre wie folgt :
NS4|String||var|CODESYS Control for Raspberry Pi SL.Application.PLC_PRG.iCounter

Wo müsste ich das im Quellcode eigeben, dass die Konsole den Wert ausgibt ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Zusammen,

ich muss auch ein C# Programm erstellen um auf einen OPC-UA Server zu kommen.

Leider kann ich das Beispiel von oben nicht ausführen, habt ihr andere Beispiele?


OPC-Server läuft schon.

Danke Gruß thetrock
 
H zusammen,

das obere erwähnte Beispiel bekomm ich jetzt zum laufen.

Jetzt stellt sich mir die Frage, wo ich mehrer Imtes anlegen kann fürs auslesen, bzw. beschreiben?

Vielen Dank für den Tipp für die sofitng SDK, ist aber Preislich zu teuer.

Hat hier jemand auch ne gute opensource LIB, die er schon eingesetzt hat?

Gruß thetrock
 
Zuletzt bearbeitet:
Zurück
Oben