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

Ergebnis 1 bis 5 von 5

Thema: Zugriff auf bool-Variable via C#

  1. #1
    Registriert seit
    25.05.2012
    Beiträge
    15
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich möchte gerne eine Variable vom Typ bool via C# aus meiner TC3.1 Umgebung lesen können.

    Dabei wäre es wünschenswert, wenn ich die Variable direkt ansprechen könnte z.B. (MAIN.Bool1).
    Meine Verbindung zum TC3AdsClient steht. Ich lese schon Variablen vom Typ int aus. Jedoch schaffe ich es nicht eine boolsche Variable zu lesen.

    Bitte nicht auf die Beckhoff Doku verweisen, die kenn ich schon

    Hat Jemand eine Idee?

    Vielen Dank
    Zitieren Zitieren Zugriff auf bool-Variable via C#  

  2. #2
    Registriert seit
    03.12.2013
    Ort
    nähe Karlsruhe
    Beiträge
    12
    Danke
    1
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Mit welcher Funktion versuchst Du die Variable zu lesen und was geht schief?

    Bei mir hat ReadAny() eigentlich immer funktioniert.

    Also zuerst mit:

    Code:
    hVar1 = adsClient.CreateVariableHandle("MAIN.Bool1");
    nen Handle holen und dann mit:

    Code:
    xBool = adsClient.ReadAny(hVar1, typeof(Boolean));
    lesen.

    Gruß Tygan

    edit: Oh sehe gerade Du nutzt Twincat3, meine Aussage bezieht sich auf TC2 bin mir nicht sicher ob das da genauso funktioniert...

  3. #3
    SteffenP ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.05.2012
    Beiträge
    15
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hi, danke für deine schnelle Hilfe

    Wenn ich so versuche, bekomme ich immer eine Fehlermeldung:
    Fehler 1 Der Typ "object" kann nicht implizit in "bool" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)

    Zum Verständnis: Für die Handle Variable habe ich den Type int verwendet und für xbool natürlich bool.
    Anscheinend brauche ich einen anderen Datentyp für die Handle Variable. TC verlangt aber an dieser Stelle explizit int und nicht etwa bool.

    Irgendwie habe ich da ein generelles Verständnis Problem.
    Mit ReadAny , müsste es ja funktionieren, aber wie?

    Gruß
    Steffen

  4. #4
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    ReadAny gibt ein Object zurück. Wenn du die Rückgabe in eine boolsche Variable schreiben willst, muss du explizit konvertieren.

    z.B.

    Code:
    xBool =  Convert.ToBoolean(ReadAny(hVar1, typeof(Boolean)));
    oder
    Code:
    xBool =  (bool)ReadAny(hVar1, typeof(Boolean));

  5. #5
    SteffenP ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.05.2012
    Beiträge
    15
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Super Leute! Vielen Dank! Jetzt klappt es!

    Hier noch mal die Lösung.

    hVar = adsClient.CreateVariableHandle("MAIN.Bool1");
    xbool = Convert.ToBoolean(adsClient.ReadAny(hVar, typeof(Boolean)));

  6. Folgender Benutzer sagt Danke zu SteffenP für den nützlichen Beitrag:

    spiegelkabinett (27.05.2016)

Ähnliche Themen

  1. ADS-Zugriff auf lokale Variable im FB?
    Von ahds im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 23.03.2011, 09:18
  2. Antworten: 1
    Letzter Beitrag: 23.06.2010, 12:00
  3. Zugriff auf NC-&PLC-Variable per C++/DDE
    Von Ulrich im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 21.05.2008, 11:22
  4. IEC-61131 Pointer mit Index auf BOOL Variable
    Von Stussi im Forum CODESYS und IEC61131
    Antworten: 21
    Letzter Beitrag: 14.12.2007, 09:11
  5. BOOL-Zugriff auf ein BIT im DB
    Von noeppkes im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 02.10.2007, 11:51

Lesezeichen

Berechtigungen

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