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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: was bringt gleichzeigtiger Zugriff auf viele S7 ?

  1. #11
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dann ist zumindest die threadsichere Runtime des Compilers dabei und ein Problem beseitigt. Dann ist aber immer noch die Frage, ob libnodave auf globale Daten ohne entsprechende Verriegelung zugreift.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  2. #12
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Mal unabhängig von der Threadsicherheit libbnodaves, hab ich es mit Grafikfunktionen und Delphi 7 auch schon geschafft, daß eine Multithreadapplikation langsamer lief, als eine, in einem Thread ablaufende Applikation. Die Frage ist, inwieweit das Ganze wirklich parallelisierbar ist und ob die Entwicklungsbibliothek (hier VCL von Delphi 7) auch wirklich selbst optimal dafür geeignet ist. Letztlich kann man die Daten von den S7 ja parallel anfragen, aber entgegennehmen und verarbeiten muß sie die erstellte Applikation und wie effektiv das dann tatsächlich ist, kann man nicht so wirklich vorhersagen. Deswegen wäre ich bei Rainers aussage etwas vorsichtig.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #13
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Es geht mir hier nur um die Kommunikationsgeschwindigkeit, nicht um die Vererabeitung danach. Bei Kommunikation wird die meiste Zeit auf die Antwort der Steuerung gewartet. Und in dieser Zeit können andere Steuerung gefragt werden.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  4. #14
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Frage

    Hallo,

    ich habe bei eurem Anliegen zur parallelen, threadgesteuerten Kommunikation zu einer SPS von einem PC doch ein gewaltiges Verständnisproblem...

    Wenn ich die Kommunikation zu beliebig vielen SPS mittels Treiber über einen (!!!) z.B. NIC anstosse, wie zum Teufel soll ich das parallel hinkriegen ??

    Es wird immer seriell bleiben, da könnt Ihr machen was Ihr wollt

    Gruß

    Question_mark
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)
    Zitieren Zitieren Habe das Problem nicht wirklich verstanden ...  

  5. #15
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von Question_mark Beitrag anzeigen
    Wenn ich die Kommunikation zu beliebig vielen SPS mittels Treiber über einen (!!!) z.B. NIC anstosse, wie zum Teufel soll ich das parallel hinkriegen ??

    Es wird immer seriell bleiben, da könnt Ihr machen was Ihr wollt
    Es ist aber ein Unterschied, ob ich zu 100 SPS eine einzige Verbindung aufbaue, oder 100 Verbindungen aufbaue.

    Im zweiten Fall starte ich 100 Threads, diese schicken jeweils eine Anfrage an die SPS und legen sich daraufhin schlafen bis das Ergebnis zurückkommt. Wenn die letzte Anfrage raus ist, ist ja vielleicht die erste SPS schon mit der Antwort fertig.

  6. #16
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Beitrag

    Hallo,

    Zitat Zitat von Thomas_v2.1
    Wenn die letzte Anfrage raus ist, ist ja vielleicht die erste SPS schon mit der Antwort fertig.
    Aber was zum Teufel hat das mit einer parallelen Verarbeitung zu tun ???
    Die Anfragen werden seriell gesendet und die Antworten kommen immer noch seriell zurück.

    Der Flaschenhals ist z.B. der einzige NIC-Adapter im PC, da bekommst Du nun mal nur einzige Kommunikation zu einer (!!!) SPS gleichzeitig zustande. Egal wieviel im PC gleichzeitig abgearbeitet wird, es muss über den NIC raus ..

    Gruß
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)
    Zitieren Zitieren Parallelverarbeitung ist was anderes ....  

  7. #17
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Kann sein dass du vielleicht eine andere Kommunikationsbibliothek meinst.

    Bei libnodave wird mir bei einer Verbindung auch nur ein Socket zu einer SPS aufgebaut. D.h.:
    Verbindungskanal (z.B. Socket) öffnen -> Verbindung zur SPS aufbauen -> Daten anfragen -> Daten empfangen

    Die Zeit die die SPS zum Antworten braucht kann das Programm nichts machen außer warten. Wie Rainer oben schon schrieb, geht die meiste Zeit mit warten auf die Antwort der SPS drauf.
    Wenn ich mehrere Threads starte, kann ich in der Wartezeit mit anderen SPSen kommunizieren die gerade frei sind.

  8. #18
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Libnodave verwendet malloc() im einfachsten Fall nur innerhalb von daveNewInterface() und daveNewConnection(). Diese Funktionen sollten nach meiner Intention nur einmal pro benutzter Schnittstelle/Socket bzw. Pro SPS aufgerufen werden.
    Im laufenden Betrieb ist die einzige globale Variable daveDebug. Auf daveDebug wird normalerweise nur lesend zugegriffen, daher sind konkurrierende Schreibzugriffe nicht zu erwarten. Ferner sollte in Anwendungen daveDebug=0 sein.
    Die einzige Konsequenz ist also, daß, sobald ein Thread daveDebug <>0 setzt, alle Threads Debugging-Informationen schreiben werden.

    Was nicht geht ist, daß mehrere Threads eine Verbindung zur SPS teilen. Da Libnodave zeichenweise sendet, könnte eine Anfrage an die SPS von einer weiteren an beliebiger Stelle unterbrochen werden. Das Ergebnis wäre wohl Blödsinn für die SPS.
    Weiterhin ist mir nicht bekannt was eine S7 macht, wenn eine weitere Anfrage eingeht, bevor die erste beantwortet wurde.
    Schließlich ist unbekannt, ob die Anfragen in der Reihenfolge ihres Eingangs beantwortet würden. Egal ob ja oder nein, jeder Thread könnte die Antwort auf Anfragen eines anderen erhalten.

    Wer Threads braucht, sollte wissen wozu:
    1. Um mehrere SPS über Ethernet anzusprechen: Pro SPS ein socket, ein daveInterface und ein daveConnection struct.
    2. Um mehrere SPS an MPI über denselben seriell/MPI-Adapter anzusprechen.
    3. Um dieselbe SPS von mehreren Clients/Programmen/Standorten anzusprechen.

    Im Fall 2 und 3 ist es ratsam, einen Prozess/Thread laufen zu lassen, der mit der Steuerung spricht und Daten an die weiteren Threads/Prozesse weiterreicht. Dieser Prozeß entspricht dann gewissermaßen einem OPC-Server.

  9. #19
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Beitrag

    Hallo,

    Zitat Zitat von Thomas_v2.1
    Bei libnodave wird mir bei einer Verbindung auch nur ein Socket zu einer SPS aufgebaut. D.h.:
    Verbindungskanal (z.B. Socket) öffnen -> Verbindung zur SPS aufbauen -> Daten anfragen -> Daten empfangen
    Aber das ist nicht so wirklich eine Parallelverarbeitung, oder ???

    Zitat Zitat von Thomas_v2.1
    ]Wenn ich mehrere Threads starte, kann ich in der Wartezeit mit anderen SPSen kommunizieren die gerade frei sind.
    Ja, das kannst Du schon.. Aber niemals parallel, mich stört hier einfach der Begriff "Parallelverarbeitung". Du kannst gerne 10 Threads zur Kommunikation mit einer SPS aufmachen, solange die Kommunikation zB. über nur einen NIC Adapter läuft, ist es eben nun mal keine parallele Abarbeitung.
    Aber ich glaube, Du hast mich schon verstanden ...

    Gruß

    Question_mark
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)
    Zitieren Zitieren Parallel ist was anderes  

  10. #20
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Zottel Beitrag anzeigen
    Weiterhin ist mir nicht bekannt was eine S7 macht, wenn eine weitere Anfrage eingeht, bevor die erste beantwortet wurde.
    Schließlich ist unbekannt, ob die Anfragen in der Reihenfolge ihres Eingangs beantwortet würden. Egal ob ja oder nein, jeder Thread könnte die Antwort auf Anfragen eines anderen erhalten.
    Meine Nachforschungen haben ergeben dass eine SPS anscheinend mehrere Jobs in mehreren Anfragen verarbeiten kann, also bevor die Antwort abgearbeitet wurde.
    Beim Simatic.Net OPC Server kann ich diese Anzahl auf jeden Fall einstellen. Und diese Anzahl wird beim Verbindungsaufbau in den 4 Bytes vor der PDU-Größe ebenfalls mit der SPS ausgehandelt.

    Jedes Telegramm hat im Header sowieso eine eindeutige Nummer die man nur entsprechend auswerten müsste.
    Ob das einen Geschwindigkeitsvorteil bringen würde weiß ich jedoch nicht, bzw. ob der Simatic OPC Server das überhaupt ausnutzt.
    Geändert von Thomas_v2.1 (18.01.2010 um 00:44 Uhr)

Ähnliche Themen

  1. ADS: Zugriff auf viele Klemmen
    Von Macbeth im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 21.12.2010, 12:14
  2. Netzwerk bringt SPS Zykluszeit zum aussteigen
    Von bludie im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 25.08.2009, 21:34
  3. Wie bringt man den Code in den Anhang
    Von xhasx im Forum Stammtisch
    Antworten: 3
    Letzter Beitrag: 18.12.2007, 08:09
  4. SFC15 im FB bringt Fehler!
    Von INST im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 30.03.2007, 12:03
  5. AuthorsW bringt Fehlermeldung
    Von Input im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 27.04.2005, 11:32

Lesezeichen

Berechtigungen

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