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

Ergebnis 1 bis 6 von 6

Thema: Visual C# / Visual Basic .NET und OMRON CX Server Lite

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen liebe Community,

    ich beschäftige mich momentan mit dem OMRON CX Server Lite, um eine Anwendung in Visual C# zu entwickeln,
    die das zentrale Steuern unserer Maschinen ermöglicht.


    Folgendes Problem beschäftigt mich nun seit 2 Tagen:


    Um Daten wie die Bahngeschwindigkeit und Schläge/Sek in Echtzeit anzuzeigen, möchte ich eigentlich keine unsaubere Endlosschleife zum auslesen starten (das funktioniert).

    Hierzu bietet Omron die Methode "GetData()" mit der sich das überwachen spezieller Datenpunkte starten lässt.
    Sobald sich ein Wert ändert, soll dieser an das "OnDataChange" Event übergeben werden. Genau das passiert aber leider nicht :/

    Dokumentation:
    http://omronkft.hu/nostree/pdfs/soft...te_net_doc.pdf


    Anbei findet Ihr mein aktuelles Visual Studio 2010 Projekt.
    Demoprogramm.zip


    Vielleicht gibt es hier ja jemanden, der ein paar Erfahrungen mit dem CX Server Lite besitzt und mir evtl. weiterhelfen kann?
    Ich wäre euch wirklich sehr dankbar

    Viele Grüße,
    Joshua Rupp
    Geändert von JoRu1407 (22.09.2013 um 10:31 Uhr)
    Zitieren Zitieren Visual C# / Visual Basic .NET und OMRON CX Server Lite  

  2. #2
    Registriert seit
    23.09.2013
    Beiträge
    16
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hi!

    Ich öffne leider keine Zip Dateien die ich öffentlich in Foren finde, daher muss ich einmal so nachfragen. Bekommst du leere Daten bei OnDataChange oder kommt da nix. Eventuell kannst du den Code bzw. das Stück hier einmal posten. Ich gehe auch davon aus, dass GetData in einem Thread auch ständig die Daten prüft, z.B. mit einer while schleife.

  3. #3
    Avatar von JoRu1407
    JoRu1407 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.07.2012
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo HrWechler,

    nachfolgend mein Programmcode.
    Das CX Server Lite Control heißt "cxsLite" und die Werte sollen bei Änderung in das Label "label_lineSpeed" geschrieben werden.

    Code:
            // SETUP
            string serverPath = "Server.cdm";
            string spsName = "spsLocher";
            double updateRate = 0.1;
            
            // INITIALIZE
            public Monitor()
            {
                InitializeComponent();
            }
    
            // CONNECT
            private bool Connect()
            {
                // Refresh StatusStrip
                statusStripLabel.Text = "Verbinden";
                statusStrip.BackColor = Color.Yellow;
                statusStrip.ForeColor = Color.Black;
                
                // Load CX Server Project
                bool connectedOK = cxsLite.Connect(serverPath);
    
                // Open PLC Connection
                bool openedOK = cxsLite.OpenDevice(spsName);
    
                // Check Availability
                if (!connectedOK || !openedOK)
                {
                    // Refresh StatusStrip
                    statusStripLabel.Text = "Fehler";
                    statusStrip.BackColor = Color.Red;
                    statusStrip.ForeColor = Color.White;
                    
                    // Show Error Message
                    MessageBox.Show("Die Verbindung zur SPS konnte nicht hergestellt werden!", "Verbindungsproblem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    
                    // Return Method Value
                    return false;
                }
                else
                {
                    // Refresh StatusStrip
                    statusStripLabel.Text = "Verbunden";
                    statusStrip.BackColor = Color.Green;
                    statusStrip.ForeColor = Color.White;
    
                    // Return Method Value
                    return true;
                }
            }
    
            // DISCONNECT
            private void Disconnect()
            {
                // Close PLC Connection
                bool Closed = cxsLite.CloseDevice("spsLocher");
            }
    
            // GET DATA
            private void GetData()
            {
                // Required Data Points
                cxsLite.GetData("spsLocher", "lineSpeed", updateRate);
            }
    
            // STOP DATA
            private void StopData()
            {
                // Required Data Points
                cxsLite.StopData("spsLocher", "lineSpeed");
            }
    
            // DATA CHANGED
            private void cxsLite_OnDataChange(object sender, CXSLite.CXSLiteCtrl.DataChangeArgs e)
            {
                // Write Value to Label
                label_lineSpeed.Text = e.Value.ToString();
            }
    
            // FORM SHOWN
            private void Monitor_Shown(object sender, EventArgs e)
            {
                if (Connect())
                {
                    // Start Getting Data
                    GetData();
                }
    
            }
    
            // FORM CLOSE
            private void Monitor_FormClosing(object sender, FormClosingEventArgs e)
            {
                StopData();
                Disconnect();
            }
    Das Grün Markierte GetData funktioniert laut meiner Debugging Konsole.
    Allerdings wird das Event "OnDataChange()" und damit die Rot markierte Methode nie aufgerufen :/
    Geändert von JoRu1407 (24.09.2013 um 19:34 Uhr)

  4. #4
    Registriert seit
    23.09.2013
    Beiträge
    16
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich gehe davon aus, dass label_lineSpeed vorhanden ist, ich es in diesem Codestück nicht sehen kann ?! Warnungen werden beim übersetzen nicht ausgegeben ?

  5. #5
    Avatar von JoRu1407
    JoRu1407 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.07.2012
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja, das Label ist natürlich vorhanden und es werden keine Fehler ausgegeben. Das Programm läuft so gesehen "fehlerfrei" - Es wird nur leider kein Event ausgelöst :/

  6. #6
    Registriert seit
    23.09.2013
    Beiträge
    16
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es ist bestimmt irgendwas total einfaches. Ich versuche mal am Wochenende die Datei zu testen. Ich bin hier nur mit dem Notebook unterwegs und da habe ich nicht alles installiert. Ich melde mich und gebe dann Feedback ob es klappt oder ob ich auch Fehler bekomme.

Ähnliche Themen

  1. visual basic und wincc
    Von speedy18122 im Forum HMI
    Antworten: 8
    Letzter Beitrag: 28.02.2012, 15:28
  2. Visual Basic .NET und OPC XML
    Von wiesel187 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 12.10.2010, 15:34
  3. Siemens OPC DA Visual Basic.NET 2005
    Von Hamster im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 23.03.2007, 00:13
  4. OPC und Visual Basic 6
    Von Daredevil im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 05.03.2005, 19:59
  5. Visual Basic.Net
    Von Hamster im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 11.10.2004, 09:48

Lesezeichen

Berechtigungen

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