# Zentralen OPC Umsetzer - Bridge View?



## farforward (14 Februar 2006)

Hallihallo,

ich moechte eine Kommunikation zwischen S7-417 H (mit den entsprechenden Prozessvariablen), Matlab(im Matlab sollen einige Variablen nur simuliert werden die aber auch in der SPS verwendet werden und auch in WinCC visualisierten werden solln) und WinCC

Die Verbindung zwischen SPS und WinCC ist kein Problem mit dem SimaticNet OPC Server oder auch mit dem DeltalogicOPC Server. Das Problem ist die Verbindung zwischen WinCC und Matlab, bei direkter Kommunikation mit WinCCServer kommt ständig, dass Typ nicht unterstützt wird. Ausserdem krieg ich in den OPC-Servern (SimaticNet und Deltalogic) auch keine Variablen angelegt weil die Server ja immer nur mit Geräten kommunizieren wollen aber eben nicht mit Matlab.

Aber ich moechte jeben a auch Matlab mit ins Spiel bringen und braeuchte dazu einfach ein Art OPC Zentrale die Items quasi Verwaltet als Server und aber auch trotzdem das DP-Protokoll von der SPS erkennt. Bei den genannten OPC Servern ist es mir noch nicht gelungen "einfach mal so" Items zu erzeuen (mit bestimmten Datentyp usw.)die ich erstmal projektieren kann und die ich dann von den Programmen aus beschreiben bzw. lesen kann und die vom OPC Server irgendwie meinetwegen Datenbankmäßig geführt werden.

Im Netz habe ich gelese dass sich Bridgeview von den Labviewmachern wohl gut dazu eignen soll-hab ich aber leider nicht, deswegen waers mir am liebsten ich würde das mit einem der genannten OPC Server hinkriegen. 

Danke!


----------



## afk (15 Februar 2006)

Gibt es denn beim SimaticNET-OPCServer die DEMO-Verbindung nicht mehr ?

Die DEMO-Verbindung habe ich schon mal dazu "mißbraucht", um in dem dort verfügbaren DB10 einige Signale zwischenzuspeichern, das ging problemlos.

Die Signale lassen sich mit dem OPC-Scout anlegen, die DEMO-Verbindung muß aber (soweit ich mich erinnere) in der Konfiguration des OPC-Servers erst freigeschaltet werden.

Gruß Axel


----------



## Question_mark (15 Februar 2006)

Hallo farforward,
 ich bin mir nicht ganz sicher, ob ich Dein Problem richtig verstanden habe. Du möchtest von Matlab auf Variablen in WinCC zugreifen ?
 Erstmal grundsätzlich : WinCC ist OPC-Server und OPC-Client zugleich !
Wenn Du mit WinCC auf Variablen in der S7 zugreifst, ist WinCC der OPC-Client. Wenn Du mit Matlab als OPC-Client auf Variablen in WinCC zugreifen willst, ist WinCC gleichzeitig OPC-Server. Ich kenne Matlab nicht gut genug, aber der Beschreibung entnehme ich, dass Matlab in Verbindung mit der OPC-Toolbox die OPC-Client Funktion enthält. Also ist es grundsätzlich möglich, von Matlab auf WinCC Variablen zuzugreifen.
 Ich bin mir nicht sicher, ob ich das Problem richtig verstanden habe, aber vielleicht hilft Dir dieser Link weiter :
http://www.mathworks.com/access/helpdesk/help/toolbox/opc/

 Gruß
 Question_mark


----------



## farforward (15 Februar 2006)

Ich habe das ganze nochmal in ein Bildchen gemalt ich möchte also eine zentrale Variablenverwaltung, wo ich erstmal die Variablen anlegen kann, also die Matlab Variablen, die dann von Matlab als Client beschrieben werden sollen und wo Matlab sich Matlab die Variablen die es braucht holt. und wo ich später einfach die Variablen der S7-400 hinzufuegen kann und das alles schoen zentral in einem OPC- Server.
Am liebsten wäre mir also ich koennte dem OPC Server einfach glauben lassen dass Matlab auch eine SPS wäre. aber wie bekomme ich den einfach Variablen angelegt - und da könnte die Sache mit der DEMO Verbindung nicht verkehrt sein ich werd das dan mal ausprobieren.

Grüße


----------



## Question_mark (15 Februar 2006)

Hallo fastforward,
das könnte folgendermassen aussehen :
Du brauchst nicht unbedingt einen zweiten Simaticnet OPC-Server. Der ist in WinCC sowieso enthalten. Du kannst mit der Matlab OPC-Toolbox (als OPC-Client) auf alle internen und externen Variablen von WinCC (als OPC-Server) zugreifen. Wenn Du z.B. eine externe Variable auf die S7 in WinCC anlegst, kannst Du von Matlab darauf zugreifen. Nochmal : da WinCC OPC-Client und OPC-Server zugleich ist, hast Du damit die gewünschte Databridge.

Gruß
Question_mark


----------



## Question_mark (15 Februar 2006)

Hallo,


			
				afk schrieb:
			
		

> Gibt es denn beim SimaticNET-OPCServer die DEMO-Verbindung nicht mehr ?


 Natürlich gibt es die DEMO-Verbindung immer noch. Da die DEMO-Verbindung aber einen nicht vorhandenen PC-Kommunikationsprozessor simuliert, sind dann alle projektierten Verbindungen (d.h. aktive Kommunikation)  nicht mehr möglich. Das wird fastforward dann nicht besonders weiterhelfen.

Gruß
Question_mark


----------



## farforward (15 Februar 2006)

Erstmal vielen Dank,
ich glaub so koennte das funktionieren, dass Problem ist irgendwie nur ich kriegs einfach nicht hin aus Matlab auf Variablen in WinCC zuzugreifen. Ich kann z.b. auf den Deltalogic OPC server zugreifen mit Matlab Befehl OPCDA ... aber bei WinCC klappt das einfach nicht. Kommt ständig dass dieser Typ nicht unerstützt wird - wenn ich connectn moechte. 

Ich hoff mal ich mach im WinCC nichts falsch, hab eine OPC Verbindung projektiert und da interne Variablen angelegt und wollte über die dann mal Probehalber mit Matlab kommunizieren. Hab das WinCC projekt aktiv gehabt (habs auch mehrmals probiert als es in Runtime war) und wollte dann ueber Matlab mit der Toolbox mit WinCC eine Verbindung erstellen die Server die mir Matlab anbietet waren dann:

'OPC.SimaticNET.PD'
'OPC.SimaticNET'
'OPC.Siemens.XML'
'OPCServer.WinCC'
'OPC.SimaticNET.DP.1'
'DELTALOGIC.OPC.S7.DA'
'CCOPC.XMLWrapper'
'OPC.SimaticHMI.HmiRTm' 

aber wenn nich nun den 'OPCServer.WinCC' waehle dann beklagt sich Matlab über einen inkompatiblen Typ. Brauche ich noch irgendwie ne Zusatzlizenz oder so weil in saemtlichen OPC GettingStarted Scripten ja von eineem WinCCServer.OPCDA die Rede ist oder ist das gleichbedeutend mit dem hier angezeigten. Aber worin koennte dann der Fehler liegen?

Danke


----------



## afk (15 Februar 2006)

Question_mark schrieb:
			
		

> Natürlich gibt es die DEMO-Verbindung immer noch. Da die DEMO-Verbindung aber einen nicht vorhandenen PC-Kommunikationsprozessor simuliert, sind dann alle projektierten Verbindungen (d.h. aktive Kommunikation) nicht mehr möglich.


Genau das habe ich aber schon mal *gleichzeitig* gemacht (DEMO und proj. Verbindung), allerdings mit einer 5.x-Version von SimaticNET, daher meine Frage, ob das nicht mehr geht.

Gruß Axel


----------



## Question_mark (16 Februar 2006)

Hallo fastforward,


			
				fastforward schrieb:
			
		

> 'OPCServer.WinCC'


 ja, das ist der WinCC OPC DA Server. Welche WinCC Version benutzt Du ?
Alte WinCC Versionen unterstützen nur OPC DA 1.0. Laut der Matlab Homepage unterstützt die OPC-Toolbox DA 2.05. Wichtig : Der OPC-Server von WinCC wird erst mit Anlauf der Runtime gestartet.

Gruß
Question_mark


----------



## Question_mark (16 Februar 2006)

Hallo,


			
				farforward schrieb:
			
		

> Brauche ich noch irgendwie ne Zusatzlizenz


 Nein, meines Wissens ist der WinCC OPC DA-Server in der WinCC Basislizenz enthalten. Für die OPC-Server AE (Alarm&Events) sowie HDA (Historical data access) ist eine Zusatzlizenz als "Connectivity Pack" erforderlich, das trifft aber in Deinem Fall nicht zu. 

Gruß
Question_mark


----------



## Question_mark (16 Februar 2006)

Hallo,


			
				afk schrieb:
			
		

> Genau das habe ich aber schon mal *gleichzeitig* gemacht (DEMO und proj. Verbindung), allerdings mit einer 5.x-Version von SimaticNET


 Ich hatte mal irgendwo, irgendwann beim grünen Riesen gelesen, das es nicht gleichzeitig funktioniert. Ich habe das mal gerade mit der neuesten Simaticnet Version ausprobiert. afk hat Recht, es funktioniert *gleichzeitig*, auch in der neuen Version.

Gruß
Question_mark


----------



## farforward (16 Februar 2006)

Question_Mark
Ich habs bis jetzt immer mit WinCC 6.0 versucht, ich hab aber auch WinCC Flex 2005 installiert. Werd aber bei dem Projekt ziemlich sicher WinCCFlex nutzen. Aber wenn ich in der Runtime bin müsste der OPC-WinCC Server doch dann auch irgendwie im Taskmanager bei Anwendungen zu sehen sein oder? Dort taucht er nämlich nicht auf. 

Gruesse


----------



## Question_mark (16 Februar 2006)

Hallo,


			
				farforward schrieb:
			
		

> Ich habs bis jetzt immer mit WinCC 6.0 versucht


 WinCC 6.0 unterstützt DA 1.0 und DA 2.0


			
				farforward schrieb:
			
		

> Taskmanager bei Anwendungen zu sehen sein oder?


 Nein, der OPC-Server wird als Dienst gestartet und erscheint daher nicht als Anwendung im Taskmanager.

Gruß
Question_mark


----------



## Question_mark (16 Februar 2006)

Hallo,


			
				farforward schrieb:
			
		

> Ich hoff mal ich mach im WinCC nichts falsch, hab eine OPC Verbindung projektiert und da interne Variablen angelegt


 Wieso OPC-Verbindung projektiert ??? In WinCC 6.0 brauchst Du nur die Verbindungen zur SPS anlegen und die internen und externen Variablen darin projektieren. Dann hast Du mit einem OPC-Client direkten Zugriff darauf und Deine Databridge ist fertig. Eine OPC-Verbindung muss in WinCC 6.0 (und auch in älteren Versionen) nicht angelegt werden. Wie das in WinCC Flex aussieht, weiss ich nicht, denke aber mal das wird nicht anders sein (denken, aber nicht wissen).

Gruß
Question_mark


----------



## farforward (16 Februar 2006)

Hallo,
Ne mit projektieren meinte ich, dass ich eine neue Verbindung erstellt hab über die Suite. hab dazu den OPC.Ch ausgewählt und dann in dieser Verbindung die Variablen angelegt die sich nur WinCC und Matlab austauschen sollen. Wenn ich dich richtig verstanden habe lege ich einfach die Variablen als normale Interne Variablen Variablen an und beschreib die dann von Matlab aus? Weil ich ja auch Daten zwischen Matlab und SPS austauschen möchte, auch wenn keine SPS angeschlossen ist.
(Hab morgen keine Möglichkeit das auszuprobieren erst wieder am Dienstag, aber ich bleib dran. Vielen Vielen Dank schonmal. Grüsse!)


----------



## Question_mark (16 Februar 2006)

Hallo farforward,
Du denkst viel zu kompliziert, alles ist in Wirklichkeit recht einfach.


			
				farforward schrieb:
			
		

> hab dazu den OPC.Ch ausgewählt


 Vergess das. Kurze Anleitung :
1. Vergiss bitte, das Du jemals das Wort OPC oder SimaticNet gehört hast 
2. Lege in WinCC ein neues Projekt an
3. Erstelle Deine internen Variablen in WinCC.
4. Lade die "Simatic S7 Protocol suite"
5. Projektiere in der "Protocol suite" Deine Verbindung zur SPS (S5/S7) etc.
6. Benutze die gewünschte Verbindung dabei :
    a. Industrial Ethernet
    b. MPI
    c. Profibus
    d. TCP/IP
    oder welche Kommunikation Du zur SPS (!!!!) aufbauen willst, aber      
    bitte auf keinen Fall eine OPC-Verbindung
7. Lege in der projektierten Verbindung die externen Variablen zur SPS an
8. Erstelle im Grafik Designer ein Bild mit z.B. Editfeldern
9. Setze den Feldtyp der Editfelder Auf "E/A-Feld"
9. Binde die Editfelder über die Eigenschaft "Ausgabewert" an die zuvor  
    deklarierten externen SPS-Variablen
10. Alles schön speichern und die Runtime von WinCC starten
12. Du solltest jetzt die aktuellen Werte aus der SPS in den Editfeldern   
     sehen
13. Wenn ja, bei Punkt 14 weitermachen, sonst nochmal ab Punkt 1

14. Jetzt wird es Zeit, sich wieder langsam an die Begriffe OPC und 
     SimaticNet zu erinnern.
15. Öffne den SimaticNet OPC-Scout und verbinde Dich mit dem OPC-Server
      "OPCServer.WinCC"
16. Lege eine neue Gruppe an (Name ist unwichtig)
17. In der Gruppe wähle "Item hinzufügen"
18. Du findest dann ein exaktes Abbild der zuvor in WinCC eingefügten 
     "Protocol suite", wähle die Items aus der entsprechend zuvor in WinCC  
      projektierten Verbindung aus und füge die dem OPC-Scout hinzu.
19. Du kannst nun die aktuellen Prozesswerte aus der SPS im OPC-Scout 
     ansehen und ändern, die Änderungen werden in den Editfeldern von 
     WinCC sichtbar und in die SPS geschrieben. Umgekehrt werden alle 
     Eingaben in den Editfeldern im OPC-Scout sichtbar und auch in die SPS 
     geschrieben. Wenn vom SPS-Programm Variable geändert werden, sind 
     diese Änderungen in WinCC und im OPC-Scout sichtbar. Das ist m.E. das
     von Dir gewünschte Verhalten.
20. Wenn das jetzt funktioniert, bei Punkt 21 weitermachen, ansonsten 
     zurück zum Punkt 14 zurück.
21. Jetzt musst Du den OPC-Scout durch deinen eigenen OPC-Client 
     ersetzen. Erstelle entsprechend mit der OPC-Toolbox von Matlab die 
     entsprechenden Skripte, die Toolbox ist sehr gut mit Beispielen 
     dokumentiert.

Das hört sich jetzt sehr kompliziert an, aber um eine kurze Testanwendung gemäss den Punkten 1 bis 20 zu erzeugen sollten 15 Minuten reichen. Den Aufwand für die Projektierung mit der OPC-Toolbox von Matlab kann ich nicht abschätzen, aber dank der sehr guten Dokumentation sollte das auch kein grosses Problem sein.

Gruss
Question_mark


----------

