Hallo zusammen, meine Konfiguration (für meine Frage nicht von Bedeutung nur zur Info): Ich habe zwei Layouts erstellt auf einem Board sind 4 Atmega 169 an die unter anderem Taster, LEDs und Relais angeschlossen sind. Für die Kommunikation mit dem anderen Layout habe ich noch eine RS232 Schnittstelle spendiert. Das zweite Layout ist sozusagen die "Steuereinheit". Hier kommt ein Atmega 128 zum Einsatz. Dieser µC wird mit einem PC verbunden und steuert mit dessen Befehlen und dem MPC-Mode (Multi-Prcessor-Communication) die anderen 4 µCer. Dazu gehört es Eingänge abzufragen oder Ausgänge zu schalten. Ich habe folgendes Problem: Ich habe mit Visual C++ 2008 express ein programm geschrieben, das die Daten von mehreren Mikrocontrollern ausliest und auswertet. Die Daten sind also im Visual C++ Programm schon verfügbar. Nun muss ich die Daten aus diesem Programm an einen OPC Server senden. Der OPC Server und das Visual C++ Programm laufen auf dem gleichen Rechner. Dies soll die Sache laut internet angeblich vereinfachen. Also möchte ich in mein Visual C++ Programm gerne einen OPC Client integrieren. Deswegen habe ich tagelang im Internet nach einer Einführung und Beispiel Quellcode gesucht. Leider ohne Erfolg. Ich habe bis jetzt noch überhaupt keinen Ansatz. Wenn also schon jemand Erfahrungen mit OPC Clients gemacht hat, wäre ich für jeden Tipp dankbar. Gruß Daniel
Also ich verstehe untereinem OPC Client ein Programm das Daten abholt, nicht schickt.
So wie ich das verstanden habe stellt der OPC Server Speicherplatz in Form von Items oder Tags zur Verfügung. Diese kann man dann entweder auslesen oder schreiben. Wenn ich das falsch verstanden habe bin ich für neue Infos dankbar. Gruß Daniel
( Hat OLE heuer schon wieder einen neuen Namen bekommen? ) Also wenn ich in Google 'OPC Client' eingebe, dann ist bereits der erste Link http://www.opcconnect.com/freecli.php und das sieht doch nicht schlecht aus. Da müsste sich doch einiges finden lassen.
Ok ein Client kann auch Tags schreiben. War von mir ein bisschen blöd ausgedrückt. Anhand von diesem Bild: http://www.fh-sw.de/sw/fachb/et/halbl/opc/opc.htm Ist deine µC Anwendung ein Client oder die Steckkarte ganz unten.
Der µC ist eigentlich nicht wichtig, da ich meine Daten schon in Visual C++ habe. Also soll mein Visual Programm zum Client werden und die Daten an den OPC Server übertragen.
Was du machen willst ist kein OPC Client sondern eher der Treiber zwischen OPC Server und Hardware. Bei sowas polled der Server klassischerweise die Werte von der Steuerung ab.
OK was ich mich frage ist, wie ich die Variablen aus meinem Programm in den OPC Server bekomme. Ich dachte mir es gäbe zwei Grundsätzliche Möglichkeiten. 1. Der Server holt und sendet die Daten von bzw. zu meinem Programm. 2. Mein Programm sendet die Variablen an den Server und liest ihn aus (also eigentlich wie ein "client") oder? Wie ich das ganze realisieren kann habe ich noch nicht verstanden. Gruß Daniel
Bei OPC ist die Richtung der Datenübertragung klar definiert. Ein OPC-Server stellt Daten zur Verfügung, die von OPC-Clients abgefragt oder verändert werden können. Wo die Daten herkommen, die der OPC-Server zur Verfügung stellt, ist implementierungsabhängig; oft verbirgt sich dahinter irgendein Automationssystem, das seine physikalischen Mess/Steuerdaten damit zur Nutzung durch andere Systeme zur Verfügung stellt. Um wie vom Threadstarter gewünscht "Daten an einen OPC Server" senden zu können, müssen im Datenmodell des Servers entsprechende OPC-Items ("Datenpunkte") vorhanden sein, die vom Client dann mit Werten beschrieben werden. Dazu müssen dem Client auch die zu verwendenden Namen ("Tags") der Items bekannt sein. Ob das aber der richtige Weg ist, die Problemstellung zu lösen, ist ohne Zusatzinformationen nicht zu klären. Was ist das für ein OPC-Server? Was kommuniziert noch mit diesem OPC-Server? Welcher Art sind die Daten, die "an den OPC-Server gesendet" werden sollen?
Hallo, ich habe mich natürlich weiter mit dem Thema beschäftigt, bis jetzt mit folgendem Ergebnis. Der normale Weg ist wohl ein OPC Server zu erstellen der in meine Software integriert werden muss. Dieser Server updated die Daten die vom µC kommen und stellt sie für die Clients zur Verfügung. Allerdings haben fast alle, von mir kontaktierten Drittanbieter von OPC Software, empfohlen einen OPC Client zu realisieren. Und ich denke am Ende ist es eigentlich auch egal wie der Server zu seinen Daten kommt. Wichtig ist nur dass er sie für die Clients zur Verfügung stellt. Ich habe auch Erfahren, dass es diverse Toolkits gibt, mit denen man Server oder Clients erstellen kann. Allerdings bin ich auch damit nicht zu einem lauffähigen Ergebnis gekommen. @ Rufus: Zur Zeit stehen mir nur Freeware bzw. Test OPC Server sowie Clients zur Verfügung. Aber es wird wahrscheinlich darauf hinauslaufen eine kommerzielle Software einzusetzen. Der Server soll zusätzlich nur noch mit einem weiteren Client arbeiten, der die Daten vom µC abfragt und verarbeitet. Die Daten beschränken sich auf Steuerbefehle um z.B einen Pin oder Port des µC zu schalten. Und jeweils 1 Byte um die Portzustände abzufragen, an die z.B Taster angeschlossen sind. Gruß Daniel
Wenn Du für diese Aufgabe wirklich OPC verwenden willst, dann kannst Du Dir hier einen Open-Source-OPC-Server ansehen: http://www.ipi.ac.ru/lab43/lopc-en.html OPC ist allerdings ein mittlerer Krampf im Arsch, was die Konfiguration der beteiligten Rechner und die Fehlersuche betrifft, was an der grundlegenden Technik namens DCOM liegt. Es mag noch lausiger dokumentierte und noch schlechter debugbare Schnittstellen geben, aber OPC genügt, um viel Zeit zu binden. Praktisch alle Hinweise darauf, wie man OPC zwischen zwei Rechnern zum laufen bekommt, sehen so aus, daß man praktisch alle möglichen Löcher und Einfallstore so weit wie nur irgendmöglich aufreißen muss ... Ich habe persönlich mit dem "Toolkit" einer Firma namens FactorySoft gearbeitet (bzw. arbeiten müssen); ein so teurer Haufen lausig programmierter und schlecht dokumentierter Software ist mir vorher noch nicht untergekommen. Recht einfach hingegen ist die Verwendung der DLL-Lösungen von Wintech http://www.win-tech.com/. Überlege aber ernsthaft, ob Du wirklich OPC einsetzen willst. Vieles lässt sich einfacher mit Webserverbasierten Techniken umsetzen; in Dein C++-Programm einen Webserver zu integrieren ist keine besonders aufwendige Aktion. Was letztendlich sinnvoll ist, hängt natürlich von der Anwendung und den Eckdaten wie Datenrate/Datenmenge ab ...
Rufus t. Firefly schrieb: > OPC ist allerdings ein mittlerer Krampf im Arsch, was die Konfiguration > der beteiligten Rechner und die Fehlersuche betrifft, was an der > grundlegenden Technik namens DCOM liegt. Es mag noch lausiger > dokumentierte und noch schlechter debugbare Schnittstellen geben, aber > OPC genügt, um viel Zeit zu binden. Da gibt's so einige Fernwirkprotokolle (inkl. IEC-Standards die so offen sind, dass es keinen Standard gibt) und deren Umsetzungen... > Recht einfach hingegen ist die Verwendung der DLL-Lösungen von Wintech > http://www.win-tech.com/. > > Überlege aber ernsthaft, ob Du wirklich OPC einsetzen willst. Vieles > lässt sich einfacher mit Webserverbasierten Techniken umsetzen; in Dein > C++-Programm einen Webserver zu integrieren ist keine besonders > aufwendige Aktion. Oder den aktuellen Nachfolger OPC UA verwenden. Entweder HTTP + SOAP/XML oder binär über TCP/IP. http://en.wikipedia.org/wiki/OPC_UA Source code für OPC gibt's hier http://www.opcconnect.com/delphi.php (OPC Server und Client) Für den Nachfolger OPC UA http://www.opcconnect.com/uafree.php (allerdings sollte man in jedem Fall über eine OPC-Mitgliedschaft nachdenken, Referenzimplementation etc.)
Vielen Dank für eure hilfreichen Antworten. Was mir auch schon aufgefallen ist, ist dass es wenig hilfreiche Dokumentationen gibt. Und die Bücherauswahl ist auch sehr begrenzt. Ich habe jetzt ein Toolkit von Visavi auprobiert. Für mich liegt der Vorteil dieser Software darin, dass man sie gut in Visual C++ integrieren kann und dann Objekte hat die man einfach einfügen kann. mit Visual C++ bekomme ich das ganze allerdings nicht compiliert. Ich bin jetzt auf Visual Basic 2008 umgestiegen und damit funktioniert es anscheinend. Ich werde aber eure Links mal genauer betrachten. Vielleicht kann ich ja sogar eine kostenlose Lösung finden. update wird folgen @ Rufus: Ich persönlich würde auch auf OPC verzichten, aber das ist eine der Vorgaben die ich bekommen habe. Denn die Software die verwendet werden soll arbeitet mit OPC. @ Arc Net: Die Mitgliedschaft kann ich ja mal vorschlagen, welche Vorteile hat man dadurch noch? Irgendwelche Erfahrungen? Gruß Daniel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.