[etherlab-users] Problems using Beckhoff EL3162 with Etherlab Simulink blockset - does not switch from PREOP to OP
Sebastian Rehberger
rehberger at ais.mw.tum.de
Mon Mar 2 11:20:39 CET 2015
Dear Mr. Hacker,
Thank you for your immediate response. Indeed the slave is Revision EL3162-0000-0000 and rather old (2005).
I generated the .m file with "--skin" option, the modified result is attached below. I simply added the function head.
I tried the generic slave block and added ['el3162.m'] to the Struct Configuration field in the mask.
However it compiles/checks diagram without error, but the block does not add outputs or changes its mask description in Simulink.
After running the executable again, the slave stays in PREOP without error flag - so I guess the slave block does not work properly. Have I missed a step?
Besides, I ran a test with CoDeSys where the EL3162 seems running properly.
Kind regards,
Sebastian Rehberger
% Slave configuration
function rv = el3162()
rv.SlaveConfig.vendor = 2;
rv.SlaveConfig.product = hex2dec('0c5a3052');
rv.SlaveConfig.description = 'EL3162';
rv.SlaveConfig.sm = { ...
{0, 0, {
}}, ...
{1, 1, {
}}, ...
{2, 0, {
}}, ...
{3, 1, {
{hex2dec('1a00'), [
hex2dec('3101'), hex2dec('01'), 8; ...
hex2dec('3101'), hex2dec('02'), 16; ...
]}, ...
{hex2dec('1a01'), [
hex2dec('3102'), hex2dec('01'), 8; ...
hex2dec('3102'), hex2dec('02'), 16; ...
]}, ...
}}, ...
};
% Port configuration
rv.PortConfig.output(1).pdo = [3, 0, 0, 0];
rv.PortConfig.output(1).pdo_data_type = 1008;
rv.PortConfig.output(2).pdo = [3, 0, 1, 0];
rv.PortConfig.output(2).pdo_data_type = 1016;
rv.PortConfig.output(3).pdo = [3, 1, 0, 0];
rv.PortConfig.output(3).pdo_data_type = 1008;
rv.PortConfig.output(4).pdo = [3, 1, 1, 0];
rv.PortConfig.output(4).pdo_data_type = 1016;
end
-----Ursprüngliche Nachricht-----
Von: Richard Hacker [mailto:ha at igh.de]
Gesendet: Sonntag, 1. März 2015 20:20
An: Sebastian Rehberger; etherlab-users at etherlab.org
Betreff: Re: [etherlab-users] Problems using Beckhoff EL3162 with Etherlab Simulink blockset - does not switch from PREOP to OP
Hi,
you may be using an old version of the slave. What version are you using? (ethercat slave -v -p?)
You will need to use the generic slave in this case. Run the following command ethercat pdos -pX --skin etherlab and save it in el3162.m. Then insert this function for "EtherCAT Slave Configuration struct".
Attached is a function I used for another slave. You may use it for comparison.
- Richard Hacker
On 01.03.2015 17:28, Sebastian Rehberger wrote:
> Hi,
>
> We're trying to read analog output signals from a EL3162 input device.
> The Master is up and running, and other EL1004/EL2004 devices are
> functioning properly. Also two EL4102 analog output devices are
> working and behave normally.
>
>
> The EL3162 does not switch from PREOP to SAFEOP or OP, neither by
> command line ("sudo ./ethercat states -p 9 SAFEOP"), nor during
> execution of the simulink generated Etherlab application. However,
> Syslog gives the following debugging information:
>
> Mar 1 17:18:50 ubuntu kernel: [ 4960.647334] EtherCAT ERROR 0-9: SDO
> download 0x8000:06 (1 bytes) aborted.
>
> Mar 1 17:18:50 ubuntu kernel: [ 4960.647338] EtherCAT ERROR 0-9: SDO
> abort message 0x06020000: "This object does not exist in the object
> directory".
>
> Mar 1 17:18:50 ubuntu kernel: [ 4960.647340] EtherCAT ERROR 0-9: SDO
> configuration failed.
>
> In the slave list ("sudo. /ethercat slaves -p 9"), the EL3162
> immediately sets the error flag after execution of the Simulink application.
>
> Has anyone experienced similar problems or may support with further
> debugging methods?
>
> Kind Regards,
>
> Sebastian
>
>
>
> _______________________________________________
> etherlab-users mailing list
> etherlab-users at etherlab.org
> http://lists.etherlab.org/mailman/listinfo/etherlab-users
>
More information about the Etherlab-users
mailing list