Kennt wer OPC?



  • Hi. Ich bin auf der Suche nach einer CBuilder 5 Komponente und Tutorial zu OPC (OLE for Process Control).

    Kennt sich wer damit aus und kann etwas empfehlen?

    Ich habe hier http://www.opcconnect.com/cbuilder.php#client ein CBuilder4 Beispiel gefunden. Leider fehlt mir die "CustomSinks.h" zum compilieren und testen 😞

    Wäre super wenn wer dazu was sagen könnte.



  • Die customsinks.h ist in der Zip-Datei enthalten.



  • Entschuldigung, wollte nur kurz damit sagen das einfach zuviele Errors produziert werden. 😉

    //Zeile 130
    typedef TCustomSink<CDataCallbackSink, IID_IOPCDataCallback>CCreatableDataCallbackSink;
    // Zeile 87
    assert(m_ptrGroup == NULL);
    // Zeile 76
    m_DataCallbackSink.Disconnect();
    // Zeile 352
    CComVariant vValue = StrToInt(edValue->Text);
    

    Meldet bei mir jedoch:

    [C++ Fehler] DataCallbackSink.h(130): E2342 Keine Übereinstimmung des Typs beim Parameter 'riid' ('const _GUID &' erwartet, '_GUID' erhalten)
    [C++ Fehler] DataCallbackSink.h(130): E2299 Template-Spezialisierung kann aus 'TCustomSink<Base,riid>' nicht generiert werden.
    [C++ Fehler] DataCallbackSink.h(130): E2040 Deklaration nicht ordnungsgemäß abgeschlossen
    [C++ Fehler] Main.h(87): E2303 Typname erwartet
    [C++ Fehler] Main.h(87): E2139 In Deklaration fehlt ;
    [C++ Fehler] Main.cpp(76): E2451 Undefiniertes Symbol 'm_DataCallbackSink'
    [C++ Fehler] Main.cpp(147): E2451 Undefiniertes Symbol 'm_DataCallbackSink'
    [C++ Fehler] Main.cpp(352): E2034 Konvertierung von 'AnsiString' nach 'CComVariant' nicht möglich
    [C++ Fehler] Main.cpp(370): E2034 Konvertierung von 'AnsiString' nach 'CComVariant' nicht möglich
    [C++ Fehler] Main.cpp(429): E2034 Konvertierung von 'AnsiString' nach 'CComVariant' nicht möglich
    

    🤡 🙄



  • Hi,
    nachdem ich mir im vergangenen Jahr einen Wolf gesucht hatte, konnte ich folgende Seite finden, die mir dann auch sehr geholfen hat:
    http://www.win-tech.com/html/bcbopc.htm
    Viel Spaß damit,
    Christian



  • Danke für den Link!

    Wenn man aus der bpl den Eintrag DCLUSR50.bpi entfernt compiliert er es sogar 😃
    Aber woher bekomme ich die WTCLIENT.DLL die er haben will?
    Im Ordner existiert eine wtlient.lib, wobei sie nicht wtclient.lib heisst.
    Kannst da bitte helfen 🙄



  • Ahh. Habe es gefunden. So mal getestet. Habe den Server gestartet und dann den Client. Passierte nix, also mal auf den Button "Connect Loc" gedrückt.

    Da erhält man gleich eine Fehlermeldung "Failed to Execute OPCENUM" bestätigt mit OK und pötzlich ist der Server in der Liste. Wenn ich ihn auswähle kommt gleich die nächste Fehlermedung "QueryInterface (IID_IOPCServer) Failed".

    Sowohl in Beispiel 1 als auch in 2.

    Kannst eventuell sagen warum? Ist die DLL doch die falsche?

    Habe diese auf:
    http://www.win-tech.com/html/opcctk.htm und
    http://www.win-tech.com/html/opcstk.htm gefunden



  • Ist schon ein Weilchen her, genau erinnere ich mich nicht mehr. Aber eins weiß ich: ich hatte das problemlos zum Laufen gekriegt. Allerdings hatte ich nur einen Client benutzt, der Server war von der Firma Gesytec.

    In den Projekt-Optionen mußt Du USING_ATLVCL und _ATL_SINGLE_THREADED definieren.
    Als Include-Pfad mußt Du folgenden hinzufügen: $(BCB)\include\atl
    An Dlls kann ich mich gar nicht erinnern, da habe ich keine besonderen benötigt.

    Mehr kann ich Dir momentan leider auch nicht mehr sagen 😞



  • Ich nehme an das das Server-Beispiel irgend etwas noch benötigt, aber nicht anmeckert.

    Schade, so kann ich natürlich nichts testen. Was darf man mit diesen Beispielen eigentlich alles machen? Ich sehe auf der Seite auch Sachen zum kaufen von mehreren hundert Dollar 🙄

    Ich habe von http://www.dopc.kassl.de/download.shtml die Demo dOPC XGate version 2.10 (1.1 MB) geladen und installiert, aber auch die fand er leider nicht.


Anmelden zum Antworten