MS-Blog

libnodave unter windows CE läuft :)

Tags:

So nach einem langen Wochenende habe ich es geschafft.

Die libnodave läuft unter WinCE.

Man muss dabei beachten das WinCE Standartmässig Unicode verwendet die Beispielprogramme müssen also Dementsprechend angepasst werden.

Was auch noch wichtig ist beim Binden des Sockets muss man darauf achten das man einen freien Port vergibt. Standartmässig wird der Port 102 verwendet unter WinXP wird da dieser durch die SoftSPS belegt ist automatisch ein anderer genommen unter WinCE nicht und anstatt mit der SPS zu kommunizieren redet nodave mit sich selber.

Tja muss man auch erst drauf kommen 😉

Werde schauen das die Dateien in die Library aufgenommen werden dann haben alle was davon.

Da anscheinend ein grosses Interesse am Quellcode besteht habe ich hier das Projekt zum Download:

Source Code

Ein grosser Dank geht an Giorgio der den Sourcecode auf die aktuelle Libnodave Version aktualisiert hat.

Dieser Beitrag wurde am Sonntag, 14. Dezember 2008 um 17:18 Uhr veröffentlicht und wurde unter der Kategorie libnodave, Visual Studio abgelegt. Du kannst die Kommentare zu diesen Eintrag durch den RSS-Feed verfolgen. Du hast die Möglichkeit einen Kommentar zu hinterlassen, oder einen Trackback von deinem Weblog zu senden.

«  –  »

17 Comments »

  1. Gibt es den angepassten Sourcecode schon irgendwo zum herunterladen?
    Ich würde mir gerne die libnodave für den ARMV4I übersetzten, jedoch scheinen da doch einige Anpassungen notwendig zu sein.
    Da Sie das ja schon mal gemacht haben könnte ich mir die Arbeit sparen …

    Kommentar: Ulrich Holeschak – 26. Februar 2009 @ 23:01

  2. Bin leider noch nicht dazu gekommen die Daten an den Entwickler weiter zu leiten. Werde sie aber zusammenstellen dann per Mail zustellen.

    Kommentar: Marco – 27. Februar 2009 @ 20:27

  3. Hallo Marco,

    Lebt dieser Blog noch? Ich hätte ebenfalls interesse an den Sourcecode.

    Kommentar: dragonfire – 08. Februar 2010 @ 12:31

  4. Ja dieser Blog lebt noch auch wenn er nicht so intensiv genutzt wird 😉

    Den Sourcecode bekommst du per Mail.

    Gruss Marco

    Kommentar: Marco – 08. Februar 2010 @ 14:53

  5. Hallo,

    ich hätte ebenfalls Interesse an dem Sourcecode.

    Viele Grüße
    André

    Kommentar: andre – 21. April 2010 @ 18:06

  6. Hi Marco,

    i am trying to follow you instructions but with no luck, i am facing a lot of warning and a link error regarding a conflict „Thumb/ARM“.
    Can You please send me the source code?

    Thank You.
    Giorgio.

    Kommentar: Giorgio – 29. April 2010 @ 08:07

  7. Hallo,
    sind die Anpassungen für Windows CE inzwischen in den Quellcode eingegangen?
    Gibt es ein Beispielprojekt zum Download?

    Viele Grüße
    Thomas

    Kommentar: Thomas Löther – 22. Mai 2010 @ 15:47

  8. Hallo Marco.

    Ich hätte auch Interesse am einem Beispiel (für VB.net).
    Habe einige Probleme, mit meinem Panel (Win Embedded CE 6.0), dass alles darauf läuft.

    Bitte um Hilfe beim Erstellen. Danke.

    MfG
    Gregor

    Kommentar: Gregor – 16. November 2010 @ 00:25

  9. Hallo Macro

    Vielen Dank für die Veröffentlichung des SourceCodes.
    Genau was ich gesucht habe.

    Ich versuche die Library derzeit in Betriebzu nehmen (auf Windows CE 5 / ARM) .

    Das Kompilieren im VS 2008 hat wunderbar funktioniert. Beim Öffnen der Sockets gibt es aber noch Probleme.
    Hast Du eine Idee?

    Gruss
    Matthias

    Kommentar: Matthias – 17. November 2010 @ 10:34

  10. @Matthias
    Kannst du mir vielleicht beim kompilieren unter VS2008 helfen. Bekomme das irgendwie nicht richtig hin.
    Vielleicht kann ich dir beim Socket helfen, sofern du das Problem nicht schon gelöst hast.

    MfG

    Gregor

    Kommentar: Gregor – 22. Dezember 2010 @ 21:09

  11. Hallo,

    vielen Dank erstmal für alles was hier schon mal steht!

    Ich hab‘ da aber noch ein Problem:
    Und zwar will ich das ganze für ein WinCE 5.0 x86 Rechner übersetzen und zwar mit VisualStudio 2008.

    Erst hat der Compiler die LIBC.lib nicht gefunden (weil nicht in Verzeichnisliste), dann kam aber folgende Ausgabe:
    […]
    nodave.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol „__imp__recv“ in Funktion „__daveReadISOPacket“.
    nodave.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol „__imp__select“ in Funktion „__daveReadISOPacket“.
    nodave.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol „__imp__send“ in Funktion „__daveSendISOPacket“.
    […]

    Ich nehme an, dass ich statt der libc.lib die corelibc.lib verwenden muss. Nur wie erkläre ich das meinem linker?
    Ich verwende das Microsoft Standard SDK „STANDARDSDK500 (x86)“

    Gruss
    andreas

    Kommentar: Andreas – 17. Februar 2011 @ 16:52

  12. Hallo,
    ich habe echt Probleme die Anwendungen auf meinem CE-Gerät (Multipanel MP377 mit Win CE 5.0) zum Laufen zu bringen. Beim Starten der Programme kommt immer die Fehlermeldung „…. make sure that all required libraries are available“.
    Habe dann auch versucht mittels regsvrmp.exe die libnodave.dll zu registrieren. Kein Erfolg..
    Hat jemand noch eine Idee, warum mein Panel nicht auf die dll zugreifen kann?

    Gruß Michael

    Kommentar: michael – 28. Juni 2012 @ 11:03

  13. Hallo Marco,

    ich möchte ein HMI-Panel mit eigener Applikation mit einer S7-300 per TCP/IP verbinden. Das Anwenderprogramm ist in C# geschrieben. Ich habe bereits deine überarbeitete libnodave.net.dll über den Downloadlink heruntergeladen, und den neuen opensocket-Befehl eingebaut.
    Allerdings kann ich keine Verbindung mit der SPS aufbauen. Den PING-Befehel habe ich vom HMI-Panel schon ausprobiert, was auch funktioniert hat.
    So sieht der Code aus:
    fds.rfd = libnodave.openSocket(102, ControlElement.ConvertIPToByteArray(„192.168.232.100“));
    fds.wfd = fds.rfd;
    if (fds.rfd > 0)
    {
    di = new libnodave.daveInterface(fds, „192.168.232.100“, 0, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k);
    di.setTimeout(1000000);
    // res=di.initAdapter(); // does nothing in ISO_TCP. But call it to keep your programs indpendent of protocols
    // if(res==0) {
    dc = new libnodave.daveConnection(di, 0, rack, slot);
    if (0 == dc.connectPLC())
    {
    etc.

    und zur Umwandlung:
    public static byte[] ConvertIPToByteArray(string value)
    {
    IPAddress _IP;
    _IP = IPAddress.Parse(value);
    byte[] AdrBuffer = _IP.GetAddressBytes();
    return AdrBuffer;
    }

    Außerdem weiß ich nicht so recht, wie ich Ports über Windows CE konfigurieren kann. Welchen neuen Port soll ich da einstellen und wo?

    Hoffe du kannst mir da weiterhelfen.

    Viele Grüße
    Marc

    Kommentar: Marc – 17. April 2013 @ 14:11

  14. Phu ist schon eine weile her müsste ich mir mal genau ansehen.
    Was die Ports betrifft ist es so das du auf dem CE Gerät nichts parametrieren musst soweit ich das in erinnerung habe.
    Die Ports werden über Libnodave automatisch geöffnet.

    Das mit dem Speed finde ich etwas spannend bei dir ich bin der Meinung den musst du nicht konfigurieren bei der TCP Verbindung.

    Gruss Marco

    Kommentar: Marco – 17. April 2013 @ 19:51

  15. Hallo Marco,

    klasse das du in deinem Blog so aktiv bist.

    Das mit dem Speed habe ich nochmal nachgeschaut und in der Eingabehilfe von Visual Studio 2008 erscheint erscheint dieser auch als letzter Übergabeparameter.

    Ist die im Downloadordner enthaltene libnodave.dll bereits für WinCE erstellt worden?
    Vielleicht sollte ich noch anmerken, dass das HMI-Panel einen ARM-Prozessor benutzt und ich die IP-Adresse manuell eingestellt habe.

    Viele Grüße

    Marc

    Kommentar: Marc – 18. April 2013 @ 08:05

  16. Hallo Marc

    ja die Dateien die mitgeliefert werden wurden bereits für CE mit einem ARM Prozessor kompiliert.

    Hat ja auch ein Testprogramm für TCP dabei mit dem du die Verbindung mal prüfen kannst.

    Gruss Marco

    Kommentar: Marco – 18. April 2013 @ 21:13

  17. Hi Marco,

    endlich funktioniert die Kommunikation. Es hat daran gelegen, dass die IP-Umwandlungsfunktion nicht den erforderlichen Rückgabewert geliefert hat. Im Testprogramm habe ich dann folgenden Code zur Umwandlung gefunden:

    UTF8Encoding encodedIP = new UTF8Encoding();

    fds.rfd = libnodave.openSocket(102, encodedIP.GetBytes(„192.168.232.100“));

    was dann auch wunderbar funktioniert hat.

    Vielen Dank nochmal für die schnelle Hilfe und die ganze Arbeit.

    LG

    Marco

    Kommentar: Marc – 19. April 2013 @ 13:58

Leave a comment

Seiten

Kategorien

Suchen


RSS-Feeds

Blogroll

Meta

 

© Marco – Powered by WordPress – Design: Vlad (aka Perun)