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

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

Thema: LibNoDave: daveListBlocksOfType Error

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo LibNoDave-User,

    die Funktion daveListBlocksOfType von LibNoDave läuft bei mir problemlos mit einer 315er SPS,
    auch bei einer 400er geht es prima, solange nicht mehr als 113 Bausteines eines Typs vorliegen.
    Ist das aber der Fall muss die Lib ein 2. Paket von der SPS anfordern, dabei kommt bei der 400er CPU
    allerdings immer ein Fehler zurück.
    Ein bisschen nachforschen brachte das Problem zum Vorschein, die SPS vergibt bei ListBlocks-Anfragen eine
    Sequenz-Nummer (bei den 300er scheint das immer die 1 zu sein, was in der Lib auch fest hinterlegt ist).
    Wenn die Lib diese Nummer in das Paket für die 2. Anfrage übernimmt klappt es auch bei der 400er wieder.
    Das Ganze ist nur eine kleine Änderung im Code der Funktion, bevor "daveBuildAndSendPDU" in Zeile 1102
    aufgerufen wird muss dann eben noch eine Zuweisung mit rein:

    pam[7]=p2.param[7];

    ListBlocks.png

    mark_us
    Zitieren Zitieren LibNoDave: daveListBlocksOfType Error  

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

    Standard

    Hab den gleichen fix bei mir auch schon 1 Jahr drin, und kann bestätigen das dieser das Problem fixt, und alles ohne Probleme damit läuft.

    https://github.com/jogibear9988/DotN...61878f3cf7c492
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

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

    Standard

    Update:
    Zu dem oben beschriebenen Verhalten bei mehr als 113 Bausteinen eines Typs gibt es noch einen Sonderfall der bisher in LibNoDave und auch
    in der DotNetSiemensPLCToolBoxLibrary nicht mit abgefangen wird.
    Das Problem tritt nur auf wenn die Anzahl der Bausteine eines Typs durch 113 teilbar ist.
    Die SPS sendet dann im letzten Paket mit Baustein-Nummern das Falg für weitere Pakete.
    Code:
    while (p2.param[9]!=0)
    Im nächsten Paket kommt dann (bei p2.param[9]==0) aber als Return-Wert hexD20E, was in LibNoDave zu einem Fehler führt.
    Sollte aber wohl eher bedeuten dass jetzt keine Daten mehr kommen.

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

    Standard

    Also habe das mit der von mir modifizierten Version von LibNoDave getestet welche in meinem GitHub Projekt enthalten ist!

    Da geht mit einer 315-2-PN/DP das abrufen der Liste mit 112/113 und 114 DBs ohne Probleme!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  5. #5
    mark_us ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.11.2013
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Jochen,

    ich hab das beschriebene Verhalten an einer 416-3DP gehabt und konnte es jetzt auch an einer 414-3PN/DP nochmal nachstellen.
    Hab es jetzt aber auch gleich noch an einer 315-2DP mit NetlinkPro versucht. Da tritt es nicht auf.
    Die Anzahl der je Paket von der SPS zurückgegebenen Baustein-Nummern ist bei meiner 315er 51, bei der 400er waren es immer 113.
    Die 315 sagt aber im letzten Paket durch p2.param[9]==0 dass jetzt Schluss ist, die 400er macht das anders.
    Da kommt noch das beschriebene Paket ohne weitere Daten nach.

    mark_us

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

    Standard

    ich bau morgen mal eine Änderung ein, vlt. kannst du diese dann testen?
    Würde einfach wenn d20e als retval kommt auch ein break machen!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

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

    Standard

    Kannst du es mit meiner LibNoDave von hier probieren: https://ci.appveyor.com/project/jogi...uild/artifacts
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  8. #8
    mark_us ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.11.2013
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Kannst du mir die dll auch mit .Net4 erstellen?
    Ich bin zur Zeit noch mit VS2010 am arbeiten, da schein es Probleme mit der dll in Version 4.5 zu geben.
    Ich kann das Projekt nicht übersetzen.

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

    Standard

    Leider nicht, da Ich irgendwo async/await verwende! Aber du kannst ja die libnodave_dll von dieser Version verwenden! Die sollte auch mit deiner DLL Version funktionieren!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  10. #10
    mark_us ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.11.2013
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hab deine neue dll jetzt mit der alten Version der Toolbox und auch mit den C#-Adapter von libnodave getestet.
    Jetzt kommt die richtige Anzahl an Bausteinen zurück.

Ähnliche Themen

  1. ERROR in OP 27
    Von Rici im Forum HMI
    Antworten: 1
    Letzter Beitrag: 29.02.2012, 19:42
  2. Antworten: 3
    Letzter Beitrag: 08.09.2011, 00:22
  3. LibNodave 64bit write error on Linux
    Von 3electrons im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 23.04.2010, 19:42
  4. Libnodave --> Adapter geht auf Error
    Von bytethief im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 14.07.2009, 12:34
  5. LibNoDave Runtime Error
    Von Lazarus™ im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 08.10.2005, 20:23

Stichworte

Lesezeichen

Berechtigungen

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