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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: Visual Studio zugriff über TwinCat3 (C# / ADSdll)

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

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich habe hier einen Beckhoff EK1100 im Einsatz.
    Ich versuche eine einfach Form von lesen und schreiben von SPS variablen zu erstellen.
    Ich orientiere mich an diesem Bsp: http://infosys.beckhoff.de/index.php..._intro.htm&id=

    PLC CODE:
    Code:
    PROGRAM MAIN VAR    
     int1:INT := 30000;
     str1:STRING := 'this is a test string';
    END_VAR
    C#
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    using TwinCAT.Ads;
    
    
    namespace Read_Write
    {
        public partial class Form1 : Form
        {
            internal System.Windows.Forms.TextBox tText;
            internal System.Windows.Forms.TextBox tint1;
    
            private int hText;
            private int hint1;
    
            private TcAdsClient adsClient;
    
    
    
            public Form1()
            {
                InitializeComponent();
            }
    
    
            private void Form1_Load(object sender, EventArgs e)
            {
                adsClient = new TcAdsClient();
                try
                {
                    adsClient.Connect(851);
    
                    //PLC Variablen
                    hText = adsClient.CreateVariableHandle("MAIN.str1");
                    hint1 = adsClient.CreateVariableHandle("MAIN.int1");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
            private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
            {
                adsClient.Dispose();
            }
    
            //READ Button
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    tText.Text = adsClient.ReadAny(hText, typeof(String), new int[] { 80 }).ToString();
                    tint1.Text = adsClient.ReadAny(hint1, typeof(int)).ToString();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
    
            }
    
            private void Write_Click(object sender, EventArgs e)
            {
                try
                {
                    adsClient.WriteAny(hint1, int.Parse(tint1.Text));
                    adsClient.WriteAny(hText, tText.Text, new int[] { 80 });
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
    }
    prog.PNG

    Nun bekomme ich beim drücken auf "Read oder Write folgdenden Fehler

    fehler.PNG

    Habt ihr eine Idee?

    VG
    Zitieren Zitieren Visual Studio zugriff über TwinCat3 (C# / ADSdll)  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.241
    Danke
    23
    Erhielt 275 Danke für 235 Beiträge

    Standard

    Hast du das Form im Designer zusammengeklickt?

    Du verweist auf tText und tint1. Diese beiden Textboxen werden bei dir aber nirgends initialisiert. Auf dem Bild mit deinem Form ist auch nur eine Textbox zu sehen und keine 2.

    In den Beispielen von Beckhoff gibt es keine gesonderte Designer.cs. Die InitializeComponent Methode ist direkt im cs File für die Form.

    Am einfachsten fügst du im Designer noch eine 2te Textbox hinzu. Die erste nennst du dann halt tText und die 2te tint1.

    Im Deklarationsteil von Form1.cs löschst du dann die Deklarationen von tText und tint1. Die sollten jetzt im Designer File enthalten sein.
    Sänd from mei Kombjudder mitse Dastadurr.

  3. #3
    Franki ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.05.2016
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das war die Lösung. Danke!

  4. #4
    Registriert seit
    06.09.2016
    Beiträge
    15
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hall Leute,
    Ich möchte auch die SPS variablen in visual studio lesen und schreiben. Ich habe das gleiche Programm verwendet und sieht jetzt so aus.
    Code:
    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.Threading.Tasks;
    using TwinCAT.Ads;
    
    
    namespace ReadWriteADS
    {
        public partial class Form1 : Form
        {
            
    
            private int hText;
            private int hint1;
    
            private TcAdsClient adsClient;
    
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                adsClient = new TcAdsClient();
                try
                {
                    adsClient.Connect(851);
    
                    //PLC Variablen
                    hText = adsClient.CreateVariableHandle("MAIN.str1");
                    hint1 = adsClient.CreateVariableHandle("MAIN.int1");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
            {
                adsClient.Dispose();
            }
    
            //READ Button
           
    
            private void button1_Click_1(object sender, EventArgs e)
            {
    
                try
                {
                    textBox1.Text = adsClient.ReadAny(hText, typeof(String), new int[] { 80 }).ToString();
                    textBox2.Text = adsClient.ReadAny(hint1, typeof(int)).ToString();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
    
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                try
                {
                    adsClient.WriteAny(hint1, int.Parse(textBox2.Text));
                    adsClient.WriteAny(hText, textBox1.Text, new int[] { 80 });
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
    }
    Im solution Explorer hab ich so konfiguriert:
    Projekt.PNG

    aber ich bekomme diesen Fehler:
    Unbenannt.PNG

    Ich weiss nicht was ich ändern muss. Hat Jemand eine Idee?

  5. #5
    Registriert seit
    04.11.2014
    Beiträge
    138
    Danke
    1
    Erhielt 25 Danke für 23 Beiträge

    Standard

    Hast du die zwei Variablen auch im SPS Programm angelegt?

  6. #6
    Registriert seit
    06.09.2016
    Beiträge
    15
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ja. das habe ich so gemacht.
    Code:
    PROGRAM MAIN VAR    
     int1:INT := 30000;
     str1:STRING := 'this is a test string';
    END_VAR

  7. #7
    Registriert seit
    11.07.2011
    Beiträge
    65
    Danke
    0
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Arbeitest Du auch mit TwinCAT3?

  8. #8
    Registriert seit
    06.09.2016
    Beiträge
    15
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja Genau! Jetzt habe ich das SPS Projekt kompiliert. Aber das von c# jibt mir wieder andere Fehler wie folgt:
    Unbenannt1.PNG

  9. #9
    Registriert seit
    06.09.2016
    Beiträge
    15
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das läuft jezt. Danke!

  10. #10
    Registriert seit
    06.09.2016
    Beiträge
    15
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Jetzt möchte ich die Daten aus dem Windows application zum Bechhoff TcCOM Objects schicken. ist das möglich?

Ähnliche Themen

  1. S7ProSim in Visual Studio C#
    Von dnick86 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 17.11.2012, 12:22
  2. Antworten: 3
    Letzter Beitrag: 03.10.2012, 19:48
  3. Visual studio
    Von chup im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 09.05.2012, 10:52
  4. Visual Studio + Kurvenanzeige
    Von Larry Laffer im Forum Hochsprachen - OPC
    Antworten: 15
    Letzter Beitrag: 31.12.2009, 18:11
  5. LibNoDave + Visual Studio + S7 über TCP/IP
    Von david.ka im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 22.09.2008, 12:07

Lesezeichen

Berechtigungen

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