Step 7 Programm zur Wertedarstellung

Soll es eine Autarke Software sein?
Den Daten kannst dir auch mit dem Simatic Manager ansehen!

Mfg
 
LibNoDave ist eine Bibliothek mittels derer du dir ein eigenes Programm erstellen kannst - z.B. mit Visual Studio (VB oder C# ...) oder mit Excel und den beinhalteten VB-Script-Funktionalitäten ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Beispiele gibt es!

Wenn du aber so ganz und gar keine Erfahrung mit C/C++/C#/VB... hast würd ich das nicht als eine Möglichkeit für dich sehen!

Dann lieber zu WinCC greifen da dort mehr Grafisch gearbeitet wird!

Mfg
 
... das wäre hier auch mein Ansatz ...
Alternativ gibt es ja auch von WinCCFlexibel eine PC-Runtime-Version.

Gruß
Larry
 
Programmbeispiel für grafische Datenanzeige mit EXCEL + LIBNODAVE

ich suche nach einem Programm/Software für Windows, die mir Daten aus der CPU grafisch anzeigen kann.
Excel + LibNoDave
Klingt relativ aufwendig. Gibt es dazu Beispiele zum downloaden oder schon etwas fertiges?

OK, anbei ein komplettes Excel-Beispiel für zwei Tankstandanzeigen mit dem Auslesen der Daten per Ethernet aus drei verschiedenen SPS
  • CPU 315-2DP + CP 343-1
  • CPU 314C + S7LAN Ethernet/MPI-Adapter
  • CPU 316 + IBH NetLink Lite Ethernet Gateway


Für die vielfältigen und speziellen Wünsche von Produktionsleitung, Abteilungsleitern, Schichtleitern, ... verwende ich oft Excel und LIBNODAVE (0.8.4.5)
(siehe z.B. den Ausdruck einer etwas aufwendiger formatierten Tankanzeige GAP-Tanks.JPG - ist nicht im Beispiel enthalten :cool:)

Meine Anwendungen sind meistens nach dem gleichen Schema aufgebaut:
  • ein Excel-Blatt mit einer Tabelle und/oder grafisches Diagramm und ein Button "Werte aus PLC lesen"
  • der Button ruft eine für dieses Blatt programmierte VBA-Routine readFrom...() auf, um die Daten einmalig aus der SPS zu lesen
  • readFrom...()
    - baut die Verbindung zu einer CPU auf: res = connect...(ph, di, dc)
    - liest Werte aus der CPU: res2 = daveReadBytes(dc, ...) und kopiert diese dann in das Tabellenblatt
    - schreibt bei Erfolg einen Lese-Zeitstempel in das Tabellenblatt
    - schließt die Verbindung wieder und gibt die verwendeten Ports frei: cleanUp(ph, di, dc)

Für eigene Anwendungen sind in den connect...() die Verbindungsparameter anzupassen, z.B. die IP-Adresse der SPS.
Meine ausführlichen Kommentare im VBA-Code sollten zum Verstehen und Anpassen des Beispiels ausreichen. :cool:
Wie man Excel bedient und wie man in Excel mit VBA programmiert sollte man schon wissen oder in der Excel/VBA-Hilfe nachlesen.
Ich verwende Excel 2002 als Entwicklungsplattform. Die xls-Dateien funktionieren auch unter neueren Excel-Versionen.
Das Ausführen von Makros muß in Excel erlaubt sein.

Um die Excel-Anwendungen vor "versehentlichen" Änderungen durch Anwender zu schützen haben die Blätter einen Blattschutz (ohne Passwort) und das VBA-Modul ist passwortgeschützt - Passwort ist: 100
Im VBA-Modul sind nur die "ungefährlichen" Funktionen der libnodave.dll deklariert - die Deklarationen der in-die-SPS-schreibenden Funktionen habe ich absichtlich weggelassen.
Ich lese immer nur einmalig "auf Knopfdruck" die Daten aus den SPS. Zyklisches lesen ist mit Excel zwar möglich, ich verwende es aber nicht - meine Anwender schafften es immer wieder, Excel dabei zu crashen. :roll:

In den beteiligten SPS stelle ich die Daten meistens extra in einem zusammenhängenden DB-Bereich zusammen. Dann reicht meist ein einziges Lese-Kommando und ein versehentliches Schreiben auf diese Datenkopien hat keinen Einfluß auf das SPS-Programm.


Anbei die Excel-Datei Tankanzeigen_mit_Libnodave.xls
Zum Lesen des VBA-Programmcodes ohne Excel die Tankanzeigen_mit_Libnodave.xls.vba.txt, welche nur den projektspezifisch programmierten VBA-Teil aus der xls-Datei enthält.


Die lizenzkostenfreie Library LIBNODAVE gibt es hier:
http://libnodave.sourceforge.net/
unter Windows XP kopiere die libnodave.dll nach C:\WINDOWS\system

Zum Thema "Excel-Funktionen periodisch aufrufen":
http://www.cpearson.com/excel/OnTime.aspx

Harald
 

Anhänge

  • GAP-Tanks.JPG
    GAP-Tanks.JPG
    57,4 KB · Aufrufe: 61
  • Tankanzeigen_mit_Libnodave.xls.zip
    61,7 KB · Aufrufe: 25
  • Tankanzeigen_mit_Libnodave.xls.vba.txt
    17,5 KB · Aufrufe: 41
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine schöne Sache. Vielen Dank für die Infos. Ich werde es mal versuchen. Der PC ist aber nicht über Ethernet mit der CPU verbunden sondern über USB-MPI Adapter. Mit VBA bin ich noch Ich werde aber mal mein Glück versuchen.
 
Hallo,
Das ist die Funktionalität, die unsere Software PLC Reports http://www.plcreports.com/de bietet. Die Software liest Daten direkt aus der Steuerung. Die Daten können auch in Archiven über beliebige Zeiträume gespeichert werden. Berichte können Event- oder Zeit-getriggert in Excel oder PDF erstellt werden. Wenn die Real-Werte schon als Archiv in einem DB abgelegt sind, kann mit Array Variablen der gesamte DB "auf einen Rutsch" eingelesen werden und in einem Bericht ausgegeben werden. Zur grafischen Darstellung stehen alle in Excel zur Verfügung stehenden Diagramme zur Verfügung. Es können auch Makros, Visual Basic und Widgets uneingeschränkt benutzt werden.
Wenn Die SPS nicht über Ethernet mit dem PC verbunden ist, dann am besten einen NetLink Adapter der Firma IBHSoft, Deltalogic oder Helmholz einsetzen. Dieser wird einfach auf die Profibus oder MPI Schnittstelle der CPU gesteckt. Die CPU kann dann über Ethernet angesprochen werden.

Ich hoffe, ich konnte weiterhelfen.

Gruß, Thorsten
 
Das AutoSpy sieht gut aus. Aber etwas langsam beim Aufzeichnen.
Woran machst du das "langsam" fest?

Bei AutoSPy gibt es zwei mögliche Treiber für die S7 - einmal zyklusgenau (Abtastrate ist an Zykluszeit der SPS gebunden) und einmal abtastgenau (Abtastrate ist einstellbar, je nach Kommunikationsweg, minimal bis zu 30 ms möglich). Deine 200 ms sind für AutoSPy ansich also kein Problem. Bei tiefergehenden Fragen kannst du dich auch telefonisch bei mir melden.
 
Zurück
Oben