Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 10 von 10

Thema: Probleme bei der Verbindung von Microsoft Visual c# 2010 Express zu TwinCat PLC

  1. #1
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo ihr,
    ich habe folgendes Probelm:
    Ich möchte mit Microsoft Visual C# eine Oberfläche erstellen mit welcher ich dann auf eine Beckhoff SPS zugreifen kann.
    Über die SPS bekomme ich ein paar Sensoren rein und es gehen ein paar Ventile ab. Desweiteren ist ein Durchflusssensor angeschlossen.
    Die Programme an sich sind kein Problem, jedoch die Verknüpfung der beiden.

    Im C# habe ich bereits die TwinCat.Ads eingefügt. Auch am Quelltext anfang steht bereits
    using System.IO;
    using TwinCAT.Ads;

    Weiterhin habe ich einen kleinen Anteil eines Programms bekommen welcher wie folgt aussieht:

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using TwinCAT.Ads;
     
    namespace WindowsFormsApplication1
    {
     
    publicpartialclasstest : Form
    {
    //*********************************************************************
    publicdouble leseINT(String variable, TcAdsClient client)
    //liest eine Variable aus der SPS aus
    {
    AdsStream ds = newAdsStream(4);
    AdsBinaryReader br = newAdsBinaryReader(ds);
    int iHandle = client.CreateVariableHandle(variable);
    double i = br.ReadInt32();
    return i;
    }

    Zitieren Zitieren Probleme bei der Verbindung von Microsoft Visual c# 2010 Express zu TwinCat PLC  

  2. #2
    Benni ist offline Benutzer
    Themenstarter
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    publicbool lesebool(string variable, TcAdsClient client)
    //liest eine Variable aus der SPS aus
    {
    AdsStream ds = newAdsStream(1);
    AdsBinaryReader br = newAdsBinaryReader(ds);
    int iHandle = client.CreateVariableHandle(variable);
    client.Read(iHandle, ds);
    bool i = br.ReadBoolean();
    return i;
    }
    //*********************************************************************


    public test()
    {
    InitializeComponent();
    }

    privatevoid test_Load(object sender, EventArgs e)
    {
    //***************************************
    TcAdsClient client = newTcAdsClient();
    client.Connect(
    "127.255.255.1.1.1", 801);
    //***************************************
    }

    privatevoid durchfluss_TextChanged(object sender, EventArgs e)
    //Zeigt den aktuellen Gesamtdurchfluss an
    {
    Text =
    Convert.ToString(leseINT(durchfluss,client));
    }
    }
    }

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Mein Problem liegt nun darin dass ich den letzten Teil (ab test_load) selbst geschrieben habe und mir da nicht sicher bin ob dies so korrekt ist. Ich Möchte quasi aus der SPS den Durchfluss herrauslesen und in ein Textfeld in C# schreiben lassen.
    Jedoch wenn ich das Programm so schreibe kommt der Fehler:
    Der Name "client" ist im aktuellen Kontext nicht vorhanden.
    Jedoch kann ich ändern was ich möchte es bewirkt leider nichts was mich weiter bringt.

    Zitieren Zitieren fortsetzung  

  3. #3
    Registriert seit
    17.09.2006
    Beiträge
    136
    Danke
    0
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Das solltest du über einen Event-Handler machen. Es gibt von Beckhoff eine Doku TcADSNet.chm. Schau mal da unter 'Ereignisgesteuertes Lesen'.

  4. #4
    Registriert seit
    17.03.2011
    Ort
    im Wald
    Beiträge
    284
    Danke
    11
    Erhielt 36 Danke für 35 Beiträge

    Standard

    Hallo Benni,

    kenne mich mit C# nicht aus, allerdings in deinem Programmteil wird "client" nirgends deklariert. In dem Programm "lesebool" wird "client" übergeben, ist damit deklariert.

    Hoffe, es hilft dir etwas weiter.

    Gruß, Voxe

  5. #5
    Registriert seit
    08.01.2007
    Beiträge
    54
    Danke
    1
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Vollkommen richtig.
    Du deklarierst client
    in
    private
    void test_Load(object sender, EventArgs e)
    {
    //***************************************
    TcAdsClient client = newTcAdsClient();
    client.Connect(
    "127.255.255.1.1.1", 801);
    //***************************************
    }
    die Deklaration sollte jedoch in der Klassenebene erfolgen, also:

    class deineKlasse
    {
    TcAdsClient client;
    public deineKlasse()
    {
    connect();
    }
    privatevoid connect()
    {
    //***************************************
    client= newTcAdsClient();
    client.Connect(
    "127.255.255.1.1.1", 801);
    //***************************************
    }


    }

  6. #6
    Benni ist offline Benutzer
    Themenstarter
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, danke für eure schnellen Antworten, ich werde gleich morgen wieder mein bestes Versuchen und hoffen, dass mir eure Beiträge weiterhelfen können.
    Gruß Benni

  7. #7
    Benni ist offline Benutzer
    Themenstarter
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hey ihr, finde es echt super dass hier so schnell geantwortet wird, hat mir echt sehr geholfen, bin weitergekommen, bin seit ner woche erst mir c# und twincat vertraut wobei vertraut schon übertrieben ist...
    Naja Beginn des Praxissemesters eben



    Deshalb habe ich gleich noch ne Frage an euch, hoffe diese ist hier auch richtig gestellt ansonst mach ich en neues Thema auf wenn ihr das meint...

    Und Zwar folgendes... Kann ich eigentlich auch direkt von C# aus auf die Beckhoff SPS zugreifen, sprich ohne dass ich über TwinCat SystemManager und PLC gehen muss, oder ist es wenigstens möglich dass ich nur eines von beidem mache???
    Zitieren Zitieren Danke nochmal  

  8. #8
    Registriert seit
    17.03.2011
    Ort
    im Wald
    Beiträge
    284
    Danke
    11
    Erhielt 36 Danke für 35 Beiträge

    Standard

    Hallo,

    per ADS kannst du auf die SPS zugreifen, wenn dein Programm diese erreichen kann. Du greifst damit allerdings auf die PLC, das ist ja die SPS.

    Gruß

  9. #9
    Benni ist offline Benutzer
    Themenstarter
    Registriert seit
    01.09.2011
    Beiträge
    73
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für den Tipp, kannst du dies auch etwas näher erläutern? Dann werde ich mich mal in dieser Hinsicht weiter versuchen
    Zitieren Zitieren Danke  

  10. #10
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi!

    Schau doch mal in InfoSys nach.
    Da gibt es unter folgendem Link viele Beispiele zum Zugriff auf die PLC bzw. zum Einbinden in das VS.

    Gruß,
    Mac203

Ähnliche Themen

  1. TwinCat 1340 und Visual Studio 2010
    Von Chris_... im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 03.08.2011, 09:00
  2. OPC - Client programmieren mit Microsoft Visual Studio 2008
    Von Neger für alles... im Forum Hochsprachen - OPC
    Antworten: 24
    Letzter Beitrag: 30.11.2010, 14:45
  3. Antworten: 0
    Letzter Beitrag: 22.09.2010, 13:27
  4. Microsoft Visual C# 2008 => Active X-Steuerelement
    Von Neger für alles... im Forum Hochsprachen - OPC
    Antworten: 6
    Letzter Beitrag: 30.06.2010, 12:41
  5. OPC Client in Visual Studio 2005 Express Anwendung
    Von mike_roh_soft im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 06.06.2008, 14:48

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •