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

Ergebnis 1 bis 3 von 3

Thema: FSoE Adresse auslesen mit C# und Beckhoff TwinCAT.Ads .Net

  1. #1
    Registriert seit
    27.01.2014
    Beiträge
    2
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Tag,

    ich habe ein Problem bei dem ich nicht mehr weiter komme.

    Ich möchte mit C# und TwinCAT ADS die FSoE Adresse einer EL1904 Karte auslesen und diese in einer Windows Form Textbox ausgeben.

    Die Basis ist eine CX9020 mit TC3 Lizenz.


    Der Versuch über Port 851 auf GroupIndex : 0x03020011 (Objekt Id der Karte), Offset :0xF9800001 (CoE-Online, Ort der FSoE Adresse) zu zugreifen schlug mit dem Fehler "Ads-Error 0x701 : Service is not supported by server" fehl.

    Auch der Zugriff über den ADS Server (Prozessabbild) des EtherCAT Masters brachte keine Erfolg ("5.28.212.205.2.1" 27905 ).

    Nun habe ich über eine Sync Unit Zuordnung die EL1904 Karte meinem PlcTask zugeordnet und versucht dort über den im Task hinterlegten Port 350 zu zugreifen.

    Hier nimmt er den Groupindex an aber bringt mir beim Offset einen "Ads-Error 0x703 : IndexOffset is invalid" Fehler.

    Nun bin ich ratlos und hoffe dass mir jemand etwas unter die Arme greifen kann.


    Hinzu kommt noch dass ich nicht viel Erfahrung mit Beckhoff TwinCAT oder C# habe.



    Hierzu noch folgender Programmausschnitt:


    Code:
     
    private void CoE_Load(object sender, EventArgs e)
            {
    
    
                TcAdsClient tcClient = new TcAdsClient();
                          
    
    
                try
                {
    
                    AdsStream ds = new AdsStream(31);
                    BinaryReader br = new BinaryReader(ds);
    
                    
                    tcClient.Connect("5.28.212.205.1.1", 350);
                    
                    
                    tcClient.Read(0x03020011, 0xF9800001, ds);
                    
    
                    ds.Position = 0;
                    textBox1.Text = br.ReadInt32().ToString();
    
                    tcClient.Dispose();
                    Console.WriteLine("getrennt");
                  
                         
              
    
    
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    
                    tcClient.Dispose();
                    Console.WriteLine("getrennt");
    
    
                }
            }
        }
    }
    Zitieren Zitieren FSoE Adresse auslesen mit C# und Beckhoff TwinCAT.Ads .Net  

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

    Standard

    Hallo BXcool,

    die Art des Zugriffs, die du versuchst, setzt voraus, dass der jeweilige Teilnemher überhaupt per IdxGrp/IdxOffs ausgelesen werden kann.
    Das idR der Fall bei Variablen im Prozessabbild.
    Der Port 851 ist nur für Variablen im Namensraum deiner ersten SPS.

    Generell ist der Weg über das Prozessabbild des EtherCAT Masters wohl eher richtig, wenn du hier die ADS Symbole aktiviert hast.

    Hier mal ein kleiner Ausschnitt (unvollständig) wie es gehen könnte:

    Code:
    tcclient.Connect("172.16.17.207.2.1", 1001);
                //Netid Master / Slave address
    
    ...
    
    //Vendor auslesen auf CoE-Index 1018 + SubIndex 0
    AdsStream AdsStream1 = new AdsStream(99);
    AdsBinaryReader AdsBinaryReader1 = new AdsBinaryReader(AdsStream1);
    tcclient.Read(0xF302, 0x1008 * 65536 + 0, AdsStream1);
    Wenn die FSoE readable ist, sollte das auch auf dessen Index tun!

    Gruß,
    mac203

  3. Folgender Benutzer sagt Danke zu mac203 für den nützlichen Beitrag:

    BXcool (15.07.2015)

  4. #3
    BXcool ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.01.2014
    Beiträge
    2
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke mac203, es funktioniert !

    Code:
     tcClient.Connect("5.28.212.205.2.1", 1003); // 1003= EtherCAT Adr. der EL1904 Klemme
                                                    
     
    tcClient.Read(0xF302, 0xF9800001, ds);
    Darauf dass der Port die EtherCAT Adr. der Klemme ist muss man erst mal kommen.

    Gruß
    BX

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 28.11.2014, 10:59
  2. Beckhoff TwinCat mit C# Visualisierung über ADS
    Von Gerri im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 04.03.2011, 19:26
  3. Beckhoff ADS.Net DLL und C#
    Von Majestic_1987 im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 09.12.2009, 12:29
  4. Beckhoff TwinCat ADS OCX und VB.net
    Von Parallax im Forum CODESYS und IEC61131
    Antworten: 36
    Letzter Beitrag: 06.04.2009, 15:31
  5. HMIs mit .NET 2.0 für Beckhoff TwinCAT
    Von ajbauer im Forum Werbung und Produktneuheiten
    Antworten: 0
    Letzter Beitrag: 28.11.2006, 16:46

Stichworte

Lesezeichen

Berechtigungen

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