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

Seite 17 von 31 ErsteErste ... 7151617181927 ... LetzteLetzte
Ergebnis 161 bis 170 von 304

Thema: DotNetSiemensPLCToolBoxLibrary (LibNoDave) Zugriff auf Dual-Port RAM / FB15

  1. #161
    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
    Das heißt es wird ein "End Download" geschickt? Dann wird eigentlich nur noch auf eine Antwort von der NC gewartet, und diese ausgewertet. Wenn keine Antwort kommt, sollte es zumindest einen Timeout geben.

    Bau dir doch ein paar LOG-Ausgaben ein, das ist einfacher als da den Debugger anzuklemmen (was wegen der Kommunikation eh bescheiden funktioniert).
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  2. #162
    Hans54216 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.04.2013
    Beiträge
    208
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Das heißt es wird ein "End Download" geschickt? Dann wird eigentlich nur noch auf eine Antwort von der NC gewartet, und diese ausgewertet. Wenn keine Antwort kommt, sollte es zumindest einen Timeout geben..
    Es wird kein "End Download" geschickt. So wie ich gerade feststellte wird auch kein "Push" geschickt.

    Durch die Änderung wird ja jetzt deine Funktion "_daveSendTCP" verwendet.
    Diese setzt ja noch auf die variablen "TPDUsize" und "partPos" aus der Struktur.

    Ist dort vielleicht der Fehler?

    dave_NC_File_Download4.rar

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

    Standard

    Na wie sieht denn deine _daveSendTCP aus?

    Wie gesagt, bei der libnodave Variante die Jochen verwendet, sind etliche Fehlerkorrekturen von der originalen libnodave nicht enthalten.

    In der dave_NC_File_Download3 aus deinem letzten Anhang gab es doch ein "Push", dann hat sich bei dir jetzt schon wieder etwas anderes geändert wenn es jetzt nicht mehr vorhanden ist.

    Wenn ich bei meiner Variante (Basis libnodave 0.8.5.1 = letzte Version) die Abfragen für die Antworten der NC auskommentiere, läuft der Download (in eine SPS) so durch, d.h. es werden zumindest alle Telegramme passend rausgeschickt.

    Ich würde mir einfach an mehreren Stellen Log-Ausgaben oder printf einbauen, dann sieht man doch sofort wo es hakt.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

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

    Standard

    Ändere auch mal diese Zeile
    Code:
    while (tot_len > 0) {
    falls tot_len negativ werden sollte (was normal nicht sein sollte). Oder lass dir tot_len mit printf ausgeben.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  5. #165
    Hans54216 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.04.2013
    Beiträge
    208
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard

    In "davePutNCProgram" verwendest du ja die Variable int tot_len.

    In "_daveSendTCP" mischst du die Verwendung von "int totLen" und "tot_len"(Weiß jedoch nicht wo diese Deklariert ist).

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

    Standard

    Kannst du in beiden Funktionen ändern, aber ich glaube nicht dass es daran liegt. Denn bei dir hat es doch schonmal bis zum 1. Push funktioniert.
    Wenn du dein _daveSendTCP auf Basis von Jochens Funktionen erstellt hast, dürfte dort der Teil mit tot_len usw. überhaupt nicht vorhanden sein. Der Teil dient dazu, wenn die TPDU < S7-PDU die S7-PDU zu fragmentieren. Wenn ich das richtig sehe, ist bei dir TPDU=1024 und S7-PDU=960, das sollte also alles ohne fragmentieren übertragen werden können.

    Füge in der putNCProgramm an den entsprechenden Stellen ein:
    LOG1("bin hier usw\n");
    ein, und sieh dir an bis wohin ausgegeben wird. Und den debug-Level so erhöhen, dass auch alles ausgegeben wird.

    Ich könnte mir ja einen NC-Simulator programmieren der sich so verhält wie eine NC um daran zu testen, aber ich weiß eben noch nicht alles genau. Es bleiben aber nicht mehr viele Felder übrig in denen sich relevante Daten verstauen lassen.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  7. #167
    Hans54216 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.04.2013
    Beiträge
    208
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard

    davePutNCProgram: unackcount = 1
    davePutNCProgram: do_down_pa[9] = 0
    _daveSendTCP: totLen = 119
    _daveSendTCP: totLen = 119
    _daveSendTCP: totLen = 119
    .....

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

    Standard

    Wie sieht denn deine _daveSendTCP aus? Das weiß ich nicht, da du ja anscheinend meine in Jochens Version nicht verwenden kannst.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  9. #169
    Hans54216 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.04.2013
    Beiträge
    208
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Kannst du in beiden Funktionen ändern, aber ich glaube nicht dass es daran liegt. Denn bei dir hat es doch schonmal bis zum 1. Push funktioniert.
    Wenn du dein _daveSendTCP auf Basis von Jochens Funktionen erstellt hast, dürfte dort der Teil mit tot_len usw. überhaupt nicht vorhanden sein. Der Teil dient dazu, wenn die TPDU < S7-PDU die S7-PDU zu fragmentieren. Wenn ich das richtig sehe, ist bei dir TPDU=1024 und S7-PDU=960, das sollte also alles ohne fragmentieren übertragen werden können.
    Bei "PDU senden mit Warten auf Antwort von NC" wird ein "NC Push" erzeugt.

    Mit "_daveSendTCP" (/* Sendet eine PDU, ohne auf Antwort zu warten */) funkitioniert es nicht.

    Die Funktion "_daveSendTCP" ist so, wie du sie geschrieben hast. Ich hab lediglich in der "struct _daveConnection" die beiden Variablen hinzugefügt.

  10. #170
    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
    Kannst du die normale libnodave übersetzen? Dann hänge ich gleich mal mein Arbeitsverzeichnis an. Nicht dass wir hier über verschiedene Dinge reden.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

Ähnliche Themen

  1. Zugriff auf WinAC RTX mit LibnoDave
    Von rm2001 im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 27.04.2012, 20:31
  2. Libnodave & VB.NET Zugriff auf geschützte Speicherbereiche
    Von KJ1234 im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 10.11.2007, 16:02
  3. Zugriff mit libnodave (unter Delphi) auf S7-CP443-1
    Von Frank im Forum Hochsprachen - OPC
    Antworten: 19
    Letzter Beitrag: 29.04.2007, 13:59
  4. Zugriff auf Siemens S7 per libnodave (MPI)
    Von Anonymous im Forum Hochsprachen - OPC
    Antworten: 15
    Letzter Beitrag: 02.11.2005, 17:09
  5. Fehler bei Zugriff auf COM- Port
    Von h_matthias im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 08.03.2004, 22:14

Stichworte

Lesezeichen

Berechtigungen

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