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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Twincat ADS und WinCE

  1. #1
    Registriert seit
    21.05.2013
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    zu mir: Ich bin in der Steurungstechnik schon länger unterwegs, mit twincat (codesys), Step7 kenn ich mich aus, und habe schon diverse programme ertstellt. Visualisierungen mit WinCC und dergleichen sind nicht das problem, auch mit c# und ads habe ich schon was gemacht (auf dem pc).

    zu meinem problem: ich soll hier mit c# und einem cx9010 eine visu erstellen. jetzt soll das mit wince und c# funktionieren (sagt google). leider bekomme ich beim lesen einer variable aus twincat eine fehler zurück: nullrefenceexception. ich vermute ich nutze nicht die passende dll (es gibt da ja einige zur auswahl). Weiss da jemand rat (event. mit beispiel)? gemacht hats doch bestimmt schon jemand.

    mfg

    de onkelrudi
    Zitieren Zitieren Twincat ADS und WinCE  

  2. #2
    Registriert seit
    24.04.2008
    Ort
    Lübeck
    Beiträge
    324
    Danke
    8
    Erhielt 63 Danke für 62 Beiträge

    Standard

    Hallo Rudi,

    Die NullReferenceException ist eine Fehlermeldung von .Net. Ich gehe mal davon aus, dass dies ein Fehler des Programmierers ist, wurden alle Übergabe-Parameter korrekt angelegt und instanziert?
    Siehe auch: http://msdn.microsoft.com/de-de/libr...=vs.80%29.aspx

    Beispiele findest du im InfoSys von Beckhoff. Für TwinCAT 2 und .Net wären die Beispiele hier zu finden:
    http://infosys.beckhoff.com/content/.../html/note.htm

    Läuft deine Applikation von Remote auf deinem Notebook o.ä. oder programmierst du eine Applikation welche nachher auf dem CX gestartet werden soll? Bei zweitem müsstest du nämlich das Compact Framework verwenden.

    Gruß, Neals

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

    OnkelRudi (21.05.2013)

  4. #3
    OnkelRudi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.05.2013
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also, ich bin der Programmiere, und ja, der hats falsch gemacht. Gemacht hab ich das wie im beispiel von beckhoff. wenn ich das ce-beispiele hernehme, macht vs2008 eine konvertierung. bei dieser gehts dann schief.
    Die Applikation soll auf dem cx laufen. deswegen wince. das cf 3.5 ist drauf. da finde ich zumindest eine log-datei, die die installation beschreibt. oder wird das cf nur von visual-studio aufs gerät kopiert? wie gesagt, ich vermute, ich nutze die falsche twin.ads.dll.

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

    Standard

    Die Informationen bei Beckhoff sind mal wieder mehr als spärlich, aber zur Installation von .NET CF 3.5 steht da nur was von X86 basierenden Systemen. Die CX9000er Reihe hat durchweg Prozessoren mit ARM Befehlsatz. Also evtl. läuft das 3.5er .NET CF garnicht auf diesen Steuerungen.

    Braucht ihr unbedingt die 3.5er Version? Die einzig wirklich großen Neuerungen sind WCF und LinQ und bisher bin ich sehr gut ohne beides ausgekommen.


    Kommt die Exception gleich wenn eine TwinCAT ADS Komponente in deinem Programm initialisiert wird? Mit der Meldung das die TwinCAT.ADS.dll nicht existiert? Das Problem hatte ich auch mal. Da war irgend etwas in dem Projekt zerschossen. Am Ende hatte es nur geholfen ein neues Projekt erstellen und alle Sourcen zu importieren.

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

    OnkelRudi (21.05.2013)

  7. #5
    OnkelRudi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.05.2013
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also der connect klappt noch...
    wenn ich dann eine variable auslesen will, dann gibts diese nullreferenceexception. die dll scheint also auf dem cx zu "existieren". ich hab sie gefunden, und auch die aplikation hat sie gefunden (nehme ich mal an, gibt auf jeden fall kein fehler in diese richtung).

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

    Standard

    Mit welchem Befehl ließt du die Variable?

    Am besten mal den Abschnitt deines Codes hier posten. Sonst is wieder nur Stochern im Nebel angesagt.
    Geändert von MasterOhh (21.05.2013 um 12:44 Uhr)

  9. Folgender Benutzer sagt Danke zu MasterOhh für den nützlichen Beitrag:

    OnkelRudi (21.05.2013)

  10. #7
    OnkelRudi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.05.2013
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok - hätte ich schonmal eher dran denken können. Leider wird das erst um 16:30 was. ich werds auf jeden fall tun.
    danke schonmal..

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

    Standard

    Es vollkommen unabhänging ob nun x86 oder ARM bzw. CE oder XPe/WES/...
    Die Methoden sind immer dieselben. Auch die dll die intern verwendet ist, ist immer die gleiche!
    Warum arbeitest du nicht mit try-catch Blöcken anstatt mit unbehandelten Exceptions?
    Zeig mal den Code.....

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

    OnkelRudi (22.05.2013)

  13. #9
    OnkelRudi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.05.2013
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mit try-catch hatte ich so gemacht....
    Trotzdem läuft das jetzt. Wieso weiss ich nicht. Ich hatte mich heute morgen noch mal mit der CX9010 verbunden, Projekt drauf und lief.
    Irgendwie komisch.

    Hier mal der Code



    Code:
    using System;
    using System.Linq;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using TwinCAT.Ads;
    
    
    namespace SmartDeviceProject4
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
               
            }
    
    
    
    
    
    
    
            private int iHandle = 0;
            private int iValue = 0;
            private TcAdsClient tcClient = new TcAdsClient();
            private AdsStream dataStream = new AdsStream(4);
          
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
                tcClient.Connect(801);
                
            }
    
    
    
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
    
                    AdsBinaryReader binReader = new AdsBinaryReader(dataStream);
                    iHandle = tcClient.CreateVariableHandle("MAIN.PLCVar");
                    tcClient.Read(iHandle, dataStream);
                    iValue = binReader.ReadInt32();
                    dataStream.Position = 0;
                    textBox1.Text = Convert.ToString(iValue);
    
                   
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                {
    
                    tcClient.WriteAny(iHandle, 0);
     
                 }
            
            }
    
    
            private void Form1_Closing(object sender, CancelEventArgs e)
            {
                tcClient.Dispose();
            }        
        
        }
    }

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Okay.....

    Und warum der "Umstand" mit dem DataStream?
    Für eine Variable bzw. "Single-" Variablen macht man das üblicherweise nicht.
    Das findet eher Verwendung bei ARRAY / STRUCT.

Ähnliche Themen

  1. Zugriff auf Twincat per ADS und Visual Basic 2008
    Von Ralle im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 30.01.2012, 17:47
  2. Twincat, Unterschied zw. ADS-Hauptgerät (Message-Router) und anderen
    Von JoergHedt im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 18.04.2011, 16:57
  3. Visualisierung für TwinCAT unter WinCE
    Von nekron im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 16.06.2010, 17:44
  4. TwinCat und die ADS-OCX
    Von Majestic_1987 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 18.04.2009, 20:04
  5. Beckhoff TwinCat ADS OCX und VB.net
    Von Parallax im Forum CODESYS und IEC61131
    Antworten: 36
    Letzter Beitrag: 06.04.2009, 15:31

Lesezeichen

Berechtigungen

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