PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zugriff auf Siemens OPC.SINUMERIK via DCOM via Java. How?


darph
2008-05-08, 08:03:24
Ich habe einen Siemens Simatic Server auf dem SINUMERIK läuft.

Der Client soll via DCOM per Ethernet auf den Server zugreifen und dort gewisse Daten auslesen (Position von Roboterarmen).

Das ist unter Verwendung des OPC-Scout auf dem Client auch möglich. Die physische Verbindung steht also. Zwecks Automatisierung und Visualisierung soll nun ein Javaprogramm, das J-Integra nutzt, um die Verbindung zu DCOM herzustellen, erstellt werden. Leider läuft das Programm nicht und ich soll nun schauen, warum.

Kennt sich jemand mit einer ähnlichen Konstellation aus? Ich bekomme zwar Zugriff auf den Serverbrowser, kann aber keine Verbindung zu Siemens herstellen. Ich muß ja für J-Integra einen Satz von Klassen erzeugen, die proxies für die DCOM-API darstellen. Leider lassen sich aus den Siemensprogrammen keine Proxies erzeugen. Muß ich da eine spezielle DLL hernehmen?

I:\test>java -jar opctest.jar local
Connecting to 127.0.0.1
These servers are accessible:
- OPC.SimaticNET -
- OPC.SimaticNET.DP -
- OPC.SimaticNET.PD -
- OPC.SINUMERIK.Machineswitch -
- ProfiDrive.ProfilServer -
Connecting to OPC.SINUMERIK.Machineswitch
Caught: AutomationException: 0x80004002 - No such interface supported
Source:
Description: No such interface supported
Code: 2147500034

AutomationException: 0x80004002 - No such interface supported
at opcauto.OPCServer.connect(OPCServer.java:513)
at opctest.Main.main(Main.java:64)
releasing
bye.

Demirug
2008-05-08, 08:50:09
DCOM & OPC? Erstmal ist das eine ganz schlechte Idee. DCOM ist nicht mal annähernd Echtzeittauglich.

Was dein eigentliches Problem angeht so würde ich mal im System und Sicherheitslog nachschauen ob dort DCOM Meldungen stehen. Der wahrscheinlichste Grund ist die Sicherheitskonfiguration von DCOM. Aber selbst wenn die stimmt kann IIRC ein COM Server immer noch so programmiert sein das er DCOM Verbindungen einfach nicht zulässt.

Gast
2008-05-08, 13:24:30
Mit dem OPC-Scout von Siemens geht es ja auch vom Remoterechner aus. Damit kann ich mir aber nur die Statuscodes ausgeben lassen.

Nur J-Integra macht wohl zicken, weil es Proxy-Klassen für die API erzeugen muß, aber die Programme (nach Ansicht von J-Integra) keine API bereitstellen. :/

Großartig echtzeitrelevant ist das Ganze eh nicht. Ich will den Arm nicht steuern, ich will nur auslesen, wann sich der Roboter in Position 1 oder 2 oder 3 ... befindet, damit ich am lokalen Rechner beginnen kann, die Daten des Massenspektrometers aufzuzeichnen. Ich muß die Werte einer Position zuordnen können, also muß ich wissen, wo der Arm ist. Versatz von einer Sekunde ist mir da egal.