# Allgemein, Technik

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

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();
        }
    }
}