IOW und Matlab

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
AndreasS
Posts: 5
Joined: Thu Sep 15, 2005 2:11 pm
Location: Luebeck

IOW und Matlab

Post by AndreasS »

Hallo,

bin gerade dabei den IOW40 unter Matlab zum Laufen zu bringen. Das einfache Einlesen der DLL mit

>>loadlibrary('iowkit.dll','iowkit.h')

funktioniert nicht. Die DLL wird nicht optimal umgesetzt, man kann das sehen, wenn man sich die Prototypen in eine Datei schreiben laesst:

>>loadlibrary('iowkit.dll','iowkit.h','mfilename','myiow2')

Wenn man die Prototypen anpasst, funktioniert es schon viel besser. Dann die DLL mit

>>loadlibrary('iowkit.dll', @myiow2)

einlesen. Schwierigkeiten habe ich besonders mit Pointern auf Strings, z.B. IowKitGetSerialNumber. Hat da jemand eine Lösung?

Falls Interesse besteht, kann ich mal Beispiele irgendwo ablegen.

Andreas
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Ich hab zwar keine Ahnung von Matlab, aber ich schau mir mal die Beispiele trotzdem an. marquardt att codemercs dott com
pappteller
Posts: 2
Joined: Mon Sep 28, 2009 11:56 pm

Re: IOW und Matlab

Post by pappteller »

Moin,

ist da was bei raus gekommen? Habe genau das gleiche Problem

Grüße
Niklas
AndreasS
Posts: 5
Joined: Thu Sep 15, 2005 2:11 pm
Location: Luebeck

Re: IOW und Matlab

Post by AndreasS »

Hi,

wie in meiner letzten Nachricht beschrieben, läuft IOWarrior ganz gut. Allerdings muss ich zugeben, dass ich es nur unter Matlab 7.1 laufen lasse. Unter R2009a scheint es auch noch zu gehen, allerdings kommt eine Warnung, dass in der naechsten Version (d.h. R2009b) der Loader nicht mehr funktionieren soll. Ich installiere gerade mal R2009b, mal sehen, was passiert.

Bis spaeter.

Andreas
AndreasS
Posts: 5
Joined: Thu Sep 15, 2005 2:11 pm
Location: Luebeck

Re: IOW und Matlab

Post by AndreasS »

Hi,

unter R2009b gibt es die gleiche Warnung, laeuft aber immer noch.

Hier ein kleines Beispiel:

>> loadlibrary('iowkit.dll', @myiow, 'alias', 'iow')
>> % Anzeige der angeschlossenen IOWs
>> calllib('iow', 'IowKitGetNumDevs')
>> % Anzeige der Funktionen
>> libfunctionsview iow

Sollte klappen

CU

Andreas
Attachments
myiow.zip
Aus Header-Datei Matlab-konforme Prototypen
(958 Bytes) Downloaded 334 times
pappteller
Posts: 2
Joined: Mon Sep 28, 2009 11:56 pm

Re: IOW und Matlab

Post by pappteller »

Danke. Benutze R2008a und werde das heute Abend mal ausprobieren.
Will damit einen alten Roboterarm Type Cobra RS2 ansteuern.

Grüße
delirio
Posts: 7
Joined: Mon Oct 11, 2010 12:38 pm

Wiederaufbereitung:: IOW und Matlab

Post by delirio »

Guten Tag zusammen,

tatsächlich gibt es wohl nicht zu viele welche einen IOW mittels Matlab steuern.
Zumindest halten sich Internet Recherchen sehr bedeckt.

Bezüglich eines Projektes meinerseits komme ich nicht umhin die Ansteuerung über Matlab zu vollziehen und ich habe daher diesen Thread wieder mit ausgegraben.

Leider ist der letzte Beitrag schon eine Weile her, aber mit dem Thread Ersteller habe ich bereits geschrieben, wobei ich mich an dieser Stelle gleich noch für die Mühen mit bedanken möchte.

Vielleicht hat zwischenzeitlich bereits jemand weitere Erfahrungen bezüglich IOW und Matlab getan.
friend-of-rq
Posts: 389
Joined: Sun Feb 13, 2005 1:22 pm
Location: Gerblingerode / Duderstadt
Contact:

Re: IOW und Matlab

Post by friend-of-rq »

Hallo delirio,

ich kann Dir nur sagen, das einige Anwender von LabView oder Profilab meinen IOW-Socket-Server Verwenden um alle Funktionen der IOWarrior voll zu nutzen, unter anderem mit einem virtuellen COM Socket-Client.

ist hier im Forum schon beschrieben worden:
...mit Hilfe des IOW-Socket-Servers aus Profilab-Expert ...

solltest Du dir mal ansehen ... (Vorsicht Werbung)

Gruss Ralf
delirio
Posts: 7
Joined: Mon Oct 11, 2010 12:38 pm

Re: IOW und Matlab

Post by delirio »

Danke @friend-of-rq
ich habs mir mal angesehen...aber im Grunde möchte ich schon direkt bei matlab bleiben.
Eventuell komme ich an anderer Stelle darauf zurück ;-)


Herzlichen Dank an @AndreasS
mit seiner überarbeiteten Version von myIOv15 ist auch mit matlabR2010a zunächst das Einbinden der iowkit.dll möglich.
Ich hoffe es ist mir erlaubt diese an dieser Stelle online zu stellen.
myiowv15.zip
(40.15 KiB) Downloaded 282 times
Schreiben der Ports bit weiße gar kein Problem, nur eben die Umsetzung des pointers auf die ReportID und den Value
um z.B. Werte auszulesen will mir nicht gelingen.

Meine Vorgehensweise:

Code: Select all

MATLAB:

report= 255;
pReport = libpointer('uint8',Report);
res = callib('iowkit', 'IowKitReadNonBlocking', ioHandle,0,pReport,8)
Fehlermeldung:
??? Undefined function or method 'callib' for input arguments of type 'lib.pointer'.

Jemand eine Idee??
friend-of-rq
Posts: 389
Joined: Sun Feb 13, 2005 1:22 pm
Location: Gerblingerode / Duderstadt
Contact:

Re: IOW und Matlab

Post by friend-of-rq »

@delirio

ich habe überhaupt keinen blassen von "Matlab" bzw. "myIOv15" ...

Code: Select all

Undefined function or method 'callib' for input arguments of type 'lib.pointer'.

pReport = libpointer('uint8',Report)
was ist denn "uint8" ... pReport müsste doch eine "field variable" sein ... byte(x)

und das ganze sollte auch an Pipe(1) gehen und nicht an Pipe(0)

an Pipe(0) kann nur mit Report-ID (0) gesendet werden ... und auch nur zum direkten ändern der Ports ...

??? aber wie gesagt von "Matlab" habe ich keine Ahnung ...

aber bevor man den Port-Status [Report(255)] über IowKitReadNonBlocking einlesen kann,
musst Du dem IOW auch sagen, das Du diesen Report einlesen willst ...
d.h. du musst zuvor einen Report mit der Report-ID (255) an den IOW_Pipe(1) senden (WRITE) ...

das nächste Problem was ich sehe, ist das Du nach dem auslösen des Report nicht unmittelbar gleich das Ergebnis bekommen wirst ... das heißt die ersten Report die Du mit "IowKitReadNonBlocking" von Pipe(1) einliest können ungültige Reports sein ... Report-ID=(0) ... je nach Geschwindigkeit deines PCs ... muss in irgendeiner Form abgefragt werden ...

Wichtig ! ... beim einlesen der Reports immer die Report-ID prüfen und den Report entsprechend auswerten oder verwerfen ...

Gruss Ralf
delirio
Posts: 7
Joined: Mon Oct 11, 2010 12:38 pm

Re: IOW und Matlab

Post by delirio »

...ja, vielen Dank !

Ich muss ehrlich zugeben das matlab <-> IOW grad bissi am Ruhen ist, da ich im Rahmen meines Projektes nur die Ports setzen muss und das bekomme ich soweit gut hin.
Ich werd aber auf alle Fälle daran bleiben und es weiterhin melden sollte ich da weiter kommen !

Danke auf alle Fälle für die Einwände !
Macht Sinn und mitunter solche Kleinigkeiten machens meist noch schwieriger die richtige Lösung zu finden !

Merci
Grüße
A.
Post Reply