[etherlab-users] Yaskawa Ethercat via Etherlab

Graeme Foot GraemeF at touchcut.com
Thu Jun 21 00:33:00 CEST 2012

From: Alwin Damman - LR [mailto:A.Damman at tudelft.nl] 
Sent: Thursday, 21 June 2012 00:55
To: Graeme Foot
Subject: Yaskawa Ethercat via Etherlab


Dear mister Graeme Foot,


First I will introduce myself, I am an engineer working at the
university of Delft Technologies and working on a control loading system
for some rudder pedals in our fixed simulator.


We have also chosen for a Yaskawa drive plus ethercat communication via
Etherlab from IgH. Well at this moment I get stocked at some points.


Some weeks ago, I was not able to communicate via pdos and only via
sdos. The reason was the older ethercat controller version of Yaskawa,
it was version 1.0. After sending and return, it is already upgraded to
version 3.05. But now I am not able to let the motor run via sdos or
pdos communication.


At the internetforum:

I found you with the most hits about the Yaskawa drive and I thought it
could be a good idea to contact you about the setting you have made to
let the system running.


Do you have a testfile (cstruct file) for the etherlab software to test
the drive? And would you like to borrow this file with other users like


Yours faithfully,

Alwin Damman


A. (Alwin) Damman

Phone +31 - 15 - 278 7936 
Fax + 31 - 15 - 278 6480  
Email: a.damman at tudelft.nl <mailto:a.damman at tudelft.nl> 

Visiting Address:

International Research Institute SIMONA 
Room location SIM 1.01 
Anthony Fokkerweg 1 
2629 HC Delft 
The Netherlands 

Postal Address:

Delft University of technology 
Faculty of Aerospace Engineering 
Kluyverweg 1 
2629 HS Delft
The Netherlands

http://www.cs.lr.tudelft.nl <http://www.cs.lr.tudelft.nl> 







I'm using Cyclic position mode with the drives.


I don't have a small test file or anything that would be easy to read,
so I'll try to summarise it below:


My PDO setup is as follows:


// Object dictionary on page 8-2 of EtherCAT users manual


ec_pdo_entry_info_t yaskawaSGDV_pdoEntries[] = {

    {0x6040, 0x00, 16},   // pg 8-21  control (rw)

    {0x607a, 0x00, 32},   // pg 8-30  target position (rw) (for cyclic
sync pos mode)

    {0x60b1, 0x00, 32},   // pg 8-37  velocity offset (rw) (for cyclic
sync pos mode)

    {0x6072, 0x00, 16},   // pg 8-40  max torque (rw) in 0.1%
increments, what is +ve torque lim and - torque lim? pdo or sdo??

    {0x60fe, 0x01, 32},   // pg 8-44  outputs (rw) (bits 17, 18, 19
control outputs 1, 2, 3)

    {0x60b8, 0x00, 16},   // pg 8-41  latchControl (rw) (bits: 0 enable
latch, 1 single/continuous trigger,

                          //                             2 0=latch on
S14 | 1=latch on C, 4 enable latch sampling???)

    {0x6060, 0x00, 8},    // pg 8-28  mode of operation (rw) (8=cyclic
pos, 9=cyclic vel)


    {0x6041, 0x00, 16},   // pg 8-23  status (r)

    {0x6064, 0x00, 32},   // pg 8-34  actual position (r)

    {0x606c, 0x00, 32},   // pg 8-38  actual velocity (r) required??

    {0x6077, 0x00, 16},   // pg 8-39  actual torque (r)

    {0x60f4, 0x00, 32},   // pg 8-35  actual following error (r)

    {0x60fd, 0x00, 32},   // pg 8-43  inputs (r) (available inputs: 0
(rev lim), 1 (fwd lim), 2 (hm), 

                          //                      16 - 22 (via CN1), 25
- 25 (via base block))

    {0x60ba, 0x00, 32},   // pg 8-42  latchPos (r) (via touch probe 1)

    {0x60b9, 0x00, 16},   // pg 8-42  latchStatus (r) (bits: 0 latch
enabled, 1 latched, 7 latched toggle (for continuous mode))

    {0x6061, 0x00, 8},    // pg 8-28  current mode of operation

    {0x603f, 0x00, 16},   // pg 8-21  last error code



ec_pdo_info_t yaskawaSGDV_pdos[] = {

    {0x1600, 7, yaskawaSGDV_pdoEntries + 0},

    {0x1a00, 8, yaskawaSGDV_pdoEntries + 7},

    {0x1a01, 2, yaskawaSGDV_pdoEntries + 15},



ec_sync_info_t yaskawaSGDV_syncs[] = {



    {2, EC_DIR_OUTPUT, 1, yaskawaSGDV_pdos + 0, EC_WD_ENABLE},

    {3, EC_DIR_INPUT, 2, yaskawaSGDV_pdos + 1, EC_WD_DISABLE},





To configure the drive I call:


slaveConfig = ecrt_master_slave_config(master, alias, position,
vendorID, productCode);

ecrt_slave_config_pdos(slaveConfig, EC_END, yaskawaSGDV_syncs);


Then for each pdo entry:


offset = ecrt_slave_config_reg_pdo_entry(slaveConfig,
yaskawaSGDV_pdoEntries[pdoIdx].subindex, domains[domIdx].domain,


Important Note: you need two separate domains.  One for the read pdo's
and one for the write pdo's.  I also have a third domain for all other
modules pdo's to ensure the yaskawa domains remain separate 



I think that's it.






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20120621/a917db0f/attachment-0003.htm>

More information about the Etherlab-users mailing list