Closed stevedanomodolor closed 3 years ago
Is "Slave 1: old EtherCat slave" a SOES slave? Anyway, it seems it is not implemented to be conformant, seems to be missing the EEPROM data hence the need to manually configure it from the eml master. SOEM rely on having the EEPROM data.
So you have 2 options.
Fix the SOES(?) slave Or Port the manual configuration steps from the eml master to SOEM, the closest available in SOEM is using the configlist that handle missing/erroneous data.
It is one of the drivers from the old pr2 robot. I think it is not a soes slave and it was configured differently. Is it still possible to use soes to configure the eeprom data and fix the slave?
When you mean configlist, you are referring to this right? https://github.com/OpenEtherCATsociety/SOEM/blob/master/soem/ethercatconfiglist.h, we have to input the configuration data here right?
On Tue, Sep 1, 2020, 08:19 nakarlsson notifications@github.com wrote:
Is "Slave 1: old EtherCat slave" a SOES slave? Anyway, it seems it is not implemented to be conformant, seems to be missing the EEPROM data hence the need to manually configure it from the eml master. SOEM rely on having the EEPROM data.
So you have 2 options.
Fix the SOES(?) slave Or Port the manual configuration steps from the eml master to SOEM, the closest available in SOEM is using the configlist that handle missing/erroneous data.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/OpenEtherCATsociety/SOES/issues/84#issuecomment-684427629, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOU65DJVXGURX5JC3GZNQIDSDSHAVANCNFSM4QOEOMNA .
Yes, that configlist.
Thank you for your response,
On Tue, Sep 1, 2020, 10:41 nakarlsson notifications@github.com wrote:
Yes, that configlist.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/OpenEtherCATsociety/SOES/issues/84#issuecomment-684585561, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOU65DKHQTMGHYAF2MK66ULSDSXVFANCNFSM4QOEOMNA .
@stevedanomodolor , can we close this?
Yes, THANK YOU
On Wed, Sep 23, 2020, 08:00 nakarlsson notifications@github.com wrote:
@stevedanomodolor https://github.com/stevedanomodolor , can we close this?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/OpenEtherCATsociety/SOES/issues/84#issuecomment-697151666, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOU65DK7S7ZEPQOBCR7WHA3SHGFIRANCNFSM4QOEOMNA .
I am currently trying to use an old ethercat driver that initially was working with the old ros_ethercat_eml master implementation. I want to change and use soem. When using the slaveinfo to read the drive info, I get the following: The extra information I printed was to see at what stage the values were configured.
Slave 1: old EtherCat slave slave 2: new EtherCat slave slave 3: new EtherCat slave
EtherCAT_FMMU_Config fmmu = new EtherCAT_FMMU_Config(2); //ROS_DEBUG("device %d, command 0x%X = 0x10000+%d", (int)sh->get_ring_position(), start_address, start_address-0x10000); (fmmu)[0] = EC_FMMU(start_address, // Logical start address commandsize,// Logical length 0x00, // Logical StartBit 0x07, // Logical EndBit COMMAND_PHY_ADDR, // Physical Start address 0x00, // Physical StartBit false, // Read Enable true, // Write Enable true); // Enable
start_address += commandsize;
//ROS_DEBUG("device %d, status 0x%X = 0x10000+%d", (int)sh->get_ring_position(), start_address, start_address-0x10000); (*fmmu)[1] = EC_FMMU(start_address, // Logical start address base_status, // Logical length 0x00, // Logical StartBit 0x07, // Logical EndBit STATUS_PHY_ADDR, // Physical Start address 0x00, // Physical StartBit true, // Read Enable false, // Write Enable true); // Enable
start_address += base_status;
sh->set_fmmu_config(fmmu);
EtherCAT_PD_Config *pd = new EtherCAT_PD_Config(4);
// Sync managers (pd)[0] = EC_SyncMan(COMMAND_PHY_ADDR, commandsize, EC_BUFFERED, EC_WRITTEN_FROM_MASTER); (pd)[0].ChannelEnable = true; (*pd)[0].ALEventEnable = true;
(pd)[1] = EC_SyncMan(STATUS_PHY_ADDR, base_status); (pd)[1].ChannelEnable = true;
(pd)[2] = EC_SyncMan(WGMailbox::MBX_COMMAND_PHY_ADDR, WGMailbox::MBX_COMMAND_SIZE, EC_QUEUED, EC_WRITTEN_FROM_MASTER); (pd)[2].ChannelEnable = true; (*pd)[2].ALEventEnable = true;
(pd)[3] = EC_SyncMan(WGMailbox::MBX_STATUS_PHY_ADDR, WGMailbox::MBX_STATUS_SIZE, EC_QUEUED); (pd)[3].ChannelEnable = true;
sh->set_pd_config(pd);