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

Ergebnis 1 bis 3 von 3

Thema: TwinCat3: Globale Variablen können mit .net-Bibliothek nicht ausgelesen werden- 0x710

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich bin ziemlich neu in diesem Bereich und habe ein Problem mit globalen Variablen. Aus der SPS habe ich eine globale Variable vom Typ INT mit dem Namen ".intJens", siehe Screenshot.
    2015-11-09 10_51_59-ADSNET_Testprojekt_VBSample07 - Microsoft Visual Studio.jpg

    Wenn ich nun mit der .net-Bibliothek folgendes versuche:
    Code:
    var client = new TcAdsClient();
    client.Connect("1.2.3.4.5.6", 851); // 1.2.3.4.5.6 sei die NetId von meiner SPS
    var hInt = client.CreateVariableHandle(".intJens");
    dann bekomme ich bei dem CreateVariableHandle eine Exception, und zwar: 0x710 : Symbol could not be found.

    Habe ich irgendwas vergessen? Wenn ja, was?

    EDIT: Ich habe etwas weiter herumgespielt, und wenn ich nicht nur einen Punkt, sondern GVL davor stelle, also GVL.intJens benutze, geht es. Jetzt stellt sich aber die Frage, warum im Infosys immer nur der führende Punkt angegeben wird...
    Geändert von rabjen.iwes (09.11.2015 um 11:06 Uhr)
    Zitieren Zitieren TwinCat3: Globale Variablen können mit .net-Bibliothek nicht ausgelesen werden- 0x710  

  2. #2
    Registriert seit
    10.08.2012
    Beiträge
    245
    Danke
    0
    Erhielt 70 Danke für 66 Beiträge

    Standard

    .intJens ist die TwinCAT2 Notation. D.h. alle Variablen in einer globalen Variablenliste hatten keinen weiteren Präfix unabhängig wo sie definiert wurden.
    Das kann man in TwinCAT3 auch so definieren (->sichtwort Pragma), aber per Default musst du nun den Namen der Globalen Variablenliste angeben. Bei dir eben "GVL".

    Ach ja: NetID 1.2.3.4.5.6 provoziert zu Problemen. Jedes System hat eine Hauptadresse die da heisst a.b.c.d.1.1 . Je nach HW-Konstellation kann dann über die Bussysteme noch auf bis auf die einzelne Klemmen explizit adressiert werden. Das erfolgt dann über die Abänderung von 1.1.
    Tu dir und anderen einen gefallen und setze die ADS-ADresse deines Rechners auf irgendwas mit .1.1
    Sonst fährst du eine Ausnahme von der Regel und irgendwann mal geht was schief.
    Guga

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

    rabjen.iwes (09.11.2015)

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    1.2.3.4.5.6 ist nur ein Beispiel, meine "echte" NetID endet tatsächlich auf .1.1.

    Aber danke für die Erklärung mit der Variablenliste. Konnte im Infosys auf die Schnelle nichts passendes dazu finden, aber da weiß ich bescheid. Das GVL-Präfix zu nutzen ist auch nicht so schlimm, man muss es nur wissen...

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 07.05.2014, 22:10
  2. Antworten: 3
    Letzter Beitrag: 22.04.2012, 16:39
  3. Daten aus DB größer 10 werden nicht ausgelesen.Warum?
    Von Chris80 im Forum Programmierstrategien
    Antworten: 23
    Letzter Beitrag: 19.04.2012, 18:51
  4. SDB's können nicht übertragen werden
    Von blasterbock im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 04.10.2010, 14:51
  5. Antworten: 5
    Letzter Beitrag: 09.03.2010, 08:20

Stichworte

Lesezeichen

Berechtigungen

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