Opc???

BOBZ

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich möchte mein S7 Projekt über C++ oder Visual Basic via OPC steuern bzw. beobachten.
kurze Beschreibung meines Projektes CPU 331, CP 342-5, usw.
Dazu brauche ich eine geeignete kostenlose Software(OPC Server) +(OPC Client) oder ähnliches.

Hat jemand Erfahrung damit?? oder kann mir irgendwie anders helfen??

MFG

:confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Alles kostenlos und OPC gibt es nach meiner Kenntnis nicht. Zumindest den OPC-Server mußt du dir kaufen. Such mal hier im Forum nach "libnodave". Das ist eine kostenlose lib um auf eine oder mehrere Step7-SPS zuzugreifen.
 
danke für die Hilfe hab mir gerade ein Libnodave packed runtergeladen muss leider sagen das ich mich bis jetzt noch nicht wirklich zurecht gefunden habe zwecks Vorgehensweise (hat jemand nen "Handbuch")

Ich habe eine OPC Server von IBH brauche also nur noch eine Clint bzw. ein Visualisierungs Möglichkeit (TOOL oder ähnliches)

Danke.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
danke für die Hilfe hab mir gerade ein Libnodave packed runtergeladen muss leider sagen das ich mich bis jetzt noch nicht wirklich zurecht gefunden habe zwecks Vorgehensweise (hat jemand nen "Handbuch")
Ich habe eine OPC Server von IBH brauche also nur noch eine Clint bzw. ein Visualisierungs Möglichkeit (TOOL oder ähnliches)
Danke.

Hallo, wenn Sie einen OPC-Server haben, nützt Ihnen
libnodave oder eine andere Bibliothek nichts. Diese
sind nämlich dafür da, direkt, also ohne den OPC-"Umweg",
mit den Steuerungen zu kommunizieren.

Was den Client betrifft ... bei unserem S7/S5-OPC-Server
ist ein ClientControl im Lieferumfang enthalten und eine
Dokumentation naürlich auch, nur kostenlos ist das Ganze
leider nicht.

Viele Grüße

Gerhard Bäurle
 
Die Kosten sind mein Problem da es sich um meine Technikerarbeit handelt und ich diese mehr oder weniger privat entwickle zwar in Zusammenarbeit mit der HW - Schule Pforzheim und der FH (HS) - Pforzheim aber diese vermutlich auf die schnelle keine Software kaufen wollen bzw. können ( die langen Wege der Bürokratie ) .

MfG

B.J.
 
Ich wollte das ganze auch mal ausprobieren hat jedoch irgendwie nicht so ganz geklappt :(

Vielleicht könnte jemand mal ein kleines Tuatorial zusammenstellen. Wenn man nämlich nicht so C++ sattelfest ist, ist das gar nicht so einfach.

Ich stehe irgendwie vor dem gleichen Problem. Sollte auch ein Projekt für die Abschlussprüfung machen nur die Firma will nicht so richtig Sponsern.

SG niox
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
@BOBZ

Als wenn es nicht kosten soll und nicht unbedingt OPC sein muß, dann kann ich dir libnodave empfehlen, das ist recht einfach zu handhaben und einige Beispiele und Testprogramme sind auch dabei.

@niox

Was genau wolltest du ausprobieren?
 
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 :confused:

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
 
Zuletzt bearbeitet:
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ß!
 

Anhänge

  • libnodaveOpc.tar.gz.zip
    152,4 KB · Aufrufe: 29
Zuviel Werbung?
-> Hier kostenlos registrieren
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 :confused:

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.
 
Also fange ich mal an libnodave zu erforschen wenn jemand eine Hilfe oder brauchbare Docs hat wäre ich sehr dankbar.

Mfg
Bobz
 
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?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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.
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 :-(
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.
 
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... :-(
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
Zuletzt bearbeitet:
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.
 
Zurück
Oben