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

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 42

Thema: S7 <> PC über Ethernet

  1. #31
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Zottel
    Soweit ich weiß, ist etwa die AGLink.dll in allen Unterverzeichnissen dieselbe. Libnodave funktioniert darüberhinaus auch auf Linux auf PCs und, nach Angaben von Nutzern, auf Linux mit ARM-Prozessor und FreeBSD.
    Hi,
    ich habe mir die verschiedenen produkte wie aglink, libnodave und andere mal näher angesehen und denke, dass aglink und libnodave kaum vergleichbar sind. aglink läuft zwar nur unter w32, unterstützt aber wesentlich mehr hardware wie libnodave, wie auch die cps, welche in den siemens pcs verbaut sind. leider muss ich prodave von siemens einsetzen, da mein chefe siemenshörig ist.

    ciao

    markus

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

    Standard

    Zitat Zitat von Anonymous
    .... aglink läuft zwar nur unter w32, unterstützt aber wesentlich mehr hardware wie libnodave, wie auch die cps, welche in den siemens pcs verbaut sind.
    Wobei AgLink (und wohl auch Prodave) die darunterliegenden Treiber und den Mechanismus zur "Einstellung der PG-Schnittstelle" nutzen. Beides ist nicht ohne weiteres auf andere Systeme portierbar. Insbesondere gibt es keine frei verfügbaren Informationen über die Hardware der CPs, mittels derer man Treiber schreiben könnte.

  3. #33
    Registriert seit
    17.06.2003
    Beiträge
    42
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hi,

    hier mal ein kleines Zwischenergebnis unserer Prüfung:

    1. Borland installiert:

    War leider ien Fehler dafür den gleichen Rechner zu verwenden, danach habe ich 31 Fehler unter MVC gesucht die ich vorher nicht hatte.
    Das Ergebnis war, daß Borland die Installationsvariabeln umschreibt, so daß MVC die Pfade nicht mehr findet.
    Eine Neuinstallation von MVC löste das Problem.

    2. Eine Kompilierung des Projekts ist unter MVC möglich (neue Version von Libnodave), jedoch scheint er bei der Erstellung ein Problem mit "daveDebug" zu haben.

    3. Klammert man "daveDebug" aus, so schaffen wir es, daß der Kompiler beim erstellen, diesen Fehler ingnoriert.
    Jedoch bekommen wir dann den Fehler:
    "libnodave_3_240405.obj : error LNK2001: Nichtaufgeloestes externes Symbol "__declspec(dllimport) void __cdecl _daveDump(char *,unsigned char *,int)" (__imp_?_daveDump@@YAXPADPAEH@Z)"

    Aber das liegt ja daran, daß wir die DLL nicht einbinden können.

    4. Auf Borland schaffen wir es, daß alles Fehlerfrei kompiliert und erstellt wird. Naja bis auf eine Warnung, aber die eher unwichtig ist, weil die Variabel einfach nicht benutzt wird.
    Beim erstellen der Datei, was auch erfolgreich passiert, haben wir das Ergebnis, daß unsere Datei nichts macht. Der Inhalt entspricht der "testISO_TCP".

    Unsere Vermutung ist erstmal, unsere Unkenntnis im Umgang mit Borland.
    Ist doch schon ein bischen anders aufgebaut als MVC.

    5. Das konvertieren der DLL mit "LIB.EXE" hat auch kein positives Ergebnis gebracht. Auch LIB.EXE sagt. daß die Datei beschädigt ist.


    -> Morgen werden wir mal mit unserem Lehrer erstmal alles durchgehen, um herauszufinden ob wir irgendwo was übersehen haben, oder falsch gemacht haben.

    Joker

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

    Standard

    Zitat Zitat von joker76
    Hi,

    hier mal ein kleines Zwischenergebnis unserer Prüfung:

    1. Borland installiert:

    War leider ien Fehler dafür den gleichen Rechner zu verwenden, danach habe ich 31 Fehler unter MVC gesucht die ich vorher nicht hatte.
    Das Ergebnis war, daß Borland die Installationsvariabeln umschreibt, so daß MVC die Pfade nicht mehr findet.
    Eine Neuinstallation von MVC löste das Problem.
    Dazu kann ich natürlich gar nichts sagen.
    Zitat Zitat von joker76
    2. Eine Kompilierung des Projekts ist unter MVC möglich (neue Version von Libnodave), jedoch scheint er bei der Erstellung ein Problem mit "daveDebug" zu haben.
    Weil ich ja so etwas auch vermutet habe, habe ich euch doch die geänderte Version geschickt (Als Anhang hier im Forum).
    Zitat Zitat von joker76
    3. Klammert man "daveDebug" aus, so schaffen wir es, daß der Kompiler beim erstellen, diesen Fehler ingnoriert.
    Jedoch bekommen wir dann den Fehler:
    "libnodave_3_240405.obj : error LNK2001: Nichtaufgeloestes externes Symbol "__declspec(dllimport) void __cdecl _daveDump(char *,unsigned char *,int)" (__imp_?_daveDump@@YAXPADPAEH@Z)"

    Aber das liegt ja daran, daß wir die DLL nicht einbinden können.

    4. Auf Borland schaffen wir es, daß alles Fehlerfrei kompiliert und erstellt wird. Naja bis auf eine Warnung, aber die eher unwichtig ist, weil die Variabel einfach nicht benutzt wird.
    Beim erstellen der Datei, was auch erfolgreich passiert, haben wir das Ergebnis, daß unsere Datei nichts macht. Der Inhalt entspricht der "testISO_TCP".
    Warnungen sind keine Fehler! Bei der kompletten Erstellung von libnodave mit BCC gibt es eine ganze Reihe (20+?) Warnungen. Ein Teil davon wäre auch bei sorgfältiger Überarbeitung des Codes nicht vermeidbar.
    "Nichts macht" ist mir schon wieder viel zu ungenau.
    Zitat Zitat von joker76
    Unsere Vermutung ist erstmal, unsere Unkenntnis im Umgang mit Borland.
    Ist doch schon ein bischen anders aufgebaut als MVC.
    Um die dll und alle Testprogramme zu kompilieren, sollte es reichen die Datei winmake.bat zu starten. Vorraussetzung: Libnodave befindet sich im Verzeichnis BCC/libnodave-x.x.x.
    Dabei wird das Make-Tool von Borland mit der der Datei Makefile.MAK aufgerufen. Um diesen Mechanismus zur Kompilierung eigener Programme zu nutzen, entweder:
    1. Eine entsprechende Zeile in Makefile.MAK einfügen.
    2. Oder testISO_TCP so verändern, daß es das macht, was ihr wollt.
    Eins noch: Die Testprogramme werden "statisch" gelinkt. Sie benutzen libnodave.dll gar nicht! Statt dessen binden sie direkt die Objekt-Dateien nodave.obj und setportw.obj bzw openSocketw.obj ein.
    mit: ../imake -fMakefile.MAK dynamic
    oder winmake.bat dynamic (hoffe, das geht)
    wird eine 2. Serie von Testprogrammen erzeugt, die so heißen wie die statischen, mit einem zusätzlichen "d" also testISO_TCPd.exe u.s.w. .Diese benutzen libnodave.dll.
    Zitat Zitat von joker76
    5. Das konvertieren der DLL mit "LIB.EXE" hat auch kein positives Ergebnis gebracht. Auch LIB.EXE sagt. daß die Datei beschädigt ist.
    -> Morgen werden wir mal mit unserem Lehrer erstmal alles durchgehen, um herauszufinden ob wir irgendwo was übersehen haben, oder falsch gemacht haben.

  5. #35
    Registriert seit
    17.06.2003
    Beiträge
    42
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hallo,

    also wir habe uns gestern wieder um die Sache gekümmert.

    Hier mal das Ergebnis (zur Info):

    1. Das Ausführen von Winmake.bat ist daran gescheitert, das wir das Make-Tool von Borland nicht hatten.

    Das von MVC geliefert Tool heißt: nmake.exe , interpretiert leider das
    Makefile.mak nicht richtig und hat Probleme mit der Verzeichnisangabe.

    Ein korrektur der Makfile.mak-Datei , brachte uns dann ein kleines Stück weiter, jedoch versagte die Erstellung der *.Exe-Dateien.

    2. Nach etwas forschen haben wir herausgefunden, das der Compiler von Borland 5.5 verwendet wurde. Der von Borland 6.0 ist leider nicht kompatibel und führt auch zu keinen positiven Ergebnis.

    3. Nachdem wir uns den Compiler von Borland 5.5 besorgt hatten, und zu unseren Glückseligkeit die make.exe mit vorhanden war, haben wir Winmake erneut aufgerufen.

    4. Seit gestern können wir erfolgreich eine Verbindung zu unseren S7-Steuerung aufbauen und die gewünschten Daten auslesen.
    Ein for-Schleife sorgt dafür das wir alle 64 Ventil-Zustände auslesen. Mit dem Parameterzusatz >testfile.csv bekommen wir auch alles in eine Datei. Echt easy!

    5. Jetzt brauchen wir nur noch alles aus dem C-file rauszunehmen was wir nicht brauchen.



    Und an dieser Stelle, wollen wir uns nochmal für die freundliche Unterstützung von Zottel bedanken.
    Joker

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

    Standard

    Zitat Zitat von joker76
    Hallo,
    4. Seit gestern können wir erfolgreich eine Verbindung zu unseren S7-Steuerung aufbauen und die gewünschten Daten auslesen.
    Gut. Scheiße, daß Borland 6 nicht mit 5.5 kompatibel ist. Ich werde das kenntlich machen.
    Ein for-Schleife sorgt dafür das wir alle 64 Ventil-Zustände auslesen. Mit dem Parameterzusatz >testfile.csv bekommen wir auch alles in eine Datei. Echt easy!
    Schön. Ein Wort noch zur Schleife:
    die Schleife sollte so aussehen:

    daveReadBytes(dc, bla,bla,,bla,64,NULL);
    for (i=0;i<64;i++) {
    wert=daveGetU8(dc);
    fprintf("<format>", wert);
    }

    oder für Worte:

    daveReadBytes(dc, bla,bla,,bla,128,NULL);
    for (i=0;i<64;i++) {
    wert=daveGetU16(dc);
    fprintf("<format>", wert);
    }

    Aber auf KEINEN FALL:

    for (i=0;i<64;i++) {
    daveReadBytes(dc, bla,bla,,bla,1,NULL);
    wert=daveGetU8(dc);
    fprintf("<format>", wert);
    }

    64 Bytes oder auch 64 Worte kann man in einem einzigen Aufruf von daveReadBytes lesen (vielleicht nicht bei einer 212).
    Aufrufe von daveReadBytes(dc, bla,bla,,bla,1,NULL) kommunizieren wirklich mit der CPU und brauchen richtig viel Zeit.
    wert=daveGetU8(dc); hingegen ist nur "Umschaufeln" im Speicher des PC.

  7. #37
    Registriert seit
    17.06.2003
    Beiträge
    42
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Ich habe bestehende Funktion wie folgt abgeändert:

    res=daveReadBytes(dc,daveDB,301,260,128,NULL);
    if(0==res) {

    for (i=1;i<65;i++)
    {

    a=daveGetWORD(dc);
    printf("%d,ESG00%i \n",a,dc);
    }

    ...


    ??? Die Werte werden korrekt ausgelesen.
    Joker

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

    Standard

    Zitat Zitat von joker76
    for (i=1;i<65;i++)
    {

    a=daveGetWORD(dc);
    printf("%d,ESG00%i \n",a,dc);
    }
    Ich kanns ja nicht lassen:
    for (i=0;i<64;i++)
    ist immer dann empfehlenswert, wenn man Arrays indiziert. Es ist aber möglicherweise auch schneller und kürzer als
    for (i=1;i<65;i++)
    weil der Compiler für j=1 eine Konstante anspricht "MOX EAX,1", während er für j=0 ein "XOR EAX,EAX" einsetzen kann.
    for (i=64;j>0;--) ist möglicherweise noch schneller, weil die meisten Prozessoren so einen Befehl wie "zähle runter und springe bei nicht 0" haben (LOOP auf dem x86).
    Hier kommt's bestimmt nicht drauf an, aber wenn man sich das so angewöhnt ist es hier und da zum Vorteil.

  9. #39
    Registriert seit
    17.06.2003
    Beiträge
    42
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    for (i=1;i<65;i++)
    hui,

    hab es falsch vom Laptop abgeschrieben.
    Es soll heißen: (i=0;i<65;i++)

    Die 65 habe ich reingetan, weil er mir das letzte Integer-Wort nicht mir übertragen hat.

    [/code]
    Joker

  10. #40
    Registriert seit
    25.09.2005
    Ort
    Neuss
    Beiträge
    278
    Danke
    11
    Erhielt 31 Danke für 29 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi !

    Auch wenn der Thread schon was älter ist, nutze ich Ihn mal für meine Frage, weil das Bisherige da schon zu passt:

    "Gibt es eine Möglichkeit / Tool, um z.B. über Delphi auch auf PLCSIM zu zugreifen, um die z.B. die DB's auszulesen / zu beschreiben?"

    Die Sachen, die ich bisher kenne (Prodave), machen den Verbindungsaufbau grundsätzlich über die physikalische Schnittstelle (z.B. COM1).

Ähnliche Themen

  1. S7 über Ethernet an MP
    Von Nadya im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.04.2011, 08:03
  2. Antworten: 0
    Letzter Beitrag: 08.01.2010, 16:34
  3. Antworten: 33
    Letzter Beitrag: 10.02.2009, 21:14
  4. Antworten: 2
    Letzter Beitrag: 25.09.2008, 10:34
  5. DMX über Ethernet
    Von maxi im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 18.06.2006, 16:29

Lesezeichen

Berechtigungen

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