# Verbindungsaufbau zum OPC-Server geht nicht



## MSP (12 Oktober 2005)

Guten Morgen,

ich setze eine S7-314C-2DP zusammen mit der CP 343-1IT ein.
Als OPC-Server nutze ich den Server der Firma INAT.
Meinen Client habe ich in VB6 erstellt mit der OCX von Rothenbacher.

Auf meinem Entwicklungs-PC läuft sowohl der OPC-Server als auch der Client ohne Probleme, selbst wenn der Server nicht läuft und der Client eine Anforderung schickt, startet der OPC-Server ohne Probleme.

Wenn ich jetzt jedoch den Client auf einen anderen PC installiere geht garnichts, weder wenn der Server läuft noch wenn der Server inaktiv ist.

Ein Anfrage per Mail an die Firma Rothenbacher brachte bisher keine Antwort ( oder ist im Spamfilter gelandet... ), daher hoffe ich das jemand in diesem Forum eventuell schon Erfahrung mit der OCX gesammelt hat.

Denn dem Handbuch nach kann ich nirgends eine IP etc angeben unter der der Server erreichbar ist, nur der Name des Servers. Und der ist ja abhängig von der auf dem jeweiligen PC installierten OPC-Version. Nur wenn ich den Namen dort Fix angebe und auf dem anderen PC ebenfalls ein OPC-Server installiert ist, wird halt dieser gestartet ( gleicher Name )..

Wie kann ich mein Vorhaben also realisieren   

Ratlos, Michael


----------



## Anonymous (15 Oktober 2005)

Hallo,

hat denn Niemand eine Idee oder einen Hinweis wie man auf einen OPC-Server zugreift von einem Client aus, der nicht auf dem selben PC ausgeführt wird wie der Server?
Da ich den Namen angeben muss des OPC-Servers und der scheinbar nicht mit IP etc umgehen kann, wie gibt man einem Client an wo sich der OPC-Server befindet?

Mir scheint, dass dies eine generelle Frage ist und nicht speziell auf die OCX der Firma Rothenbacher, oder?

MfG
Michael


----------



## 0815prog (15 Oktober 2005)

Hallo,

ist die Netzwerkverbindung zwischen Client- und Server-PC in Ordnung?
Wie ist die Kopplung: Über Direktverbindung (Cross-Link-Kabel) oder über einen Switch oder Hub?
Es gibt außerdem OPC-Clients oder OPC-Explorer, die von verschiedenen Herstellern als Demo-Download verfügbar sind, die alle erreichbaren OPC-Server anzeigen (sowohl Lokal als auch Remote). 

_____________________________________________________________


----------



## MatMer (15 Oktober 2005)

Hallo MSP,

wäre auch meine Frage gewäsen ob du unbedingt an diesem Client gebunden bist. Bei dem Inat OPC Server ist ein Test Client ja direkt mit dabei, der von Rockwell, dieser hat eigentlich bei mir auch ohne Probleme funktioniert.
Leider kann ich dazu auch nicht mehr sagen.


----------



## Anonymous (15 Oktober 2005)

*OPC OCX*

Hallo 

Sorry da muss ich dich Enttäuschen das ocx kann noch keine Verbindung zu Remot PC/OPC.(noch)

Ich habe auch gerade noch einmal nach geschaut ich habe keine Email von die bekommen weder im Filter noch ist da was übersehen worden bist du sicher das du die richtige E-Mail Adresse von mit hast ??

info@rothenbacher-gmbh.de
Andi@rothenbacher-gmbh.de

Mit freundlichen Grüßen

Andi Rothenbacher


----------



## MSP (16 Oktober 2005)

Moin,

ich habe die Mail an die Adresse auf der Homepage geschickt, allerdings über nen Webmailer... naja kann sein das da was geklemmt hat.

Die Frage ob ich an den Client gebunden bin... naja.
Ich habe mir eine kleine Visualisierung in VB6 gebastelt die meine Anlage darstellen soll und auch Steuern kann.

Da das ganze im Rahmen einer Projektarbeit zum Elektrotechniker stattfindet, hätte ich es natürlich gerne gehabt das ich auch mehrere Clients an den Server binden kann und diese den Status der Anlage anzeigen.
Da wir aber bei der Präsentation nur einen PC dabei haben werden, ist es halb so wild, nur weis ich jetzt wenigstens das es nicht an mir liegt sondern am benutzten OCX, die Welt geht natürlich nicht davon unter 

Gruss,
Michael


----------



## Anonymous (18 Oktober 2005)

*Verbindungsaufabu zum remoten OPC-Server*

Hallo MSP,
der OPC-Client (ob nun OCX oder sonstirgendwas in Delphi, VB, C++) muss
folgendes machen um Zugriff auf das COM-Interface des OPC-Servers zu ermöglichen :
1. bei lokalem OPC-Server : CreateComObject(FServername);
2. bei remote OPC-Server         : CreateRemoteComObject(FComputerName, FServerName);
Wenn der OPC-Client die remote Funktion nicht unterstützt ist dies entweder vom Programmierer so gewollt (eher unwahrscheinlich) oder irgendwo hat dem Proggi wohl der Überblick gefehlt. Wenn die Funktion für remoten Server im Client nicht implementiert sind, gilt der alte Spruch : Keine Arme, keine Kekse   
Gruß
Gast ???


----------



## MSP (19 Oktober 2005)

Moin,

wie keine Kekse? Schade aber auch...   

Ausprobieren kann man es trotzdem, eventuell finde ich ja noch was anderes was ich benutzen kann.
Habe nämlich noch festgestellt das der Write-Befehl einen Merker setzt bzw. nur setzt und nicht einfach für die Dauer z.B. eines Tastendrucks auf 1 setzt so wie ich es gerne hätte.
Ist zwar eine Bastelaufgabe in VB mit mehreren Zuständen jetzt ( KeyDown, KeyUP, MouseUp, MouseDown ), aber so scheint es die einzigste Möglichkeit zu sein mit dem WRITE-Befehl so zu arbeiten als wenn ich den Schalter etc. nur kurz betätige 

Gruss,
Michael


----------



## Zefix (19 Oktober 2005)

Hi
evtl. kannst ja am Zyklusende in der SPS die Merker usw.  rücksetzen.

vielleicht klappts so?

Gruss Andy


----------



## MSP (19 Oktober 2005)

Moin,

ja genau so mache ich es jetzt auch.
Bzw setze ich die Merker bei bestimmten Aktionen zurück wie ich es brauche.
Ist zwar einiges an Code im VB zu kopieren und auch in Step7 zu beachten, aber habe Heute einiges geschafft was die Verbindung Client -> Server -> Steuerung angeht 

So langsam wird das eine runde Sache, auch wenn der Code sicherlich alles andere als sauber ausschaut  :roll: 

Michael


----------



## Anonymous (19 Oktober 2005)

Hallo,


> am Zyklusende in der SPS die Merker usw. rücksetzen.


Wenn das Setzen der Merker über OPC-Server asynchron zur zyklischen Bearbeitung des S5/S7-Programmes erfolgt, können bei dieser Variante gesetzte Merker sporadisch nicht erkannt werden. 

Das kann im Programmzyklus so aussehen :
Erste Möglichkeit :
1: Merker wird durch OPC-Server in der CPU gesetzt.
2. Merker wird im S5/S7 Programm abgefragt und entsprechende Aktion ausgelöst (da der Merker gesetzt ist).
3. Merker wird durch S5/S7 Programm am Zyklusende zurückgesetzt.
4. In diesem Fall funktioniert das zufällig korrekt.

Zweite Möglichkeit :
1. Merker wird im S5/S7 Programm abgefragt und keine Aktion ausgelöst (da der Merker noch nicht gesetzt).
2: Merker wird durch OPC-Server in der CPU gesetzt.
3. Merker wird durch S5/S7 Programm am Zyklusende zurückgesetzt.
4. In diesem Fall funktioniert das zufällig nicht korrekt.

Besser also :
1. Merker abfragen und wenn gesetzt die entsprechende Aktion ausführen.
2. Wenn Aktion ausgeführt, Merker direkt zurücksetzen.
  (unter Umständen wird die Aktion dann erst im nächsten Zyklus ausgeführt, aber sie wird auf jeden Fall ausgeführt)

Wenn also nicht sichergestellt ist, dass Informationen vom Kopplungspartnern zu Beginn des SPS-Zyklus synchron zur Verfügung stehen, sollte man die zuletzt beschriebene Vorgehensweise verwenden, ansonsten kann es ganz tolle, sporadische Effekte geben.

Gruß
Gast ???


----------



## MSP (20 Oktober 2005)

Hallo Gast ???,

danke für Deinen Einwand, ich werde mal schaun ob unser Programm nicht eventuell doch die ein oder andere Ecke in dieser Richtung aufweist.
Wäre fatal wenn es alles klappt beim Testen und nacher in der Präsentation zu einem solchen Fehler kommen würde   

Michael


----------



## Anonymous (20 Oktober 2005)

Hallo MSP,


			
				MSP schrieb:
			
		

> nacher in der Präsentation zu einem solchen Fehler kommen würde


Laut Murphy kommt es in einer wichtigen Präsentation immer zu unvorhergesehenen Fehlern. Man kann sich nur bemühen, das Risiko zu minimieren, indem man sich alle möglichen Szenarien überlegt und versucht, mögliche Fehlerquellen auszuschließen. Aber : auch wenn man noch so erfahren ist, Murphy ist einfach stärker.   
Aber trotzdem, viel Erfolg wünscht Dir 

Gast ???


----------

