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

Ergebnis 1 bis 3 von 3

Thema: C#-Variablen in TwinCAT lesen und Schreiben

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen!

    Ich bin neu im Forum und suche nach einer lösung meines Problems. Ziel ist es dass ich mit der Visualisierung ( geschieben in C#) meine SPS steuern lasse. Mit Boolschen Variablen geht das ganz gut, jedoch möchte ich nun mit einem NumericUpDown die Ausgangsspannung der SPS verändern. Mit dem umkonvertierten String kann ich den Wert in eine Textbox übermitteln, aber leider noch nicht auf die SPS.

    Ich habe es mit folgendem Code versucht (auf InfoSys/ReadAny,WriteAny abgeschaut):

    private void numericUpDown1_ValueChanged(object sender, EventArgs e)
    {
    // Konvertieren des NummericUpDown-Wertes
    decimal Spann = Wahl.Value;
    string SpannString = Convert.ToString(Spann);

    // Zum Test oben erwähnter Wert in eine Textbox schreiben
    tBTest.Text = SpannString;

    // Gehört zu tcClient.WriteAny(hSpannungWrite, SpannString, int[] args);
    args = new int()[80];

    try
    {
    tcClient.WriteAny(hSpannungWrite, SpannString, int[] args);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }


    Kann mir jemand dieses Problem erklären oder hat jemand einen Lösungsvorschlag?

    Gruss kcirtap
    Zitieren Zitieren C#-Variablen in TwinCAT lesen und Schreiben  

  2. #2
    Registriert seit
    19.10.2009
    Beiträge
    194
    Danke
    8
    Erhielt 50 Danke für 44 Beiträge

    Standard

    Mein VS2008 kann mit der folgenden Anweisung nichts anfangen:
    args = new int()[80];
    Sollte das nicht etwas in dieser Art sein
    args = new int[] {80};

    Damit sollte sich auf eine SRTRING-Variable in der SPS schreiben lassen.Wenn du mit "Ausgangsspannung der SPS" eine Variable vom Typ STRING meinst dann dürfte das funktionieren.

    Das WriteAny ist hier beschrieben:
    http://infosys.beckhoff.com/content/...4.html?id=9756

    und Beispiele findest fu hier:
    http://infosys.beckhoff.com/content/...07.htm?id=9910

    Gruß,
    witkatz

  3. #3
    Registriert seit
    26.11.2010
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So weit ich weis kannst du keinen Decimal zur SPS schreiben. Das ist eine 128Bit Gleitkommazahl.
    Willst du die Spannung einer 0-10V Klemme ändern? Deren Ausgangswert ist von 0 - 7FFF, also ein short (Int16) in C#. Wenn du musst also dein Decimal in einen Int16 konvertieren, und dann schreiben:

    Code:
    // Hole Handle
    short val = Convert.ToInt16(Spann); // zb, wie bleibt dir überlassen
    tcClient.WriteAny(hSpannungWrite, val);
    // Lösche Handle
    tcClient.DeleteVariableHandle(hSpannungWrite);
    Tipp: Hol dir das Variablen Handle kurz bevor du schreibst/liest, und lösche es dannach wieder. Die Handles können sich ändern wenn du Änderungen am SPS Programm machst.

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 09.11.2011, 12:40
  2. Fernzugriff schreiben/lesen
    Von Blackforest im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 19.06.2009, 13:07
  3. In DB schreiben / lesen
    Von mariob im Forum HMI
    Antworten: 4
    Letzter Beitrag: 27.12.2008, 16:54
  4. SPS Variablen über eigenes ActivX lesen/schreiben?
    Von BorisDieKlinge80 im Forum HMI
    Antworten: 25
    Letzter Beitrag: 19.05.2008, 04:40
  5. Daten aus DB lesen / in DB schreiben
    Von Supervisor im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.06.2006, 12:02

Stichworte

Lesezeichen

Berechtigungen

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