# DCOM Server/Client



## TodesEngel (25. Juni 2004)

Hallo,
hab folgendes Problem (Ich versuch relativ genau das Problem zu beschreiben, vielleicht hat jemand Teillösungen):

Ich hab eine Software die nennt sich OPC Server, die kann z.B. über eine serrielle Schnittstelle mit einem Bussystem Prozessdaten austaschen. Auf der anderen Seite gibt es eine COM/DCOM Schnittstelle, so dass man mit VB ein Client schreiben kann, der die Prozessdaten von dem OPC Server darstellen kann. 
Der Client hat ein Verweis auf eine DLL die auf dem gleichen Rechner liegt (die gleiche dll gibt es aber auch auf dem anderen Rechner, auf dem der Server läuft). 
So nun kann ich die Objekte des Servers wunderbar in VB nutzen, wenn der Server auf dem gleichen Rechner ist, wenn ich aber versuche auf einen Server auf einem anderen Rechenr zuzugreifen krieg ich "Laufzeitfehler 70", "Zugriff verweigert". 
Wenn ich Rechnernamen angebe, auf dem kein OPC Server vorhanden ist, krieg ich die Luafzeitfehlermeldung 429", "Objekterstellung durch Active-X-Komponente nicht möglich". 
Mit dem Client der Original Software kann ich aber über das Netzwerk auf den Server schon zugreifen.


Dim WithEvents AnOPCServer As OPCServer 
Set AnOPCServer = New OPCServer
Dim ARealOPCServer As String
Dim ARealOPCNodeName As String
ARealOPCServer = "OPCServerName"
ARealOPCNodeName = "SomeComputerNodeName"
AnOPCServer.Connect (ARealOPCServer, ARealOPCNodeName)


Weiss einer weiter? Was mach ich falsch?

Gruß Christa


----------



## TodesEngel (26. Juni 2004)

*Die Frage mal anders*

Frag vielleicht mal so, was muss man beachten, wenn man einen client programmiert der auf einen Server auf einem anderen Rechner im Netzwerk zugreifen möchte? (Unterschied Rechner in einer Arbeitsgruppe oder Domain)

Gruß Christa


----------



## laylay (28. Juni 2004)

*opc client*

Du musst deine Einstellungen mit dcomcnfg überprüfen. Hast du schon mal mit dcomcnfg gearbeitet !

Dort kannst du für jede dcom-Anwendung die entsprechenden Benutzerrechte einstellen und auch festlegen, auf welchem Rechner die Anwendung laufen soll.

Versuch doch einfach mal an dem client dich genauso anzumelden wie am Server, gleicher Benutzername, gleiche Rechte, gleiches Passwort.

Kannst mir ja mal Bescheid geben

g.lay@saarschmiede.de


Viel Glück


----------



## laylay (28. Juni 2004)

Pass bitte auf, dass du Standardeigenschaften nicht veränderst oder ggf.
wieder auf die alten Einstellungen zurückstellst.
Ich habe es tatsächlich mal geschafft die Einstellungen so zu verändern, dass der
Windows Installer nicht mehr lief und ich keine Software mehr installieren konnte 

Ich habe übrigens einige Software für OPC geschrieben.

Es würde mich mal interessieren, was du so damit vorhast.

Gruß Guido


----------



## TodesEngel (28. Juni 2004)

*DCOM Einstellungen*

Hallo,

danke schon mal für die Antworten.

  | Du musst deine Einstellungen mit dcomcnfg überprüfen. Hast du schon mal  
  | mit  dcomcnfg gearbeitet !

Hab ich, hab da auch ziemlich viele Rechte vergeben und alles mögliche eingestellt (hab da mit der Hersteller Firma von dem OPC Server mich unterhalten) und seit dem funktioniert der originale Client, bloss VB stellt sich an. :-(

  | Dort kannst du für jede dcom-Anwendung die entsprechenden Benutzerrechte   
  | einstellen und auch festlegen, auf welchem Rechner die Anwendung laufen
  | soll.

Die Anwendung muss auf dem Rechner laufen, wo die Hardware am COM-Port hängt.

  | Versuch doch einfach mal an dem client dich genauso anzumelden wie am  
  | Server, gleicher Benutzername, gleiche Rechte, gleiches Passwort.

Jo, hab ich, hab es auch mittlerweile mit  "net use [//Servername/IPC$] \USER:[Username]" versucht, von beiden Rechnern aus.

  | Ich habe übrigens einige Software für OPC geschrieben.

  | Es würde mich mal interessieren, was du so damit vorhast.

Ist meine Diplomarbeit, ich automatisiere eine Gefriertrocknungsanlage und wollte gerne, dass man über das Fachhochschul-Netzwerk sich die Prozessdaten anschauen kann.

Gruß Christa


----------



## laylay (28. Juni 2004)

Welche VB-Software benutzt Du, Visual Basic 6
oder .net.

Was meinst Du eigentlich mit VB würde zicken ? grins

Bei .net muss ich wissen ob Version 2002 oder Version 2003

Soll ich dir mal eine funktionierende VB6 Software für einen WinCC
OPC Server schicken bei dem ich 3 Werte lade und grafisch darstelle ?

Hier mal ein kurzes Beispiel in VB

'Schreib in dieser Art in das Deklarationsteil
Option Explicit
Dim objServer As OPCServer
Dim WithEvents objGroups As OPCGroups
Dim WithEvents objGroup As OPCGroup
Dim objItems As OPCItems
Dim objDruckAussen As OPCItem
Dim objDruckMitte As OPCItem
Dim objDruckRueck As OPCItem
Dim objWeg As OPCItem

'So baust du den Server zusammen
Sub Createopcserver()
 Set objServer = New OPCServer
 objServer.Connect "OPCServer.wincc", "Server_18"
 Set objGroups = objServer.OPCGroups
 Set objGroup = objGroups.Add
 Set objItems = objGroup.OPCItems
 Set objWeg = objItems.AddItem("P_RM_Aktuelle_Pressenstellung", 1)
 Set objDruckAussen = objItems.AddItem("P_RM_Pressdruck_Istwert", 2)
 Set objDruckMitte = objItems.AddItem("P_RM_Pressdruck_Mitte_Istwert", 3)
 Set objDruckRueck = objItems.AddItem("P_RM_Rueckdruck_Istwert", 4)
objGroup.UpdateRate = 100
objGroup.IsActive = True
objGroup.IsSubscribed = False
End Sub

'So kannst du dann Werte lesen
 objWeg.Read 1, Wert
 Weg = CSng(Wert)
 objDruckAussen.Read 1, Wert
 Druck = CSng(Wert)
 objDruckMitte.Read 1, Wert

Wenn Du keine Hilfe mehr brauchst sag Bescheid 

Viel Glück


----------



## TodesEngel (28. Juni 2004)

*OPC Server*

Hi,

Also erstmal arbeite ich mit VB 6, .net haben die auf unserer FH glaube ich gar nicht.

 | Was meinst Du eigentlich mit VB würde zicken ? grins

in der Zeile

AnOPCServer.Connect (ARealOPCServer, ARealOPCNodeName)

krieg ein Laufzeitfehler 70, wenn ich als ARealOPCNodeName (PC-Name auf dem der OPC Server laufen soll) angebe.
Wenn der Client und der Server auf einem Rechner liegen funktioniert es wunderbar. (Das heisst ich gebe als ARealOPCNodeName den PC-Namen von dem Rechner auf dem der Client grade läuft)
Der OPC Server ist auf beiden Rechnern installiert und regestriert.

Klappt bei dir die Verbindung übers Netzwerk mit deinem Client oder ist der WinCC OPC Server nicht Netzwerkfähig? Also wenn es bei dir mit dem Netzwerk läuft, dann wäre es schon nett wenn du mir dein Prog mal schicken könntest.

Sonst sieht der Quellcode meinem schon sehr ähnlich nur die Werte werden anders gelesen, aber soweit komme ich ja über das Netzwerk nicht.

Gruß Christa


----------



## TodesEngel (28. Juni 2004)

*Es läuft*

Hallo zusammen,

danke an alle die sich den Kopf zerbrochen haben, aber es läuft jetzt.

Das Problem war, dass es unter dcomcnfg bei den DCOM Einstellungen insgesamt drei Komponenten bestimmte Einstellungen brauchen, ich hatte aber nur von einem gewusst. 

Hat also alles doch nichts mit VB zu tun.

Gruß Christa


----------



## Chrissivo (13. Juni 2008)

Hallo Christa,
ein paar Jahre später plagt mich dasselbe Problem
Welches sind denn die drei Komponenten gewesen, bei denen man entsprechende Rechte setzen musste?

Über eine Antwort würde ich mich sehr freuen.

Chrissi


----------

