Beckhoff EL3068 Variable mit C#-Programm auslesen

sLy

New member
Beiträge
1
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo alle zusammen,

mein Ziel ist es, die Werte von verschiedenen Sensoren die an ein Beckhoff-System bestehend aus EK1100 (Klemme1) + EL3068 (Klemme2) über C# in eine Datenbank zu schreiben.
Leider bin ich ein kompletter Neuling auf den beiden Gebieten Beckhoff und C# und bitte euch deswegen um eure Hilfe.

Ich habe bereits in MS Visual Studio 2010 ein Twincat Projekt angelegt und die Konfiguration aktiviert, sodass die Variable "Value" im AI Standard Channel 1 einen Wert empfängt. Zusätzlich habe ich einen Task erstellt, der mit dieser Variable verknüpft ist und deren Wert übergeben bekommt, wobei ich nicht sicher bin, ob ich das brauche. Der ADS-Server läuft ebenfalls.

Nun würde ich gerne mit einem C#-Programm den Wert der Variablen Value beispielhaft in einen Array schreiben, was sich für mich selbst nach stundenlangem studieren der Beckhoff-Dokumentation als schwierig rausstellt.

Könntet ihr mir dabei bitte helfen? Es wäre nett, wenn ihr euren Beispiel-Code kommentiert, damit ich weiß wie das Programm funktioniert. Das Programm sollte später nicht nur eine Variable erfassen können, sondern viele (da entsprechend mehr Sensoren angeschlossen werden). Falls ich die Konfiguration umändern sollte, sagt es mir bitte.

Hier mein aktueller Code:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using TwinCAT.Ads;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //string a = "Hello.";
            int i;
            Console.WriteLine("Gib Laenge:");
            i = int.Parse(Console.ReadLine());
            TcAdsClient tcAds = new TcAdsClient();
            tcAds.Connect("127.0.0.1.1.1", 27906);
            AdsStream ds = new AdsStream(i);
            BinaryReader br = new BinaryReader(ds);

            tcAds.Read(0xF030, 0x3A, ds);
            for (int x = 0; x<(i-3); x++)
            {
                ds.Position = x;
                Console.WriteLine(br.ReadInt32().ToString());
            }
            Console.WriteLine("Exit: Beliebige Taste druecken.");
            Console.ReadKey();
        }
    }
}

Fehlermeldung in der Zeile "tcAds.Read(0xF030, 0x3A, ds);": Ads-Error 0x701: Service is not supported by server.

Gruß
 
Zuletzt bearbeitet:
Oben