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

Ergebnis 1 bis 5 von 5

Thema: Libnodave(TCPIP)+Thread=Problem(einzufrieren) dot.NET

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Help! (Ich weiß nicht Deutsch)
    Problem libnodave Multithreading, einzufrieren.
    Code:
    class Program
        {
            public static int Main(string[] args)
            {
    
                BBB c1 = new BBB();
                BBB c2 = new BBB();
                BBB c3 = new BBB();
                BBB c4 = new BBB();
                BBB c5 = new BBB();
                Parallel.Invoke(c1.W, c2.W, c3.W, c4.W, c5.W);
    
                Console.ReadKey();
                return 0;
            }
            class BBB
            {
                libnodave.daveOSserialType fds;
                libnodave.daveInterface di;
                libnodave.daveConnection Connect;
                private Object thisLock = new Object();
               public BBB()
               {
                   Console.WriteLine("Сокет {0}", Task.CurrentId);
                   fds.rfd = libnodave.openSocket(102, "192.168.4.115");
                   fds.wfd = fds.rfd;
                   if (fds.rfd > 0)
                   {
                       di = new libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k);
                       di.setTimeout(1000);
                       Connect = new libnodave.daveConnection(di, 0, 0, 2);
                       Connect.connectPLC();
                   }
                   else
                       Console.WriteLine("Ошибка в потоке {0}", Task.CurrentId);
               }
                public void W()
                {
                        for (int y = 0; y < 1;y++ )
                        {
                            using (libnodave.PDU p = Connect.prepareReadRequest())
                            {
                                p.addVarToReadRequest(libnodave.daveDB, 102, 2, 3);
                                p.addVarToReadRequest(libnodave.daveDB, 102, 6, 3);
                                using (libnodave.resultSet rl = new libnodave.resultSet())
                                {
                                        Connect.execReadRequest(p, rl);
                                        for (int x = 0; x < 19; x++)
                                        {
                                            if (Connect.useResult(rl, x) == 0)
                                            {
                                                Console.WriteLine("Значение{0}|{1}:{2}|{3}|{4}", 1, x + 1, Connect.getFloat(), DateTime.Now.ToString("mm:ss.fff"), Task.CurrentId);
                                            }
                                            else
                                                Console.WriteLine("Error");
                                        }
                                     
                                    
                                }
                            }
                        }
                    
                }
            }
        }
    Zitieren Zitieren Libnodave(TCPIP)+Thread=Problem(einzufrieren) dot.NET  

  2. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Maybe you can try to use my Library (https://github.com/jogibear9988/DotN...ToolBoxLibrary) it's a wrapper for libnodave in DotNet, and it's working in multithreaded applications!

    But at the Moment I don't see an error in your Code! And I'm also using libnodave with multiple Threads (with my lib)!

    Ok, I use Threads not Tasks, but I don't think that should be a Problem but I'm not sure!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  3. #3
    ldar ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.05.2014
    Beiträge
    3
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke! Läuft wie ein Uhrwerk.

  4. #4
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von ldar Beitrag anzeigen
    Danke! Läuft wie ein Uhrwerk.
    What works? Have you now switched to my Project, or used Threads at your Code?
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  5. Folgender Benutzer sagt Danke zu Jochen Kühner für den nützlichen Beitrag:

    ldar (12.05.2014)

  6. #5
    ldar ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.05.2014
    Beiträge
    3
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Yes, your project.Used ReadValues, performance 2000 tags type float = 800 ms...
    Geändert von ldar (12.05.2014 um 16:38 Uhr)

Ähnliche Themen

  1. Simodrive 6101 Problem (siehe Thread) und Handbuch
    Von CrazyCat im Forum Antriebstechnik
    Antworten: 2
    Letzter Beitrag: 29.01.2012, 21:18
  2. Antworten: 0
    Letzter Beitrag: 09.09.2010, 00:27
  3. ÄÖnderungen am libnodave.net.cs File von libnodave
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 12.05.2010, 16:56
  4. LibNoDave unter VB.Net ohne libnodave.net.dll
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 09.03.2010, 18:57
  5. libnodave: Woher kommt die "libnodave.net.dll"?
    Von Thomas_v2.1 im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 10.11.2008, 12:07

Lesezeichen

Berechtigungen

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