Discussion:
[etherlab-users] Problem reading SII configuration from slave
Jesper Smith
2011-08-24 19:02:23 UTC
Permalink
I'm testing an Elmo Gold Guitar Solo in combination with Ethercat. Using
TwinCAT I can get it to work. Using SOEM (simple open ethercat master) I'm
able to read the configuration (SDO), however when I connect it to the
Ethercat master I get the following error

EtherCAT WARNING 0-0: SII size exceeds 4096 words (0xffff limiter missing?).

What is wrong with the slave or is it an error in etherlab?

Regards,

Jesper
Andreas Stewering-Bone
2011-08-25 07:02:14 UTC
Permalink
Hello Jesper,

It is always the same I think.

TwinCAT works without reading the Slave Eeprom.

Our master tries to read out some information form the Eeprom.
Only a small amount of slave producer build up their Eeprom content
properly.
Here the final end tag is missing.

You can do

- Backup the Eeprom via ethercat sii_read -p slaveid > file
- Build up a new Eeprom content in TwinCAT based on the XML Description.
- Save this file to the Slave via ethercat sii_write -p slaveid filename

Power down the bus, restart everything.

See if the message is gone.

Best regards

Andreas
Post by Jesper Smith
I'm testing an Elmo Gold Guitar Solo in combination with Ethercat. Using
TwinCAT I can get it to work. Using SOEM (simple open ethercat master) I'm
able to read the configuration (SDO), however when I connect it to the
Ethercat master I get the following error
EtherCAT WARNING 0-0: SII size exceeds 4096 words (0xffff limiter missing?).
What is wrong with the slave or is it an error in etherlab?
Regards,
Jesper
_______________________________________________
etherlab-users mailing list
http://lists.etherlab.org/mailman/listinfo/etherlab-users
Mit freundlichem Gruß

Andreas Stewering-Bone
--
------------------------------------------------------------------------

Dipl.-Ing.(FH) Andreas Stewering-Bone
andreas.stewering-***@igh-essen.com
Tel.: +49 201 / 36014-15

Ingenieurgemeinschaft IgH
Gesellschaft für Ingenieurleistungen mbH
Heinz-Bäcker-Str. 34
D-45356 Essen
Amtsgericht Essen HRB 11500
USt-Id.-Nr.: DE 174 626 722
Geschäftsführung:
- Dr.-Ing. S. Rotthäuser,
- Dr.-Ing. T. Finke,
- Dr.-Ing. W. Hagemeister
Tel.: +49 201 / 360-14-0
http://www.igh-essen.com

------------------------------------------------------------------------
Jesper Smith
2011-08-25 13:14:02 UTC
Permalink
Hello Andreas,

Unfortunatly the slave doesn't accept a new Eeprom (it accepts the data fine,
but doesn't update anything). I'm trying to contact the manufacturer but they
are hard to reach. Also, I suspect the Eeprom is 2048kb, but the data from the
XML file takes 3072kb.

How hard would it be to have Etherlab use XML files instead of reading the SII
information?

Best Regards,

Jesper
Post by Andreas Stewering-Bone
Hello Jesper,
It is always the same I think.
TwinCAT works without reading the Slave Eeprom.
Our master tries to read out some information form the Eeprom.
Only a small amount of slave producer build up their Eeprom content
properly.
Here the final end tag is missing.
You can do
- Backup the Eeprom via ethercat sii_read -p slaveid > file
- Build up a new Eeprom content in TwinCAT based on the XML Description.
- Save this file to the Slave via ethercat sii_write -p slaveid filename
Power down the bus, restart everything.
See if the message is gone.
Best regards
Andreas
Post by Jesper Smith
I'm testing an Elmo Gold Guitar Solo in combination with Ethercat. Using
TwinCAT I can get it to work. Using SOEM (simple open ethercat master)
I'm able to read the configuration (SDO), however when I connect it to
the Ethercat master I get the following error
EtherCAT WARNING 0-0: SII size exceeds 4096 words (0xffff limiter
missing?).>
What is wrong with the slave or is it an error in etherlab?
Regards,
Jesper
_______________________________________________
etherlab-users mailing list
http://lists.etherlab.org/mailman/listinfo/etherlab-users
Mit freundlichem Gruß
Andreas Stewering-Bone
Andreas Stewering-Bone
2011-08-25 13:36:56 UTC
Permalink
Hello Jesper,

sorry, but that is question for florian.

Best regards

Andreas
Post by Jesper Smith
Hello Andreas,
Unfortunatly the slave doesn't accept a new Eeprom (it accepts the data fine,
but doesn't update anything). I'm trying to contact the manufacturer but they
are hard to reach. Also, I suspect the Eeprom is 2048kb, but the data from the
XML file takes 3072kb.
How hard would it be to have Etherlab use XML files instead of reading the SII
information?
Best Regards,
Jesper
Post by Andreas Stewering-Bone
Hello Jesper,
It is always the same I think.
TwinCAT works without reading the Slave Eeprom.
Our master tries to read out some information form the Eeprom.
Only a small amount of slave producer build up their Eeprom content
properly.
Here the final end tag is missing.
You can do
- Backup the Eeprom via ethercat sii_read -p slaveid> file
- Build up a new Eeprom content in TwinCAT based on the XML Description.
- Save this file to the Slave via ethercat sii_write -p slaveid filename
Power down the bus, restart everything.
See if the message is gone.
Best regards
Andreas
Post by Jesper Smith
I'm testing an Elmo Gold Guitar Solo in combination with Ethercat. Using
TwinCAT I can get it to work. Using SOEM (simple open ethercat master)
I'm able to read the configuration (SDO), however when I connect it to
the Ethercat master I get the following error
EtherCAT WARNING 0-0: SII size exceeds 4096 words (0xffff limiter
missing?).>
What is wrong with the slave or is it an error in etherlab?
Regards,
Jesper
_______________________________________________
etherlab-users mailing list
http://lists.etherlab.org/mailman/listinfo/etherlab-users
Mit freundlichem Gruß
Andreas Stewering-Bone
_______________________________________________
etherlab-users mailing list
http://lists.etherlab.org/mailman/listinfo/etherlab-users
Mit freundlichem Gruß

Andreas Stewering-Bone
--
------------------------------------------------------------------------

Dipl.-Ing.(FH) Andreas Stewering-Bone
andreas.stewering-***@igh-essen.com
Tel.: +49 201 / 36014-15

Ingenieurgemeinschaft IgH
Gesellschaft für Ingenieurleistungen mbH
Heinz-Bäcker-Str. 34
D-45356 Essen
Amtsgericht Essen HRB 11500
USt-Id.-Nr.: DE 174 626 722
Geschäftsführung:
- Dr.-Ing. S. Rotthäuser,
- Dr.-Ing. T. Finke,
- Dr.-Ing. W. Hagemeister
Tel.: +49 201 / 360-14-0
http://www.igh-essen.com

------------------------------------------------------------------------
Jesper Smith
2011-08-25 21:13:02 UTC
Permalink
Thank you for this information. I just found out I cannot even set the station
alias, even from twincat. I hacked ethercat to use a binary eeprom file
instead of reading it from the slave and that seems to work, aka I can talk to
the slave.

Regards,

Jesper
Post by Andreas Stewering-Bone
Hello Jesper,
sorry, but that is question for florian.
Best regards
Andreas
Post by Jesper Smith
Hello Andreas,
Unfortunatly the slave doesn't accept a new Eeprom (it accepts the data
fine, but doesn't update anything). I'm trying to contact the
manufacturer but they are hard to reach. Also, I suspect the Eeprom is
2048kb, but the data from the XML file takes 3072kb.
How hard would it be to have Etherlab use XML files instead of reading
the SII information?
Best Regards,
Jesper
Post by Andreas Stewering-Bone
Hello Jesper,
It is always the same I think.
TwinCAT works without reading the Slave Eeprom.
Our master tries to read out some information form the Eeprom.
Only a small amount of slave producer build up their Eeprom content
properly.
Here the final end tag is missing.
You can do
- Backup the Eeprom via ethercat sii_read -p slaveid> file
- Build up a new Eeprom content in TwinCAT based on the XML
Description.
- Save this file to the Slave via ethercat sii_write -p slaveid filename
Power down the bus, restart everything.
See if the message is gone.
Best regards
Andreas
Post by Jesper Smith
I'm testing an Elmo Gold Guitar Solo in combination with Ethercat.
Using TwinCAT I can get it to work. Using SOEM (simple open
ethercat master) I'm able to read the configuration (SDO), however
when I connect it to the Ethercat master I get the following error
EtherCAT WARNING 0-0: SII size exceeds 4096 words (0xffff limiter
missing?).>
What is wrong with the slave or is it an error in etherlab?
Regards,
Jesper
_______________________________________________
etherlab-users mailing list
http://lists.etherlab.org/mailman/listinfo/etherlab-users
Mit freundlichem Gruß
Andreas Stewering-Bone
_______________________________________________
etherlab-users mailing list
http://lists.etherlab.org/mailman/listinfo/etherlab-users
Mit freundlichem Gruß
Andreas Stewering-Bone
Jesper Smith
2011-10-27 15:01:38 UTC
Permalink
This post might be inappropriate. Click to display it.
Graeme Foot
2011-10-31 21:00:04 UTC
Permalink
Hi,

Yes, I'm interested in the patch.

Thanks,
Graeme.


-----Original Message-----
From: etherlab-users-***@etherlab.org
[mailto:etherlab-users-***@etherlab.org] On Behalf Of Jesper Smith
Sent: Friday, 28 October 2011 04:02
To: etherlab-***@etherlab.org
Subject: Re: [etherlab-users] Problem reading SII configuration from
slave

Hello,

Because the supplier of our slaves told us that their SII information
will
never fit in the slave (the SII binary is 3kb and the slave only has a
2kb
memory location) and we're stuck with 14 of them I've cleaned up the
hack to
read the SII information from a binary file and made it work in
combination
with other slaves. If someone is interested I can make a patch to the
most
recent master code.

I've adjusted the fsm_slave_scan state machine to works as follows

- Read vendor id + product code from slave
- Use the kernels firmware_request to load
ec_${vendor_id}_${product_code}.bin
/lib/firmware/${uname -r}/ethercat (or whatever path your distribution
uses)

If firmware is found,
use that to load the SII information
else
read SII information from the slave


I think this can be used as starting point for reading XML files. I'm
thinking
of the following solutions

- Make a separate user space program that compiles the XML files to SII
binaries and stores them in /lib/firmware
- Store the XML file in /lib/firmware and parse it in the master module
- Create a separate communication between the kernel and user space that

requests slave information from a daemon/udev.

Maybe someone on this list can voice their opinion what would be the
neatest
way to do it.


Regards,

Jesper
Jesper Smith
2011-10-31 21:53:40 UTC
Permalink
The patch I have is for the latest stable-1.5 tag. To use the patch, put the
SII information (export using TwinCAT) in

[FIRMWARE_LOCATION]/ethercat/ec_[VENDOR ID]_[PRODUCT CODE].bin

For my distro, OpenSuSE, the firmware location is
/lib/firmware/[KERNEL_VERSION], but this can differ between distro's.

Regards,

Jesper
Post by Graeme Foot
Hi,
Yes, I'm interested in the patch.
Thanks,
Graeme.
-----Original Message-----
Sent: Friday, 28 October 2011 04:02
Subject: Re: [etherlab-users] Problem reading SII configuration from
slave
Hello,
Because the supplier of our slaves told us that their SII information will
never fit in the slave (the SII binary is 3kb and the slave only has a 2kb
memory location) and we're stuck with 14 of them I've cleaned up the hack to
read the SII information from a binary file and made it work in combination
with other slaves. If someone is interested I can make a patch to the most
recent master code.
I've adjusted the fsm_slave_scan state machine to works as follows
- Read vendor id + product code from slave
- Use the kernels firmware_request to load
ec_${vendor_id}_${product_code}.bin
/lib/firmware/${uname -r}/ethercat (or whatever path your distribution uses)
If firmware is found,
use that to load the SII information
else
read SII information from the slave
I think this can be used as starting point for reading XML files. I'm thinking
of the following solutions
- Make a separate user space program that compiles the XML files to SII
binaries and stores them in /lib/firmware
- Store the XML file in /lib/firmware and parse it in the master module
- Create a separate communication between the kernel and user space that
requests slave information from a daemon/udev.
Maybe someone on this list can voice their opinion what would be the neatest
way to do it.
Regards,
Jesper
Graeme Foot
2011-11-01 08:57:52 UTC
Permalink
Hi Jesper,

Thanks for the patch, it was very interesting.

Unfortunately our linux distro does not have the hotplug/udev framework
required for request_firmware to work.

So, what I have done is added the ability to "request_firmware_direct"
which will read firmware files direct from the kernel. I've attached a
patch with my additions. (Sorry, there's also a few formatting changes
in the patch to match the code to the etherlabs coding standards.)


Theres two defines:
- REQUEST_SII_DIRECT to enable request_firmware_direct
(otherwise uses request_firmware)
- SII_PATH the path to the firmware directory

Firmware files will also require read permissions for all users, eg:
# chmod a=r ec_[VENDOR_ID]_[PRODUCT_CODE].bin


Regards,
Graeme.


-----Original Message-----
From: etherlab-users-***@etherlab.org
[mailto:etherlab-users-***@etherlab.org] On Behalf Of Jesper Smith
Sent: Tuesday, 1 November 2011 10:54
To: Graeme Foot
Cc: etherlab-***@etherlab.org
Subject: Re: [etherlab-users] Problem reading SII configuration from
slave


The patch I have is for the latest stable-1.5 tag. To use the patch, put
the
SII information (export using TwinCAT) in

[FIRMWARE_LOCATION]/ethercat/ec_[VENDOR ID]_[PRODUCT CODE].bin

For my distro, OpenSuSE, the firmware location is
/lib/firmware/[KERNEL_VERSION], but this can differ between distro's.

Regards,

Jesper
Post by Graeme Foot
Hi,
Yes, I'm interested in the patch.
Thanks,
Graeme.
-----Original Message-----
Sent: Friday, 28 October 2011 04:02
Subject: Re: [etherlab-users] Problem reading SII configuration from
slave
Hello,
Because the supplier of our slaves told us that their SII information will
never fit in the slave (the SII binary is 3kb and the slave only has a 2kb
memory location) and we're stuck with 14 of them I've cleaned up the hack to
read the SII information from a binary file and made it work in combination
with other slaves. If someone is interested I can make a patch to the most
recent master code.
I've adjusted the fsm_slave_scan state machine to works as follows
- Read vendor id + product code from slave
- Use the kernels firmware_request to load
ec_${vendor_id}_${product_code}.bin
/lib/firmware/${uname -r}/ethercat (or whatever path your distribution uses)
If firmware is found,
use that to load the SII information
else
read SII information from the slave
I think this can be used as starting point for reading XML files. I'm thinking
of the following solutions
- Make a separate user space program that compiles the XML files to SII
binaries and stores them in /lib/firmware
- Store the XML file in /lib/firmware and parse it in the master module
- Create a separate communication between the kernel and user space that
requests slave information from a daemon/udev.
Maybe someone on this list can voice their opinion what would be the neatest
way to do it.
Regards,
Jesper
John Christopher
2012-02-24 00:09:59 UTC
Permalink
Hello Jesper,

I'm very interested in trying your patch; how can I get a copy?


Thank you in advance,
John

Loading...