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

Seite 3 von 7 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 64

Thema: Libnodave auf 64Bit kompilieren???

  1. #21
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Böse


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Zottel Beitrag anzeigen
    Wenn das geht, eventuelle Erkenntnisse auf Libnodave zurückübertragen.
    Hallo Zottel,
    ich habe Dein nodave.c und setport.c in unsere rlllib mit eingebunden.
    Dazu waren folgende #defines notwendig:
    # LITTLEENDIAN and LINUX is only for libnodave to work
    DEFINES += LITTLEENDIAN
    unixEFINES += LINUX

    Dann funktioniert es auch mit 64 Bit unter Linux.

    Hier der qmake pro file zur Erzeugung des Makefile
    ###############################################################
    TEMPLATE = lib
    #CONFIG = warn_on release Hilscher qt
    #CONFIG = warn_on release staticlib
    CONFIG = warn_on release
    CFLAGS = -pipe -Wall -W -O0 -march=i586 -mcpu=i686 -fmessage-length=0 -DNO_DEBUG -fPIC
    # LITTLEENDIAN and LINUX is only for libnodave to work
    DEFINES += LITTLEENDIAN
    unixEFINES += LINUX
    unix:QMAKE_LFLAGS += -lpthread -Wl --no-undefined -pthread
    macxEFINES += unix
    macxEFINES += PVMAC

    HEADERS = rllib.h \
    rlspawn.h \
    rlwthread.h \
    rlthread.h \
    rlsocket.h \
    rltime.h \
    rlmailbox.h \
    rlfifo.h \
    rlsharedmemory.h \
    rlspreadsheet.h \
    rlinifile.h \
    rlinterpreter.h \
    rlpcontrol.h \
    rlcutil.h \
    rldefine.h \
    rlevent.h \
    rleventlogserver.h \
    rldataprovider.h \
    rlserial.h \
    rlmodbus.h \
    rlmodbusclient.h \
    rl3964r.h \
    rlsiemenstcp.h \
    rlsiemenstcpclient.h \
    rlcontroller.h \
    rlppiclient.h \
    rlsvganimator.h \
    rlsvgcat.h \
    rlfileload.h \
    rlhistorylogger.h \
    rlhistoryreader.h \
    rlhilschercif.h \
    rludpsocket.h \
    rleibnetip.h \
    rlopcxmlda.h \
    rldataacquisition.h \
    rldataacquisitionprovider.h \
    rlstring.h \
    rlplc.h \
    rlwebcam.h \
    rlcommandlineinterface.h

    SOURCES = rlspawn.cpp \
    rlwthread.cpp \
    rlthread.cpp \
    rlsocket.cpp \
    rltime.cpp \
    rlmailbox.cpp \
    rlfifo.cpp \
    rlsharedmemory.cpp \
    rlspreadsheet.cpp \
    rlinifile.cpp \
    rlinterpreter.cpp \
    rlpcontrol.cpp \
    rlcutil.cpp \
    rlevent.cpp \
    rleventlogserver.cpp \
    rldataprovider.cpp \
    rlserial.cpp \
    rlmodbus.cpp \
    rlmodbusclient.cpp \
    rl3964r.cpp \
    rlsiemenstcp.cpp \
    rlsiemenstcpclient.cpp \
    rlcontroller.cpp \
    rlppiclient.cpp \
    rlsvganimator.cpp \
    rlsvgcat.cpp \
    rlfileload.cpp \
    rlhistorylogger.cpp \
    rlhistoryreader.cpp \
    rlhilschercif.cpp \
    rludpsocket.cpp \
    rleibnetip.cpp \
    rlopcxmlda.cpp \
    rldataacquisition.cpp \
    rldataacquisitionprovider.cpp \
    rlstring.cpp \
    rlplc.cpp \
    rlwebcam.cpp \
    rlcommandlineinterface.cpp \
    nodave.c \
    setport.c

    macx:SOURCES -= rlhilschercif.cpp

    Hilscher {
    HEADERS += rlcannode.h \
    rlcanopendaemon.h \
    rlcanopentypes.h \
    rlcanopenstructs.h \
    objdir.h \
    rlcanopenclient.h \
    rlcanopen.h
    SOURCES += rlcanopendaemon.cpp \
    rlcanopentypes.cpp \
    objdir.cpp \
    rlcanopenclient.cpp \
    rlcannode.cpp \
    rlcanopen.cpp
    INCLUDEPATH = ../usr-inc
    }

    #unix:OBJECTS += ../foreign/abel/lib/libabplc5.a
    #unix:OBJECTS += ../foreign/cell/lib/libcell.a
    #unix:OBJECTS += ../foreign/libnodave/openSocket.o
    #unix:OBJECTS += ../foreign/libnodave/setport.o
    #unix:OBJECTS += ../foreign/libnodave/nodave.o

    TARGET = rllib

    #unix:header.path = /usr/local/include/rllib
    #unix:header.files = *.h ../foreign/abel/lib/*.h ../foreign/cell/lib/*.h ../foreign/libnodave/*.h
    #unix:header.extra = mkdir -p /usr/local/include/rllib
    #unix:target.path = /usr/lib
    #unix:target.files = librllib.*
    #unix:INSTALLS = target header

    ##################################################################
    Unter Windows sieht es so aus:

    %mingwdir%\bin\gcc.exe nodave.c -o nodave_mingw.o -c -D_WIN32 -DBCCWIN -I%mingwdir%\include

    Aber eben nur 32 Bit ausprobiert.

    PS: Die Forensoftware macht mir die da rein

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

    Standard

    Zitat Zitat von Zottel Beitrag anzeigen
    Wenn das geht, eventuelle Erkenntnisse auf Libnodave zurückübertragen.
    Das werd Ich natürlich auf jeden Fall tun. Meine jetzigen Erweiterungen zu LibNoDave hab Ich dir ja auch schon zugeschickt!


    Hallo Zottel,
    ich habe Dein nodave.c und setport.c in unsere rlllib mit eingebunden.
    Dazu waren folgende #defines notwendig:
    # LITTLEENDIAN and LINUX is only for libnodave to work
    DEFINES += LITTLEENDIAN
    unixEFINES += LINUX

    Dann funktioniert es auch mit 64 Bit unter Linux.
    Mit 64 Bit unter Linux funzt ja auch die orginal DLL. Es geht halt unter Windows nicht! Wobei Ich nicht weis ob es unter Windows mit mingw geht, weis aber auch nicht ob dann die opensocketw oder opensocket verwendet wird. Mit opensocketw, ohne mingw läufts zumindest bbei mir unter 64 Bit noch nicht!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

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

    Standard

    So, die neuste LibNoDave scheint unter Windows nun auch in 64 Bit zu laufen. Das Problem waren wohl die falschen Socket aufrufe, welche Thomas_V2.1 in diesem Thread: http://www.sps-forum.de/showpost.php...&postcount=137 berichtete.

    Hab meine angepasste libnodave hier mal als 64 BIT Version angehängt, vieleicht braucht Sie ja jemand!
    Angehängte Dateien Angehängte Dateien
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren LibNoDave unter Windows 64 BIT  

  4. #24
    Registriert seit
    21.03.2009
    Beiträge
    18
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das klingt ja super. Leider wird gerade die Maschine, wofür ich das brauche abgebaut. Aber in ca. 2 Wochen bin ich zur Inbetriebnahme. Da werde ich die Lib auf jeden Fall testen.
    Nochmals vielen Dank für die Lib.

    Mike

  5. #25
    Registriert seit
    17.02.2006
    Ort
    Holland
    Beiträge
    47
    Danke
    23
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,

    Ich habe es mal ausprobiert, aber bekomme noch ein fehler, habe ein picture davon gemacht.
    Angehängte Grafiken Angehängte Grafiken
    **gruss aus Holland** Wieso SchreibFehler???

  6. #26
    Registriert seit
    21.03.2009
    Beiträge
    18
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    Du benutzt vermutlich die libnodave.net.dll. Ich glaube da waren noch ein paar Funktionen drin, die Integer statt IntPtr verwenden. Importiere mal den Code aus der Lib in Deine Anwendung. Dann sieht vielleicht an welcher Stelle die Lib stolpert oder z.B. ein Pointer statt einem Integer verwendet wird. Der Code ist im Download von Libnodave enthalten.

    Mike

  7. #27
    Registriert seit
    17.02.2006
    Ort
    Holland
    Beiträge
    47
    Danke
    23
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Mein anruf habe ich direct im code und nicht mit den "glue", So sieht meine anruf aus

    Private Declare Function daveNewInterface Lib "libnodave_jfkmod64.dll" (ByVal fd1 As Integer, ByVal fd2 As Integer, ByVal name As String, ByVal localMPI As Integer, ByVal protocol As Integer, ByVal speed As Integer) As IntPtr



    Vermutlich habe ich eine declaration falsh, aber welche?
    **gruss aus Holland** Wieso SchreibFehler???
    Zitieren Zitieren intPtr  

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

    Standard

    Zitat Zitat von Ruud Beitrag anzeigen
    Mein anruf habe ich direct im code und nicht mit den "glue", So sieht meine anruf aus

    Private Declare Function daveNewInterface Lib "libnodave_jfkmod64.dll" (ByVal fd1 As Integer, ByVal fd2 As Integer, ByVal name As String, ByVal localMPI As Integer, ByVal protocol As Integer, ByVal speed As Integer) As IntPtr



    Vermutlich habe ich eine declaration falsh, aber welche?

    Bei mir sieht die in CSharp so aus:
    Code:
    [DllImport("libnodave_jfkmod64.dll", EntryPoint = "daveNewInterface")]
    private static extern IntPtr daveNewInterface(daveOSserialType fd, [MarshalAs(UnmanagedType.LPStr)] string name, int localMPI, int useProto, int speed);
    wobei daveOSserialType folgender Struct ist:
    Code:
    public struct daveOSserialType {
                public IntPtr rfd;
                public IntPtr wfd;
            }
    also denke Ich der Fehler liegt in "int fd1" und "int fd2"
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  9. Folgender Benutzer sagt Danke zu Jochen Kühner für den nützlichen Beitrag:

    Ruud (25.03.2011)

  10. #29
    Registriert seit
    17.02.2006
    Ort
    Holland
    Beiträge
    47
    Danke
    23
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Da habe ich noch was arbeit zu verichten, die newinterface funktioniert jetzt.
    **gruss aus Holland** Wieso SchreibFehler???
    Zitieren Zitieren IntPtr  

  11. #30
    Registriert seit
    21.03.2009
    Beiträge
    18
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich konnte leider erst heute die dll ausprobieren. Bei mir gibt die dll bei
    connectPLC eine -1 (also Fehler) zurück. Hast Du die dll zu laufen bekommen. Wenn ja, könntest Du das Project ins Netz stellen oder hast Du eine neue Version? Ich kann leider immer nur mit der 32Bit Version arbeiten. Bis zu connectPLC sieht auch alles OK aus und bei connectPLC kann mann ja auch nicht viel falsch machen (Parameter).
    Ich hoffe, es gibt noch weitere Erkentnisse.

    Mike

Ähnliche Themen

  1. Win7: 32 oder 64bit? ...und wenn 64bit: dann auch eine VM mit 32bit dazu?
    Von Perfektionist im Forum PC- und Netzwerktechnik
    Antworten: 9
    Letzter Beitrag: 29.07.2010, 15:34
  2. LibNodave 64bit write error on Linux
    Von 3electrons im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 23.04.2010, 19:42
  3. S7-Programm übersetzen/kompilieren?
    Von SPSstudent im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 16.12.2009, 00:40
  4. Antworten: 5
    Letzter Beitrag: 22.11.2006, 21:26
  5. libnodave mit DevC++ kompilieren
    Von Thomas_v2.1 im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 20.11.2006, 01:08

Lesezeichen

Berechtigungen

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