S7-300 <-> PC, ereignisgesteuert mit libnodav auslesen?

janny

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo all Ihr lieben erfahrene Kollegen,

es geht um die PC Seite einer TCP-Verbindung zwischen PC und SPS. Ich würde gern libnodav einsetzen. Aber kann ich damit auch ereignisgesteuert die SPS auslesen?

Vielen Dank für Eure Aufmerksamkeit und Hilfsbereitschaft
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo all Ihr lieben erfahrene Kollegen,

es geht um die PC Seite einer TCP-Verbindung zwischen PC und SPS. Ich würde gern libnodav einsetzen. Aber kann ich damit auch ereignisgesteuert die SPS auslesen?

Vielen Dank für Eure Aufmerksamkeit und Hilfsbereitschaft

Was ist mit ereignisgesteuert gemeint? wenn am PC was passiert (Mausklick) oder wenn auf der SPS was passiert (Wertänderung). Zweiteres geht nur über polling, also den wert die ganze zeit lesen und dann schauen ob er sich geändert hatt.
 
Die einzige mir bekannte Kommunikationsbibliothek, die das ereignisgesteuerte Empfangen von Daten aus der SPS beherrscht, ist ACCON-AGLink. Dabei ist es egal, ob es sich um BSend, USend, ARSend, symbolgetriggerte oder bausteingetriggerte Meldungen handelt. In der neuen Version, die wir zur SPS-Messe vorstellen, können zyklische Daten sogar nur bei Änderung übertragen werden (in dem Rahmen wie es die SPS unterstützt).
Ansonsten bleibt nur pollen und selber prüfen.
 
vielen Dank für Eure prompten Antworten. Die Ereignissen kommen seitens SPS. Da habe ich mich nicht klar ausgedrückt - Entschuldigung.

Ich hatte schon befürchtet, dass ich mit libnodav nur pollen kann.

Beste Grüße,
janny
 
Zuviel Werbung?
-> Hier kostenlos registrieren
..., können zyklische Daten sogar nur bei Änderung übertragen werden (in dem Rahmen wie es die SPS unterstützt).

Welche CPU unterstützen diese Funktion eigentlich? Bei WinCC ist diese Option beim Anbindungstreiber auch möglich, aber ich habe bisher nur gesehen dass WinCC dann die normalen zyklischen Daten anfordert. Und deren Anzahl ist zumindest bei der 300er auch relativ eingeschränkt (max. 4).
Wie viele zyklische Daten die CPU schaffen findet man auf der Siemens-Seite:
http://support.automation.siemens.com/WW/view/de/38051454

allerdings nichts zur "Änderungsübertragung".
 
Sicher sind die Resourcen beschränkt. WinCC verwendet ja auch den "gemischten" Zugriff, soll heißen erst wird zyklisch angefragt und dann der Rest gepollt.
Getestet habe ich das Übertragen bei Änderung bis jetzt bei einer 417er und einer 414er, die 300er muss ich noch prüfen.
 
Ich breche jetzt mal, also eine Lanze für AGLink

Hallo,

Rainer Hönle schrieb:
Die einzige mir bekannte Kommunikationsbibliothek, die das ereignisgesteuerte Empfangen von Daten aus der SPS beherrscht, ist ACCON-AGLink. Dabei ist es egal, ob es sich um BSend, USend, ARSend, symbolgetriggerte oder bausteingetriggerte Meldungen handelt.

Das kann ich gerne bestätigen, das funktioniert sogar bis herunter zum guten, alten RK 512 ...

Da hatte ich mal ein Projekt, bei dem waren drei S5 Anlagen per RK512 an eine VAX angeschlossen. Die Anlagen haben bei Ereignissen einen Datensatz an die VAX gefeuert.
Die Vorgabe war, ohne Änderungen an den Steuerungen das ganze auf eine Oracle-DB umzubauen. Und tatsächlich, der AGLink war der einzigste Treiber, der die von der SPS initierten "SEND"-Aufträge handeln konnte.

Einfach die alte Verbindung zur VAX gekappt, den PC mit meiner Applikation und AGLink dazwischen gehangen und ab ging die Post.
Allerdings ist die Bibliothek anfangs so umfangreich, das erschlägt einen fast :)
Das meine ich jetzt aber im positiven Sinne. Also die Funktionalität ist perfekt, aber mal als Verbesserungsvorschlag : Ich finde es sinnvoll, wenn das sehr umfangreiche, gut durchdachte Manual vielleicht in einzelne Manuals entsprechend der Verbindungsart aufgeteilt wird. Also ein Manual für RK512, IsoOnTCP usw.
Dann wird das ganze etwas übersichtlicher für den Anwender. Und wenn dann noch ein H1 Protokoll dazu kommt, dann ist die Library wirklich perfekt :s1:

Und ich brauche immer noch ein Adapterkabel für das S5 Accon-Com Kabel USB auf die S5-150U, kannst Du mir da weiterhelfen ?

Gruß

Question_mark
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, janny

falls Du SPS-event-gesteuert Daten aus der SPS wegschicken willst,
wirst Du auch dies in der SPS programmieren müssen, denn woher
soll ein sps-externes Gerät wissen, ob ein Ereignis/Event in der SPS eingetreten ist.

Ich hab schon Daten von S7-300 zu Pc (PHP-Programm) geschickt,
dann diese Daten in MySQL gespeichert.
Schau Dier mal meine Ausführungen im Beitrag http://sps-forum.de/showthread.php?t=32523 an.
Die Daten (String) wurden beim Eintritt eines Ereignisses weggeschickt.
Ich hoffe, dass Du damit in Deiner Problematik ein wenig vorankommst...

Gruß
S7_Programmer
 
Sicher sind die Resourcen beschränkt. WinCC verwendet ja auch den "gemischten" Zugriff, soll heißen erst wird zyklisch angefragt und dann der Rest gepollt.
Getestet habe ich das Übertragen bei Änderung bis jetzt bei einer 417er und einer 414er, die 300er muss ich noch prüfen.

Also bei einer 315 gehts auf jeden Fall auch, hab's grad mit WinCC probiert. Wenn es heist es sind 4* Zyklische Daten möglich, was heisst das dann eigendlich? 4 Tags, oder 4 mal Soviel Bytes wie in eine Pdu passen?

Kann den ein Zyklisches Telegramm auch zwischen einer anderen Anfrage kommen, oder bekomme Ich immer zuerst eine Antwort auf mein aktuelles Telegramm und dann das Zyklische?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nochwas, wie ist eigentlich das Intervall mit dem die Daten gesendet werden? Ist das einstellbar?

Beim Anmelden der zyklischen Daten wird das Zeitintervall angegeben in dem die SPS die Daten zurückschicken soll. Da gibt es einmal eine Zeitbasis und dann einen Zeitwert. Zeitbasis 0 ist imho 100ms, Zeitbasis 1 ist in Sekunden. Im letzten Stand von meinem Wireshark Plugin sollte das auch aufgeschlüsselt sein.

Aber zusätzlich zum Zeitereignis gibt es noch einen weiteren Trigger, bei dem die SPS wohl prüft ob sich der Variablenwert geändert hat. Ich habe so ein Telegramm jedoch noch nie zu sehen bekommen. Wie Rainer schrieb scheinen das nur die 400er CPU zu unterstützen.
 
zu S7_Programmer:

das geht genau in die Richtung:

SPS-seitig: Die SPS sendet auf ein Ereignis hin Daten an den PC.
Der PC "triggert" auf einlaufende Daten-Pakete von der SPS.

Quintessenz: Es geht doch - nicht mit libnodav, aber ganz ordinär mit Sockets und den üblichen Möglichkeiten auf der PC-Seite. Die SPS muss dazu natürlich "aktiv" werden, dh. senden. Nicht ganz verstanden habe ich (SPS ist weniger mein Part): Die projektierte Verbindung kann, muss, oder sollte TCP/IP sein? Das wäre mir eigentlich nur recht. Bei ISO TCP müsste dem PC gerade das Protokoll noch beigebracht werden. libnodav hilft hier nicht, da es für andere Aufgaben gedacht ist und die Sockets kapselt. Wäre ISO TCP aber nicht doch sicherer?
Auch nicht ganz verstanden habe ich aus den Forums-Diskussionen, ob eine S7-300 die Verbindung zum PC selbst leisten könnte oder ob ich einen CP brauche, bzw. ob das "besser" wäre.

Vielen Dank und beste Grüße,
janny
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,



Irgendwie habe ich den Eindruck, Du hast noch nicht begriffen, das Deine Befürchtungen Realität geworden sind ???

Gruß

Question_mark

:cool: - ne, das war die fachkundige Bestätigung für meine leihenhafte Vorahnung. Die Vorahnung ist aber nicht so bösen, bei einer müden "Abtastrate". Und es gibt andere Wege.

Vielen Dank für die Anteilnahme,
Grüße, janny
 
Das kommt auf die CPU an..

Hallo,

janny schrieb:
Auch nicht ganz verstanden habe ich aus den Forums-Diskussionen, ob eine S7-300 die Verbindung zum PC selbst leisten könnte oder ob ich einen CP brauche

Wenn Du eine CPU vom Typ 3xx PN/DP hast brauchst Du keinen zusätzlichen CP 343, diese CPU hat die Funktionalität schon im Bauch...

Gruß

Question_mark
 
Mal eine Empfehlung von mir ...

Hallo,

janny schrieb:
SPS-seitig: Die SPS sendet auf ein Ereignis hin Daten an den PC.
Der PC "triggert" auf einlaufende Daten-Pakete von der SPS.

Ok, dann schau mal hier :

http://www.deltalogic.de/content/view/21/38/lang,de/

Du setzt voraus, das der PC auf Ereignisse der SPS reagiert ...
In diesem Falle ist mir AGLink als einzige Kommunikationsbibliothek bekannt, die Deine Anforderung erfüllen kann (und noch eine Menge andere Sachen dazu ..).

Auf der Homepage kannst Du die Trialversion und die Handbücher kostenlos herunterladen und ausprobieren. Die Trial hat zwar beim Starten einen Nag-Screen, aber man kann alle Funkionen ausgiebig testen. Die aktuelle Version ist 4.4.0.3 und damit kann man so ziemlich alles zu den Simatic Produkten S5, S7 und NCK abdecken.
Und muss mir langsam überlegen, ob ich die bei mir noch herumliegenden SimaticNet OPC-Server Lizenzen nicht mal so langsam in der Bucht verscheuere, aber manchmal brauche ich auch H1 Verbindungen .... :ROFLMAO:

Lade Dir ganz einfach die Trial Version herunter, lese das Handbuch und staune...

Genial finde ich den API_Guide, der liefert Dir für alle Funktionen Beispiele in den gängigen Programmiersprachen (Delphi, C++, C#, VB.Net und Java) zum Abtippen (oder auch Copy und Paste). Das garantiert irgendwie auch das schnelle Erfolgserlebnis bei der Programmierung auf dem PC. Also nicht nur im Dunkeln rumstochern, sondern der API_Guide bietet da gute Vorlagen. Eine Super-Idee, finde ich.

Der Hersteller bemüht sich ständig, die Funktionalität zu erweitern und zu pflegen. Es geht da aber immer nur um Erweiterungen der Funktionalität, an der Zuverlässigkeit und Stabilität gibt es nichts zu verbessern. Ich habe Anwendungen mit AGLink schon jahrelang im industriellen Umfeld laufen, es hat bisher noch kein einziges Problem mit AGLink gegeben. In diesem Sinne, es ist besser in eine professionelle Kommunikationsbibliothek ein paar Euro zu investieren, als unzählige Stunden damit zu verschwenden, die Fehler und Probleme kostenloser Librarys zu entdecken.

Gruß

Question_mark
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
hat bisher noch kein einziges Problem mit AGLink gegeben. In diesem Sinne, es ist besser in eine professionelle Kommunikationsbibliothek ein paar Euro zu investieren, als unzählige Stunden damit zu verschwenden, die Fehler und Probleme kostenloser Librarys zu entdecken.
Welche Fehler hast du in libnodave denn entdeckt?
Das reine Lesen und Schreiben von Daten ist eine Sache die dort seit Jahren zuverlässig funktioniert. Um es mit deinen Worten zu sagen: "Funktioniert im 24/7 Betrieb".
Wenn du dort unzählige Stunde verschwendet hast: Vielleicht lag es bei dir am Programmierer??
 
.
Und muss mir langsam überlegen, ob ich die bei mir noch herumliegenden SimaticNet OPC-Server Lizenzen nicht mal so langsam in der Bucht verscheuere, aber manchmal brauche ich auch H1 Verbindungen ....

Du legst dir Lizenzen für Simatic.Net auf Halde oder wie ist das zu verstehen? Hast du Bedenken dass deine selbstgestrickte 24/7 Software doch mal ausfällt?
 
Mach mal halblang, Thomas ..

Hallo,

Thomas_v2.1 schrieb:
Du legst dir Lizenzen für Simatic.Net auf Halde oder wie ist das zu verstehen?

Ganz richtig, ich brauche davon eine ganze Menge und kaufe die immer im 3-er Pack.

Thomas_v2.1 schrieb:
Hast du Bedenken dass deine selbstgestrickte 24/7 Software doch mal ausfällt?

Wo hast Du denn die Idee her ? Habe ich irgendwo eine von mir selbstgestrickte 24/7 Kommunikationslibrary hier erwähnt ?

Schalte mal einen Gang zurück und atme locker durch die Hose... Ich erkenne es durchaus an, wenn Member dieses Forums hier Ihre eigenen Projekte vorstellen und präsentieren. Auch wenn manche dabei eine gewisse Penetranz dabei an den Tag legen, da steckt aber meistens nur ein Aufmerksamkeitsdefizit dahinter.

Und kann dann meistens schnell erkennen, ob sich da nicht hinter dem ganzen eine Person versteckt, die nur um Aufmerksamkeit wirbt und am Ende nichts wirklich funktionierendes zustande bringt.

Und es ist nun mal ein gewaltiger Aufwand, eine Kommunikationslibrary so zu testen, das diese in allen Anforderungen und Bedingungen zuverlässig funktioniert. Und genau an diesem Punkt scheitern die One-Man-Shows ...

Nimm es nicht persönlich, Deine Beiträge waren bisher sehr konstruktiv und meine Kritik richtet sich nicht gegen Deine Person. Wenn Du Dir diesen Schuh nun selber angezogen hast, ist nicht wirklich mein Problem.

Gruß

Question_mark
 
Zurück
Oben