Sorry, I was a little unclear in the first message.

Now you have a function el3162() which resides in the file el3162.m.
Type
el3162
on Matlab's command line and you will see the output.

Type exactly
el3162
into the space for "EtherCAT Slave Configuration struct", i.e. the result of calling el3162() is required in that field. No [] (empty matrix, or even ['el3162'], which is a matlab string.


Am 2015-03-02 11:36, schrieb Richard Hacker:
Use "el3162" instead of "el3162.m" (without .m). The rest looks fine.

If you like vector output ports, you can use:

PortConfig.output(1).pdo = [3, 0, 0, 0; 3, 1, 0, 0];
PortConfig.output(1).pdo_data_type = 1008;

PortConfig.output(2).pdo = [3, 0, 1, 0; 3, 1, 1, 0];
PortConfig.output(2).pdo_data_type = 1016;

There are even more options, read the help for the generic slave.

- Richard


Am 2015-03-02 11:20, schrieb Sebastian Rehberger:
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:[email protected]]
Gesendet: Sonntag, 1. März 2015 20:20
An: Sebastian Rehberger; [email protected]
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
[email protected]
http://lists.etherlab.org/mailman/listinfo/etherlab-users

_______________________________________________
etherlab-users mailing list
[email protected]
http://lists.etherlab.org/mailman/listinfo/etherlab-users
_______________________________________________
etherlab-users mailing list
[email protected]
http://lists.etherlab.org/mailman/listinfo/etherlab-users

Reply via email to