Grundlegende Frage Windows <--> SPS

Tom83

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

Ich habe "OPC-Server" und "SPS / S7" das erste Mal vor 4 Tagen gehört - ich bin also sehr unerfahren!
Ich bin Anwendungsentwickler für verschiedene Hochsprachen und muss jetzt eine Schnittstelle entwickeln, welche zwischen meinem C++ Programm über ein OPC-Netzwerk mit einer S7 kommuniziert.

Grundlegende Frage:
Kann ich von einem Windows-System (bsp. XP) ein Paket an den OPC-Server senden, welcher dies an eine bestimmte S7 weiterleitet? Gibt es in einem OPC-Netzwerk soetwas wie IPs?

Auf der S7 und dem Windows-System werden Daten generiert, das Ziel ist diese Daten auszutauschen (was da genau passieren wird ist erstmal egal).
Beide Seiten haben sich auf ein Protokoll "geeinigt" - das muss jetzt "nur" noch ausgetauscht werden - und genau da klemmts, ich weiss auch nicht wo ich ansetzen muss, da ich nochnichtmal ein Testsystem habe und die S7-Software noch nicht existiert.

Wäre für eine minimal-Einführung/ Code-Schnipsel/ Erläuterungen/ Tipps sehr dankbar ;-)

Gruß, Tom
 
Grundlegende Frage:
Kann ich von einem Windows-System (bsp. XP) ein Paket an den OPC-Server senden, welcher dies an eine bestimmte S7 weiterleitet? Gibt es in einem OPC-Netzwerk soetwas wie IPs?
Ein OPC Client kann nicht beliebige Stationen auf den externe Netzwerk-Seite zugreifen. Nur Stationen die voraus in OPC Server eingerichtet sind. Man spricht von "Verbindungen" (besonders bei Siemens) oder "OPC Topics" (bei alle Anderen als Siemens). Dazu unterstützt jeder OPC Server nur ein begrenzte Anzahl von Verbindungen, z.B. 8-16-32 Verbindungen. Dies hängt ab von genau welche OPC Server es handelt.

Es gibt also ein gewisse komplexität. Für deine Programmentwicklung empfehle ich ein fix-und-fertige Komponent für .Net zu kaufen.
Gehe zu http://www.opcconnect.com/. Da gibt es sehr viel zu OPC programmentwicklung.

edit: Was Du brauchst ist ein OPC DA Client Komponent für .Net.
 
OPC-Client

Hallo,

Ralle schrieb:
Auch hier gibts bereits fertige Sachen, natürlich nicht ganz kostenfrei: http://www.kassl.de/opc/index.shtml

Setze ich sehr gerne als OPC-Client ein, höchst zuverlässig und absolut industrietauglich im 24/7 Betrieb.

Ralle schrieb:
Sieh auch mal bei Downloads nach, ein paar freie Sachen sind dabei, vielleicht gibts auch Trialversionen?

Die Sachen im Downloadbereich beim Herrn Kassl sind ausnahmslos Trial-Versionen, den Zugriff zum Downloadbereich (zum Teil auch mit Quelltext, je nach erworbener Lizenz) erhält man nach dem Kauf der Lizenz über it-share.

Gruß

Question_mark
 
Hallo Tom,
muss es unbedingt ein OPC-Server sein?
Du könntest über einen entsprechenden Treiber wie z.B.
-Prodave von Siemens
-ComDrvS7 von MHJ
-libnodave (freeware mit SourceCode) von dem Member Zottel hier
-Deltalogic biete m.w. auch sowas an (ACCON-AGLink???)
-.....(es gibt mit Sicherheit noch mehr davon)
deine Daten direkt in die SPS schreiben.
Ist nur ein alternativer Vorschlag.

Gruß
Ronnie
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für Eure Beteiligung :)

Ich versuche mich gerade in OPC einzuarbeiten - das scheint sehr viel Arbeit zu sein ;-)

@ronnie.b
Das Netz aus OPC-Servern gibts schon, ich muss also über diesen Weg gehen...
 
ich häng mich einfach mal an das Thema dran, hoffe dies ist akzeptabel.

Ich verstehe leider nicht wirklich was ein OPC-Server ist (ich dachte, dies sei die Fähigkeit, Daten an OPC-Clients weiterzuleiten). Das sollte ja in STEP7 bereits eingebaut sein.

Mich verwundert nun die Anfrage eines Kunden. Er will von uns für eine Anlage (bestehend aus STEP7 SPS, diversen WinCC flex. Touchpanels, sowie einem WinCC flex RT PC-System) zusätzlich einen "OPC-Server" angeboten haben.

Frage: was könnte er wohl meinen? Hardware und/oder Software? Welche?

Danke für eure Hilfe

Michael aka Dumbledore
 
Die OPC-Server-Funktionalität ist i.d.R. nicht in der Steuerung implementiert somit muss diese auf dem PC zur Verfügung gestellt werden. Diese ist in verschiedenen Siemens-Produkten (Softnet, WinCC, WinCC flexible) enthalten. Es gibt aber auch verschiedene Alternativanbieter für OPC-Server mit der Möglichkeit auf Siemens-SPSen zuzugreifen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich verstehe leider nicht wirklich was ein OPC-Server ist (ich dachte, dies sei die Fähigkeit, Daten an OPC-Clients weiterzuleiten).
Richtig.
Das sollte ja in STEP7 bereits eingebaut sein.
Nein. Aber mit STEP7 (oder Simatic NCM das im Simatic Net Software enthalten ist) kann ein Siemens OPC Server eingerichtet werden. Um ein OPC Server zu verwenden braucht man ein Lizenz dafür.
Mich verwundert nun die Anfrage eines Kunden. Er will von uns für eine Anlage (bestehend aus STEP7 SPS, diversen WinCC flex. Touchpanels, sowie einem WinCC flex RT PC-System) zusätzlich einen "OPC-Server" angeboten haben.
Der OPC Server konnte Simatic Net sein. Es gibt auch OPC Server für S7 von Fremdanbieter, wie Deltalogic, Kepware und andere.
Ein Siemens Variant ist den OPC Server option für WinCC Flexible RT. Dies erlaubt nur den zugriff auf Variablen die in das WinCC Flex Projekt projektiert sind, nicht jede beliebige Variabel.

Genau für was braucht dein Endkunde den OPC Server ?
 
Um ein OPC Server zu verwenden braucht man ein Lizenz dafür. ... Genau für was braucht dein Endkunde den OPC Server ?
ich habe leider (noch) keine Ahnung wofür er dies benötigt. Der Kunde sitzt in Südkorea, Rückfragen sind daher schwierig (und auch konzernintern nicht gewollt) ;) Angefragt wurde eben die Option "OPC-Server" ;)

Wenn ich als Grundaustattung eine S7-416 (samt Ethernet-Anschaltung und natürlich lokalem Profibus samt unterlagerten IM151-7-Steuerugen) mit "normaler" STEP7-Programmierung habe, was würde ich dann zusätzlich für die (oben genannte) Lizenz benötigen? Bestellnummer? Was könnte der Kunde damit aus der Steuerung auslesen (denn darum geht es ihm doch wohl?)

Wenn ich zusätzlich eine WinCC-flexible-Station habe (also einen PC mit WinCC flex runtime, sowie WinCC flex advanced zur programmierung), was brauche ich dann zusätzlich um OPC-Server-Funktionalität anbieten zu können?

Danke im voraus für eure Hilfe

Gruß Michael aka Dumbledore

PS. Gibt es irgendwo eine verständliche Erläuterung (z.B. bei Siemens) was OPC praktisch bedeutet?

PPS. Ich kann per Email gerne ein Blockdiagramm der geplanten Anlage senden wenn dies hilft, dieses sollte hier vielleicht nicht einfach so veröffentlicht werden :rolleyes:
 
Opc

Hallo,

Dumbledore schrieb:
Kann ich von einem Windows-System (bsp. XP) ein Paket an den OPC-Server senden, welcher dies an eine bestimmte S7 weiterleitet?

Ja, Du kannst aus einem Windows-System Daten über OPC an eine S7 senden (oder empfangen). In Deiner C++ Anwendung brauchst Du dazu einen OPC-Client (zB. http://www.kassl.de/opc/cbuilder.shtml.

Und auf irgendeinem PC sollte ein OPC-Server installiert sein. Du kannst dann mit dem OPC-Client aus Deiner Anwendung über den OPC-Server (also local oder remote) auf Daten der S7 schreibend und lesend zugreifen.

WinCC enthält bereits einen OPC-Server und OPC-Client, damit kann man lesend und schreibend auf interne und externe Variablen aus WinCC zugreifen.

Für den direkten Zugriff auf Daten der S7 brauchst Du einen OPC-Server wie zB. von Siemens (SimaticNet), Deltalogic etc ...

Du musst Dir beim Simatic OPC-Server nur von vorherein beim Bestellen der Lizenz über den Zugriffsweg (Profibus, Ethernet etc.) im klaren sein.

Hier noch ein paar Links für weitere Infos :

http://www.opcfoundation.org/

http://www.opcconnect.com/

Gruß

Question_mark
 
Wenn es um ein 'normalen' Ethernet Verbindung handelt, über ein normalen ethernet NIC (nicht Siemens CP), dann brauchst Du Simatic Softnet IE (6GK1704-1CW71-3AA0), oder Simatic Softnet IE Lean (6GK1704-1LW71-3AA0). Lean ist auf 8 Verbindungen beschränkt.
Mit oder ohne WinCC Flexible wird mit STEP7 (oder NCM) ein sogennante "PC Station" eingerichtet. Der OPC Server ist ein Komponent in diese PC Station.
Wenn OPC Server und WinCC Flex RT auf denselbe PC befinden muss, muss WinCC Flex RT auch als Komponent in der PC Station integriert werden.

Der Endkunde kann dann alle SPS Variablen zugreifen. Du kannst auch das zugriff begrenzen über der Symbol-Editor. Aber das brauchst Du vermutlich nicht wenn Du verabredet mit der Endkunde wo er lesen und evtl. schreiben darf.

Man kann auch Routing einrichten. Das brauchst Du wenn der Endkunde auf die Untergelagerte IM151-7 Stationen zugreifen muss.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OPC Client

Man sollte vielleicht noch ein wenig besser erklären, was OPC ist.

OPC ist ein international genormter einheitlicher Zugriff auf Daten (nicht nur aber ich möchte es nicht weiter komplizieren, genaueres hier www.opcfoundation.org).

OPC baut auf der Active X und somit COM Technologie von Microsoft auf.

Durch die genormte Schnittstelle wird das Chaos der verschiedenen System und Hardware Implementationen der Hersteller umgangen.

Einem OPC Client ist es erst einmal egal, ob da eine Siemens SPS, ein Nasa Satelit, eine Bosch Scheibenwaschanlage oder ein Lego Baukasten angesprochen wird.

Das mach dem Entwickler des Client das Leben leichter (wenn er es einmal geschafft hat, das System zum Laufen zu bringen).

OPC Server stellen nach aussen die genormte Schnittstelle zur Verfügung, müssen aber die Anfragen und Antworten auf das spezielle System ummappen! Das kann ganz schön RechenPower und Aufwand erfordern. Deshalb sind auch einige OPC Server 10 mal langsamer, als wenn man direkt auf die Daten (z.B. per EtherCAT oder Profibus) zugreifen könnte.

OPC Server kosten auch Geld oder ein wenig Programmierarbeit, wenn man es sich zutraut.

OPC Server kann man auf Konformität von der OPC Organisation zertifizieren lassen, ich denke, die wenigsten bekommen das Zertifikat.
 
Zuletzt bearbeitet von einem Moderator:
OPC-Server...

Gibt eigendlich irgendwo Infos zim OPC Protokoll, wenn man Server oder Client funktionalität direkt in eigene Projekte einbinden möchte, ohen externe libs?

Bei der opc foundation muss ja mitglied sein!
 
Erklärbärmodus an ...

Hallo,

Jochen Kühner schrieb:
Infos zim OPC Protokoll,

Mal einen Merksatz zum besseren Verständnis :

Es gibt per Definition kein OPC Protokoll, jedenfalls nicht im Sinne eines Kommunikationsprotokolles wie S7Online, RFC1006 oder anderen.

OPC definiert sich als eine Standard Schnittstelle für den Zugriff von einem Client zum Server und umgekehrt. Und unabhängig von der verwendeten Programmiersprache. Und OPC ist nicht unbedingt auf den Zusammenhang mit einer SPS oder Visu beschränkt. Im einfachsten Fall kann zB. ein OPC-Server nur Datum und Uhrzeit eines PC lesen und stellen. Von einem OPC Client kann man nun über die fest definierten Schnittstellen das Lesen und Stellen der Uhr über den OPC-Server steuern.

Also mal zur Klarstellung : Der Begriff OPC ist nicht alleine auf SPS oder Visu anzuwenden, sondern kann durchaus auch in anderen Zusammenhängen vorkommen.

OPC beschreibt also nur den Datenaustausch zwischen Server und Client über die Windows COM Technologie. Du meinst wahrscheinlich irrtümlich, dass das von Dir erwähnte OPC-Protokoll für den Datenaustausch zwischen PC und SPS zuständig ist. Das ist aber Sache des OPC-Servers, wie er die Kommunikation mit der S5, S7, HMI oder der PC-Uhr über welches Protokoll abwickelt.

Oder vereinfacht ausgedrückt : Ich muss immer einen für meine Zwecke geeigneten OPC-Server einsetzen. Also abhängig davon, ob ich mit Modbus, S5, S7 kommunizieren oder nur eine PC-Uhr stellen will. Aber die Schnittstelle, mit der mein Client mit dem Server kommuniziert, die ist eben durch OPC einheitlich.

Ich hoffe, das hat etwas zur Erklärung und Beseitigung von Irrtümern über OPC beigetragen.

Gruß

Question_mark
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Nö...

Nöö, ich will bsw einen variablenreader welchen ich mit libnodave geschrieben habe als quelle für variablen in wincc machen, dazu muss mein programm ein opc server sein (wenn ichs richtig verstanden habe).

gut schnitstelle war falsch, da dies wohl nich über tcp ip geht sondern dcom wenn ich das jetzt verstanden habe, wo finde ch infos dazu wie ein opc server auszusehen hat?
 
Muss ich das jetzt verstehen ???

Hallo,

Jochen Kühner schrieb:
ich will bsw einen variablenreader welchen ich mit libnodave geschrieben habe als quelle für variablen in wincc machen,

Und was soll der Variablenreader über Libnodave bewirken ? WinCC kann seine deklarierten Variablen sowohl als OPC-Client und auch als OPC-Server bedienen. Aber schön, das Du wenigstens ausreichend beschäftigt warst :-D

Gruß

Question_mark
 
Ich weiss nicht mehr weiter, helft mir bitte ...

Hallo,

RobiHerb schrieb:
OPC baut auf der Active X

Also bei allen meinen Rechnern habe ich Active X in der Konfiguration gesperrt, warum funktionieren meine OPC-Server trotzdem ???

Ich bin wirklich ratlos, kannst Du mir weiterhelfen ???

Gruß

Question_mark
 
Zurück
Oben