Visualisierung mittels C#

Es sind alles Variablen in meinem PLC-Programm die ich setzen möchte bzw. eben auch 2 INT Werte die ich schreiben und lesen möchte. Bei den Bool Variablen verwende ich "client.readcoils(Startaddresse, Anzahl)". Zum Schreiben "client.writSingleCoil(Adresse, Zustand). Das funktioniert auch alles. Zum Schreiben von INT Variablen hatte ich eben WriteSingleRegister gefunden und ReadInputRegister. Oder benötigte ich hier die Methode "ReadDiscreteInputs"?

Addresse habe ich direkt der Modbuskonfiguration entnommen, dort sind die Variablen als Programmvariablen angelegt und ich kann lediglich sagen ob Eingang, Ausgang oder beides. Dies definiert mir aber ja nur ob ich die Variable beschreiben, lesen oder beides mit ihr machen kann. Bei der Adressierung, kann ich zwischen Coil und Register wechseln.
 

Anhänge

  • 2022-03-22 07_32_49-B12_Versuchskammer_C#.ecp - e!COCKPIT.png
    2022-03-22 07_32_49-B12_Versuchskammer_C#.ecp - e!COCKPIT.png
    281 KB · Aufrufe: 18
Das bedeutet also, wenn ich ein Int schreiben möchte, muss ich die Registeradresse verwenden? Weil mit dem ReadCoils-Befehl kann ich ja lediglich Bools lesen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich wollte kurz Rückmeldung geben.

Ich hatte es zwischenzeitlich versucht mit OPC_UA zu realisieren. Hierfür habe ich aber keine kostenlose Bibliothek für C# gefunden. Somit bin ich wieder zurück auf Modbus gewechselt. Nach langem Suchen habe ich gefunden, dass ich in der Netzwerkübersicht direkt die Variablen für den Modbus freigeben kann und mir dort dann auch die Adressen angezeigt werden. Somit ist eine Zuweisung im Programm gar nicht notwendig. Das Verbinden, abfragen und schreiben der Variablen ist ab da ja dann nur noch eine Kleinigkeit und habe ich mit der DLL von EasyModbus in C# realisiert.

Danke trotzdem für eure Tipps. Jetzt heißt es nur noch, das ganze auf dem RaspberryPi zum laufen bekommen.
Guten Morgen
Ich hatte die Modbuskonfiguration von einer PFC über NodeRed auf ein Raspberry am Laufen sowie einer Siemens Logo
Wie du festgestellt hast sind die Variabeln in der Netzwerkansicht zu definieren.

Für einen OPC UA Client für C# habe ich diesen einmal für eine Siemens S7 1500 probiert was mit dem UA-Explorer (extension für Visual Studio) einfach funktioniert. Wie weit dieser aber nur Net.Core unterstützt habe ich mich zu wenig beschäftigt.
https://github.com/convertersystems/opc-ua-client

Gruss Nik
 
Zurück
Oben