# CP 343 -1  OPC-Server



## troedi (4 Januar 2007)

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​


----------



## Raydien (4 Januar 2007)

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.)


----------



## troedi (4 Januar 2007)

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


----------



## Ralle (4 Januar 2007)

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?


----------



## troedi (4 Januar 2007)

> 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


----------



## Question_mark (4 Januar 2007)

*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


----------



## troedi (4 Januar 2007)

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


----------



## afk (5 Januar 2007)

Question_mark schrieb:


> 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.  

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


----------



## troedi (5 Januar 2007)

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.


----------



## Raydien (5 Januar 2007)

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)


----------



## Ralle (5 Januar 2007)

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.


----------



## afk (5 Januar 2007)

Raydien schrieb:


> 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 ... 

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



Raydien schrieb:


> 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


----------



## 0815prog (5 Januar 2007)

Hallo,

hier ein Link zu einem Siemens Handbuch. Das sollte auf jeden Fall weiterhelfen. 

http://support.automation.siemens.c...eid=cseus&query2=&modelled=OPC+Server&lang=de

Oder auf der Support-Seite bei Siemens einfach "OPC-Server" eingeben. Da kommen jede Menge Treffer.

http://support.automation.siemens.com/WW/llisapi.dll?func=cslib.csinfo2&siteid=cseus&lang=de

Gruss

______________________________________________________


----------



## troedi (5 Januar 2007)

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!


----------



## Ralle (5 Januar 2007)

Xdb und/oder ldb kommt von den Leuten, die die Steuerung erstellen und die Verbindung zum PC mit dem Step7-Manager parametrieren.


----------



## troedi (5 Januar 2007)

> 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!


----------



## Question_mark (5 Januar 2007)

*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


----------



## Question_mark (5 Januar 2007)

*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


----------



## Question_mark (5 Januar 2007)

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


----------



## Question_mark (5 Januar 2007)

*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


----------



## afk (6 Januar 2007)

*Einigen wir uns auf ein Unentschieden ...*



Question_mark schrieb:


> ... gemäss der von AFK so geschmähten Spezifikation implementiert haben ...
> ... 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.


Das hast Du falsch verstanden, die Spec verschmähe ich nicht, ich hab sie sehr wohl gelesen, ich halte sie nur nicht für empfehlenswert als erste Lektüre für einen Einsteiger in Sachen OPC.  

Der Zugriff über PC-Grenzen hinweg funktioniert mit meinem OPC-Client übrigens genauso (wenig) problemlos, wie mit jedem Anderen, den ich bisher getestet habe (konnte ich mir jetzt auch nicht verkneifen  ), richtig problematisch wird es immer erst im Zusammenhang mit einer Windows-Domäne, und das was die OPC-Foundation für die DCOM-Einstellungen empfiehlt, das ist für die meisten Admins der reinste Horror !



Question_mark schrieb:


> 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.


Das funktioniert definitiv, wir haben bestimmt über 100 Maschinen so ausgeliefert, bevor wir auf meinen selbstgeschriebenen OPC-Server umgestiegen sind.



Question_mark schrieb:


> 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


So unterschiedlich sind unsere Meinungen da gar nicht (siehe oben), ich finde nur, das Du einen Anfänger in Sachen OPC nicht gleich mit einer Spec von mehreren hundert Seiten "totschlagen" solltest, die ihn zudem wahrscheinlich zu keinem einzigen Erfolgserlebnis führen wird. Die Beschreibung in den Siemens-Handbüchern ist zwar nicht gerade umfassend, aber wenn man Schritt für Schritt danach vorgeht, dann bekommt man schon mal einen grundlegenden Einblick darin, wie es funktioniert, und hat auch schon ein erstes (kleines) Erfolgserlebnis, das zum Weitermachen (z.B. Spec lesen :lol ermuntert.


Gruß Axel


----------



## Question_mark (6 Januar 2007)

*Das Endergebnis*

Hallo,



			
				afk schrieb:
			
		

> Einigen wir uns auf ein Unentschieden



Einverstanden, 1:1 für Dich und mich. Wir sind uns ja einig, es kommt immer darauf an, was man erreichen will. Und je nach Ziel wird der eine oder andere Weg richtig sein...

Gruss

Question_mark


----------



## winny-sps (7 Januar 2007)

Zum erstellen von OPC Clients und Servern gibt es von Softing die OPC Toolbox .Net oder Toolbox C++, http://www.softing.com/home/de/industrial-automation/products/opc/toolkits.php?navanchor=3010172
Dabei sind Beispiele für alle möglichen Dienste (DA, AE....). Die .NET Toolbox habe ich schon genutzt da waren Beispiele in VB.NET und C# dabei. 
Die Toolbox C++ soll auch nicht schlecht sein falls C++ besser liegt. Du kannst eine DEMO downloaden. Es gibt auch einen Demo OPC Server und Demo Client. Damit kann man bisl "spielen" um mit OPC vertrauter zu werden.


----------



## troedi (8 Januar 2007)

so, hab mich jetzt mal etwas mit dem OPC Scout gespielt...
Das ganze sieht so aus: 
	

	
	
		
		

		
			





(QTA3 heißt die Maschine, die von der Steuerung gesteuert werden soll). 

Sieht ja nicht so aus wie es sollte, oder? Müsste ich hier die bereits vorhandenen Datenblöcke sehen?


----------



## afk (8 Januar 2007)

troedi schrieb:


> Sieht ja nicht so aus wie es sollte, oder? Müsste ich hier die bereits vorhandenen Datenblöcke sehen?


Ja, den Inhalt der DBs kennen zwar weder OPC-Server noch -Client, bevor sie im OPC-Scout oder direkt in der Konfigurationsdatei eingetragen wurden, aber die DBs sollten hier eigentlich aufgelistet werden, sofern der PC mit der SPS verbunden ist und die Projektierung korrekt eingespielt wurde. 

Die Items &statepath() bzw. &statepathval() geben übrigens den Verbindungsstatus zurück, die Bedeutung von &vfdstate() weiß ich nicht mehr. Schau Dir die mal an, müsste nach dem was da zu sehen ist eigentlich "DOWN" in &statepath() liefern, wenn ich mich richtig entsinne ...


Gruß Axel


----------



## Question_mark (8 Januar 2007)

Hallo,



			
				afk schrieb:
			
		

> was da zu sehen ist eigentlich "DOWN" in &statepath() liefern, wenn ich mich richtig entsinne ...



Stimmt, und die anderen Zustände sind "UP" für eine aufgebaute Verbindung und "Recovery" beim Verbindungsaufbau.
Aber die vielen roten Kreuze, ist da überhaupt eine Verbindung projektiert ???

Gruss

Question_mark


----------



## Question_mark (8 Januar 2007)

Hallo,



			
				Question_mark schrieb:
			
		

> ist da überhaupt eine Verbindung projektiert ???



Musste mich jetzt mal selbst zitieren. Also die Verbindungsprojektierung scheint vorhanden zu sein, sonst würde "QTA3" nicht im OPC-Scout erscheinen. Die Projektierung ist jedoch fehlerhaft, sonst würden zumindest die Bereiche E/A/M ohne Kreuz erscheinen. Die DB's tauchen meiner Erinnerung nach erst nach erfolgtem Verbindungsaufbau in der Itemliste auf.

Gruss

Question_mark


----------



## troedi (9 Januar 2007)

tja, was soll ich sagen,... hab gestern noch eine weile "herumprojektiert", und nun komme ich nicht mal mehr zu obigen ergebnis! irgendwas kapier ich bei der Projektierung überhaupt nicht (habs jetzt so gut als möglich nach einer Anleitung in den Siemens-PDFs gemacht).

Kann mir mal einer sagen was im Komponenten Konfigurator alles zu sehen sein soll? und warum lässt sich "IE Allgemein" nicht starten?

Im Komponenten-Konfigurator steht unter Diagnose folgendes:


> 75  ! 09.01.2007 08:20:00 Proxy Die Komponente mit dem Index 2 konnte einen SDB nicht konvertieren.
> 74  ! 09.01.2007 08:20:00 IE-Konverter Index 2: Die MAC-Adresse der Baugruppe entspricht nicht der Projektierung und kann als Hardware-Eigenschaft nicht geändert werden.



Wie kann ich dieses Problem lösen?






Die Verbindungsprojektierung sieht so aus: (ich hoffe dass stimmt einigermaßen)


----------



## afk (9 Januar 2007)

troedi schrieb:


> Im Komponenten-Konfigurator steht unter Diagnose folgendes:
> 
> 
> > 75 ! 09.01.2007 08:20:00 Proxy Die Komponente mit dem Index 2 konnte einen SDB nicht konvertieren.
> ...


Steht alles da, die MAC-Adresse der Netzwerkkarte kann nicht geändert werden. In der Hardware-Projektierung darf keine MAC-Adresse für die Bauguppe IE-Allgemein vergeben werden (in Eigenschaften->Parameter darf die Option MAC-Adresse einstellen nicht aktiviert sein) ! 


Gruß Axel


----------



## troedi (9 Januar 2007)

irgendwas stimmt einfach gewaltig nicht. Den Fehler hab ich wieder wegbekommen. Bin also wieder auf dem Status wie im ersten Bild. Egal ob ich eine S7-Verbindung oder eine TCP-IP Verbindung projektiere.... im OPC-Scout sieht alles so aus wie oben. 
Muss ich die Steuerung selbst, und den Cp343-1 auch in das Projekt aufnehmen, oder reicht es wenn ich im "Net Pro" auf OPC-Server klicke, und da eine Verbindung anlege und dabei die IP der Steuerung angebe?


----------



## afk (9 Januar 2007)

troedi schrieb:


> Muss ich die Steuerung selbst, und den Cp343-1 auch in das Projekt aufnehmen, oder reicht es wenn ich im "Net Pro" auf OPC-Server klicke, und da eine Verbindung anlege und dabei die IP der Steuerung angebe?


Reicht nicht ganz, beim Anlegen der Verbindung kannst Du mit der Schaltfläche "Adressendetails" einen weiteren Dialog öffnen, in dem (soweit ich noch weiß) bei unspezifizierten Partnern noch das Rack und der Steckplatz (von der CPU, nicht vom CP !) eingegeben werden müssen.


Gruß Axel


----------



## Question_mark (9 Januar 2007)

*Verbindung OPC*

Hallo,

Äääaheemm, troedi.

Du möchtest doch eine Verbindung zum OPC-Server aufbauen, oder sehe ich das falsch ???

Nach Deinem Screenshot hast Du aber eine Verbindung zur "Applikation" projektiert.

Gruss

Question_mark


----------



## afk (9 Januar 2007)

Question_mark schrieb:


> Du möchtest doch eine Verbindung zum OPC-Server aufbauen, oder sehe ich das falsch ???
> 
> Nach Deinem Screenshot hast Du aber eine Verbindung zur "Applikation" projektiert.


Stimmt, das hatte ich ganz übersehen, also im NetPro den "OPC Server" markieren, Verbindung anlegen, TCP/IP-Adresse einstellen, Rack und Slot konfigurieren ... und die Application am Besten aus der Hardware-Konfiguration löschen, die brauchst Du doch sowieso nicht ...


Gruß Axel


----------



## Question_mark (10 Januar 2007)

*OPC-Verbindung*

Hallo,



			
				troedi schrieb:
			
		

> Muss ich die Steuerung selbst, und den Cp343-1 auch in das Projekt aufnehmen,



Ja, natürlich. Wie soll das denn sonst funktionieren ???



			
				troedi schrieb:
			
		

> reicht es wenn ich im "Net Pro" auf OPC-Server klicke, und da eine Verbindung anlege und dabei die IP der Steuerung angebe?



Ja, aber bitte die Verbindung im "OPC-Server" anlegen und nicht in der "Applikation". Applikation wird nur benötigt, wenn Du eigene Anwendungen entwickelst, die nicht den OPC-Server verwenden und z.B. die S7-SAPI.DLL benutzen. Für Deinen Fall lösche die "Applikation" und projektiere eine Verbindung unter "OPC-Server", wie schon von afk beschrieben. Wenn Du mehrere Ethernet-Zugangspunkte an Deinem PC hast, werden dann noch weitere Probleme auftreten, aber mach erst mal die Verbindungsprojektierung, dann sehen wir mal weiter.

Gruss

Question_mark


----------



## Question_mark (10 Januar 2007)

*OPC-Verbindung*

Hallo,



			
				troedi schrieb:
			
		

> und warum lässt sich "IE Allgemein" nicht starten?



Ganz einfache Antwort : Weil die Verbindung nicht richtig projektiert ist. Im Normalfall wird der "IE Allgemein" automatisch gestartet, man braucht da nichts zu machen...
Ausgenommen man hat mehrere Netzwerkkarten, aber das kommt dann später, siehe oben.

Gruss

Question_mark


----------



## troedi (10 Januar 2007)

Derzeitiger Status:














> Hallo,
> 
> Zitat:
> Zitat von *troedi*
> ...





> Zitat:
> Zitat von *troedi*
> 
> 
> ...


Was stimmt jetzt? im Net PRO finde ich die CP343-1 nirgends, und welche steuerung konkret verwendet wird weiß ich gar nicht.

Ich glaube ich komme nicht darum herum, mich mit der Firma, welche die Steuerung installiert hat, auseinanderzusetzen. Dabei möchte ich aber schon vor dem Anruf wissen, was ich alles erfragen muss:
Nochmal kurz zusammen gefasst: 
- IP der Steuerung (weiß ich eigentlich, steht nur der Vollständigkeit halber da)
- Port (für TCP-Verbindung??)
- Rack und Steckplatz der CPU (also nicht vom CP343-1, oder?)

Bei der TCP-Verbindung kann man aber kein Rack/Steckplatz einstellen, oder?
Oder funktioniert hier prinzipiell nur eine "S7-Verbindung"?

Ich bin schon total verwirrt....


----------



## afk (10 Januar 2007)

*Immer mit der Ruhe ...*



troedi schrieb:


> Derzeitiger Status


IE-Allgemein zeigt demnach im Komponenten-Konfigurator keinen Fehler mehr an, oder ?



Question_mark schrieb:


> Hallo,
> 
> 
> 
> ...


Mit einer unspezifizierten Verbindung natürlich !  
Das ist eine Verbindung mit einem Partner, der nicht im Projekt enthalten ist, dann muß man die Verbindungsparameter allerdings "zu Fuß" eintragen.



troedi schrieb:


> Ich glaube ich komme nicht darum herum, mich mit der Firma, welche die Steuerung installiert hat, auseinanderzusetzen. Dabei möchte ich aber schon vor dem Anruf wissen, was ich alles erfragen muss:
> Nochmal kurz zusammen gefasst:
> - IP der Steuerung (weiß ich eigentlich, steht nur der Vollständigkeit halber da)
> - Port (für TCP-Verbindung??)
> ...


Du mußt eine "S7-Verbindung" zu einem "unspezifizierten" Verbindungspartner anlegen, dafür brauchst Du dann nur noch die IP-Adresse der SPS, sowie Rack und Steckplatz der CPU (unter Adressendetails...), die Einstellungen für die Verbindungsressourcen kannst Du im Normalfall so lassen wie es vorgeschlagen wird.

Im OPC-Scout wirst Du dann im "\S7:"-Protokoll Deine Verbindung finden, in der dann auch die DBs aufgelistet werden sollten.


Gruß Axel


----------



## JesperMP (10 Januar 2007)

Zusätzlich zum AFKs feinen Rat:

Wie wird die Konfiguration in Stationconfigurator geladet ?

Von NetPro ? Dann gibt es zusätzliche Anforderungen und Tätigkeiten, bewußt zu sein. Der Name des PC Station (In STEP7 oder NCM) muß derselbe wie der Name vom PC sein (Windows Systemeinstellungen). IP addresse muss auch übereinstimmen. PG/PC Schnittstelle muß auf "internal" eingestellt werden. In dem Configuration Console müssen Sie "Configured Mode" für die Ethernet-Karte (und mit dem korrekten Index) vorwählen. Nur dann kann ein Download von NetPro durchgefürt werden.

Oder wird die Konfiguration über eine xdb geladet ? Denn braucht nür die IP addresse übereinstimmen.

Für Ihre Anwendung stimme ich darin überein, daß Sie ein "unspezifisierter Verbindung" und vorzugsweise S7 Protokoll benötigen.

Ich stimme auch mit, das für einen Anfänger, alle die verschiedenen Einstellungen und Programme können sehr verwirrend sein


----------



## afk (10 Januar 2007)

JesperMP schrieb:


> Ich stimme auch mit, das für einen Anfänger, alle die verschiedenen Einstellungen und Programme können sehr verwirrend sein


Ein wahres Wort ! :roll: 


Gruß Axel


----------



## Question_mark (10 Januar 2007)

Hallo,

[QUOTE"=afk"]Mit einer unspezifizierten Verbindung natürlich ! [/QUOTE]

Ups, hattest Du ein paar Beiträge vorher schon geschrieben. 
Ich hätte mal aufmerksamer lesen sollen   

Gruss

Question_mark


----------



## troedi (10 Januar 2007)

> Du mußt eine "S7-Verbindung" zu einem "unspezifizierten" Verbindungspartner anlegen, dafür brauchst Du dann nur noch die IP-Adresse der SPS, sowie Rack und Steckplatz der CPU (unter Adressendetails...), die Einstellungen für die Verbindungsressourcen kannst Du im Normalfall so lassen wie es vorgeschlagen wird.


Standardmäßig ist das aber so eingestellt...
http://kreutzboeckhof.uttx.net/standard.jpg



> Von NetPro ? Dann gibt es zusätzliche Anforderungen und Tätigkeiten, bewußt zu sein. Der Name des PC Station (In STEP7 oder NCM) muß derselbe wie der Name vom PC sein (Windows Systemeinstellungen). IP addresse muss auch übereinstimmen. PG/PC Schnittstelle muß auf "internal" eingestellt werden. In dem Configuration Console müssen Sie "Configured Mode" für die Ethernet-Karte (und mit dem korrekten Index) vorwählen. Nur dann kann ein Download von NetPro durchgefürt werden.


Ja, die Projektierung wird mit NetPRO geladen. Die PC Station heißt auch so  wie sie tatsächlich heißt. Die Schnittstelle ist auch auf internal eingestellt 
http://kreutzboeckhof.uttx.net/pgpc.jpg

Wenn ich im NetPRO die Konfiguration ins Zielsystem lade, steht ja dann auch dort dass keine Fehler gefunden worden sind. 

Aber im OPC.Scout tut sich nicht die Welt 
http://kreutzboeckhof.uttx.net/scout.jpg

Ach ja, die CPU ist eine 315-2 falls das relevant ist


----------



## JesperMP (10 Januar 2007)

> Standardmäßig ist das aber so eingestellt...


Ja, die Standardwerte sind einfach doof.
Für S7-300 muss IMMER rack/steckplatz 0/2 spezifisiert werden.

Alles sieht also richtig aus (wenn rack/steckplatz = 0/2).
Kannst Du den CP von PC "pingen" ?


----------



## troedi (10 Januar 2007)

ich habs jetzt auf 0/2 eingestellt.... aber leide keine veränderung im OPC - Scout!

Was ist eigentlich mit der Verbindungsressource, und der S7-Subnetz-ID?


----------



## JesperMP (10 Januar 2007)

troedi schrieb:


> Was ist eigentlich mit der Verbindungsressource, und der S7-Subnetz-ID?


In deiner Fall kannst Du sie ignorieren.

Was passiert beim ping ?


----------



## troedi (10 Januar 2007)

die IP der Steuerung lässt sich ganz normal anpingen!

Es gibt ja auch eine Funktion ob ein Router verwendet werden soll. Da hab ich 10.111.1.254 eingetragen (Das wird bei den Rechnern als Standardgateway eingetragen)


----------



## afk (10 Januar 2007)

troedi schrieb:


> Es gibt ja auch eine Funktion ob ein Router verwendet werden soll. Da hab ich 10.111.1.254 eingetragen (Das wird bei den Rechnern als Standardgateway eingetragen)


Wo hast Du das eingetragen ? In der Steuerung ? 
Wenn die SPS und der PC sich im gleichen IP-SubNet befinden, dann wird das Gateway nicht verwendet.


Gruß Axel


----------



## troedi (10 Januar 2007)

In der S7-Verbindung im Net PRO hab ich das eingetragen!
IP des Rechners: 10.111.1.210
IP der Steuerung: 10.111.1.223

Was gibts jetzt noch damit ich das ganze zum Laufen bringe?

(Es gibt noch eine zweite Steuerung 10.111.1.222. Diese lässt sich ebenfalls pingen, zeigt aber beim Test mit OPC Scout das gleiche Verhalten!)


----------



## JesperMP (10 Januar 2007)

troedi schrieb:


> Es gibt ja auch eine Funktion ob ein Router verwendet werden soll. Da hab ich 10.111.1.254 eingetragen


Dieser Wert kann man unter die Eigenscahften des gesammte Netzwerk einstellen.
Da Du alles in dasselbe Subnetz hast (10.111.1.xxx) sollte es nicht notwendig sein.
Ob es stört weiss ich nicht.

Eigentlich sollte alles jetzt in ordnung sein.
Ich slage vor dass Du deiner project hier schickt.


----------



## troedi (10 Januar 2007)

Hab das mit dem Router jetzt rausgenommmen => kein Unterschied zu vorher!

Gibt es auf den Steuerungen sowas wie ein WebInterface? Dann könnte ich evtl. über einen Browser auf die Steuerung schauen?


----------



## JesperMP (10 Januar 2007)

troedi schrieb:


> Gibt es auf den Steuerungen sowas wie ein WebInterface? Dann könnte ich evtl. über einen Browser auf die Steuerung schauen?


Ja. Aber diese Variante heisst *CP343-1 IT*.


----------



## troedi (10 Januar 2007)

ich weiß ja nicht welche variante es genau ist. Ich habe nur die Bezeichnung CP 343-1 bekommen. Über welchen Port ist dieses WebInterface normalerweiße zu erreichen? Einen Versuch ist es wert, oder?


----------



## JesperMP (10 Januar 2007)

Vielleicht hast Du kein Problem mehr.

Nach den letzte Änderung, kann es sein das Du die rote Kreuze im OPC Scout noch haben ? Aber die sind anders plaziert ?
Wenn Du die DBs "sehen" können (siehe *) (mit rote Kreuzen) bedeutet es dass die verbindung in ordnung ist.

*:
Vorher: Ordner S7:TEST.objects.DB ist leer.
Nacher: Ordner S7:TEST.objects.DB enthält eine liste von vorhandene DBs.

Du kannst denn werte definieren das beobachtet werden soll.


----------



## troedi (10 Januar 2007)

?? was meinst du mit "rote kreuze im OPC Scout noch vorhanden, aber anders plaziert?"

wie kann ich das jetzt testen obs doch funtkioniert? gibt es irgendwelche Parameter die "immer" existieren? denn ich habe zwar eine Liste mit Datenblöcken, aber dass sind nur Werte welche ich schreiben soll.


----------



## JesperMP (10 Januar 2007)

Vorher: Das Rote Kreuz ist über der Ordner DB plaziert. Es gibt nichts mehr "zu sehen".

Nacher: Im Ordner DB gibts es eine liste von vorhandene DBs, und da ist eine rote Kreuz über jeder einselne DB ordner.

Es ist nur eine kleine Unterschied, aber es bedeutet das Du eine Verbindug hast.


----------



## troedi (10 Januar 2007)

achso, du meinst so wie auf diesem Bild: http://kreutzboeckhof.uttx.net/db.jpg

Verbindung QTA3: nicht ok, TEST aber schon?

(die Verbindung TEST geht auf die Steuerung mit der .222 -IP)
Von dieser habe ich aber keine Datenblock-Definitionen. Kann ich das trotzdem irgendwie testen ob das auslesen von Variablen funktioniert?


was bedeutet dann aber das hier? http://kreutzboeckhof.uttx.net/verb.jpg
demnach sind ja keine Verbindungen zustandegekommen


----------



## JesperMP (10 Januar 2007)

troedi schrieb:


> Verbindung QTA3: nicht ok, TEST aber schon?


Genau so ja.



troedi schrieb:


> (die Verbindung TEST geht auf die Steuerung mit der .222 -IP)
> Von dieser habe ich aber keine Datenblock-Definitionen. Kann ich das trotzdem irgendwie testen ob das auslesen von Variablen funktioniert?


Ja. Der OPC Server sieht selber welche DBs vorhanden sind.
Du markierst ein DB und wählt den Funktion "neue Definition" (denke ich das es heisst). Du muss Offset (von DBxx.DBW0), variablentyp (BOOL, BYTE, WORT usw) vieviele Variable auf einmal usw. spezifisieren.


----------



## troedi (10 Januar 2007)

für die TEST-Verbindung (geht auf die Steuerung mit der 10.111.1.222  - IP) habe ich keine Definition der Datenblöcke. Gibt es Blöcke oder Variablen die immer vorhanden sind? ansonsten kann ich ja schwer testen?


----------



## JesperMP (10 Januar 2007)

Du brauchst es gar nicht zu wissen, so lange das Du in die Daten nur lest und nicht schreibst. 

Im OPC Scout siehst Du welche DBs vorhanden sind (daher weiss mann das der Verbindung funktionirt). 

Du wählst irgendeiner DB und clickt auf den [+] symbol neben der DB. Es erscheint ein "New Definition" Ordner. Hier doubleclickst Du um ein dialogbox fortzubringen in dem dass Du DatenTyp (INT wählen), Anfangsaddresse (Wortnummer 0 wählen), Bit nummer (egal), und vie viele werte (mit 10 versuchen) spezifisierst.

Dann hast Du ein neue Eintrag in mitte der Fenster. Mit [-->] bringst Du das im rechten Teil der Fenster. Mit OK zurück zum hauptfenster.
Im Hauptfenster siehst Du (hoffentlich) im rechten Seite die gewünschten Werte. Wenn "Quality" mit "Good" markiert ist, ist alles in ordnung.


----------



## troedi (10 Januar 2007)

leider funktioniert das nicht:
Bei der Verbindung "TEST" sehe ich zwar einige DB's (an die 200 ??? ), doch sobald ich einen auswähle ist das rote kreuz da! da kann man dann nichts hinzufügen/definieren.


----------



## JesperMP (10 Januar 2007)

Wie gesagt:
Bei irgendeiner DB, den [+] symbol clicken. Den kommt es ein New Definition Ordner.


----------



## troedi (10 Januar 2007)

tja, ich war wieder blind wie ein huhn...


----------



## troedi (11 Januar 2007)

habe heute mit Siemens telefoniert... hab eine telefonische schritt-für-schritt anleitung zum einstellen der pc-station und zur projektierung bekommen! Die haben mir alles so erklärt wie ich es zuvor auch gemacht habe. Der Typ von Siemens ist dann auf den Schluss gekommen dass mit der CPU was nicht stimmt 

Danke für eure tolle Hilfe! Falls ich doch noch was brauche, belästige ich euch natürlich gerne wieder


----------

