Event erzuegen

schneemann86

Level-1
Beiträge
37
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend

welche möglichkeiten gibt es events von einer sps aus zu senden?
Also ich möchte daten aus nem DB überwachen und sobald sich bei einer Variablen was ändert ein Event erzeugen.
 
Hallo,
um eine Wert-Änderung zu erkennen mußt du eine SPS-Variable zyklisch einlesen und danach mit dem letzten eingelsenen Wert vergleichen. Hat sich hier etwas geändert, so kannst du eine Aktion auslösen.
Diese Funktionalität übernimmt normalerweise (d)eine Visualisierung.
Welches Mittels möchtest du dich bedienen ?

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
habe ein ähnliches Problem, welche möglichkeiten gibt es denn Daten zu senden?
Momentan werden die Daten halt pollend abgefragt was das netz belastet. Suche also nach einer Lösung dies von der SPS ausgehen zu lassen sobald sich eine Variable geändert hat. Die Daten werdenvon einem MES-System benötig. Umsetzung mit S7-300( CPU315-2 DP und CP 343-1)
 
Zuletzt bearbeitet:
Alles hat Vor/Nachteile

Hallo,

marvo schrieb:
Momentan werden die Daten halt pollend abgefragt was das netz belastet.

Und wenn die Events von der S7 gefeuert werden sollen, belastet das die S7-CPU... Also verschiebt sich das ganze nur.
Eine S7-400 kann Events von folgenden Typen feuern :

S7_Process_Scan
S7_Process_Alarm

Diese Events kann man mit dem Simatic.Net OPC AE-Server (AE = Alarm&Event) auf einem PC/Visu empfangen. Dabei wird kein Netzwerk durch Pollen belastet, die SPS feuert selber. Aber alles hat auch seine Nachteile :

Bei S7_Process_Scan wird die S7-CPU belastet, da diese die in der Symbolikliste projektierten Events selber auswerten und abfeuern muss. Das belastet die S7-CPU.

Bei S7_Process_Alarm muss man durch Aufruf der Alarm-Bausteine in der S7 im Anwenderprogramm selber für das Feuern der Events sorgen. Durch den Aufruf der Bausteine in der S7 wird die Zykluszeit der S7-CPU entsprechend belastet.

Aber bei beiden Vorgehensweise wird das Netzwerk natürlich entlastet.

Ich bevorzuge allerdings den OPC DA-Server, der belastet zwar das Netzwerk durch ständiges Pollen, aber die Events bei Änderung der Daten entlasten meine Applikation und die CPU des PCs fast bis runter zur IdleTime.

Das kann man so erreichen : Für jeden neuen Datensatz, den die SPS senden will, setzt die SPS einen Merker. D.h. die SPS bestimmt, ob neue Daten anliegen und gelesen werden sollen. Also z.B. für jedes Telegramm einen zugeordneten Merker. Und nur dann wird über den OPC DA-Server der entsprechende DB mit neuen Daten gelesen. Das reduziert die Netzwerkbelastung auf ein Minimum. Da muss der OPC-Server nicht Unmengen von DBs auf Änderungen überprüfen, sondern eben nur z.B. ein Merkerwort und die DBs nur bei Bedarf einlesen.

Aber auf der anderen Seite, wenn ein Netzwerk mit dem Einlesen von einigen tausend Variablen je Sekunde per OPC schon Probleme hat, dann stimmt etwas nicht mit dem Netzwerk. Vielleicht hast Du aber ganz andere Anforderungen, dann solltest Du das aber bitte etwas genauer definieren.

Gruß

Question_mark

PS : Der OPC AE funktioniert sowieso nur mit der S7-400
 
Zuletzt bearbeitet:
Die Frage ist erstmal, mit welcher Software holst du die Daten aus der SPS?
Wenn man einen fertigen OPC-Server kauft hat man nicht viele Möglichkeiten diesen in irgendeiner Weise von der Applikation zu steuern.

Hat man eine eigene Anwendung mit der man die Daten ausliest, kann man z.B. so vorgehen:

- Auf dem PC läuft ein kleines Programm das eine UDP-Verbindung annimt
- UDP Verbindung in SPS einrichten. Über UDP können auch Broadcasts verschickt werden, sodass der Teilnehmer im Vorfeld nicht bekannt sein muss.
- SPS schickt bei Änderung eben diesen UDP-Broadcast (meinetwegen noch mit Nachricht: guck mal in DB10, da hat sich was getan)
- PC bekommt die Nachricht und fragt diese Daten aus der SPS ab

So braucht nichts gepollt zu werden. Ist halt nur mehr oder weniger Programmieraufwand.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke schon einmal für die Antworten.
Also die Daten werden im Moment über JMatic von Langner gepollt.
Weiß im moment auch noch nicht welche Möglichkeiten ich mit JMatic haben
die Daten von der SPS zu empfangen. Die Lösung muss für S7-300 und S7-400 Steuerungen funktionieren.
UDP ist denke ich keine optimale Lösung da ich ja nicht sicher sein kann ob die Information angekommen ist.
Welche Funktionen kann ich nutzen um Daten übers Ethernet zu senden?
Bzw. welche Doku's sollte ich durcharbeiten? Hab mit der ganzen
Kommunikations keine wirklichen Erfahrungen deswegen ist es etwas schwierig.
 
Welche Funktionen kann ich nutzen um Daten übers Ethernet zu senden?
Bzw. welche Doku's sollte ich durcharbeiten?

Hauptdokument in der Richtung ist das Handbuch "Kommunikation mit Automatisierungssystemen".
Dort sind alle verschiedenen Protokolle, Schnittstellen etc. beschrieben.

Bei der Hardwareauswahl ist zu beachten, dass bestimmte Funktionalitäten öfter mal nur als Server oder nur als Client vorhanden sind. Da muss man genau hinschauen ob die CPU bzw. der CP die gewünschte Kommunikation beherrscht.

Was ist denn an UDP so verkehrt? Über ein Keep-Alive Telegramm lässt sich so eine Verbindung auch überwachen.
 
TCP oder UDP ?

Hallo,

Thomas_v2.1 schrieb:
Was ist denn an UDP so verkehrt? Über ein Keep-Alive Telegramm lässt sich so eine Verbindung auch überwachen.

Und warum soll ich in ein verbindungsloses UDP-Telegramm noch zusätzlich eine Keep-Alive Überwachung implementieren ? Da nehme ich doch lieber gleich TCP.

UDP hat mit Sicherheit seine Daseinsberechtigung, aber UDP möchte ich in der Kommunikation innerhalb der Automatisierungstechnik nicht einsetzen.

Thomas_v2.1 schrieb:
Wenn man einen fertigen OPC-Server kauft hat man nicht viele Möglichkeiten diesen in irgendeiner Weise von der Applikation zu steuern.

Thomas, lies doch bitte meinen Beitrag #4 noch einmal durch. Mit dem Simatic.Net OPC-Server spiele ich herum, bis Dir schwindelig wird :ROFLMAO:

Gruß

Question_mark


Gruß

Question_mark
 
Zurück
Oben