Kommunikation zwischen C# (Visual Studio) und CoDeSys Laufzeit auf Raspberry Pi – Teil II

Allgemein

codesys_rpi

Im letzten Teil habe ich erläutert, was auf Seite CoDeSys alles konfiguriert werden muss, um einen Zugriff per ModBus TCP zu ermöglichen zu können. Im jetzigen Beispiel erkläre ich was in Visual Studio alles notwendig ist um eine Verbindung aufzubauen.

Voraussetzung ist auch hier, das die Pakete von EasyModbusTCP bereits heruntergeladen und entpackt sind.

Video

Dei ganze Prozedur ist auch ebenfalls als Video verfügbar: Das ganze findet man auf YouTube unter folgendem Link

httpv://www.youtube.com/watch?v=m9fWAZe9Mik

Erstellen eines Projekts in Visual Studio

Als erstes erstellen wir ein neues Projekt in Visual Sudio, ich hab meinem Projekt den Namen Modbus_TCP_IP_Sample gegeben. Dieses legen wir als Konsolenanwendung an.

codesys_rpi_bild_20

Einbinden der Bibliothek

Als nächstes wir der Verweis aus die Bibliothek EasyModbus TCP notwendig. Sie befindet sich im entpackten Ordner unter EasyModbusLibrary for .NET (DLL) als EasyModbus.dll. Sie muss dem Projekt als Verweis hinzugefügt werden.

codesys_rpi_bild_19

Beispielcode

Hier ist nun der dazugehörige Beispielcode für unser Projekt. Die jeweiligen Parameter wie z.B. die IP-Adresse sind auf den eigenen Zustand zu ändern.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EasyModbus;


namespace Modbus_TCP_IP_Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            //Verbindung zum Client per IP und Port (TCP)
            ModbusClient client = new ModbusClient("10.8.6.6", 502);

            //Verbinden
            client.Connect();

            //Lese die daten aus dem InputRegister ab 0, 1.WORD
            int[] readInputRegister = client.ReadInputRegisters(0, 1);

            //Verarbeite alle Daten die empfangen wurden
            for (int i = 0; i < readInputRegister.Length; i++)
                Console.WriteLine("Wert: " + readInputRegister[i].ToString());

            //Verbindung trennen
            client.Disconnect();
            Console.WriteLine("Drücke Taste zum Beenden");
            Console.ReadKey();
        }
    }
}

Kommentare

3 Antworten zu „Kommunikation zwischen C# (Visual Studio) und CoDeSys Laufzeit auf Raspberry Pi – Teil II“

  1. Avatar von HerbertTheKing
    HerbertTheKing

    Richtig gutes Tutorial! Alles hat problemlos funktioniert. Aber wie kann ich von C# aus ein Modbus-Register beschreiben?

    Ein kurzes Beispiel diesbezüglich wäre super! Danke schon einmal 😉

    1. Avatar von HerbertTheKing
      HerbertTheKing

      okay hat sich schon erledigt 🙂

  2. Avatar von Tristan
    Tristan

    Das ist ja eine richtig gute Beschreibung! Ist auch möglich, das C# Programm selbstständig so anzupassen das man per Modbus z.B. von einer WAGO Steuerung auf die GPIO Ports zugreifen kann? Also per Modbus aus Codesys einer anderen Steuerung zum Beispiel einen Digitalen Ausgang des Raspberry zu schalten oder einen Digitalen Eingang zu lesen? 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert