TIA Daten aus Global_DB über PC auslesen

Koi_Andi

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

Ich habe eine Frage an euch. Ich habe ein Programm mit verschiedenen Füllständen in Liter. Diese Füllstände habe ich auf ein Global DB gelegt. Nun möchte ich diese Datensätze via PC auslesen.

Die gewünschte Weise wäre:
IP Eingabe der Steuerung> Benutzer und Passwort> Global DB> gewünschter Datensatz auslesen.

Sprich ich brauche einen direkten Pfad zum DB als auch dann so, dass ich mir jeden Wert extra aus der CPU ziehen kann, ohne über den Webserver und der Beobachtungsliste zu müssen. Das möchte man nicht, da ein externes Programm diese Datensätze dann bearbeitet und auswertet.

Nun ist es möglich per direkten Pfad auf den Global DB direkt zu gelangen und dort Je nach dem was gerade gewünscht wird diesen Wert auszulesen ohne jedoch im Programm über die Funktion Put/Get das Ganze zu realisieren?

Ich bin dazu nicht zu tief mit der SPS vertraut, ich kann eben etwas Programmieren und Analogwerte sowie die Visu Programmieren. Tiefe Sachen wie das hier, da fehlt mir die Fachkentniss.


Gruß

Andi
 
Eine SPS veröffentlicht Datenbausteine nicht einfach so im/fürs Netzwerk, man kann Datenbausteine auch nicht einfach so "per Pfad" auslesen. Man braucht eine Software, welche zur Kommunikation das erforderliche S7-Protokoll umsetzt. Das kann zum selber Programmieren eine Bibliothek wie Snap7 oder Libnodave sein, es gibt aber auch einfachere/fertige Pakete, mit denen man Daten aus SPS auslesen kann, z.B. ACCON-EasyLog oder ACCON-AGLink oder S7-FileLogger, oder eine WinCC Runtime auf PC oder einem HMI-Panel betreiben und damit die Daten aus der SPS lesen und in Text/csv-Dateien speichern. Theoretisch müßte man auch die API des SIMATIC Automation Tool zum auslesen von DB nutzen können.

Wenn die SPS einen Webserver hat, dann könnte man in der SPS eine Webseite erstellen, welche die gewünschten Werte enthält.
Manche SPS können Logs und Rezepte auf die Memory Card schreiben, die man mit einem Dateibrowser auslesen kann.
Und es gibt auch noch die Möglichkeit, daß das SPS-Programm die Daten zum PC sendet - das muß aber in der SPS programmiert werden und auf dem PC muß ein Datenempfänger (z.B. TCP-Server) installiert/programmiert werden.

Ob und wie das Auslesen von DB funktioniert hängt im Detail nicht unwesentlich davon ab, welche Ziel-SPS angesprochen werden soll - also welche SPS willst Du auslesen?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine SPS veröffentlicht Datenbausteine nicht einfach so im/fürs Netzwerk, man kann Datenbausteine auch nicht einfach so "per Pfad" auslesen. Man braucht eine Software, welche zur Kommunikation das erforderliche S7-Protokoll umsetzt. Das kann zum selber Programmieren eine Bibliothek wie Snap7 oder Libnodave sein, es gibt aber auch einfachere/fertige Pakete, mit denen man Daten aus SPS auslesen kann, z.B. ACCON-EasyLog oder ACCON-AGLink oder S7-FileLogger, oder eine WinCC Runtime auf PC oder einem HMI-Panel betreiben und damit die Daten aus der SPS lesen und in Text/csv-Dateien speichern. Theoretisch müßte man auch die API des SIMATIC Automation Tool zum auslesen von DB nutzen können.

Wenn die SPS einen Webserver hat, dann könnte man in der SPS eine Webseite erstellen, welche die gewünschten Werte enthält.
Manche SPS können Logs und Rezepte auf die Memory Card schreiben, die man mit einem Dateibrowser auslesen kann.
Und es gibt auch noch die Möglichkeit, daß das SPS-Programm die Daten zum PC sendet - das muß aber in der SPS programmiert werden und auf dem PC muß ein Datenempfänger (z.B. TCP-Server) installiert/programmiert werden.

Ob und wie das Auslesen von DB funktioniert hängt im Detail nicht unwesentlich davon ab, welche Ziel-SPS angesprochen werden soll - also welche SPS willst Du auslesen?

Harald
Es wäre eine S7 1513.
Das mit der Webseite wollte ich probieren, jedoch ist es so das man die SPS Werte auf einen Server gerne weiter bearbeiten möchte. Ich wollte eine Beobachtungstabelle ja erstellen. Möchte man aber nicht haben, vielmehr soll die SPS die Daten an einen Server heraus geben.
Leider ein Standart IT Server und keiner von Siemens.

Nächstes Problem ist auch, dass die IT dort eben DHCP verwendet und ich aber Mails versenden soll. Heißt ich brauche im Programm eine feste IP zum versenden. Habe ich jedoch somit nicht. Startet der Server irgendwie neu wird sich die IP ändern


Gruß

Andi
 
Was ist ein "Standart IT Server"? Für eine S7-1500 ist es kein Problem, zu beliebigen Netzwerk-Teilnehmern via Standard-TCP-Verbindungen Daten zu senden (Programmbeispiele siehe den Link in meiner Signatur: FAQ: Linkliste SIMATIC-Kommunikation über Ethernet) - allerdings kann die SPS nicht lustig ihre IP-Adresse ändernde Teilnehmer verfolgen - wenn denn die IT unbedingt ihr Adresshopping beibehalten will, dann soll doch deren Server die Verbindung zu Deiner SPS aufbauen - oder springt Deine SPS etwa auch umher?

Harald
 
Das mit der Webseite wollte ich probieren, jedoch ist es so das man die SPS Werte auf einen Server gerne weiter bearbeiten möchte.
Die Server-Leute sind wohl keine Programmierer? ;)
Es sollte für einen PC-Programmierer kein Problem sein, eine Webseite einzulesen und die darin enthaltenen Daten herauszufiltern und wie auch immer auf dem PC abzulegen ...

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was ist ein "Standart IT Server"? Für eine S7-1500 ist es kein Problem, zu beliebigen Netzwerk-Teilnehmern via Standard-TCP-Verbindungen Daten zu senden (Programmbeispiele siehe den Link in meiner Signatur: FAQ: Linkliste SIMATIC-Kommunikation über Ethernet) - allerdings kann die SPS nicht lustig ihre IP-Adresse ändernde Teilnehmer verfolgen - wenn denn die IT unbedingt ihr Adresshopping beibehalten will, dann soll doch deren Server die Verbindung zu Deiner SPS aufbauen - oder springt Deine SPS etwa auch umher?

Harald

Genau das ist der springende Punkt, dass der "IT Guru" das so beibehalten will und tut.

Und Nein Harald, er hat von einer SPS keine, absolut keine Ahnung. SPSén sind nach seiner Auffassung alle Mist und Sch..., weil die kein DHCP können. Aber hierzu hat und gibt es ja genügend Gründe und Beispiele warun genau das ja der Fall ist, dass DHCP vorerst an einer Steuerung nix verlohren hat.


Ich habe noch nie mit Put/Get gearbeitet, weil ich strikt Netzte trenne und aber auch getrennt lasse. Brauch ich Daten von mehreren CPU´s, dann über OPC Server.

Ich hatte eine Lösung, war auch verbaut. es gibt von der Firma Helmholz einen Rex 300. Damit kann ich jeden Parameter auslesen über ein extra Portal weiterleiten. Auch komplette Datensätze. Nun leider gibg das Ding nie ans Netz, warum auch immer. Laut IT´ler will er das nicht, weil der liebe Rex 300 Eco eine VPN aufbaut. Will er nicht....

Gruß

Andi
 
Zuletzt bearbeitet:
PUT/GET hat mit Netztrennung nichts zu tun und hilft Dir sowieso nicht bei der Kommunikation mit einem PC - der PC versteht das S7-Protokoll eh' nicht (es sei denn, da würde eine S7-Soft-SPS (oder ein anderer Server für PUT/GET) oder eine WinCC Runtime (oder ein anderer S7-Client) drauf laufen).

Weil die "Mist"-SPS nicht kann, was die IT will, muß die IT aktiv werden um mit der SPS zu kommunizieren. Entweder die IT liest sich die Daten aus der SPS aus (gerne auch per OPC Server) oder die SPS betreibt einen TCP-Server (kann auch z.B. Modbus sein), mit dem die IT sich verbinden kann.

Ich würde dem Server-Guru vielleicht noch anbieten, daß die SPS die Daten auf einem Drucker ausdruckt und die IT kann sich das Protokoll da abholen ;)

Harald
 
PUT/GET hat mit Netztrennung nichts zu tun und hilft Dir sowieso nicht bei der Kommunikation mit einem PC - der PC versteht das S7-Protokoll eh' nicht (es sei denn, da würde eine S7-Soft-SPS (oder ein anderer Server für PUT/GET) oder eine WinCC Runtime (oder ein anderer S7-Client) drauf laufen).

Weil die "Mist"-SPS nicht kann, was die IT will, muß die IT aktiv werden um mit der SPS zu kommunizieren. Entweder die IT liest sich die Daten aus der SPS aus (gerne auch per OPC Server) oder die SPS betreibt einen TCP-Server (kann auch z.B. Modbus sein), mit dem die IT sich verbinden kann.

Ich würde dem Server-Guru vielleicht noch anbieten, daß die SPS die Daten auf einem Drucker ausdruckt und die IT kann sich das Protokoll da abholen ;)

Harald

Das Ganze geht schon 6 Monate so, ich hab 4 Monate auf eine Lösung der IT gewartet. Kam nix.

Wie würde das mit dem TCP aussehn ??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich muss hier noch einmal nachfragen :
Von den von Harald im Beitrag #2 genannten Alternativen kommt keine für dich in Betracht ?
Mit den genannten Varianten wärst du ja auf die eine oder andere Art und Weise in der Lage eine Datei irgendwo auf einem Server abzulegen, die dein IT-Guru sich dann importieren kann (falls er das denn kann).
Die genannte TCP-Variante wirst du m.E. auf deiner Seite (also in der SPS) sicherlich an den Start bekommen - es gehört dann aber immer noch eine Gegenseite dazu. Meinst du das deine / eure IT das hin bekommt ? Dafür müßte man dann auch wieder etwas programmieren ...

Gruß
Larry
 
Alle Vorschläge für Client-Lösungen werden daran scheitern, daß der Server keine feste IP-Adresse hat.
Oder gibt es für die S7-1500 eine Lösung, einen Server trotz wechselnder IP-Adresse zu finden?


Ich würde wohl einfach auf der S7-1500 mit TCON einen TCP-Server aufsetzen, der eingehende Verbindungen von Clients mit beliebigen IP-Adressen akzeptiert, und wenn mit TRCV ein vereinbartes "Hallo" oder "Command" empfangen wurde, dann mit TSEND ein Antworttelegramm mit den vereinbarten Daten binär oder in Klartext konvertiert zurücksenden. Das kann man der IT-Abteilung mit einem Terminalprogramm (z.B. Hyperterminal) vorführen und gut ist. Wie die den Client realisieren wäre nicht mehr mein Problem. :cool:
Falls die Programmmierung von TCON, TRECV und TSEND zu kompliziert erscheint oder wenn es ein flexibleres Protokoll sein soll, dann gibt es auch schon fertige Bibliotheken und Programmbausteine für einfaches Standard-TCP-Protokoll, Modbus-TCP-Server oder andere Protokolle - das Daten-Polling wird dann allerdings auch für den PC-Client komplizierter.

Beispiele für TCP-Server
Wie programmieren Sie die Kommunikationsanweisung TCON, um zwischen zwei S7-1500 CPUs eine Verbindung für die Open User Communication aufzubauen?
SIMOTION, SIMATIC: Kommunikationsbibliothek LCom für Ethernet-Kommunikation (kann auch Standard-TCP-Protokoll)
Wie programmieren und parametrieren Sie die Modbus-TCP-Kommunikation zwischen zwei S7-1500 CPUs?
powermanager - Lese/Schreibe Daten einer SIMATIC S7-1200 / 1500 CPU über Modbus TCP
Linienintegration in der Nahrungs- und Genussmittelindustrie - Plant Communication Concept


PS @Koi_Andi
Bitte nicht immer komplette Beiträge zitieren.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Frage, wäre, was genau will denn der Herr IT-ler. Kling so, wie "Wasch mich, aber mach mich nicht nass!"
Wenn die nur DHCP wollen, kein VPN, dann können ja Sicherheitsbedenken bei denen keine Rolle spielen oder?
Insofern würde ich die techn. Möglichkeiten, die o.g. wurden, an den Chefe weitergeben und dann sollen die sich mal kümmern.

PS: Server ohne feste IP, macht man das wirklich und warum ???
 
Ich würde diesen "IT-Guru" fragen, ob der wenigstens json-Datensätze oder xml-Dateien verarbeiten kann.
Wenn ja, dann legst du dir auf dem Webserver eine anwenderdefinierte Seite an die dem Aufbau von json oder xml entspricht, und wo du an den entsprechenden Stellen per awp-Anweisungen Variablen aus der SPS einfügst.

Wenn er das auch nicht kann, dann ist er in der IT definitiv fehl am Platz.
 
Hast Du ein HMI-Panel oder Visu an Deiner Anlage? Hat der Server eine Netzwerkfreigabe oder gibt es andere Freigaben oder NAS im Netz?
Dann könnte das Panel/Visu die Daten aus Deiner SPS lesen und in eine Datei auf der Freigabe schreiben.
Oder der Server schreibt seine aktuelle IP-Adresse in eine Datei und das HMI liest die Datei und teilt der SPS die IP mit - dann ginge auch eine Lösung mit SPS als aktiver Client. Was für einen Server will die IT denn betreiben?

Wie oft sollen die Daten an den Server übergeben werden? Wie viele Daten etwa?

Harald
 
Zurück
Oben