SoftSPS Daten in einer Datei loggen/speichern

DunderHEAD

Level-1
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte, wenn ein Fehler oder ähnliches auftritt den Zustand und verschiedene Werte aus der SPS in einer Datei auf dem PC sichern.

Verwendete Hardware:
- Microbox 427C
-- idx1: OPC (v7.0)
-- idx2: WinAC RTX F (6ES7 611-4FB00-0YB7 / v4.5)
-- IF1: Profinet
-- idx3: Ethernet
- Step7 v5.4 + SP5 + HF1
-- bevorzugte Programmiersprache: SCL
- ODK v4.2

Beispiel:
Die Anlage geht aus dem laufenden Betrieb in den Stop, weil z.B. eine Lichtschranke ausgelöst wird.
Dann sollen z.B. die Werte der Eingänge 0.0-0.7, sowie ein Zeitstempel in einer Datei auf der Microbox gesichert werden.


Nun bin ich mir nicht sicher womit ich diese Aufgabe am besten löse. Am einfachsten ist es, denke ich, wenn ich das ODK mit dem shared memory (SMX) verwende.
Dann könnte ich mit einem ext. Programm eine Variable im shared memory checken und wenn diese TRUE ist alle relevanten Werte in eine Datei speichern.
Das Problem ist nur, dass ich nicht weiß, wie ich dies anstelle :confused:.

Vielleicht gibt es ja aber auch eine andere, einfachere bzw. schnellere Methode aus dem S7 Program heraus Werte bereitszustellen und ein Speichern zu veranlassen.

Danke schon mal im voraus.

DunderHEAD
 
Zuletzt bearbeitet:
Hi,

schau dir doch mal das ACCON-S7-EasyLog an und probier es mit der Demoversion...

Hier mal die technischen Highlights:


  • Einfach zu bedienende Software
  • Protokollieren verschiedenster Daten und Formate
  • Anzeige der Daten direkt und als Historie
  • Speicherung der Daten im CSV-Format
  • Freie Weiterverarbeitung und Auswertung z. B. in Excel
  • Zeitgesteuerte Protokollierung möglich
  • Ereignisgesteuerte Protokollierung möglich
  • Protokollierung bei Grenzwertüberschreitung (Min- und Maxwertüberwachung) möglich
  • Datei- und Pfadnamen können Aktualwerte aus der SPS beinhalten
  • Quittierung an SPS nach Protokollierung möglich
  • Unterstützt S7-200, S7-1200, S7-300- und S7-400-SPSen
  • Unterstützt MPI, PROFIBUS, PPI und TCP/IP zum SPS-Zugriff
  • Kostengünstige Sonderanpassungen erhältlich
Einfach mal ausprobieren... Die Ereignisgesteuerte Protokollierung sollte da für dich interessant sein... ;-)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
H
Nun bin ich mir nicht sicher womit ich diese Aufgabe am besten löse. Am einfachsten ist es, denke ich, wenn ich das ODK mit dem shared memory (SMX) verwende.

Hallo,

ich kenne keine fertige Lösungen, die das shared Memory verwenden.
Die kommunizieren m. W. alle über externe SPS-Schnittstellen, auch
das erwähnte Easylog.
 
Hi,

@Sven
Danke für den link zu dem Program. Damit wäre die Aufgabe schon gelöst.

@Gerhard
Vielleicht hat ja jem. oder kann jem. ein kleines Bsp. erstellen in dem in S7 SCL das shared Memory verwendet wird. Vielleicht auch noch nen simple Beispiel wie diese Werte dann mit einer Anwendung gelesen werden könnten... Oh man komme mir, je mehr ich dazu lese, immer hilfloser vor...

ABER:
Geht es nicht ev. mit dem ODK bzw. OPC? Und wenn, wie stelle cih die Daten mit der SPS bereit und wie kann ich diese dann mit einem anderen Programm bearbeiten.
Habe mir schon libnodave angeschaut, nur bekomme ich die Beispiele nicht übersetzt, da ich kein Visual 6.0 habe.
Auch die Beschreibung zum ODK bringt micht nicht so richtig voran.
Vielleicht hat ja schon einer ein simples beispiel, in dem ev. ein wert übertragen wird.

MFG
 
Zuletzt bearbeitet:
Hi,
@Sven
Danke für den link zu dem Program. Damit wäre die Aufgabe schon gelöst.
Na wunderbar, wenn du ein Angebot oder weitere Informationen benötigst, kannst du dich ja bei mir melden.

Geht es nicht ev. mit dem ODK bzw. OPC? Und wenn, wie stelle cih die Daten mit der SPS bereit und wie kann ich diese dann mit einem anderen Programm bearbeiten.
Habe mir schon libnodave angeschaut, nur bekomme ich die Beispiele nicht übersetzt, da ich kein Visual 6.0 habe.
Auch die Beschreibung zum ODK bringt micht nicht so richtig voran.
Vielleicht hat ja schon einer ein simples beispiel, in dem ev. ein wert übertragen wird.
Du kannst dir ja auch mal unsere Kommunikationsbibliothek ACCON-AGLink anschauen. Da ist ein API-Guide integriert, wo du einfach deine Werte einträgst und der API-Guide zeigt dir sofort den Quellcode in der gewünschten Programmiersprache an => Demoversion

Vielleicht hilft das ja alternativ... die Anwendung musst du dir dann allerdings selbst erstellen. ;-)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst dir ja auch mal unsere Kommunikationsbibliothek ACCON-AGLink anschauen. Da ist ein API-Guide integriert, wo du einfach deine Werte einträgst und der API-Guide zeigt dir sofort den Quellcode in der gewünschten Programmiersprache an => Demoversion

Hallo,

das hilft DunderHEAD nichts, da Aglink die Kommunikation über
das Shard Memory nicht unterstützt (und damit auch das auf
Aglink aufgesetzte Easylog).
 
Hallo,

das hilft DunderHEAD nichts, da Aglink die Kommunikation über
das Shard Memory nicht unterstützt (und damit auch das auf
Aglink aufgesetzte Easylog).

Das shared Memory wird nicht direkt unterstützt sondern indirekt über den Treiber "PC Intern" verwendet.

Jetzt aber mal zum ODK. Damit kann das Laufzeitsystem erweitert werden und es können dann entsprechende FBs aufgerufen werden. Hilscher hat dies zum Beispiel dazu verwendet, die EAs über deren Karten in das System zu bringen (allerdings weiß ich nicht ob es die RT-Variante war).
Den geringsten Aufwand sehe ich darin, die Daten in einem oder mehreren DBs zu sammeln und dann von einer separaten Applikation auszulesen und zu archivieren. Ob dies dann eine fertige Lösung wie ACCON-S7-EasyLog ist oder eine selbstgeschriebene mittels libnodave oder ACCON-AGLink spielt dann keine Rolle.
Btw. Unterstützt libnodave "PC intern"?
 
Hallo,

Den geringsten Aufwand sehe ich darin, die Daten in einem oder mehreren DBs zu sammeln und dann von einer separaten Applikation auszulesen und zu archivieren. Ob dies dann eine fertige Lösung wie ACCON-S7-EasyLog ist oder eine selbstgeschriebene mittels libnodave oder ACCON-AGLink spielt dann keine Rolle.

Dann werde ich diese Lösung anstreben, die benötigten Daten in einem DB sammeln (insofern diese nicht schon in dieser Form vorliegen) und dann mit einer eigenen Anwendung die Daten auslesen und dann ggf. sichern.

Weiß vielleicht jem. ein gutes HowTo oder hat eine kurze Anleitung zu einem solchen Beispiel?

Vielen Dank für den guten Support und die Tipps.

MFG
DunderHEAD
 
Zurück
Oben