Using a Smart Motor with Matlab
4 views (last 30 days)
Show older comments
I have a Smart Motor made my Animatics (www.animatics.com). They have examples of how to control it using a COM object in C++ and Visual Basic. I have tried using the actxserver function but to no avail.
The VB sample is as follows:
Sub EngineUserSub()
On Error GoTo ErrorHandler:
' Create an instance of SMIHost object
Dim CommInterface As SMIHost
Set CommInterface = New SMIHost
CommInterface.OpenPort(“COM1”)
n = CommInterface.AddressMotorChain
‘ Send a command and get response
CommInterface.DefaultMotor = 1
CommInterface.WriteCommand(“RSP”)
Dim Response As String
Response = CommInterface.ReadResponse
MsgBox(Response)
If anyone has accomplished this or has any insight, it would be greatly appreciated.
Thank you, Ryan
0 Comments
Answers (1)
Daniel
on 10 Apr 2014
Edited: Daniel
on 10 Apr 2014
The following may be helpful:
Note: a space acts as a delimiter for commands sent to the motor
function openmoveclose(x)
%open the serial port COM1
%apply the displacement x (in steps)
%close the port
% choose the serial port COM1
s = serial('COM1');
% set all the properties of the port
s.BaudRate = 9600;
s.DataBits = 8;
s.Terminator = 'LF/CR';
s.RequestToSend = 'off';
s.FlowControl = 'software';
s.DataTerminalReady = 'off';
s.parity = 'none';
%open the port
fopen(s);
%apply displacement
%allow 5ms second for initialization => prevent 'fuzzy' dismissal of the command
%clear the board memory
%remove hardware limits, set velocity and acceleration
preamble = ['EIGN(2) EIGN(3) ZS a=0 AT=9000 VT=283032 END'];
command = ['WAIT=5' ' ' 'PT=' int2str(sign(x)*round(abs(x))) ' ' 'G'];
fprintf(s,preamble);
fprintf(s,command);
%close the port
fclose(s);
delete(s)
clear s;
end
0 Comments
Communities
More Answers in the Power Electronics Control
See Also
Categories
Find more on Use COM Objects in MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!