myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Rund um die Programmierung » Wie baue ich einen OPC Client in C#
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Wie baue ich einen OPC Client in C#

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken


thetrock ist offline

Wie baue ich einen OPC Client in C#

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Zusammen,

ich muss einen OPC UA Client in C# programmieren.

Leider komm ich mit den Samples nicht so gut klar.

Kann hier jemand mich unterstützen bzw. eine detailierte Anleitung nennen?

Mti einem fertigen "Client" komme ich schon auf den SErver drauf.

Aber wie ich jetzt starten soll bei der programmierung habe ich keinen Plan, bei dem Thema OPC.

Vorallem in Bezug welche spezielle DLL muss eingebunden werden.

Was benötige ich genau für Aufbau der Verbindung. usw.

Hab bis jetzt nur "kleine" Änderungen oder ganz einfache Programme in C# gelöst. Komme aus der SPS Programmierung.

Danke

thetrock

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von thetrock am 05.09.2019 13:48.

05.09.2019 13:39 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
vbprogger vbprogger ist männlich
myCSharp.de-Poweruser/ Experte

avatar-1820.gif


Dabei seit: 16.01.2006
Beiträge: 1.686
Entwicklungsumgebung: Visual Studio 2012 Prof.
Herkunft: NRW/DE


vbprogger ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

auf Github sind einige Lib und Examples, vielleicht hilft dir das.
05.09.2019 13:51 Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi vbprogger,

danke für die schnelle Antwort.

Ich komm mit dem Samples/Lib nicht so gut zurecht,

weiß nicht was genau ich da einnbinden muss oder auch nicht.

Bräuchte am besten Info, welche Lib/Sample wie eingesetz wird und dann wie die Befehle implementiert werden müssen.
05.09.2019 14:06 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi hab jetzt von

 https://github.com/convertersystems/...App/Program.cs

den Code benutzt.

wie kann ich jetzt auf Variablen genau zugreifen?

Hab folgende nodeid ns=3;s="DbInfo"."Parameter"."Station1"
06.09.2019 11:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.953
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Dein Link geht nicht; und da  https://github.com/convertersystems viele Samples hat weiß hier keiner, welches Du meinst.

Aber im Zweifel einfach das Repo Clonen und die Projekte / Solutions in Visual Studio laden.
Ich habe in der Vergangenheit mehrfach genau diesen GitHub User für/in OPC UA Schulungen verwendet / gezeigt.
Daher kann ich Dir aus Erfahrung sagen: das Zeug läuft und lief auch ohne Probleme bei den Schulungsteilnehmern.
07.09.2019 09:20 Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.287
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

@Abt
Kurzer Durchflug durch die Repositories, würde ich folgenden Link vermuten.

 Sample

T-Virus
07.09.2019 15:50 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.953
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Bezogen auf das Beispiel verlinkt von T-Virus bekommt man alle Informationen der Anfrage im browseRequest Objekt vom Typ BrowseResponse (ähnlich wie es bei HTTP eben HttpResponse verhält).
Ganz normales Service Behavior-Verhalten.

Was versendet wird sieht man in  https://github.com/convertersystems/opc-...ter/RobotServer
07.09.2019 16:32 Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

Hier die Anfrage an den Server

C#-Code:
                        browseRequest = new BrowseRequest
                        {
                            NodesToBrowse = new BrowseDescription[] { new BrowseDescription { NodeId = ExpandedNodeId.ToNodeId(rd2.NodeId, channel.NamespaceUris), BrowseDirection = BrowseDirection.Forward, ReferenceTypeId = NodeId.Parse(ReferenceTypeIds.HierarchicalReferences), NodeClassMask = (uint)NodeClass.Variable | (uint)NodeClass.Object | (uint)NodeClass.Method, IncludeSubtypes = true, ResultMask = (uint)BrowseResultMask.All } },
                        };

                        browseResponse = await channel.BrowseAsync(browseRequest);
                        foreach (var rd3 in browseResponse.Results[0].References ?? new ReferenceDescription[0])

wie kann ich rd2.NodeId ersetzten?

Was bewirkt die Zeilte (sieh unten) genau?

C#-Code:
                        browseResponse = await channel.BrowseAsync(browseRequest);
                        foreach (var rd3 in browseResponse.Results[0].References ?? new ReferenceDescription[0])
09.09.2019 14:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.953
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von thetrock:
wie kann ich rd2.NodeId ersetzten?

Die Frage ist unklar. Gib halt was anderes an....? verwundert

Zitat von thetrock:
Was bewirkt die Zeilte (sieh unten) genau?

1) Request Call
2) Iterierung (mit Fallback, falls References null sein sollte).
09.09.2019 18:33 Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich hab rd2.NodeID ausgelesen und hier steht

C#-Code:
ns=3;s=PLC

wenn ich das dort als string eingebe übersetzt er es nicht.

Wie kann ich jetzt das rd2.NodeID richtig ersetzten???

Als nächstes, wollte ich eine spezielle Variable auslesen. ID ist bekannt.
wie lautet dan dazu der Befehlt.

Gibt es hierfür auch eine Literatur oder ähnliches?

Danke Gruß thetrock

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von thetrock am 10.09.2019 07:59.

10.09.2019 07:59 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MartinH MartinH ist männlich
myCSharp.de-Mitglied

avatar-1761.gif


Dabei seit: 08.11.2005
Beiträge: 177
Herkunft: Asperg


MartinH ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Die Node-ID kommt vom Server, die brauchst du auch zur Zuordnung.

Nach dem Browsen solltest du ja alle Node-ID's haben, du gibst ja beim Browsen an, das du auch die Variablen haben möchtest.

Browsen und setzen von Werten sind aber zwei unterschiedliche Dinge.

Normalerweise must du ein Property des OPC-Items setzen.
10.09.2019 08:20 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke für die schnelle Antwort.

Kann es sein, dass ich gar nicht Browsen muss???

Der Browse Requeste, lässt alle daten darstellen.
soweit verstanden.

Wie kann ich jetzt genau eine spezielles Objet darstellen

ID

ns=3;s="DbTest"."Test".Data1

bzw. muss ich ein Objetk anlegen mit der ID und kann dann auf die einzelenen Attribute zugrefein (NodeClass, BrowseName,Value, ...)

C#-Code:
wie kann ich rd2.NodeId ersetzten?

konnte jetzt ersetz werden

C#-Code:
NodeId.Parse("ns=3;s=PLC")

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von thetrock am 10.09.2019 08:53.

10.09.2019 08:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MartinH MartinH ist männlich
myCSharp.de-Mitglied

avatar-1761.gif


Dabei seit: 08.11.2005
Beiträge: 177
Herkunft: Asperg


MartinH ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wenn du die Node-ID kennst must du nicht zwangsweise browsen.
Du must die Items, die du benötigst, beim Server abonieren, damit bekommst du die Wertänderungen.
Wenn der Server ein Schreiben des Wertes zulässt, kannst du dann auch den Wert ändern.
10.09.2019 09:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hier wird das Abo erstellt

C#-Code:
Console.WriteLine("Step 5 - Create a subscription.");
                    var subscriptionRequest = new CreateSubscriptionRequest
                    {
                        RequestedPublishingInterval = 1000,
                        RequestedMaxKeepAliveCount = 10,
                        RequestedLifetimeCount = 30,
                        PublishingEnabled = true
                    };
                    var subscriptionResponse = await channel.CreateSubscriptionAsync(subscriptionRequest);
                    var id = subscriptionResponse.SubscriptionId;

JEtzt muss ich nur noch die Variablen/Items dem Abo hinzufügen.

C#-Code:
Console.WriteLine("Step 6 - Add items to the subscription.");
                    var itemsToCreate = new MonitoredItemCreateRequest[]
   {
                                      new MonitoredItemCreateRequest { ItemToMonitor = new ReadValueId { NodeId = NodeId.Parse("ns=3;s=SerialNumber"), AttributeId = AttributeIds.Value }, MonitoringMode = MonitoringMode.Reporting, RequestedParameters = new MonitoringParameters { ClientHandle = 12345, SamplingInterval = -1, QueueSize = 0, DiscardOldest = true } }


                };
                    var itemsRequest = new CreateMonitoredItemsRequest
                    {
                        SubscriptionId =  id,
                        ItemsToCreate = itemsToCreate,
                    };
                    var itemsResponse = await channel.CreateMonitoredItemsAsync(itemsRequest);

Den Part verstehe ich nur noch nicht.

Wenn ich die NodeID hier eingebe bekomme ich keine Output raus
10.09.2019 09:32 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

C#-Code:
Console.WriteLine("Step 7 - Subscribe to PublishResponse stream.");
122                 var token = channel.Where(pr => pr.SubscriptionId == id).Subscribe(pr =>
123                 {
124                     // loop thru all the data change notifications
125                     var dcns = pr.NotificationMessage.NotificationData.OfType<DataChangeNotification>();
126                     foreach (var dcn in dcns)
127                     {
128                         foreach (var min in dcn.MonitoredItems)
129                         {
130                             Console.WriteLine($"sub: {pr.SubscriptionId}; handle: {min.ClientHandle}; value: {min.Value}");
131                         }
132                     }
133                 });

So, jetzt bekomme ich schon ein Value zurück.

aber wenn meine node ID wiefolgt aussieht

ns=3;s="DbMachineConfiguration"."Parameter"."Bedienung"

bringt er mir ein Fehler, da ja mehrere Strings sind.

Daher meine Frage wie kann ich das lösen und wie kann ich mehrere Items anlegen um das Value und Name auszulesen zu können.
11.09.2019 08:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MartinH MartinH ist männlich
myCSharp.de-Mitglied

avatar-1761.gif


Dabei seit: 08.11.2005
Beiträge: 177
Herkunft: Asperg


MartinH ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

die NodeID ist die "Adresse" des OPC Items.
Hier hast du Strings, die NodeID kann aber auch ein INT oder eine GUID sein.

Das Item hat dann verschiedene Properties.
Ein Property ist "Value", wo der Wert drin steht.
11.09.2019 08:50 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das ansprechen via NodeId funktioniert für ns=3;s=DeviceManual

aber wenn ich andere Daten auslesen will, ist hat die NodeId wiefolgt

ns=3;s="DbMachineConfiguration"."Parameter"."Bedienung"

aber das geht ja nicht, da es mehrer Strings sind.

Wie kann ich das lösen?

Kann es sein, das bei dem Sample ich nicht so viele Attribute auslesen kann?
11.09.2019 09:08 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MartinH MartinH ist männlich
myCSharp.de-Mitglied

avatar-1761.gif


Dabei seit: 08.11.2005
Beiträge: 177
Herkunft: Asperg


MartinH ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von thetrock:
ns=3;s="DbMachineConfiguration"."Parameter"."Bedienung"

aber das geht ja nicht, da es mehrer Strings sind.

Warum mehrere Strings?
" ist einfach ein Zeichen mehr nicht.
11.09.2019 09:17 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Folgender Code geht

C#-Code:
NodeId.Parse("ns=3;s=DeviceManual")

Folgender Code geht nicht

C#-Code:
NodeId.Parse("ns=3;s="DbMachineConfiguration"."Parameter"."Laser"")

--> aber die NodeID wird mir so angezeigt
11.09.2019 09:26 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MartinH MartinH ist männlich
myCSharp.de-Mitglied

avatar-1761.gif


Dabei seit: 08.11.2005
Beiträge: 177
Herkunft: Asperg


MartinH ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Was heist geht nicht?
11.09.2019 09:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
pinki
myCSharp.de-Mitglied

avatar-4072.jpg


Dabei seit: 24.08.2008
Beiträge: 664
Herkunft: OWL


pinki ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du übernimmst die Anführungszeichen nicht richtig. Die sind Teil des Strings.
11.09.2019 09:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Siehe Bild

thetrock hat dieses Bild (verkleinerte Version) angehängt:
FehlerNodId.png
Volle Bildgröße

11.09.2019 09:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MartinH MartinH ist männlich
myCSharp.de-Mitglied

avatar-1761.gif


Dabei seit: 08.11.2005
Beiträge: 177
Herkunft: Asperg


MartinH ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du must den String richtig zusammenbauen. Das sind aber Grundlagen.

C#-Code:
NodeId.Parse("ns=3;s=\"DbMachineConfiguration\".\"Parameter\".\"Laser\"")
11.09.2019 09:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

@MartinH vielen Dank.

C#-Code:
Console.WriteLine("Step 6 - Add items to the subscription.");
                    var itemsToCreate = new MonitoredItemCreateRequest[]
                      {
                                      new MonitoredItemCreateRequest { ItemToMonitor = new ReadValueId { NodeId = NodeId.Parse("ns=3;s=\"DbMachineConfiguration\".\"Parameter\".\"Lasertime\"")  , AttributeId = AttributeIds.Value }, MonitoringMode = MonitoringMode.Reporting, RequestedParameters = new MonitoringParameters { ClientHandle = 12345, SamplingInterval = -1, QueueSize = 0, DiscardOldest = true } }



                     };
                    var itemsRequest = new CreateMonitoredItemsRequest
                    {
                        SubscriptionId =  id,
                        ItemsToCreate = itemsToCreate,
                    };
                    var itemsResponse = await channel.CreateMonitoredItemsAsync(itemsRequest);

                Console.WriteLine("Step 7 - Subscribe to PublishResponse stream.");
                        var token = channel.Where(pr => pr.SubscriptionId == id).Subscribe(pr =>
                             {
                                    // loop thru all the data change notifications
                    var dcns = pr.NotificationMessage.NotificationData.OfType<DataChangeNotification>();
                                     foreach (var dcn in dcns)
                                            {
                                                foreach (var min in dcn.MonitoredItems)
                                                  {

                                                      Console.WriteLine($" value: {min.Value}");
                                                   }
                                            }
                                  });

Jetzt stellt sich mir die Frage, wo ich mehrer Imtes anlegen kann fürs auslesen?
11.09.2019 09:52 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MartinH MartinH ist männlich
myCSharp.de-Mitglied

avatar-1761.gif


Dabei seit: 08.11.2005
Beiträge: 177
Herkunft: Asperg


MartinH ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das kann ich dir auch nicht sagen, ich kenne die LIB nicht.
Ich arbeite da mit den Softing Toolkits.
11.09.2019 09:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Kann hier noch jemand weiterhelfen ´mit der LIB

bzw. kennt jemand einen guten opensource LIB mit Beschreibung?
12.09.2019 15:08 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.953
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Der Quellcode ist doch offen.
Wenn die Dokumentation nicht ausreicht, dann schau Dir den Quellcode an.

Alternativ den Entwickler fragen und auf Antwort hoffen.
12.09.2019 15:39 Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hab leider zu der Lib keine Dokumentation gefunden.


Wenn es so leicht wäre, würde ich hier nicht fragen.

Vielleicht kann trotzdem jemand mir noch weiterhelfen

Zitat:
Jetzt stellt sich mir die Frage, wo ich mehrer Imtes anlegen kann fürs auslesen?

Gruß thetrock
18.09.2019 07:14 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MartinH MartinH ist männlich
myCSharp.de-Mitglied

avatar-1761.gif


Dabei seit: 08.11.2005
Beiträge: 177
Herkunft: Asperg


MartinH ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das hast du doch da:

C#-Code:
var itemsToCreate = new MonitoredItemCreateRequest[]
                      {
                                      new MonitoredItemCreateRequest { ItemToMonitor = new ReadValueId { NodeId = NodeId.Parse("ns=3;s=\"DbMachineConfiguration\".\"Parameter\".\"Lasertime\"")  , AttributeId = AttributeIds.Value }, MonitoringMode = MonitoringMode.Reporting, RequestedParameters = new MonitoringParameters { ClientHandle = 12345, SamplingInterval = -1, QueueSize = 0, DiscardOldest = true } }

da MonitoredItemCreateRequest ein Array ist, kannst du doch da einfach mehrere Items anlegen.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von MartinH am 18.09.2019 07:21.

18.09.2019 07:20 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
thetrock thetrock ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.09.2019
Beiträge: 15
Entwicklungsumgebung: Visual Studio
Herkunft: Franken

Themenstarter Thema begonnen von thetrock

thetrock ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Items anlegen hat funktioniert.

Leider kann ich nur den Inhalt der Variable auslesen, wie kann ich auf weiter Eigentschaften zugreifen?


Wie schaut der Vorgang aus, wenn ich den Wert verändern will.


Sollte das mit dem auslesen begrenzt sein, kann jemand eine ander LIB empfehlen.


thetrock
19.09.2019 08:20 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 22.09.2019 18:11