[etherlab-users] Commissioning an EL7201
Weishaar, Philipp
Philipp.Weishaar at ifas.rwth-aachen.de
Thu Feb 8 10:49:09 CET 2018
Hello everyone!
Currently I am trying to commission a EL7201-0000 with a AM3111-0300-0001 connected to it. My first step in this process is to get it running under TwinCAT 3. I would like to use the velocity control option and also have the position, velocity and torque returned to me. Up to this point it works quite nicely and I was able to export the configfile and also took note of the entries for 1C12 and 1C13.
The next step would be to write a generic slave for the Matlab/Simulink environment. At this point it starts to come apart. I am missing the information for the AssignActivate and DC. Unfortunately the command ethercat xml does not return the information for the AssignActivate. My question would be, does anyone have some insights that might help me with commissioning this axis? I enclosed the generic slave below.
Kind regards,
Philipp Weishaar
function rv = kleineAchse_test
% Slave configuration
rv.SlaveConfig.vendor = 2;
rv.SlaveConfig.product = hex2dec('1C213052');
rv.SlaveConfig.description = 'EL7201-0000';
rv.SlaveConfig.sm = { ...
{0, 0, {
}}, ...
{1, 1, {
}}, ...
{2, 0, {
{hex2dec('1600'), [
hex2dec('7010'), hex2dec('01'), 16; ... %Controlword
]}, ...
{hex2dec('1601'), [
hex2dec('7010'), hex2dec('06'), 32; ... %Target velocity
]}, ...
}}, ...
{3, 1, {
{hex2dec('1a00'), [
hex2dec('6000'), hex2dec('11'), 32; ... % Position
]}, ...
{hex2dec('1a01'), [
hex2dec('6010'), hex2dec('01'), 16; ... % Statusword
hex2dec('6010'), hex2dec('07'), 32; ... % Actual velocity
hex2dec('6010'), hex2dec('08'), 16; ... % Actual torque
]}, ...
}}, ...
};
rv.SlaveConfig.dc = [hex2dec('310'), 250000, 0, 0, 0, 0, 1000000, 0, 0, 0]; % DC values for time-step of 0.001 seconds
% SDO
rv.SlaveConfig.sdo = {
hex2dec('1C12'),-1, 0, [02,00,00,22,01,22]; %
hex2dec('1C13'),-1, 0, [04,00,00,26,01,26,02,26,03,26]; %
%hex2dec('F081'),hex2dec('01'),32, 1376256; %
hex2dec('8011'),hex2dec('11'),32,6000; % Max Current
hex2dec('8011'),hex2dec('12'),32,3220; % Rated current
hex2dec('8011'),hex2dec('13'),8,4; % Motor pole pairs
hex2dec('8011'),hex2dec('15'),16,330; % Commutation Offset
hex2dec('8011'),hex2dec('16'),32,50; % Torque constant
hex2dec('8011'),hex2dec('18'),32,26; % Rotor moment of inertia
hex2dec('8011'),hex2dec('19'),16,7; % Winding inductance
hex2dec('8011'),hex2dec('1B'),32,4766; % Motor speed limitation
hex2dec('8011'),hex2dec('2D'),16,200; % Motor thermal time constant
hex2dec('8010'),hex2dec('12'),16,5; % Current loop integral time
hex2dec('8010'),hex2dec('13'),16,83; % Current loop proportional gain
hex2dec('8010'),hex2dec('14'),32,150; % Velocity loop integral time
hex2dec('8010'),hex2dec('15'),32,46; % Velocity loop proportional gain
hex2dec('8010'),hex2dec('19'),32,24000 % Nominal DC link voltage
};
% Control word
rv.PortConfig.input(1).pdo = [2, 0, 0, 0];
rv.PortConfig.input(1).pdo_data_type = 1016;
% Velocity command value
rv.PortConfig.input(2).pdo = [2, 1, 0, 0];
rv.PortConfig.input(2).pdo_data_type = 2032;
% Actual Position
rv.PortConfig.output(1).pdo = [3, 0, 0, 0];
rv.PortConfig.output(1).pdo_data_type = 1032;
% Statusword
rv.PortConfig.output(2).pdo = [3, 1, 0, 0];
rv.PortConfig.output(2).pdo_data_type = 1016;
% Actual velocity
rv.PortConfig.output(3).pdo = [3, 1, 1, 0];
rv.PortConfig.output(3).pdo_data_type = 2032;
% Actual torque
rv.PortConfig.output(4).pdo = [3, 1, 2, 0];
rv.PortConfig.output(4).pdo_data_type = 2016;
end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20180208/d071712b/attachment-0002.htm>
More information about the Etherlab-users
mailing list