Verfasst am: 22.08.2011, 17:43
Titel: COM Technologie in Matlab ansprechen
Hallo zusammen,
habe folgendes Problem:
Habe ein Statik Software Programm(Dlubal RSTAB) welche eine COM-Schnittstelle zur verfügung stellt. In der Beschreibung steht, dass man nur eine Software benötigt die COM-Technologie unterstützt.
Beispiele gibt es für .NET und VBA und dazu eine Objektbibliothek für .NET eine .dll und VBA .tlb Datei.
Nun da Matlab auch COM Technologie unterstützt dachte ich das müsste auch gehen.
Wenn ich nun die Fkt: loadlibrary(.dll, .h) verweden möchte fehlt mir dazu ein header Datei.
Die Funktionen
komme aber nicht in die zusätzlich hinzugefügte RSTAB Library rein.
Hat jemand einen Tip?
Leider sind die Kollegen von DLubal in Sachen Matlab nicht so fit, deswegen probiere ich es hier, da ich von Matlab nicht ablassen möchte, wie Ihr wohl versteht
Besten Dank und lieben Gruß
jofa
Das kannst z.B versuchen über Registry zu machen
und zwar unter HKEY_CLASSES_ROOT den Eintrag zu RSTAB suchen
dann kannst du über dieses ProgID das Programm mit ACTXSERVER ansprechen.
Hallo,
Danke für die schnelle Hilfe.
ICh muss vorweg noch sagen, dass ich blutiger Anfänger bin, was MATLAB angeht.
Ich habe die Registry nach "rstab" durchsucht und die Einträge die ich gefunden habe getestet. Leider alles negativ.
Die Datei für VBA heißt DLUBAL.RSTAB6.dll. deshalb habe ich mit kombinationen daraus experimentiert und siehe da, das erste mal eine andere Fehlermeldung.
Code:
h = actxserver('RSTAB6.Application') Error using feval
Custom interface is not supported on a 64-bit version of MATLAB.
Dann habe ich die 32-bit Version von Matlab installiert und es schien zu funktionieren. Bei Doppelklick auf die "Variable" f im Workspace öffnet sich ein leeres Fenster.
eingebe und "f" aus dem Workspace öffne, ist das Fenster nicht leer.
Ich habe auch beim Entwickler von RSTAB nachgefragt und bekam die Antwort, dass "ein direkter Zugriff zwischen den Programmen nicht möglich [sei], da MatLab eine andere Form des Bindings unterstützt."
Ist das das endgültige Aus für mein Unterfangen? Ich kenne mich dafür zu wenig mit der Materie aus um das beurteilen zu können.
ehrlich gesagt kenne ich mich mit RSTAB nicht aus,
aber die Anbindung sollte denke ich schon so funktionieren
Zitat:
Ich habe auch beim Entwickler von RSTAB nachgefragt und bekam die Antwort, dass "ein direkter Zugriff zwischen den Programmen nicht möglich [sei], da MatLab eine andere Form des Bindings unterstützt."
Ist das das endgültige Aus für mein Unterfangen? Ich kenne mich dafür zu wenig mit der Materie aus um das beurteilen zu können.
Das ist doch kein direkter Zugriff, sondern ein Indirekter über RSCom.
Vielleicht hat den Entwickler an ACTXCONTROL gedacht, jedenfalls verstehe ich nicht was er hier meint.
Wenn die Verbindung zu COM Server hast, dann weiter geht es nur, mit den Methoden die zur Verfügung für die Interface stehen.
Also steuerst du RSTAB über COM Server und das sollte ähnlich VB/C#
Versuche mal so die Liste der Methoden zu bekommen:
Hi,
vielen Dank für deine Hilfe und den vielversprechenden Ansatz.
nach der invoke-Abfrage werden leider keine Methoden aufgelistet, es kommt aber auch keine Fehlermeldung.
wenn ich dann die Zuweisungen ausführe, kommt die Fehlermeldung "No appropriate method, property, or field rsGetApplication for class COM.RSTAB6_Structure." (Jetzt als Beispiel für RS_Structure.rsGetApplication)
Eigentlich sollte mir "invoke" doch die Methoden auflisten, die ich dann verwenden kann, oder?
Okay habe mir Dokumentation zu Interface angeschaut, da hat der Entwickler leider recht, so funktioniert es wohl nicht. Da braucht man DLL um den RFEM COM Server zu nutzen.
Das muss man wohl in die Welt von C/C++ eintauchen und sich eine MEX basteln. Das ist mit einigem Aufwand verbunden.
Sorry dass ich dir nicht helfen konnte
Kein Problem. Trotzdem vielen Dank für deine Hilfe! Echt super!
LG David
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.