# OPC Server als Windows-Dienst



## OpelFan (16 Februar 2012)

Hallo,

ich möchten einen OPC-Server als Windows-Dienst laufen lassen (da geht auch).
Mein Problem ist nur, wenn ich ein Programme Debugge oder wenn CoDeSys auf dem gleichen PC läuft oder wenn ich die Daten mit ein OPC-Client mal anschauen möchte, wird ein zweiter OPC-Server gestartet und das führt nur zu Problemen.

Momentan bleibt nur, der OPC-Server stoppen (den OPC-Client im Hintergrund), ihn lokal starten und dann die lokalen Anwendungen starten.

Benutzer 1 ist das Wirksystem (läuft im Hintergrund)
Benutzer 2 ist ein CoDeSys-Programmierer, der was der der WAGO-Station erledigt.
(OPC Server ist der von CoDeSys).

Meine Frage: Gibt es einen OPC-Server, der für alle Benutzer verfügbar ist und nur einmal läuft, egal welcher Benutzer ihn benutzt ?


----------



## Eleu (18 Februar 2012)

OpelFan schrieb:


> Meine Frage: Gibt es einen OPC-Server, der für alle Benutzer verfügbar ist und nur einmal läuft, egal welcher Benutzer ihn benutzt ?



Ja, z.B. der OPC Server der SIMATIC NET.
Der läuft nach der Konfiguration auf dem host im Komponentenkonfigurator und wird mit jedem Rechnerstart wie ein Dienst mit gestartet.

Ich weis aber nicht ob dir das jetzt hilft.
Ich habe dein eigentliches Problem noch nicht verstanden

Gruß
Eleu


----------



## OpelFan (24 Februar 2012)

Mein Problem noch einmal klar:

Ich suche einen OPC Server, der auf einen Server unter zwei verschiedenen Benutzer läuft.

Mein Wirksystem läuft als Windows-Dienst, da wird der CoDeSys-OPC-Server und das Gateway unter dem Benutzer SYSTEM gestartet.

Wenn man da manuell mit CoDeSys arbeitet will, oder den OPC-Client testen will, funktionert das nicht, weil zum dem OPC-Server auch das Gateway
unter dem manuelle Benutzer gestartet wird.

Der SIMATIC Server verarbeitet keine WAGO-Stationen, und der CoDeSys-OPC-Server der Version 2.3 kann nicht als Dienst gestartet werden.


----------



## mogel (24 Februar 2012)

OpelFan schrieb:


> Ich suche einen OPC Server, der auf einen Server unter zwei verschiedenen Benutzer läuft.


Das dürfte mit den Ports Probleme geben. Du wirst also den zweiten OPC-Server mit einem anderen Port laufen lassen müssen, sofern Du über TCP/IP kommst.



> der CoDeSys-OPC-Server der Version 2.3 kann nicht als Dienst gestartet werden.


Ist auch nicht nötig. Ein Dienst ist nichts weiter als ein Programm mit zusätzlichen Schnittstellen für das BS, um als Dienst mit System/Netzwerk/$BLABLA-Rechten starten zu können. Du kannst den Server also einfach so starten und dann müsste es funktionieren.

hand, mogel


----------



## WAGO (29 Februar 2012)

Hallo,

welcher Server in welchem Userkontext gestartet und angesprochen wird, lässt sich über die DCOM-Einstellungen der Server-Komponente beeinflussen. Details dazu haben wir schon einmal hier http://www.sps-forum.de/showthread.php/49525-Wago-750-841-%C3%BCber-OPC-auslesen?p=362289#post362289 gepostet.

Bei weiteren Fragen kannst Du uns auch gerne unter den unten genannten Adressdaten direkt kontaktieren.


----------



## Dr. OPC (4 März 2012)

Also wenn der OPC Server jedesmal als neuer Prozess im Taskmanager auftaucht, wenn er von einem Client gestartet wird, dann ist der Server vermutlich falsch registriert. Bei der Installation sollte der Server richtig registriert werden und auch die richtigen DCOM Einstellungen für sich vornehmen.

Start > "dcomcnfg" > betroffenen Server aus der Liste anklicken > rechte Maus "Eigenschaften". Dann in der Lasche "Identität" anschauen welche der vier Optionen ausgewählt ist.
1) Interaktiv (der Server startet dann einmal und zwar im Kontext des angemeldeten Benutzers)
2) Benutzer der die Anwendung startet (der Server startet mehrfach, jedesmal im Kontext des Client, der ihn startet)
3) Dieser Benutzer (der Server startet nue einmal, und im Kontext des Users, der hier angegeben wurde, egal welcher Client sich verbindet)
4) Dienst (der Server startet nur einmal als Dienst im "service" Kontext, falls nichts anderes eingestellt ist)

Option 1) ist unschön weil unvorhersagbar Option 2) ist schlecht und darf NIE eingestellt werden, Option 3) ist sinnvol für derver, die als Applikation laufen, Option 4) geht nur bei Servern, die als Dienst registriert wurden. Wenn der Server als Dienst läuft ist der Benutzer der sogenannte "Service", dieser hat spezielle Rechte und funktioniert im remote-Zugriff nur wenn DCOM sehr weit geöffnet wird (Sicherheits-Risiko). Daher sollte einem Dienst, der "nach aussen" Kommunizieren soll auch ein definierter User zugewisen werden (Service LogOn User, beim Dienst einstellbar über SCM).

Alle diese Einstellungen sollten natürlich vom Setup des OPCServer-Produktes vernünftig eingestellt werden, bzw. von dessen Konfigurations-Wizzard entsprechend abgefragt werden.

Die Antwort ist also, ein Server darf NIEMALS mehrfach unter verschiedenen Benutzern laufen, im Gegenteil er sollte nur einmal laufen und möglichst in einen "vorhersehbaren" Benutzer-Kontext (z.B. Admin). Dann wird den Usern, die die Clients betreiben, das Recht zugeteilt den Server starten und zugreifen zu dürfen, und schon läuft die Sache.


----------

