<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.5pt;
font-family:Consolas;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:Consolas;}
.MsoChpDefault
{mso-style-type:export-only;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoPlainText>I want to use EL5101 with distributed clocks with IGH
master revision 1824.<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>My slave configuration is Slave 0 : EK1100, slave 1
– 8 : EL2008 , slave 9 : EK1100, slave 10 : EL5101, SLAVE 11 : EL4032
(all beckhoff modules<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>To enable the dc for the EL5101 slave, I use the
following line in my code<o:p></o:p></p>
<p class=MsoPlainText><b>ecrt_slave_config_dc(sc, 0x0320, 250000, 0, 250000 ,
0); <o:p></o:p></b></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>When I add this line to my application I got the following
dmesg<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>The exact error message (debuglevel = 1, with dmesg)<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.835273] EtherCAT DEBUG: Slave 10: Setting DC cycle
times to 250000 / 0.<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.835774] EtherCAT DEBUG:
app_start_time=17500059273709551616<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.835777] EtherCAT DEBUG:
start_time=17500059273809551616<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.835778] EtherCAT DEBUG:
cycle_time=250000<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.835780] EtherCAT DEBUG:
shift_time=0<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.835782] EtherCAT
DEBUG: remainder=0<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.835783] EtherCAT
DEBUG:
start=17500059273809801616<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.835786] EtherCAT DEBUG: Slave 10: Setting DC
cyclic operation start time to 17500059273809801616.<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.836273] EtherCAT DEBUG: Slave 10: Setting DC
AssignActivate to 0x0320.<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.838774] EtherCAT ERROR: Failed to set SAFEOP
state, slave 10 refused state change (PREOP + ERROR).<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.839274] EtherCAT ERROR: AL status message 0x0030:
"Invalid DC SYNCH configuration".<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.840272] EtherCAT: Acknowledged state PREOP on
slave 10.<o:p></o:p></p>
<p class=MsoPlainText>[ 1134.843414] EtherCAT DEBUG: Changing state of slave 0
from PREOP to OP.<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>And I got the 0x320 from xml that I generated with twincat<o:p></o:p></p>
<p class=MsoPlainText> <DC><o:p></o:p></p>
<p class=MsoPlainText> <ReferenceClock>1</ReferenceClock><o:p></o:p></p>
<p class=MsoPlainText> <CycleTime0>4000000</CycleTime0><o:p></o:p></p>
<p class=MsoPlainText> <CycleTime1>0</CycleTime1><o:p></o:p></p>
<p class=MsoPlainText> <ShiftTime>0</ShiftTime><o:p></o:p></p>
<p class=MsoPlainText> <OpMode><o:p></o:p></p>
<p class=MsoPlainText> <Name>Synchron</Name><o:p></o:p></p>
<p class=MsoPlainText> <Desc>Synchron</Desc><o:p></o:p></p>
<p class=MsoPlainText> <AssignActivate>#x0</AssignActivate><o:p></o:p></p>
<p class=MsoPlainText> <CycleTimeSync0
Factor="0">0</CycleTimeSync0><o:p></o:p></p>
<p class=MsoPlainText> <ShiftTimeSync0>0</ShiftTimeSync0><o:p></o:p></p>
<p class=MsoPlainText> <CycleTimeSync1
Factor="1">0</CycleTimeSync1><o:p></o:p></p>
<p class=MsoPlainText> <ShiftTimeSync1>0</ShiftTimeSync1><o:p></o:p></p>
<p class=MsoPlainText> </OpMode><o:p></o:p></p>
<p class=MsoPlainText> <OpMode
Selected="1"><o:p></o:p></p>
<p class=MsoPlainText> <Name>DC</Name><o:p></o:p></p>
<p class=MsoPlainText> <Desc>DC</Desc><o:p></o:p></p>
<p class=MsoPlainText> <b><AssignActivate>#x320</AssignActivate><o:p></o:p></b></p>
<p class=MsoPlainText> <CycleTimeSync0
Factor="1">0</CycleTimeSync0><o:p></o:p></p>
<p class=MsoPlainText> <ShiftTimeSync0>0</ShiftTimeSync0><o:p></o:p></p>
<p class=MsoPlainText> <CycleTimeSync1
Factor="1">0</CycleTimeSync1><o:p></o:p></p>
<p class=MsoPlainText> <ShiftTimeSync1>0</ShiftTimeSync1><o:p></o:p></p>
<p class=MsoPlainText> </OpMode><o:p></o:p></p>
<p class=MsoPlainText> <OpMode><o:p></o:p></p>
<p class=MsoPlainText> <Name>DCIN</Name><o:p></o:p></p>
<p class=MsoPlainText> <Desc>DCIN</Desc><o:p></o:p></p>
<p class=MsoPlainText> <b><AssignActivate>#x320</AssignActivate><o:p></o:p></b></p>
<p class=MsoPlainText> <CycleTimeSync0
Factor="1">0</CycleTimeSync0><o:p></o:p></p>
<p class=MsoPlainText> <ShiftTimeSync0>0</ShiftTimeSync0><o:p></o:p></p>
<p class=MsoPlainText> <CycleTimeSync1
Factor="1">0</CycleTimeSync1><o:p></o:p></p>
<p class=MsoPlainText> <ShiftTimeSync1>0</ShiftTimeSync1><o:p></o:p></p>
<p class=MsoPlainText> </OpMode><o:p></o:p></p>
<p class=MsoPlainText> </DC><o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoPlainText>So I started and dumped registers and objects while my
application is running (10 0:10 PREOP E EL5101 1K. Inc.
Encoder 5V)<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int16 0x1c32 0x01 : Sync mode<o:p></o:p></p>
<p class=MsoPlainText>0x0001 1<o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int32 0x1c32 0x02 : Cycle time
<o:p></o:p></p>
<p class=MsoPlainText>0x0003d090 250000 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int32 0x1c32 0x03 : Shift time
<o:p></o:p></p>
<p class=MsoPlainText>0x00000000 0 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int16 0x1c32 0x04 : Sync mode
supported<o:p></o:p></p>
<p class=MsoPlainText>0xc007 -16377<o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int32 0x1c32 0x05 : Minimum
cycle time <o:p></o:p></p>
<p class=MsoPlainText>0x000101d0 66000 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int32 0x1c32 0x06 : Calc and
copy time <o:p></o:p></p>
<p class=MsoPlainText>0x00000000 0 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int16 0x1c32 0x08 : Command <o:p></o:p></p>
<p class=MsoPlainText>0x0000 0 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int32 0x1c32 0x09 : Delay time
<o:p></o:p></p>
<p class=MsoPlainText>0x00000000 0 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int16 0x1c32 0x0B : SM event
missed counter <o:p></o:p></p>
<p class=MsoPlainText>0x0000 0 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int16 0x1c32 0x0C : Cycle
exceeded counter <o:p></o:p></p>
<p class=MsoPlainText>0x0000 0 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int16 0x1c32 0x0D : Shift too
short counter <o:p></o:p></p>
<p class=MsoPlainText>0x0000 0 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat upload -p 10 -t int8 0x1c32 0x20 : Sync error <o:p></o:p></p>
<p class=MsoPlainText>0x00 0 0x0320 800 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCTIME0 = 0x0900,32 <o:p></o:p></p>
<p class=MsoPlainText>0x9982203c -1719525316 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCTIME1 = 0x0904,32<o:p></o:p></p>
<p class=MsoPlainText>0x99822172 -1719525006<o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCTIME2 = 0x0908,32 <o:p></o:p></p>
<p class=MsoPlainText>0x00000000 0 ./ethercat reg_read -p 10 REG_DCSYSTIME =
0x0910,64<o:p></o:p></p>
<p class=MsoPlainText>0xf2dcb345afa7a8c8 -946684709773530936<o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCSOF = 0x0918,64 <o:p></o:p></p>
<p class=MsoPlainText>0x000000009982203c 2575441980 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCSYSOFFSET = 0x0920,64<o:p></o:p></p>
<p class=MsoPlainText>0xf2dcaf51da7b1679 -946689055561935239<o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCSYSDELAY = 0x0928,32<o:p></o:p></p>
<p class=MsoPlainText>0x00000bb3 2995<o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCSYSDIFF = 0x092C,32<o:p></o:p></p>
<p class=MsoPlainText>0x00000002 2<o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCSPEEDCNT = 0x0930,16 <o:p></o:p></p>
<p class=MsoPlainText>0x1000 4096 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCTIMEFILT = 0x0934,16<o:p></o:p></p>
<p class=MsoPlainText>0x0c04 3076<o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCCUC = 0x0980,8 <o:p></o:p></p>
<p class=MsoPlainText>0x20 32 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCSYNCACT = 0x0981,8<o:p></o:p></p>
<p class=MsoPlainText>0x03 3<o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCSTART0 = 0x0990,64 <o:p></o:p></p>
<p class=MsoPlainText>0xf2dcb345b72e8db0 -946684709647250000 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCCYCLE0 = 0x09A0,32 <o:p></o:p></p>
<p class=MsoPlainText>0x0003d090 250000 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 REG_DCCYCLE1 = 0x09A4, 32 <o:p></o:p></p>
<p class=MsoPlainText>0x0003d090 250000 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 0x0982 Pulse lenght of Sync
signales , 16 <o:p></o:p></p>
<p class=MsoPlainText>0x00000000 0 <o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 0x098E SYNC0 status, 8<o:p></o:p></p>
<p class=MsoPlainText>0x01 1<o:p></o:p></p>
<p class=MsoPlainText>./ethercat reg_read -p 10 0x098F SYNC1 status, 8 <o:p></o:p></p>
<p class=MsoPlainText>0x00 0<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>$ ./ethercat reg_read -p 10 0x0980 -t int16<o:p></o:p></p>
<p class=MsoPlainText>0x0320 800<o:p></o:p></p>
<p class=MsoPlainText>$ ./ethercat reg_read -p 10 0x0980 -t int8<o:p></o:p></p>
<p class=MsoPlainText>0x20 32<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>I saw in the IGH driver (revision 1824) that 2 bytes are
written to a 1 byte register<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>void ec_fsm_slave_config_enter_dc_clear_assign(<o:p></o:p></p>
<p class=MsoPlainText>
ec_fsm_slave_config_t *fsm /**< slave state machine */<o:p></o:p></p>
<p class=MsoPlainText> )<o:p></o:p></p>
<p class=MsoPlainText>{<o:p></o:p></p>
<p class=MsoPlainText>.......<o:p></o:p></p>
<p class=MsoPlainText> ec_datagram_fpwr(datagram,
slave->station_address, 0x0980, 2); ........<o:p></o:p></p>
<p class=MsoPlainText>}<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>Is that correct ??<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>But my main issue, how can I enable DC on the EL5101 with
the IGH master.<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>