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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Starthilfe für Libnodave + USB Adapter für Visualisierung

  1. #11
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe keine Lust, anderer Leute Code zu lesen. Auf Anhieb sehe ich aber keine includes, wie soll dein Compiler also setport kennen?
    Für eine Konsolenanwendung brauchst du doch nur an testS7online.c ein paar Kleinigkeiten zu verändern. ICH compiliere das mit gnu make und Microsoft C++ unter Linux und Wine, MAKEFILE.VC.WINE. Es sind aber auch Makefiles und Batchdateien für Windoof da.
    Wer es mit der IDE machen will, muß selbst wissen, wie das geht, ich habe keine.

  2. #12
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard

    Zitat Zitat von EduardLucas Beitrag anzeigen
    Ich hab es auch schon öfters mit einem Beispiel probiert das, denke ich, von Axel stammen müsste:
    Von mir stammt nur das, was für Delphi und Lazarus gemacht ist. Der ganze Rest ist Zottels geniales Werk ...

    Zitat Zitat von EduardLucas Beitrag anzeigen
    Code:
    _daveOSserialType fds;
    daveInterface * di;
    daveConnection * dc;
    int res;
    fds.rfd=setPort('COM1', '38400', 'O');
    ...
    allerdings bekomme ich beim kompilieren folgende fehlermeldungen:

    fds.rfd=setPort('COM1', '38400', 'O');
    ^^
    Zu viele Zeichen in der Konstante "setPort": Bezeichner wurde nicht gefunden
    Da der Compiler daveInterface und daveConnection kennt, hast Du den Include für die nodave.h wohl drin, aber der für die setport.h fehlt wohl, und daher findet der Compiler wohl eine falsche, aber gleichlautende Funktion in der Standardbibliothek.

    Zottel mag mich korrigieren, aber AFAIK brauchst Du setPort für die Kommunikation per s7online überhaupt nicht. Das richtige Beispiel dafür findest Du auch nicht in der testMPI.c, sondern in der testS7online.c (hatte ich bereits erwähnt ... ).


    Gruß Axel
    Man muß sparn wo mn knn!

  3. #13
    Avatar von EduardLucas
    EduardLucas ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.09.2007
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo

    wieso das ich nun auf das einfache c beispiel umgestiegen bin und nicht einfach die tests7online.c neu kompiliere?
    Weil ich die Dinger einfach nicht durch meinen Compiler bringe
    Ich kann gerne die Fehlermeldungen hier posten wenn sie gewünscht sind, denn ich würd schon lieber mit der s7online version weitermachen.
    Ich habe es eben hier weiterversucht da ich hier mittlerweile nur noch 1 Fehlermeldung anstatt 12 erhalte.


    Also hier nochmal den verw. Code:

    #define BCCWIN
    #include "nodave.h"
    #include "setport.h"
    #include <stdio.h>

    int main(){
    _daveOSserialType fds;
    daveInterface * di;
    daveConnection * dc;
    int res;
    fds.rfd=setPort('COM1',38400,'o');
    fds.wfd=fds.rfd;
    if (fds.rfd > 0) {
    di = daveNewInterface(fds, "IF1", 1, daveProtoMPI, daveSpeed187k);
    daveSetTimeout(di,5000000);
    if (daveInitAdapter(di) == 0) {
    dc = daveNewConnection(di, 2, 0, 3);
    if (daveConnectPLC(dc) == 0) {
    if (daveReadBytes(dc, daveDB, 1, 0, 2, NULL) == 0) {
    res = daveGetS16(dc);
    }
    }
    }
    }

    }

    Dazu die Entsprechende Fehlermeldung:
    (die incl. "setport.h" hatte ich vorher auch drin)
    1>c:\cworkplace\nodav\nodav\main.cpp(11) : error C2664: 'setPort': Konvertierung des Parameters 1 von 'int' in 'char *' nicht möglich
    1> Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat

    wenn ich die Baudrate noch in hochkommas stelle erhalte ich noch folgenden error zusätzlich:
    1>c:\cworkplace\nodav\nodav\main.cpp(11) : error C2015: Zu viele Zeichen in der Konstante

    Verwendete Compiler:
    Dev C++;Visual Studio 8.0; Visual C++ 2005 Express Edition

    mfg michi

  4. #14
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard

    Zitat Zitat von EduardLucas Beitrag anzeigen
    wieso das ich nun auf das einfache c beispiel umgestiegen bin und nicht einfach die tests7online.c neu kompiliere?
    Weil ich die Dinger einfach nicht durch meinen Compiler bringe
    Ich kann gerne die Fehlermeldungen hier posten wenn sie gewünscht sind, denn ich würd schon lieber mit der s7online version weitermachen.
    Ich habe es eben hier weiterversucht da ich hier mittlerweile nur noch 1 Fehlermeldung anstatt 12 erhalte.
    In Deinem ersten Post steht, daß Du unter WinXP mit einem USB-MPI-Adapter per libnodave mit einer SPS kommunizieren willst. Libnodave unterstützt USB unter WinDoof nicht native. USB kannst Du nur per Umweg über S7online verwenden. Die testMPI.c ist für direkte Kommunikation mit dem MPI-Adapter gemacht, ist also nicht das einfachere Beispiel im Vergleich zu testS7online.c, sondern das Beispiel für ein komplett anderen Kommunikationsweg.

    Glaub's mir endlich, selbst wenn Du in der testMPI.c weniger Compilerfehler bekommst, bringt die Dich nicht schneller ans Ziel, weil Du mit der fertigen .exe mit Deiner Hardware unter Windows ganz einfach nichts (nothing, rien, nada, niente) anfangen kannst.

    Compilier die testS7online.c, und stell die Fehlermeldungen hier rein, dann haben wir wenigstens 'ne Chance, Dir zu helfen.


    Gruß Axel
    Man muß sparn wo mn knn!

  5. #15
    Avatar von EduardLucas
    EduardLucas ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.09.2007
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Servus,

    Ich will euch natürlich nicht die Chance nehmen mir zu helfen das war so ziemlich das letzte was ich mit meinen fragen hier erreichen will.

    Was ich euch natürlich hätte sagen sollen, das ich mir schon länger einen Siemens Com/Mpi Adapter besorgt habe, und auf der com schiene weitermachen werde, aufgrund weniger fehlermeldungen.

    So, ich hoffe das ihr mir trotz manchen missverständnissen trotzdem weiterhelfen könnt

    mfg michi

  6. #16
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von EduardLucas Beitrag anzeigen
    Was ich euch natürlich hätte sagen sollen, das ich mir schon länger einen Siemens Com/Mpi Adapter besorgt habe, und auf der com schiene weitermachen werde, aufgrund weniger fehlermeldungen.
    Das ändert natürlich einiges ...

    Zitat Zitat von EduardLucas Beitrag anzeigen
    So, ich hoffe das ihr mir trotz manchen missverständnissen trotzdem weiterhelfen könnt
    Dann fangen wir doch gleich mal an:

    Zitat Zitat von EduardLucas Beitrag anzeigen
    Code:
    fds.rfd=setPort('COM1',38400,'o');
    Dazu die Entsprechende Fehlermeldung:
    (die incl. "setport.h" hatte ich vorher auch drin)
    1>c:\cworkplace\nodav\nodav\main.cpp(11) : error C2664: 'setPort': Konvertierung des Parameters 1 von 'int' in 'char *' nicht möglich
    1> Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
    Das ist logisch, die Baudrate muß als Zeichenkette übergeben werden, ist in der setPort so definiert.

    Zitat Zitat von EduardLucas Beitrag anzeigen
    wenn ich die Baudrate noch in hochkommas stelle erhalte ich noch folgenden error zusätzlich:
    1>c:\cworkplace\nodav\nodav\main.cpp(11) : error C2015: Zu viele Zeichen in der Konstante
    Die Meldung betrifft die beiden Parameter name und baud der Funktion setPort. Du setzt die Parameter in einfache Hochkommas, aber bei C werden Zeichenketten in Doppelhochkommas gesetzt. Beim Parameter parity wiederum handelt es sich um ein einzelnes Zeichen (char), das wird bei C in einfache Hochkommas gesetzt.


    Gruß Axel
    Man muß sparn wo mn knn!

Ähnliche Themen

  1. Libnodave kleine Starthilfe benötigt
    Von ich988 im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 20.10.2011, 22:38
  2. Antworten: 24
    Letzter Beitrag: 23.01.2011, 14:19
  3. Visualisierung mit Libnodave?
    Von Backdoor im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 11.06.2010, 18:42
  4. libnodave Starthilfe
    Von Rofagang im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 17.03.2008, 15:01
  5. Simple Visualisierung mit LibnoDave
    Von Jochen Kühner im Forum HMI
    Antworten: 22
    Letzter Beitrag: 14.08.2006, 14:01

Lesezeichen

Berechtigungen

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