CP 343 -1 OPC-Server

troedi

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

Eines vorweg: Ich habe bis jetzt in keinster Weise etwas mit Siemes Simatic Steuerungen und sonstigen "SPS-artigen Dingen" zu tun gehabt, daher kenne ich mich absolut nicht aus. Das ist auch der Grund, warum ich mit den PDF's von Siemens, und mit diversen Threads hier im Forum nicht wirklich viel anfangen kann.

Kurze Problembeschreibung:

Zur Steuerung einer Querteilanlage wurde eine Siemens Simatic-Steuerung installiert (ich weiß auch nicht genau welche Hardware verwendet wurde). Die einzigen Informationen welche ich habe sind: Als Kommunikationsbaugruppe wird eine CP 343-1 verwendet. Weiters ist auf einem PC der OPC-Server von Siemens installiert (dieser soll mit der Kommunikationsbaugruppe über Industrial Ethernet kommunizieren).

Meine Aufgabe ist es Daten eines Produktionsplanungssystems an die Steuerung zu übergeben und umgekehrt. Über die Installtion der Steuerung usw. brauche ich mir keine Gedanken zu machen, das ist alles breits vorhanden.

Ich muss nun irgendwie die Verbindung zwischen OPC-Server (von Siemens) und der Steuerung herstellen. Damit ich mit einem OPC-Client die Daten der Steuerung empfangen kann.

Soweit ich das richtig verstanden habe, gibt es sogenannte "Datenbausteine". Diese gehören, soweit ich weiß direkt auf der Steuerung definiert, und das sollte meines Wissens auch schon erledigt sein.

Es geht also rein darum, was ich auf dem PC alles einstellen und konfigurieren muss, damit ein OPC-Client mit der Steuerung kommunizieren kann. (Die Begriffe "Verbindungen projektieren" usw... sind mir zwar ein Begriff, doch bin ich damit "leicht" überfordert).

Derzeit ist nur der OPC-Server mit sämtlichen Komponenten, welche noch auf der CD von Siemens waren, installiert.

Hoffentlich könnt ihr mich bei der Konfiguration unterstützen, oder mir eine Quelle für ein Tutorial (anfänger-geeignet) nennen.

lg
 
IP Adresse der steuerung wissen.
OPC Server Installieren
OPC Client Installieren
OPC Server Target geben (halt die Siemens Steuerung)
Variabeln im OPC Server Anlegen
Mit deinem OPC Client auf den Server zugreifen


Helfen würde uns wenn du schreiben würdest welchen OPC Server du benuzt und wie die Steuerung der CP eingestellt ist, es gibt mehre verfahren und Protokolle um auf der S7 zuzugreifen (ISO ON TCPIP oder TCP/IP usw.)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Danke für die rasche Antwort!



OPC Client Installieren
Die IP der Steuerung weiß ich, und der OPC - Server ist installiert (von Siemens, keine Ahnung obs da verschiedene gibt?)

OPC Server Target geben (halt die Siemens Steuerung)
was darf ich da jetzt drunter verstehen? (tut mir leid, aber ich steh bei dem thema echt total im dunkeln)

Variabeln im OPC Server Anlegen
Meinst du mit Variablen die Datenblöcke? Wenn ja, dann ist bereits das erste Missverständnis erklärt. Jemand, der das Programm (oder so) für die Steuerung geschrieben hat, hat mir gesagt dass die datenblöcke "in der Steuerung" definiert sind, und dass ich mich darum nicht kümmern müsse.
Falls dem nicht so ist: Wie lege ich die Variablen an? (Ich habe eine himmel-lange Liste mit 2 oder 3 Datenblöcken... ich hoffe das ist das richtige)

Mit deinem OPC Client auf den Server zugreifen
Das ist so eine Sache. Den Client gibt es noch nicht, den soll ich ja machen. Wichtig ist jetzt erst mal dass generell die Verbindung funktioniert.


Helfen würde uns wenn du schreiben würdest welchen OPC Server du benuzt und wie die Steuerung der CP eingestellt ist, es gibt mehre verfahren und Protokolle um auf der S7 zuzugreifen (ISO ON TCPIP oder TCP/IP usw.)
siehe oben (Siemens-OPC-Server; Protokoll...ist ziemlich sicher TCP/IP)


Ich hoffe ich bin wegen meiner unwissenheit nicht zu anstrengend :)
 
Nein, nein, die Daten sind schon in der Steuerung in Datenbausteinen angelegt. Du mußt aber auch im OPC-Server noch einmal definieren, auf welche der Daten in der Steuerung du denn zugreifen willst, das ist gemeint. Dazu mußt du natürlich wissen, was wo in der Steuerung an Daten liegt.

Ruf doch mal den OPC.Scout von Siemens auf und schau dir das zuerst mal an. Mit Hilfe von "F1" und ein wenig probieren wirst du auch sehen, was Raydien meinte. Du mußt ja auch dem OPC-Server erstmal mitteilen, mit welcher Steuerung er Kontakt aufnehmen soll. Das ist gemient mit "Target geben" und "Variablen anlegen".

Was willst du denn als Client einsetzen?
 
Was willst du denn als Client einsetzen?
Der Client wird eine Access-Anwendung (mit SQL-Server-Datenbank) werden, da auch das Produktionsplanungssystem schon eine MS-Access Anwendung ist.

Ruf doch mal den OPC.Scout von Siemens auf und schau dir das zuerst mal an. Mit Hilfe von "F1" und ein wenig probieren wirst du auch sehen, was Raydien meinte.
Da ich das ganze über eine Fernwartung mache, kann ich im Moment nicht drauf, da irgendjemand den entsprechenden PC wieder ausgeschaltet hat :)
Leider habe ich die Programme jetzt nicht mehr so genau in Erinnerung, aber mit OPC.Scout habe ich schon mal ein wenig "gespielt". Aber muss ich nicht vorher einmal eine Verbindung projektieren oder wie das heißt? Das habe ich zumindest in den PDF's von Siemens so verstanden. Nur leider habe ich die Anleitungen nicht kapiert. Es kommt mir irgendwie so vor als seien diese Anleitungen nicht für Leute geschrieben, die noch nie mit so etwas zu tun hatten :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OPC-Client, nicht gerade trivial

Hallo,

troedi schrieb:
Den Client gibt es noch nicht, den soll ich ja machen.

Na denn viel Spass, die Aufgabe ist nicht gerade trivial. Heisst das etwa, du sollst als Aufgabe den OPC-Client erstellen ???
OPC-Clients gibt es fertig von verschiedenen Herstellern und für diverse Programmiersprachen. Warum das Rad neu erfinden ???
Wenn Du allerdings anhand von Vorgaben zur Neuerfindung des runden Rades gezwungen bist, solltest Du Dir zuerst die Spezifikationen zum COM-Interface der OPC-Server (in Deinem Falle wahrscheinlich OPC-DA 3.0) besorgen, durchlesen und dir auf der Microsoft-Homepage Informationen über COM-Interfaces besorgen (alternativ gibt es dazu für diverse Programmiersprachen gute Bücher im Fachhandel). Nach ca. 4 Wochen hat man dann die Grundlagen verstanden und kann die ersten Zeilen programmieren. Also wirklich, einen OPC-Client zu programmieren ist nicht trivial (weiss ich aus leidvoller Erfahrung), hat aber bei mir natürlich dazu beigetragen, die OPC-Spezifikation und die COM-Interfaces zu verstehen.

Question_mark schrieb:
einen OPC-Client zu programmieren
Damit meine ich einen Client, der gemäss der OPC DA-Spezifikation mit allen OPC-Servern aller Hersteller, Transportprotokollen, SPS-Steuerungen zu 100% funktioniert. Nicht gemeint ist damit ein Produkt, dass vielleicht mit 10 Zeilen VBA-Code eine ganz spezielle Anforderung für eine bestimmte Anlagenkonfiguration erfüllt, aber das ist dann eher ein Bastelwerk.
Weitere Infos dazu hier :

http://www.opcconnect.com/
und natürlich :
http://www.opcfoundation.org/

Vielleicht kannst Du Deine Aufgabe etwas näher erläutern, da sind noch einige Unklarheiten.

Gruss

Question_mark
 
hmm... so wird es dann wohl sein. ich "erfinde" also keinen neuen opc-client, sondern benutze einen vorhandenen in einer bestehenden anwendung. wie gesagt, da ich über das ganze nicht wirklich viel weiß, ist es für mich schwer mich richtig auszudrücken :)
 
Na denn viel Spass, die Aufgabe ist nicht gerade trivial. Heisst das etwa, du sollst als Aufgabe den OPC-Client erstellen ???
...
Wenn Du allerdings anhand von Vorgaben zur Neuerfindung des runden Rades gezwungen bist, solltest Du Dir zuerst die Spezifikationen zum COM-Interface der OPC-Server (in Deinem Falle wahrscheinlich OPC-DA 3.0) besorgen, durchlesen und dir auf der Microsoft-Homepage Informationen über COM-Interfaces besorgen
...
Damit meine ich einen Client, der gemäss der OPC DA-Spezifikation mit allen OPC-Servern aller Hersteller, Transportprotokollen, SPS-Steuerungen zu 100% funktioniert. Nicht gemeint ist damit ein Produkt, dass vielleicht mit 10 Zeilen VBA-Code eine ganz spezielle Anforderung für eine bestimmte Anlagenkonfiguration erfüllt, aber das ist dann eher ein Bastelwerk.
Hallo QM,
ich widerspreche Dir da ungern, aber wenn man mit den Spezifikationen der OPC-Foundation den Einstieg in das Thema versucht, dann wird einem das ganz schnell verleidet. :confused:

Ich finde die Beschreibung in den Siemens-Handbüchern zum SimaticNet-OPCServer gerade für Einsteiger recht gut gelungen, auf Basis dieser Beschreibung habe ich vor ein paar Jahren meine ersten "Gehversuche" mit OPC gemacht. Herausgekommen ist dabei am Ende ein OPC-Client in Form einer Delphi-Komponente, die mit allen OPC DA 2.0 kompatiblen Servern funktioniert, und die seither von meinen Kollegen und mir für diese Aufgabe eingesetzt werden.

Das ich damit das Rad neu erfunden habe, stört mich nicht wirklich, da ich dadurch gelernt habe, wie OPC genau funktioniert (zwei eigene OPC-Server habe ich danach auch noch programmiert ;)).

Ich gebe Dir allerdings insofern recht, das ein Anfänger in der PC-Programmierung mit Hochsprachen besser die Finger davon lassen sollte.


Gruß Axel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit den Siemens-Handbüchern habe ich bis jetzt (ca 1 Woche) keinen Erfolg gehabt. In erster Linie geht es mir darum wie ich Verbindungen definiere (projektiere???). Mir fehlt einfach alles was nach der Installation des OPC-Servers erfolgen muss. Ich habe derzeit nur eine nackte OPC-Server Installation, ohne jegliche Konfigurationen.
 
Irgendwo muss doch "Teilnehmer einbinden " oder "Target" oder irgendeine Zielangabe sein.

Ich kenne zwar den Siemens OPC nicht, aber diese Einstellungen muss sein. (OPCs sind in gewisser hinsicht gleich)

Dort Musst du die Steuerung eintragen, Üblicherweise IP evt. noch Steckplatznummer (normalfall 2)

In der Siemenssteuerung hast du gewisse Datenbausteine, in diesen Datenbausteine hast du mehre Datenpunkte

In der SPS angelegte Datenpunkte:
wenn du zB. auf deiner Datenpunktliste ein Temperaturwert im DB100.DBW120 INT liegt
dann heißt dies das dieser wert im Datenbausten 100, im Wort 100 INT = Interger ist


Die Variabel muss auch dann im OPC Server angelegt werden und dann nacher dem Ziel zugewiesen werden
(Ziel == Target SPS, Datenpunkt)
 
Hab mir mal ein altes Projekt angesehen. Ich hab das damals folgendermaßen gemacht.

Also, der SPS-Mensch muß eine PC-Station in NetPro (Step7-Manager) anlegen und dort die Verbindungen zu den gewünschen SPS projektieren. Diese Einstellungen werden dann in eine sogenannte *.xdb - Datei abgelegt, die der PC braucht, um die CP auf dem PC (CP5613) zu konfigurieren (Wurde, glaube ich über Schnittstelle einstellen eingelesen oder mit dem OPC-Scout, bitte mal nachlesen). Danach kann man mit dem OPC-Scout die entsprechenden Verbindungspunkte wählen und die Variablen die man braucht anlegen. Ich weiß allerdings nicht, ob der OPC-Scout auch remote auf den PC mit der CP und dem OPC-Server zugreifen kann, um neue Variablen anzulegen.

Es gibt noch eine 2 Datei, die *.ldb auch hier werden die Konfigurationsdaten abgelegt. Welch von beiden eigentlich wirklich benötigt wird, kann ich jetzt gar nicht mehr sagen. Die *.xdb erzeugt man über Siematic PC-Station/Eigenschaften, die *.ldb über CP5513/Eigenschaften, alles im NetPro.

Ohne diese Dateien kann man wohl auch etwas erreichen, indem man die Verbindungsdaten zu Fuß eingibt, auf solche Spiele hab ich damals lieber gleich verzichtet.

Wenn dir also gesagt wird, daß alles fertig ist, sollten die Verbindungspunkte im OPC-Server schon stehen, ansonsten solltest du dich mal mit dem SPS-Programmierer kurzschließen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Irgendwo muss doch "Teilnehmer einbinden " oder "Target" oder irgendeine Zielangabe sein.

Ich kenne zwar den Siemens OPC nicht, aber diese Einstellungen muss sein. (OPCs sind in gewisser hinsicht gleich)
Siemens ist da leider mal wieder "gleicher", der OPC-Server von SimaticNET muss in SimaticManager projektiert werden: Entweder eine PC-Station in das SPS-Projekt einbinden, oder gleich ein eigenes Projekt dafür anlegen, in das (virtuelle) Rack des PCs den OPC-Server und noch einen CP reinprojektieren und die Parameter dafür (IP-Adresse usw.) richtig einstellen, die Verbindung zur SPS im Netpro projektieren (da wird der Verbindungsname dann festgelegt). Das ganze dann in die "Steuerung" (den PC !) laden (über die PG/PC-Schnittstelle "PC-internal"), und hoffen, das alles richtig eingestellt ist, dann funktioniert es evtl. auch ... :rolleyes:

Ich hoffe, ich hab nichts vergessen, hab mich von anderthalb Jahren das letzte mal damit rumgeschlagen.

Die Variabel muss auch dann im OPC Server angelegt werden und dann nacher dem Ziel zugewiesen werden
(Ziel == Target SPS, Datenpunkt)
Im OPC-Server von SimaticNet muß man die Variablen nicht anlegen, der kann auch dynamisch adressieren, d.h. wenn der Client eine OPC-ItemID im Format "S7:[Verbindungsname]DB1,X0.0" vorgibt, dann holt sich der OPC-Server die Daten dazu aus der SPS, auch wenn er vorher von der Adresse noch gar nichts wusste.


Gruß Axel
 
Danke für die vielen Antworten!

Das mit den xdb-files hab ich noch nicht ganz verstanden? muss ich diese selber erstellen, oder sollte ich diese von den Leuten die die steuerung (hardwaremäßig) installiert haben bekommen?

naja, werd mich am montag weiter damit spielen, ich hoffe bis dahin kann ich wieder auf den pc, auf dem der OPC-Mist installiert ist.
Danke, und schönes Wochenende euch allen!
 
Xdb und/oder ldb kommt von den Leuten, die die Steuerung erstellen und die Verbindung zum PC mit dem Step7-Manager parametrieren.
naja, dann betrifft es mich ja doch! das muss ja auch ich machen (alles was mit der Softwarekonfiguration am PC zu tun hat geht an mich). Ich schätze mal dass unter "die Verbindung zum PC mit dem Step7-Manager parametrieren" auch das Projektieren fällt. Das ist ja auch ein Punkt an dem ich kläglich scheitere!
 
SimaticNet OPC-Server

Hallo,

afk schrieb:
muss in SimaticManager projektiert werden

Nicht unbedingt, wer den Simatic OPC-Server gekauft hat (also das Paket Softnet IE z.B.) und installiert, findet dann den "NCM PC-Manager" oder so ähnlich (ich hoffe, der Name ist jetzt aus dem Gedächtnis heraus richtig zitiert). Darin enthalten ist der Programmteil "Netz konfigurieren" aus dem S7 Simatic-Manager. Beim abschliessenden "Prüfen und Übersetzen" wird die zitierte *.xdb Datei erzeugt und unter ...\Proj\XDBs abgelegt. Diese Datei kann dann mit dem Komponenten-Manager importiert werden. Ein direkter Transfer ist auch aus "Netz konfigurieren", "Zielsystem", "Markierte Stationen" möglich, funktioniert aber nach meiner Erfahrung nicht immer zuverlässig.
Wichtig ist, dass die Verbindung und die benutzten Tags einmal mit dem OPC-Scout bearbeitet und damit angelegt werden. Damit sind diese Tags ein für alle Mal der projektierten Verbindung zugeordnet und damit dem OPC-Server bekannt. Es gibt zwar noch andere Wege, aber das führt jetzt zu weit....
Dateien vom Typ *.ldb sind heute beim Simatic OPC-Server nicht mehr nötig, da veraltert.

Gruss

Question_mark
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und nochmal OPC-Server

Hallo,

Ralle schrieb:
Ich weiß allerdings nicht, ob der OPC-Scout auch remote auf den PC mit der CP und dem OPC-Server zugreifen kann, um neue Variablen anzulegen.

Ja, das kann er. Der OPC-Scout ist nichts anderes als ein OPC-Client, der zum Test von Verbindungen und Anlegen von Tags als Tool in SimaticNet beigelegt wird. Allerdings scheitert der Verbindungsaufbau zu einem remoten OPC-Server meist an den DCOM-Sicherheitseinstellungen. Eine Wissenschaft für sich, darüber kann man seitenlange Abhandlungen schreiben. Die Funktion zum remoten Zugriff auf den OPC-Server muss jeder OPC-Server gemäss der von AFK so geschmähten Spezifikation implementiert haben, ansonsten gehört er in die Mülltonne (Also der OPC-Server, nicht AFK .:s17:).
Voraussetzung sind natürlich die korrekten DCOM-Einstellungen und ein OPC-Client gemäss OPC-Spezifikation (das konnte ich mir jetzt nicht verkneifen ;) ), dann klappt das auch remote.

Gruss

Question_mark
 
Zuletzt bearbeitet:
Hallo,

afk schrieb:
dann holt sich der OPC-Server die Daten dazu aus der SPS, auch wenn er vorher von der Adresse noch gar nichts wusste.

Das muss ich in den nächsten Tagen nochmal ausprobieren. Bisher hatte ich immer Probleme, wenn die Tags nicht in der Datei "s7core.txt" auf irgendeine Art definiert waren (Sei es durch händischen Eintrag oder durch den OPC-Scout).
Diese Vorgehensweise hat ausserdem den Vorteil, dass ich über "Alias" symbolische Namen vergeben kann und später aus meiner Anwendung über die Symbolik das Tag ansprechen kann.
Werde das probieren und mich dazu nochmal melden.

Gruss

Question_mark
 
Und nochmal, weils so schön war

Hallo,

afk schrieb:
aber wenn man mit den Spezifikationen der OPC-Foundation den Einstieg in das Thema versucht, dann wird einem das ganz schnell verleidet.

Hast ja recht, eine furztrockene Sache. Kommt eben darauf an, wie tief man in die Sache einsteigen will. Soll die Anwendung (b.z.w. der Client) wirklich für jeden denkbar möglichen OPC_Server jedes x-beliebigen Herstellers einer SPS funktionieren und durch korrekte Reaktionen im Fehlerfall den OPC-Server nicht aus dem Tritt bringen, ist ein Studium dieser Spezifikation unumgänglich. Will man nur eine bestimmte Anwendung erstellen, die nur für die eigenen Zwecke erstellt und getestet wird, sind die Beispiele bei Siemens ganz gut zum Einstieg. Aber wir hatten das Thema schon mal, lassen wir das, wir reden da immer noch aneinander vorbei ;)

Gruss

Question_mark
 
Zurück
Oben