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

Ergebnis 1 bis 9 von 9

Thema: libnodave.daveStrerror(res) liefert nur kryptische Zeichen

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    inzwischen habe ich mit meinem VB2008 Express und libnodave 0.8.4.5 bereits erfolgreich eine Verbindung via ISO on TCP am laufen, doch leider liefert bei mir "libnodave.daveStrerror(res)" nur unleserliche kryptische Zeichen, unabhägig davon ob negative oder positive Fehlercodes wie z.B.: Code 5 nach dc.useResult(rs, n) wenn z.B. eine DB Adresse nicht in der SPS existiert oder eine -128.
    Das selbe gilt übrigens auch bei Verbindungsproblemen bei S7Online etc. Es scheint sich hier also um ein prinzipielles Problem handeln.

    Kann mir jemand sagen warum ich hier nur kryptische Zeichen bekomme?
    Ich wäre ausserdem sehr dankbar wenn mir jemand mitteilen können wo ich eine Auflistung der bekannten Fehlercodes (sowohl positive als auch negative) finden kann.
    Anscheinend seien ja negative Codes Meldungen von libnodave und positive Codes von der SPS selbst. Leider bin ich jedoch bei der libnodave Dokumentation selbst nicht fündig geworden.

    Danke bereits im voraus für jede Unterstützung.

    Gruss,

    bool
    Zitieren Zitieren libnodave.daveStrerror(res) liefert nur kryptische Zeichen  

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

    Beitrag

    Hallo,

    Zitat Zitat von bool
    meinem VB2008 Express und libnodave 0.8.4.5
    Mein erster Schuss ins Blaue : VB2008 verwendet als Zeichensatz Unicode und Libnodave Ansi ? Oder vielleicht auch umgekehrt.
    Ist jetzt nur meine erste Vermutung, so aus der Hüfte geschossen ...

    Gruß

    Question_mark

    PS : Und ausserdem gehört dieser Fred in das Unterforum "OPC und Hochsprachen", vielleicht kann ein Mod das bitte dahin verschieben.
    Geändert von Question_mark (08.05.2010 um 22:12 Uhr) Grund: Falsches Unterforum
    Zitieren Zitieren Unicode <> Ansi  

  3. #3
    bool ist offline Benutzer
    Themenstarter
    Registriert seit
    26.03.2010
    Beiträge
    94
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Question_mark Beitrag anzeigen
    Hallo,



    Mein erster Schuss ins Blaue : VB2008 verwendet als Zeichensatz Unicode und Libnodave Ansi ? Oder vielleicht auch umgekehrt.
    Ist jetzt nur meine erste Vermutung, so aus der Hüfte geschossen ...
    Hallo Question_mark,

    danke für das schnelle Feedback.

    Weiss da jemand vielleicht Bescheid? Handelt es sich hier um ein Ansi <> Unicode Konflikt zwischen libnodave und VB 2008 Express und weiss ggf jemand wie man diese Problem lösen kann?


    Zitat Zitat von Question_mark Beitrag anzeigen
    PS : Und ausserdem gehört dieser Fred in das Unterforum "OPC und Hochsprachen", vielleicht kann ein Mod das bitte dahin verschieben.
    Stimme dem zu wenn der Thread dort besser aufgehoben ist, Danke bereits im voraus an den freundlichen Mod.

  4. #4
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Kannst mal einen ausschnitt von deinem Code posten, da sieht man vielleicht mehr...

    ev. hilft dieses Beispiel weiter: http://www.powertronik.de/showthread.php?t=34879&page=2

  5. #5
    bool ist offline Benutzer
    Themenstarter
    Registriert seit
    26.03.2010
    Beiträge
    94
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Chefmech Beitrag anzeigen
    Kannst mal einen ausschnitt von deinem Code posten, da sieht man vielleicht mehr...
    Hallo Chefmech,

    der Programmcode VB2008 Express (VB.NET) ist eigentlich ganz unspektakulär:

    ...
    Dim res AsInteger
    Dim strTemp AsString
    Dim n AsInteger = 0 'Counter for rs position
    ...
    res = dc.execReadRequest(multireadPDU01, rs)
    If res <> 0 Then
    WriteDebugInfo("Error from dc.execReadRequest: " & res & " = " + libnodave.daveStrerror(res))
    ExitFunction
    EndIf
    ...
    res = dc.useResult(rs, n)
    If res <> 0Then
    strTemp = libnodave.daveStrerror(res)
    WriteDebugInfo(
    "Error from dc.useResult(Polling n = " & CStr(n) & "): " & res & " = " & strTemp)
    EndIf



    Das Ergebnis sieht dann wie im Anhang aus. Hier das Beispiel mit dem Fehlercode 5, da eine Adresse im DB angesprochen wird welche es nicht gibt. Auch bei negativen Fehlercodes (z.B. -12 von dc.useResult() und ebenfals bei anderen Funktionen sieht das Ergebnis ebenso kryptisch aus.

    Ich hoffe es hat jemand eine Idee wie man das bei VB.NET in den Griff bekommt. Ich würde mich auf jeden Fall sehr freuen.
    Danke auf jeden Fall schon mal im voraus für jede Unterstützung.

    Gruss,

    bool
    Angehängte Grafiken Angehängte Grafiken

  6. #6
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Kannst du noch den Teil Posten wo du die Funktionen aus der DLL deklarierst?

    Ich frag mich nur ob du das "libnodave." brauchst
    Code:
    strTemp = libnodave.daveStrerror(res)
    oder ob das vielleicht so geht:
    Code:
    strTemp = daveStrerror(res)

  7. #7
    bool ist offline Benutzer
    Themenstarter
    Registriert seit
    26.03.2010
    Beiträge
    94
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Chefmech Beitrag anzeigen
    Kannst du noch den Teil Posten wo du die Funktionen aus der DLL deklarierst?
    Hallo Chefmach,

    die Funktionen deklariere ich selbst gar nicht, sondern binde die libnodave.net.dll über das Menu\Projekt\Eigenschaften\Verweise* in mein Projekt mit ein. Ein Screenshot davon habe ich angehängt.
    Der Aufruf "strTemp = daveStrerror(res)" ohne "libnodave." funktioniert auf diese Weise nicht, habs grad zur SIcherheit noch einmal getestet.

    Gruss,

    bool
    Angehängte Grafiken Angehängte Grafiken
    Geändert von bool (09.05.2010 um 23:47 Uhr) Grund: Bild angehängt

  8. #8
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    OK, arbeite mit einem älteren VisualStudio, da muss ich die funktionen noch deklarieren...

    kannst mal versuchen einen Haltepunkt zu setzen und in die Funktion "useResult" oder "daveStrerror" rein zu debugen, ev. findest du da wo's hängt

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So nochmals dazu, wurde auch im anderen subforum gefragt und ist bereits gelöst!

    siehe hier : (neue Version des .net Wrappers)

    http://sps-forum.de/showthread.php?t=35760

    und hier : (nur die Lösung dazu)

    http://sps-forum.de/showthread.php?t...t=davestrerror
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Nochmal...  

  10. Folgende 2 Benutzer sagen Danke zu Jochen Kühner für den nützlichen Beitrag:

    bool (10.05.2010),Chefmech (10.05.2010)

Ähnliche Themen

  1. FILETIME liefert UTC?
    Von merlin im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 27.06.2010, 14:10
  2. LibNoDave und daveStrerror...
    Von Lazarus™ im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 23.05.2009, 15:27
  3. Wer liefert SIM-CARD
    Von Lipperlandstern im Forum Stammtisch
    Antworten: 9
    Letzter Beitrag: 15.12.2008, 10:40
  4. LibNodave 0.8.4 - daveConnectPLC liefert Rückgabewert 4
    Von Nuecke im Forum Hochsprachen - OPC
    Antworten: 58
    Letzter Beitrag: 29.05.2008, 13:32
  5. s5 liefert fehler 0334 unter xp sp2
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 30.11.2004, 12:16

Lesezeichen

Berechtigungen

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