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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: Opc???

  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
    Hier mal etwas Beispielcode.
    1. Das Archiv hat die Erweiterung .tar.gz Das ist-Linux-Standard. Für's Forum hab' ich noch .zip dahintergehängt, weil zip eine der wenigen erlaubten Erweiterungen ist. Das müßt ihr halt wieder wegmachen, dann kann WinZip oder so es auch aufmachen. Wer also nicht weiß, wie er auch seinem Windoof den ganzen Namen zu sehen bekommt, hat schon verloren...

    Die ausfühbare Datei libnodaveOpc.exe benötigt zum Laufen Lightopc.dll und unilog.dll aus dem Lightopc-Projekt. Aus rechtlichen Bedenken hänge ich die hier nicht dran.
    Lightopc.lib und unilog.lib entstehen bei der Übersetzung von LightOpc und deren Logging-dll unilog.dll. Mittels der .lib-Dateine sollte der Source-Code aber übersetzt und gelinkt werden können. Das MAKEFILE.VC.WINE kann als Vorbild dienen bezüglich der Optionen von Compiler und Linker (Nein, ich habe keine IDE von Winzigweich und kann auch nicht damit umgehen).

    Der OPC-Server ist nur ein Beispiel, daß es geht. Er liefert nur zwei Variablen, die fest aus MD12 und MD16 stammen. Ein "vernünftiger" OPC-Server sollte aus einer Konfigurationsdatei lesen, welche Variablen mit welchem Namen wo in der SPS zu finden sind.

    Viel Spaß!
    Angehängte Dateien Angehängte Dateien

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

    Standard

    Zitat Zitat von niox Beitrag anzeigen
    Hab mir ein S7-300 315-2DB und MPI Adapter 6ES7 972-0CA33-0XA0 genommen. Libnodave runtergeladen, das VB Beispiel aufgemacht dann dumm aus der Wäsche gekuckt! Dann mal lesen angefangen

    Fehler in Zeile : ?Private Declare Function internalDaveGetBlockInfo Lib "libnodave.dll" Alias "daveGetBlockInfo" (ByVal dc As Long, ByRef buffer as byte, ByVal type as Long, ByVal number as Long) As Long?

    Ich wollte eigentlich eine kleine Visu in VB um einfach einen Eingang der SPS anzeigen zu können, so zum testen.


    Nun weis ich nicht ganz was ich mit den ganzen Sourcecode machen soll der da im zip dabei ist )
    Na erst mal lesen?.


    SG niox
    Das meiste brauchst du nicht. Nimm mal Excel, mach ein leeres Blatt auf, öffne den VBA Editor, importiere die Datei Modul12.bas
    Wenn es Meckerei gibt wegen daveGetBlockInfo, kommentiere die Deklaration einfach aus, du wirst sie nicht brauchen.
    Schau dir die Funktion initialize an. Da findest du für verschiedene Kommunikationswege vorbereitete Programmzeilen und je nachdem, was du brauchst, nimmst du das "rem" vor der passenden Zeile weg.
    Geh zurück zum Excel-Arbeitsblatt, führe einmal das Makro initTable aus.
    Jetzt sollte was im Arbeitsblatt stehen und du kannst deine MPI-Adresse oder die IP-Adresse deines CPs oder NetLinks in die passende Zelle schreiben.
    Nun führe das Makro readFromPLC aus und du solltest Werte aus der SPS bekommen.

  3. #13
    BOBZ ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.01.2007
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also fange ich mal an libnodave zu erforschen wenn jemand eine Hilfe oder brauchbare Docs hat wäre ich sehr dankbar.

    Mfg
    Bobz

  4. #14
    Registriert seit
    23.03.2005
    Beiträge
    31
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe den Thread hier gefunden und hätte mal ein, zwei Fragen an die Spezialisten:
    Ich suche gerade für eine eigenentwickelte Visualisierung (unter Visual Studio 2005
    und mit C# geschrieben) eine geeignete Schnittstelle zur S7-317 mit CP343-1.

    Würdet Ihr mir zu einem kommerziellen OPC-Server (wir haben hier eine IBH-Lizenz) oder Libnodave raten? Ich lese zyklisch einen kompletten Datenbaustein aus (etwa 3kB) und schreibe, sobald eine Benutzereingabe erkannt wird, einen weiteren DB, auch etwa 3kB groß. Weiterhin werden zur Parametrierung noch ein paar weitere DB`s übertragen, aber nur sehr selten, so daß es hier nicht sehr auf die Übertragungszeit ankommt.

    Wie ist die Performance von Libnodave im Vergleich zu einem OPC-Server? Womit geht das Auslesen schneller? Ich wollte schon eine Refresh-Rate beim Lesen der Prozessparameter von etwa 100ms bis 200ms erreichen...

    Ist Libnodave Eurer Meinung nach einfach zu implementieren, oder sind da besondere Klimmzüge notwendig?

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

    Standard

    Zitat Zitat von Olav Beitrag anzeigen
    Wie ist die Performance von Libnodave im Vergleich zu einem OPC-Server?
    Libnodave kann nur gleich oder besser sein, weil es die Geschwindigleit liefert, die CPU und Kommunikationsweg zulassen.
    Zitat Zitat von Olav Beitrag anzeigen
    Ich wollte schon eine Refresh-Rate beim Lesen der Prozessparameter von etwa 100ms bis 200ms erreichen...
    Kommt auf Kommunikationsweg und Umfang an. Ein DB von 3kB muß von einer 300er CPU in Häppchen von 222 Byte übertragen werden. Also 13 Teile. Mit seriellem MPI-Adapter sind da 3 bis 4 pro Sekunde drin, also eher 4000ms
    Zitat Zitat von Olav Beitrag anzeigen
    Ist Libnodave Eurer Meinung nach einfach zu implementieren, oder sind da besondere Klimmzüge notwendig?
    Meiner Meinung nach ist es schon implementiert. Es ist auch ein Beispiel in C# dabei.

  6. #16
    Registriert seit
    23.03.2005
    Beiträge
    31
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Zottel Beitrag anzeigen
    Kommt auf Kommunikationsweg und Umfang an. Ein DB von 3kB muß von einer 300er CPU in Häppchen von 222 Byte übertragen werden. Also 13 Teile. Mit seriellem MPI-Adapter sind da 3 bis 4 pro Sekunde drin, also eher 4000ms
    Ähem, hatte ich vergessen zu erwähnen, daß ich über TCP/IP und den CP343 kommunizieren möchte? Hoffe, die Übertragung geht damit schneller...

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

    Standard

    Zitat Zitat von Olav Beitrag anzeigen
    Ähem, hatte ich vergessen zu erwähnen, daß ich über TCP/IP und den CP343 kommunizieren möchte? Hoffe, die Übertragung geht damit schneller...
    Auf jeden Fall.
    testISO_TCP -b [IP-Adresse vom CP]
    zeigt dir, was drin ist.

  8. #18
    Registriert seit
    28.03.2004
    Beiträge
    62
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Zottel Beitrag anzeigen
    Das meiste brauchst du nicht. Nimm mal Excel, mach ein leeres Blatt auf, öffne den VBA Editor, importiere die Datei Modul12.bas
    Wenn es Meckerei gibt wegen daveGetBlockInfo, kommentiere die Deklaration einfach aus, du wirst sie nicht brauchen.
    Schau dir die Funktion initialize an. Da findest du für verschiedene Kommunikationswege vorbereitete Programmzeilen und je nachdem, was du brauchst, nimmst du das "rem" vor der passenden Zeile weg.
    Geh zurück zum Excel-Arbeitsblatt, führe einmal das Makro initTable aus.
    Jetzt sollte was im Arbeitsblatt stehen und du kannst deine MPI-Adresse oder die IP-Adresse deines CPs oder NetLinks in die passende Zelle schreiben.
    Nun führe das Makro readFromPLC aus und du solltest Werte aus der SPS bekommen.

    Hab ich jetzt ausprobiert hat alles bis zum readFromPLC funktioniert nur dann bekomm ich immer die Meldung Datei nicht gefunden: libnodave.dll . In welchem Verzeichnis sollte die DLL den liegen?
    SG niox
    Geändert von niox (13.02.2007 um 22:06 Uhr) Grund: ups

  9. #19
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Ich hab sie unter C:\Windows, das funktioniert.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. #20
    Registriert seit
    04.01.2006
    Ort
    Wuppertal
    Beiträge
    664
    Danke
    122
    Erhielt 105 Danke für 91 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Bin einen Schritt weiter, die libnodave.dll gehört in
    ..\Windows\System

    Leider hörts dann bei mir auf, Excel lässt sich dann nach Aufruf von readFromPLC nurnoch per Taskmanager beenden.

Lesezeichen

Berechtigungen

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