EduardLucas
Level-1
- Beiträge
- 6
- Reaktionspunkte
- 0
Wenn auf dem WinXP-PC nicht zufällig Step7 oder SimaticNET drauf ist, dann dürfte das Problem wohl hier liegen:ich sehe dein problem nicht
AFAIK werden USB-Adapter auf Windows-PCs nur per S7Onlinx.dll unterstützt, und dafür muß die entsprechende Software von Siemens installiert sein.Vorhandener USB-MPI Adapter 6ES7-972-0CB20-0AX0
Schau Dir mal die testS7online.c an, da sollten die Antworten auf Deine Fragen drin stehen. In der Systemsteuerung mußt Du übrigens bei der PG/PC-Schnittstelle einen Zuganspunkt für den Zugriff über den USB-Adapter einstellen. Das ist dann der Zugangspunkt, den Du bei der testS7online.exe verwenden mußt.Das heist im Klartext, wie muss ich ein Testprogramm für USB-Parametrieren, um nur einmal Daten von der SPS auslesen zu können (hab leider immer nur beispiele für com gefunden)
Und wie geht es weiter: Wie würde ein C Programmcode schnipsel aussehen in dem ich werte von libnodave in eine integer variable lade.
Du kannst auch S7ONLINE als Namen des Zugangspunktes verwenden. Das ist derjenige, den Step7 benutzt. Nachteil: Step7 und Libnodave können nicht auf verschiedene Adapter und SPS zugreifen. Vorteil: Du kannst mit Step7 probieren, ob Zugangspunkt und Verbindunpsparameter funktionieren.In der Systemsteuerung mußt Du übrigens bei der PG/PC-Schnittstelle einen Zuganspunkt für den Zugriff über den USB-Adapter einstellen. Das ist dann der Zugangspunkt, den Du bei der testS7online.exe verwenden mußt.
Sehe ich das richtig das ich nur den inhalt meines db´s nicht bekomme weil das testprogramm versucht 2 kb auf einmal zu lesen, und das meine 313 cpu nicht verkraftet?
Von mir stammt nur das, was für Delphi und Lazarus gemacht ist. Der ganze Rest ist Zottels geniales Werk ...Ich hab es auch schon öfters mit einem Beispiel probiert das, denke ich, von Axel stammen müsste:
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.allerdings bekomme ich beim kompilieren folgende fehlermeldungen:Code:_daveOSserialType fds; daveInterface * di; daveConnection * dc; int res; fds.rfd=setPort('COM1', '38400', 'O'); ...
fds.rfd=setPort('COM1', '38400', 'O');
^^
Zu viele Zeichen in der Konstante "setPort": Bezeichner wurde nicht gefunden
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.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.
Das ändert natürlich einiges ...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.
Dann fangen wir doch gleich mal an:So, ich hoffe das ihr mir trotz manchen missverständnissen trotzdem weiterhelfen könnt
Das ist logisch, die Baudrate muß als Zeichenkette übergeben werden, ist in der setPort so definiert.Dazu die Entsprechende Fehlermeldung:Code:fds.rfd=setPort('COM1',38400,'o');
(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
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.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
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?