Automative infinte circular motion of Aerotech Ensemble Motion Controller (5.06.000) via MATLAB

24 次查看(过去 30 天)
I'm trying to move a stage with an Aerotech Ensemble Motion Controller (v5.06.000) via MATLAB, but instead of a full circular motion I only get multiple arc trajectories in one direction.
Does anyone have experience with this controller?
clear; clc; close all;
arch = computer('arch');
if strcmp(arch,'win32')
addpath('C:\Program Files (x86)\Aerotech\Ensemble\Matlab\x86');
else
addpath('C:\Program Files (x86)\Aerotech\Ensemble\Matlab\x64');
end
X = 0;
Y = 1;
disp('Connecting...');
h = EnsembleConnect;
EnsembleMotionEnable(h, X);
EnsembleMotionEnable(h, Y);
EnsembleMotionFaultAck(h, X);
EnsembleMotionFaultAck(h, Y);
% ====== USER PARAMETERS ======
R = 10; % mm
Speed = 1; % mm/s
% ====== CURRENT POSITION (this will become top of circle) ======
startX = EnsembleStatusGetItem(h, X, EnsembleStatusItem.PositionFeedback);
startY = EnsembleStatusGetItem(h, Y, EnsembleStatusItem.PositionFeedback);
% ====== BREAK BUTTON ======
DlgH = figure('Position',[800 500 200 120]);
H = uicontrol('Style','PushButton', ...
'String','Break', ...
'FontSize',16, ...
'FontWeight','bold', ...
'Position',[20 20 160 60], ...
'Callback','delete(gcbf)');
disp('Continuous circular motion started...');
while ishandle(H)
EnsembleMotionCWRadius(h, X, startX, Y, startY, R, Speed);
EnsembleMotionWaitMode(h, 1);
end
EnsembleMotionHalt(h);
EnsembleDisconnect();
  1 个评论
Ayush
Ayush 2025-12-16,6:32
Hi,
The repeated "EnsembleMotionCWRadius" command seems to be sending the same arc move each time, so the stage only traces multiple arcs in one direction instead of a full circle. To achieve continuous circular motion, you might need to update the arc endpoints or use a different approach.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Manage System Data 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by