This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728: EtherCAT Slave timing problems

Part Number: AM5728
Hello TI community,
I'm trying to run the PRU-ICSS-EtherCAT_Slave on the AM5728 IDK board. I'm using the version 01.00.07.02.
Because of requirements and environment conditions, we would like to run the slave on the DSP. Finally I ported the software to the C66x architecture (some modifications for assembler commands, interrupt registration via EventCombiner etc.). I oriented myself according to this thread. Finally, I can compile the slave successfully for the DSP. I use the generic fullstack of ETG and I generated the code with the SSC tool.
At the moment: The slave is starting up, runs in "SM-Synchron" in TwinCAT master configuration and I can modify the LEDs (such as described in the TI example application) with the help of TwinCAT3. That sounds good - at first.
But: My slave software has some timing/synchronization problems. After some seconds, TwinCAT reports repetitively "Frame missed 10 times (frame no. 0)", the slave changes its state to PreOP/SafeOP and after some seconds it is back in OP (maybe because of the the master which tries to rechange it to OP). I think I had a wrong/incomplete configuration.
Here is a snippet of my configuration:
ecat_def.h:
#define COE_SUPPORTED                             1
#define EOE_SUPPORTED                             1
#define FOE_SUPPORTED                             1
#define MAILBOX_SUPPORTED                         1
#define TIESC_HW                                  1
#define CONTROLLER_32BIT                          0
#define ESC_32BIT_ACCESS                          0
#define ESC_EEPROM_EMULATION                      1
#define AL_EVENT_ENABLED                          1
#define DC_SUPPORTED                              1
#define ECAT_TIMER_INT                            0 
#define ESC_SM_WD_SUPPORTED                       1
#define MIN_PD_CYCLE_TIME                         0xFA00
#define TIESC_APPLICATION                         1
#define SUPPORT_TI_ESC_CYCLE_EXCEEDED_COUNTER     1


One abnormality: If I take a master frequency of 1ms, my slave skips some cyclic frame (master said something like "no response on cyclic Ethernet frames"). If I increase the frequency to 4ms, the message will disappear.
Maybe it'll help, if we discuss the following topics:

  • Watchdog: How should I configure/use the watchdog correctly? Interrupt triggered or in subsystem? Maybe the watchdog disturb my slave flow.
  • MIN_PD_CYCLE_TIME/SUPPORT_TI_ESC_CYCLE_EXCEEDED_COUNTER in ecatappl.c: What about this? I printed the pdiIsrPeriod value and it is sometimes smaller than 0xFA00 (0x1770). There is a big gap between both values. If the value is smaller than 0xFA00 than the u16CycleExceededCounter will be incremented and a synchronous error will be set in COE_UpdateSyncErrorStatus().
  • Synchronization: How should I configure a common EtherCAT slave? If I would like to use DC I should take SM with a Sync0 event (Application note ET9300, chapter 9.1). But how can I enable the sync0 event mechanism (I don't know, how to write in ESC Register at address 0x981 (Sync Activation Register) or in the emulated EEPROM)?

It would be glad, if some can help me to get rid of this problem.

Thanks a lot.

  • Okay, after some approaches, I have an idea to the "abnormality": I am using TwinCAT on Windows and Windows is not realtime capable. So maybe the message could happen because Windows is not a RTOS. If I minimize the TwinCAT window, the warning message appears (because Windows may priorize the process lower and the cycle of 1 ms is too fast). What do you think?

    But why does this "behaviour" happen only when I'm using my own developed slave?

    What about the MIN_PD_CYCLE_TIME/SUPPORT_TI_ESC_CYCLE_EXCEEDED_COUNTER subject in ecatappl.c? Should I set this value to something lower (0x2000) or fits 0xFA00 better (pdiIsrPeriod is sometimes lower than 0x2000)?

  • Thomas,

    >>Watchdog: How should I configure/use the watchdog correctly? Interrupt triggered or in subsystem? Maybe the watchdog disturb my slave flow.

    Have you checked AL status code? If it's watchdog error, it will be logged there, ALSTATUSCODE_SMWATCHDOG 0x001B at register 0x0134.

    The AL status error code is listed in ecatslv.h and the register list is available here - 

    >>What about the MIN_PD_CYCLE_TIME/SUPPORT_TI_ESC_CYCLE_EXCEEDED_COUNTER subject in ecatappl.c? Should I set this value to something lower (0x2000) or fits 0xFA00 better (pdiIsrPeriod is sometimes lower than 0x2000)?

    This was explained in the thread you referred to. It seems there are some burst packets on the wire from your Ethernet network card. Have you tried to capture the packets to investigate? With a TwinCAT PC master, it's expected the cycle time is much longer than a PLC. 

    >>how can I enable the sync0 event mechanism (I don't know, how to write in ESC Register at address 0x981 (Sync Activation Register) or in the emulated EEPROM)?

    You can use the HW_EscWriteByte() API to write ESC register 0x981:

    http://processors.wiki.ti.com/index.php/PRU_ICSS_EtherCAT_firmware_API_guide

    When you configure DC mode from master, sync0 signal will be auto generated, please refer to 

    http://wiki.tiprocessors.com/index.php/Running_AM335x_EtherCAT_Application_in_DC_Mode

    Regards,

    Garrett

  • Hi Garret,

    at first, thank you for your reply.

    Garrett Ding said:

    >>What about the MIN_PD_CYCLE_TIME/SUPPORT_TI_ESC_CYCLE_EXCEEDED_COUNTER subject in ecatappl.c? Should I set this value to something lower (0x2000) or fits 0xFA00 better (pdiIsrPeriod is sometimes lower than 0x2000)?

    This was explained in the thread you referred to. It seems there are some burst packets on the wire from your Ethernet network card. Have you tried to capture the packets to investigate? With a TwinCAT PC master, it's expected the cycle time is much longer than a PLC.

    Ok, but I haven't quite understood the macro yet. Why should I increase the value to 0xFA00, though the ISR period is sometimes smaller?

    Garrett Ding said:

    Thomas,

    >>Watchdog: How should I configure/use the watchdog correctly? Interrupt triggered or in subsystem? Maybe the watchdog disturb my slave flow.

    Have you checked AL status code? If it's watchdog error, it will be logged there, ALSTATUSCODE_SMWATCHDOG 0x001B at register 0x0134.

    I've checked the AL status code. If I minimize TwinCAT, I'll get once an AL status ALSTATUSCODE_SMWATCHDOG and then, the slave returns back to OP. This strange behaviour will repeat sporadically, if I keep TwinCAT minimized. Is this a problem of my slave or is this a TwinCAT/Windows/Non-RTOS problem?

    Garrett Ding said:

    >>how can I enable the sync0 event mechanism (I don't know, how to write in ESC Register at address 0x981 (Sync Activation Register) or in the emulated EEPROM)?

    You can use the HW_EscWriteByte() API to write ESC register 0x981:

    http://processors.wiki.ti.com/index.php/PRU_ICSS_EtherCAT_firmware_API_guide

    When you configure DC mode from master, sync0 signal will be auto generated, please refer to 

    http://wiki.tiprocessors.com/index.php/Running_AM335x_EtherCAT_Application_in_DC_Mode

    Ok, thanks. I'll try it today.

  • Hey,

    Garrett Ding said:

    You can use the HW_EscWriteByte() API to write ESC register 0x981:

    http://processors.wiki.ti.com/index.php/PRU_ICSS_EtherCAT_firmware_API_guide

    When you configure DC mode from master, sync0 signal will be auto generated, please refer to 

    http://wiki.tiprocessors.com/index.php/Running_AM335x_EtherCAT_Application_in_DC_Mode

    I've spent some time in the DC configuration, but I still have some problems. My Slave doesn't change to OP (pending in SAFEOP) because of synchronization errors. I investigated a little bit time in the stack details and I could find out, that CheckIfEcatError() throws an AL Status 'ALSTATUSCODE_SYNCERROR'.

    ecatslv.c, line 2330ff:

    void CheckIfEcatError(void)
    {
    ...
               else if(!bSmSyncSequenceValid)
               {
                   AL_ControlInd(STATE_SAFEOP, ALSTATUSCODE_SYNCERROR);
                   return;
               }
            
           }
       }
    }

    The boolean 'bSmSyncSequenceValid' will be set to false in DC_CheckWatchdog(), if u16SmEventMissedCounter is greater then u16SyncErrorCounterLimit (the last one is set to 4. If I increse this value, the error will be delayed - but is still happend). And the boolean 'bSmSyncSequenceValid' will be incremented and decremented in PDI_Isr() and Sync0_Isr(). But I don't know why PDI decrements with '1' and the Sync0_ISR increments with '3'.

    Furthermore, I received sporadically the error ' Sync0 watchdog expired' from DC_CheckWatchdog().

    What have I done? I changed only the mode from SM-Synchron to DC-Synchron. EcEngineer's master will set automatically the ESC register 0x981 and change both COE objects 0x1C32 and 0x1C33 to 2.

    Further, I changed to the local timer for the watchdog:

    #define AL_EVENT_ENABLED                          1
    #define DC_SUPPORTED                              1
    #define ECAT_TIMER_INT                            0 
    #define ESC_SM_WD_SUPPORTED                       0
    #define MIN_PD_CYCLE_TIME                         0xFA00
    

    My Slave received already the Sync0 event.

    The PDI task has a priority of 6 and the Sync0 task has a priority of 8.

    Do you have an idea or any hints to solve this issue? Beckhoff doesn't provide any solutions for this problem. The default example from TI (tiecatappl) has similiar problems: If the slave is in DC mode its state cannot be set to OP.

  • Thomas,

    >>The default example from TI (tiecatappl) has similiar problems: If the slave is in DC mode its state cannot be set to OP.

    You meant the default example running on DSP rather than ARM, correct?

    Did you also see  ISR period is sometimes smaller than MIN_PD_CYCLE_TIME when running on ARM?

    Regards,
    Garrett

  • >>You meant the default example running on DSP rather than ARM, correct?

    No, I checked this example on both, DSP and ARM. I took the raw example without any modifications (exceptions: the UART printf for pdiIsrPeriod value in line 824 of ecatappl.c and setting the macro  SUPPORT_TI_ESC_CYCLE_EXCEEDED_COUNTER)

    >>Did you also see  ISR period is sometimes smaller than MIN_PD_CYCLE_TIME when running on ARM?

    EC-Engineer settings: Cycle: 1ms, mode: DC-Synchron, used the default ESI file TI_ESC_CTT.xml

    Due to that my UART printf will only occur if pdiIsrPeriod is smaller than MIN_PD_CYCLE_TIME and no prints are happened, I think the ISR of PDI is never smaller than MIN_PD_CYCLE_TIME - on ARM (example ran ca. 5 min). But The slave cannot be set to OP (still pending in SAFEOP).

    Back to my SlaveApp (running on DSP):

    StartInputHandler() returns with no error. This function checks the SM/DC configuration. I printed some synchronization configurations:

    cycleTimeSync0: 1000000
    SyncType0x1C32: 2
    SyncType0x1C33: 2
    dcControl: 3
    Sync0WdValue: 2
    Sync1WdValue: 0
    EcatWdValue: 100

    I'm still receiving the watchdog expired for sync0 (and sometimes for EcatWdValue).

    EDIT:

    Another ivestigation:

    The Mainloop() function checks the timer and increments the watchdogs if following condition is true:

    /* there is no interrupt routine for the hardware timer so check the timer register if the desired cycle elapsed*/
    {
        UINT32 CurTimer = (UINT32)HW_GetTimer();
    
        if(CurTimer>= ECAT_TIMER_INC_P_MS)
        {
            ECAT_CheckTimer();
    
            HW_ClearTimer();
        }
    } 

    ECAT_TIMER_INC_P_MS is set to 600000 (modified by myself, DSP is running with 600 MHz). Try to resolve HW_GetTimer() (macro USE_ECAT_TIMER is set): Slave calls bsp_get_local_sys_time() and finally some low level functions of PRU (I think this will be correct). But the PRU is not counting with a frequency of 600 MHz, or? I don't know whether the macro ECAT_TIMER_INC_P_MS and the timer resolution is correct.

    My line of thought: the condition above should be true every master cycle time (1ms) to increase the watchdog counters, correct? The sync0/pdi tasks will acknowledge the watchdogs by setting these values to 0. These tasks listen to the pdi/sync0 event which are raised every master cycle time, too. But the timer is counting wrong (maybe too fast so that 600000 ticks don't represent 1ms) so that the condition above will be too fast true and the watchdog counters will increased too fast and will finally expired.

    What do you tink about may thought?

    Could this be a problem of my object directoriy, PDO mapping, ESI file or the corresponding emulated eeprom (header file, generated from .bin file)?

    Regards,

    Thomas

  • Thomas N. said:

    I've spent some time in the DC configuration, but I still have some problems. My Slave doesn't change to OP (pending in SAFEOP) because of synchronization errors. I investigated a little bit time in the stack details and I could find out, that CheckIfEcatError() throws an AL Status 'ALSTATUSCODE_SYNCERROR'.

    ecatslv.c, line 2330ff:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void CheckIfEcatError(void)
    {
    ...
               else if(!bSmSyncSequenceValid)
               {
                   AL_ControlInd(STATE_SAFEOP, ALSTATUSCODE_SYNCERROR);
                   return;
               }
            
           }
       }
    }

    The boolean 'bSmSyncSequenceValid' will be set to false in DC_CheckWatchdog(), if u16SmEventMissedCounter is greater then u16SyncErrorCounterLimit (the last one is set to 4. If I increse this value, the error will be delayed - but is still happend). And the boolean 'bSmSyncSequenceValid' will be incremented and decremented in PDI_Isr() and Sync0_Isr(). But I don't know why PDI decrements with '1' and the Sync0_ISR increments with '3'.

    Furthermore, I received sporadically the error ' Sync0 watchdog expired' from DC_CheckWatchdog().

    What have I done? I changed only the mode from SM-Synchron to DC-Synchron. EcEngineer's master will set automatically the ESC register 0x981 and change both COE objects 0x1C32 and 0x1C33 to 2.

    Further, I changed to the local timer for the watchdog:

    1
    2
    3
    4
    5
    #define AL_EVENT_ENABLED                          1
    #define DC_SUPPORTED                              1
    #define ECAT_TIMER_INT                            0
    #define ESC_SM_WD_SUPPORTED                       0
    #define MIN_PD_CYCLE_TIME                         0xFA00

    My Slave received already the Sync0 event.

    The PDI task has a priority of 6 and the Sync0 task has a priority of 8.

    Do you have an idea or any hints to solve this issue? Beckhoff doesn't provide any solutions for this problem. The default example from TI (tiecatappl) has similiar problems: If the slave is in DC mode its state cannot be set to OP.

    What about this issue?

  • Thomas,

    Have you tried to undefine SUPPORT_TI_ESC_CYCLE_EXCEEDED_COUNTER as default?

    Let me check internally and then get back to you for the macro.

    Regards,

    Garrett

  • Thomas,

    Have you checked Acontis for the real time behavior of master or tested with a PLC/TwinCAT?

    SUPPORT_TI_ESC_CYCLE_EXCEEDED_COUNTER is not enabled as it's designed for diagnostics and has no functional impact on Distributed Clocks. 

    Regards,
    Garrett

  • Garrett Ding said:

    Have you checked Acontis for the real time behavior of master or tested with a PLC/TwinCAT?

    I'm using Acontis Ec-Engineer and its master with DC mode. For TwinCAT/PLC a licence is missing to use DC mode.

    Garrett Ding said:

    SUPPORT_TI_ESC_CYCLE_EXCEEDED_COUNTER is not enabled as it's designed for diagnostics and has no functional impact on Distributed Clocks. 

    Ok, i cleared this macro. But the bahaviour is unchanged (slave is pending in SafeOP). Here are some interesting macros I set in my software:

    #define TIESC_APPLICATION                 1
    #define TIESC_HW                          1
    #define CONTROLLER_32BIT                  0
    #define ESC_32BIT_ACCESS                  0
    #define ESC_EEPROM_EMULATION              1
    #define AL_EVENT_ENABLED                  1
    #define DC_SUPPORTED                      1
    #define ECAT_TIMER_INT                    0
    #define EOE_SUPPORTED                     1
    #define FOE_SUPPORTED                     1
    #define COE_SUPPORTED                     1
    #define MIN_PD_CYCLE_TIME                 0xFA00
    #define MAX_PD_CYCLE_TIME                 0xC3500000
    #define PD_OUTPUT_DELAY_TIME              0x0
    #define PD_OUTPUT_CALC_AND_COPY_TIME      0x0
    #define PD_INPUT_CALC_AND_COPY_TIME       0x0
    #define PD_INPUT_DELAY_TIME               0x0
    #define USE_ECAT_TIMER

    Is there anything conspicuous about it? What about PD_INPUT_CALC_AND_COPY_TIME, PD_INPUT_DELAY_TIME, PD_OUTPUT_CALC_AND_COPY_TIME and PD_OUTPUT_DELAY_TIME? They are set to 0. Is this ok?

    I attached my ESI (with default vendor ID) and my ENI file (one from TwinCAT and one from EC Engineer), maybe you'll find something strange in these files.

    <?xml version="1.0" encoding="iso-8859-1"?><!-- Created with EniEngine --><EtherCATConfig xsi:noNamespaceSchemaLocation="EtherCATConfig.xsd" Version="1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Config><Master><Info><Name><![CDATA[Class-A Master]]></Name><Destination>ffffffffffff</Destination><Source>a0cec80ee7eb</Source><EtherType>a488</EtherType></Info><MailboxStates><StartAddr>150994944</StartAddr><Count>1</Count></MailboxStates><EoE><MaxPorts>2</MaxPorts><MaxFrames>120</MaxFrames><MaxMACs>100</MaxMACs></EoE><InitCmds><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[read slave count]]></Comment><Requires>cycle</Requires><Cmd>7</Cmd><Adp>0</Adp><Ado>304</Ado><Data>0000</Data><Retries>0</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[read slave count]]></Comment><Requires>cycle</Requires><Cmd>7</Cmd><Adp>0</Adp><Ado>304</Ado><Data>0000</Data><Retries>0</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[enable ECAT IRQ]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>512</Ado><Data>0400</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[clear configured addresses]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>16</Ado><Data>0000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[clear crc register]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>768</Ado><Data>0000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Transition>PI</Transition><Transition>BI</Transition><Transition>SI</Transition><Transition>OI</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[clear fmmu]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>1536</Ado><DataLength>256</DataLength><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[clear sm]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>2048</Ado><DataLength>256</DataLength><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[clear dc system time]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>2320</Ado><DataLength>32</DataLength><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[clear dc cycle cfg]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>2433</Ado><Data>00</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[reset dc speed]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>2352</Ado><Data>0010</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[configure dc filter]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>2356</Ado><Data>000c</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>1</BeforeSlave><Comment><![CDATA[en/disable second physical address]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>259</Ado><Data>00</Data><Retries>3</Retries></InitCmd></InitCmds></Master><Slave><Info><!--Slave_1001 [MyEcatSlaveApp] (1001)--><Name><![CDATA[Slave_1001 [MyEcatSlaveApp]]]></Name><PhysAddr>1001</PhysAddr><AutoIncAddr>0</AutoIncAddr><Physics>YY</Physics><VendorId>2704</VendorId><ProductCode>1414070275</ProductCode><RevisionNo>17</RevisionNo><SerialNo>0</SerialNo></Info><ProcessData><Send><BitStart>0</BitStart><BitLength>16</BitLength></Send><Recv><BitStart>0</BitStart><BitLength>16</BitLength></Recv><Sm2><Type>Outputs</Type><DefaultSize>2</DefaultSize><StartAddress>4352</StartAddress><ControlByte>100</ControlByte><Enable>1</Enable><Pdo>5632</Pdo></Sm2><Sm3><Type>Inputs</Type><DefaultSize>2</DefaultSize><StartAddress>5120</StartAddress><ControlByte>32</ControlByte><Enable>1</Enable><Pdo>6656</Pdo></Sm3><TxPdo Fixed="1" Mandatory="0" Sm="3"><Index>#x1a00</Index><Name>Inputmapping1</Name><Entry><Index>#x6000</Index><SubIndex>2</SubIndex><BitLen>16</BitLen><Name>LedStatus</Name><DataType>UINT</DataType></Entry></TxPdo><TxPdo Fixed="1" Mandatory="0"><Index>#x1a10</Index><Name>Inputmapping2</Name><Entry><Index>#x6000</Index><SubIndex>1</SubIndex><BitLen>16</BitLen><Name>SlaveStatus</Name><DataType>UINT</DataType></Entry><Entry><Index>#x6000</Index><SubIndex>2</SubIndex><BitLen>16</BitLen><Name>LedStatus</Name><DataType>UINT</DataType></Entry></TxPdo><RxPdo Fixed="1" Mandatory="0" Sm="2"><Index>#x1600</Index><Name>Outputmapping1</Name><Entry><Index>#x7000</Index><SubIndex>2</SubIndex><BitLen>16</BitLen><Name>LedControl</Name><DataType>UINT</DataType></Entry></RxPdo><RxPdo Fixed="1" Mandatory="0"><Index>#x1610</Index><Name>Outputmapping2</Name><Entry><Index>#x7000</Index><SubIndex>1</SubIndex><BitLen>16</BitLen><Name>SlaveControl</Name><DataType>UINT</DataType></Entry><Entry><Index>#x7000</Index><SubIndex>2</SubIndex><BitLen>16</BitLen><Name>LedControl</Name><DataType>UINT</DataType></Entry></RxPdo></ProcessData><Mailbox DataLinkLayer="true"><Send><Start>4096</Start><Length>128</Length></Send><Recv><Start>4224</Start><Length>128</Length><StatusBitAddr>0</StatusBitAddr></Recv><BootStrap><Send><Start>4096</Start><Length>128</Length></Send><Recv><Start>4224</Start><Length>128</Length></Recv></BootStrap><Protocol>EoE</Protocol><Protocol>CoE</Protocol><Protocol>FoE</Protocol></Mailbox><InitCmds><InitCmd><Transition>PI</Transition><Transition>BI</Transition><Transition>SI</Transition><Transition>OI</Transition><Comment><![CDATA[set device state to INIT]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>288</Ado><Data>1100</Data><Retries>3</Retries><Timeout>5000</Timeout></InitCmd><InitCmd><Transition>SI</Transition><Transition>OI</Transition><Comment><![CDATA[clear DC activation]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>2432</Ado><Data>0000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>PI</Transition><Transition>SI</Transition><Transition>OI</Transition><Comment><![CDATA[check device state for INIT]]></Comment><Requires>cycle</Requires><Cmd>1</Cmd><Adp>0</Adp><Ado>304</Ado><Data>0000</Data><Retries>3</Retries><Validate><Data>0100</Data><DataMask>0f00</DataMask><Timeout>5000</Timeout></Validate></InitCmd><InitCmd><Transition>BI</Transition><Comment><![CDATA[check device state for INIT]]></Comment><Requires>cycle</Requires><Cmd>1</Cmd><Adp>0</Adp><Ado>304</Ado><Data>0000</Data><Retries>3</Retries><Validate><Data>0100</Data><DataMask>0f00</DataMask><Timeout>10000</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Comment><![CDATA[set device state to INIT]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>288</Ado><Data>1100</Data><Cnt>1</Cnt><Retries>3</Retries><Timeout>2000</Timeout></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Comment><![CDATA[check device state for INIT]]></Comment><Requires>cycle</Requires><Cmd>1</Cmd><Adp>0</Adp><Ado>304</Ado><Data>0000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>0100</Data><DataMask>0f00</DataMask><Timeout>2000</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[assign EEPROM to ECAT]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>1280</Ado><Data>00</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[check vendor id]]></Comment><Cmd>2</Cmd><Adp>0</Adp><Ado>1282</Ado><Data>000108000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[check vendor id]]></Comment><Requires>cycle</Requires><Cmd>1</Cmd><Adp>0</Adp><Ado>1288</Ado><Data>00000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>900a0000</Data><Timeout>100</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[check product code]]></Comment><Cmd>2</Cmd><Adp>0</Adp><Ado>1282</Ado><Data>00010a000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[check product code]]></Comment><Requires>cycle</Requires><Cmd>1</Cmd><Adp>0</Adp><Ado>1288</Ado><Data>00000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>03004954</Data><Timeout>100</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Comment><![CDATA[set physical address]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>16</Ado><Data>e903</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Transition>PI</Transition><Transition>SI</Transition><Transition>OI</Transition><Comment><![CDATA[clear sm 0/1 (mailbox out/in)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2048</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>BI</Transition><Comment><![CDATA[clear sm 0/1 (mailbox out/in)]]></Comment><Cmd>2</Cmd><Adp>0</Adp><Ado>2048</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[set sm 0 (mailbox out)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2048</Ado><Data>0010800026000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[set sm 1 (mailbox in)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2056</Ado><Data>8010800022000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IB</Transition><Comment><![CDATA[set sm 0 (bootstrap out)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2048</Ado><Data>0010800026000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IB</Transition><Comment><![CDATA[set sm 1 (bootstrap in)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2056</Ado><Data>8010800022000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set DC cycle time]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2464</Ado><Data>40420f0000000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set DC start time]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2448</Ado><Data>0000000000000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set DC activation]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2432</Ado><Data>0003</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set DC latch cfg]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2472</Ado><Data>0000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Transition>PP</Transition><Comment><![CDATA[clear DC activation]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2432</Ado><Data>0000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>SP</Transition><Transition>OP</Transition><Comment><![CDATA[set device state to PREOP]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>1200</Data><Retries>300</Retries><Timeout>5000</Timeout></InitCmd><InitCmd><Transition>IP</Transition><Transition>SP</Transition><Transition>SI</Transition><Transition>OP</Transition><Transition>OI</Transition><Comment><![CDATA[clear sms]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2064</Ado><DataLength>16</DataLength><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set sm 2 (outputs)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2064</Ado><Data>0011020064000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set sm 3 (inputs)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2072</Ado><Data>0014020020000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set fmmu 0 (outputs)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1536</Ado><Data>00000010020000070011000201000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set fmmu 1 (inputs)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1552</Ado><Data>00000010020000070014000101000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Comment><![CDATA[set fmmu 2 (mailbox state)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1568</Ado><Data>00000009010000000d08000101000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>OS</Transition><Comment><![CDATA[set device state to SAFEOP]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>0400</Data><Retries>3</Retries><Timeout>200</Timeout></InitCmd><InitCmd><Transition>SP</Transition><Transition>SI</Transition><Transition>OP</Transition><Transition>OI</Transition><Comment><![CDATA[clear fmmu 0]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1536</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>SP</Transition><Transition>SI</Transition><Transition>OP</Transition><Transition>OI</Transition><Comment><![CDATA[clear fmmu 1]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1552</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>PI</Transition><Transition>BI</Transition><Transition>SI</Transition><Transition>OI</Transition><Comment><![CDATA[clear fmmu 2]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1568</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>SP</Transition><Transition>OP</Transition><Comment><![CDATA[clear DC activation]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2432</Ado><Data>0000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>SP</Transition><Transition>OP</Transition><Comment><![CDATA[check device state for PREOP]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Retries>3</Retries><Validate><Data>020000000000</Data><DataMask>0f0000000000</DataMask><Timeout>5000</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Comment><![CDATA[assign EEPROM to PDI]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>1280</Ado><Data>01</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>II</Transition><Comment><![CDATA[assign EEPROM back to ECAT]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>1280</Ado><Data>00</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[set device state to PREOP]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>1200</Data><Cnt>1</Cnt><Retries>300</Retries><Timeout>2000</Timeout></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[check device state for PREOP]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>020000000000</Data><DataMask>1f0000000000</DataMask><Timeout>2000</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Transition>BI</Transition><Comment><![CDATA[assign EEPROM back to ECAT]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>1280</Ado><Data>00</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IB</Transition><Comment><![CDATA[set device state to BOOT]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>1300</Data><Cnt>1</Cnt><Retries>3</Retries><Timeout>2000</Timeout></InitCmd><InitCmd><Transition>IB</Transition><Comment><![CDATA[check device state for BOOT]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>030000000000</Data><DataMask>1f0000000000</DataMask><Timeout>2000</Timeout></Validate></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set device state to SAFEOP]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>0400</Data><Cnt>1</Cnt><Retries>3</Retries><Timeout>9000</Timeout></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[check device state for SAFEOP]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>040000000000</Data><DataMask>1f0000000000</DataMask><Timeout>9000</Timeout></Validate></InitCmd><InitCmd><Transition>OS</Transition><Comment><![CDATA[check device state for SAFEOP]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Retries>3</Retries><Validate><Data>040000000000</Data><DataMask>0f0000000000</DataMask><Timeout>200</Timeout></Validate></InitCmd><InitCmd><Transition>SO</Transition><Comment><![CDATA[set device state to OP]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>0800</Data><Cnt>1</Cnt><Retries>3</Retries><Timeout>9000</Timeout></InitCmd><InitCmd><Transition>SO</Transition><Comment><![CDATA[check device state for OP]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>080000000000</Data><DataMask>1f0000000000</DataMask><Timeout>9000</Timeout></Validate></InitCmd></InitCmds><DC><PotentialReferenceClock>0</PotentialReferenceClock><ReferenceClock>1</ReferenceClock><CycleTime0>1000000</CycleTime0><CycleTime1>0</CycleTime1><ShiftTime>0</ShiftTime></DC></Slave><Cyclic><CycleTime>1000</CycleTime><Frame><Cmd><State>PREOP</State><State>SAFEOP</State><State>OP</State><Comment><![CDATA[MISC; BRD; AL Status Register]]></Comment><Cmd>7</Cmd><Adp>0</Adp><Ado>304</Ado><DataLength>2</DataLength><Cnt>1</Cnt><InputOffs>2</InputOffs><OutputOffs>2</OutputOffs></Cmd><Cmd><State>PREOP</State><State>SAFEOP</State><State>OP</State><Comment><![CDATA[DC; NOP; Receive Time Port 1 Register]]></Comment><Cmd>0</Cmd><Adp>0</Adp><Ado>2304</Ado><DataLength>4</DataLength><InputOffs>8</InputOffs><OutputOffs>8</OutputOffs></Cmd><Cmd><State>PREOP</State><State>SAFEOP</State><State>OP</State><Comment><![CDATA[DC; ARMW; System Time Register]]></Comment><Cmd>13</Cmd><Adp>0</Adp><Ado>2320</Ado><DataLength>4</DataLength><InputOffs>12</InputOffs><OutputOffs>12</OutputOffs></Cmd><Cmd><State>PREOP</State><State>SAFEOP</State><State>OP</State><Comment><![CDATA[DC; APWR; System Time Register (Bus-Shift)]]></Comment><Cmd>2</Cmd><Adp>0</Adp><Ado>2320</Ado><DataLength>4</DataLength><InputOffs>16</InputOffs><OutputOffs>16</OutputOffs></Cmd><Cmd><State>SAFEOP</State><State>OP</State><Comment><![CDATA[DC; BRD; System Time Difference Register (Sync-Window-Monitoring)]]></Comment><Cmd>7</Cmd><Adp>0</Adp><Ado>2348</Ado><DataLength>4</DataLength><InputOffs>4</InputOffs><OutputOffs>4</OutputOffs></Cmd><Cmd><State>PREOP</State><State>SAFEOP</State><State>OP</State><Comment><![CDATA[MISC; LRD; Poll Mailbox State]]></Comment><Cmd>10</Cmd><Addr>150994944</Addr><DataLength>2</DataLength><InputOffs>20</InputOffs><OutputOffs>20</OutputOffs></Cmd><!-- MSU Id 0: Default 0 --><Cmd><State>SAFEOP</State><State>OP</State><Comment><![CDATA[PD; LRW;]]></Comment><Cmd>12</Cmd><Addr>268435456</Addr><DataLength>2</DataLength><Cnt>3</Cnt><InputOffs>0</InputOffs><OutputOffs>0</OutputOffs></Cmd></Frame></Cyclic><ProcessImage><Inputs><ByteSize>22</ByteSize><Variable><Name>Slave_1001 [MyEcatSlaveApp].Inputmapping1.LedStatus</Name><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>0</BitOffs></Variable></Inputs><Outputs><ByteSize>22</ByteSize><Variable><Name>Slave_1001 [MyEcatSlaveApp].Outputmapping1.LedControl</Name><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>0</BitOffs></Variable></Outputs></ProcessImage></Config></EtherCATConfig>
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <EtherCATConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="EtherCATConfig.xsd" Version="1.3"><Config><Master><Info><Name><![CDATA[Ger�t 2 (EtherCAT)]]></Name><Destination>010105010000</Destination><Source>a0cec80ee7eb</Source><EtherType>a488</EtherType></Info><MailboxStates><StartAddr>150994944</StartAddr><Count>1</Count></MailboxStates><EoE><MaxPorts>2</MaxPorts><MaxFrames>120</MaxFrames><MaxMACs>0</MaxMACs></EoE><InitCmds><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[read slave count]]></Comment><Requires>cycle</Requires><Cmd>7</Cmd><Adp>0</Adp><Ado>304</Ado><Data>0000</Data><Retries>0</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[read slave count]]></Comment><Requires>cycle</Requires><Cmd>7</Cmd><Adp>0</Adp><Ado>304</Ado><Data>0000</Data><Retries>0</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[enable ECAT IRQ]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>512</Ado><Data>0400</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[clear configured addresses]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>16</Ado><Data>0000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[clear crc register]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>768</Ado><Data>0000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Transition>PI</Transition><Transition>BI</Transition><Transition>SI</Transition><Transition>OI</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[clear fmmu]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>1536</Ado><DataLength>256</DataLength><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[clear sm]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>2048</Ado><DataLength>256</DataLength><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[clear dc system time]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>2320</Ado><DataLength>32</DataLength><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[clear dc cycle cfg]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>2433</Ado><Data>00</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[reset dc speed]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>2352</Ado><Data>0010</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[configure dc filter]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>2356</Ado><Data>000c</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><BeforeSlave>true</BeforeSlave><Comment><![CDATA[en/disable second physical address]]></Comment><Requires>cycle</Requires><Cmd>8</Cmd><Adp>0</Adp><Ado>259</Ado><Data>00</Data><Retries>3</Retries></InitCmd></InitCmds></Master><Slave><Info><Name><![CDATA[Box 1 (MyEcatSlaveApp)]]></Name><PhysAddr>1001</PhysAddr><AutoIncAddr>0</AutoIncAddr><Physics>YY</Physics><VendorId>2704</VendorId><ProductCode>1414070275</ProductCode><RevisionNo>17</RevisionNo><SerialNo>0</SerialNo></Info><ProcessData><Send><BitStart>568</BitStart><BitLength>16</BitLength></Send><Recv><BitStart>568</BitStart><BitLength>16</BitLength></Recv><Sm2><Type>Outputs</Type><DefaultSize>2</DefaultSize><StartAddress>4352</StartAddress><ControlByte>100</ControlByte><Enable>1</Enable><Pdo>5632</Pdo></Sm2><Sm3><Type>Inputs</Type><DefaultSize>2</DefaultSize><StartAddress>5120</StartAddress><ControlByte>32</ControlByte><Enable>1</Enable><Pdo>6656</Pdo></Sm3><TxPdo Fixed="true" Sm="3"><Index>#x1a00</Index><Name>Inputmapping1</Name><Entry><Index>#x6000</Index><SubIndex>2</SubIndex><BitLen>16</BitLen><Name>LedStatus</Name><DataType>UINT</DataType></Entry></TxPdo><TxPdo Fixed="true"><Index>#x1a10</Index><Name>Inputmapping2</Name><Entry><Index>#x6000</Index><SubIndex>1</SubIndex><BitLen>16</BitLen><Name>SlaveStatus</Name><DataType>UINT</DataType></Entry><Entry><Index>#x6000</Index><SubIndex>2</SubIndex><BitLen>16</BitLen><Name>LedStatus</Name><DataType>UINT</DataType></Entry></TxPdo><RxPdo Fixed="true" Sm="2"><Index>#x1600</Index><Name>Outputmapping1</Name><Entry><Index>#x7000</Index><SubIndex>2</SubIndex><BitLen>16</BitLen><Name>LedControl</Name><DataType>UINT</DataType></Entry></RxPdo><RxPdo Fixed="true"><Index>#x1610</Index><Name>Outputmapping2</Name><Entry><Index>#x7000</Index><SubIndex>1</SubIndex><BitLen>16</BitLen><Name>SlaveControl</Name><DataType>UINT</DataType></Entry><Entry><Index>#x7000</Index><SubIndex>2</SubIndex><BitLen>16</BitLen><Name>LedControl</Name><DataType>UINT</DataType></Entry></RxPdo></ProcessData><Mailbox DataLinkLayer="true"><Send><Start>4096</Start><Length>128</Length></Send><Recv><Start>4224</Start><Length>128</Length><StatusBitAddr>0</StatusBitAddr></Recv><BootStrap><Send><Start>4096</Start><Length>128</Length></Send><Recv><Start>4224</Start><Length>128</Length></Recv></BootStrap><Protocol>EoE</Protocol><Protocol>CoE</Protocol><Protocol>FoE</Protocol><CoE><Profile><ChannelInfo><ProfileNo>5001</ProfileNo><AddInfo>0</AddInfo></ChannelInfo></Profile></CoE></Mailbox><InitCmds><InitCmd><Transition>PI</Transition><Transition>BI</Transition><Transition>SI</Transition><Transition>OI</Transition><Comment><![CDATA[set device state to INIT]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>288</Ado><Data>1100</Data><Retries>3</Retries><Timeout>5000</Timeout></InitCmd><InitCmd><Transition>SI</Transition><Transition>OI</Transition><Comment><![CDATA[clear DC activation]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>2432</Ado><Data>0000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>PI</Transition><Transition>SI</Transition><Transition>OI</Transition><Comment><![CDATA[check device state for INIT]]></Comment><Requires>cycle</Requires><Cmd>1</Cmd><Adp>0</Adp><Ado>304</Ado><Data>0000</Data><Retries>3</Retries><Validate><Data>0100</Data><DataMask>0f00</DataMask><Timeout>5000</Timeout></Validate></InitCmd><InitCmd><Transition>BI</Transition><Comment><![CDATA[check device state for INIT]]></Comment><Requires>cycle</Requires><Cmd>1</Cmd><Adp>0</Adp><Ado>304</Ado><Data>0000</Data><Retries>3</Retries><Validate><Data>0100</Data><DataMask>0f00</DataMask><Timeout>10000</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Comment><![CDATA[set device state to INIT]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>288</Ado><Data>1100</Data><Cnt>1</Cnt><Retries>3</Retries><Timeout>2000</Timeout></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Comment><![CDATA[check device state for INIT]]></Comment><Requires>cycle</Requires><Cmd>1</Cmd><Adp>0</Adp><Ado>304</Ado><Data>0000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>0100</Data><DataMask>0f00</DataMask><Timeout>2000</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[assign EEPROM to ECAT]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>1280</Ado><Data>00</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[check vendor id]]></Comment><Cmd>2</Cmd><Adp>0</Adp><Ado>1282</Ado><Data>000108000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[check vendor id]]></Comment><Requires>cycle</Requires><Cmd>1</Cmd><Adp>0</Adp><Ado>1288</Ado><Data>00000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>900a0000</Data><Timeout>100</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[check product code]]></Comment><Cmd>2</Cmd><Adp>0</Adp><Ado>1282</Ado><Data>00010a000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[check product code]]></Comment><Requires>cycle</Requires><Cmd>1</Cmd><Adp>0</Adp><Ado>1288</Ado><Data>00000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>03004954</Data><Timeout>100</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Comment><![CDATA[set physical address]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>16</Ado><Data>e903</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Transition>PI</Transition><Transition>SI</Transition><Transition>OI</Transition><Comment><![CDATA[clear sm 0/1 (mailbox out/in)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2048</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>BI</Transition><Comment><![CDATA[clear sm 0/1 (mailbox out/in)]]></Comment><Cmd>2</Cmd><Adp>0</Adp><Ado>2048</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[set sm 0 (mailbox out)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2048</Ado><Data>0010800026000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[set sm 1 (mailbox in)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2056</Ado><Data>8010800022000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IB</Transition><Comment><![CDATA[set sm 0 (bootstrap out)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2048</Ado><Data>0010800026000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IB</Transition><Comment><![CDATA[set sm 1 (bootstrap in)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2056</Ado><Data>8010800022000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set DC cycle time]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2464</Ado><Data>00093d0000000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set DC start time]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2448</Ado><Data>0000000000000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set DC activation]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2432</Ado><Data>0003</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set DC latch cfg]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2472</Ado><Data>0000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Transition>PP</Transition><Comment><![CDATA[clear DC activation]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2432</Ado><Data>0000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>SP</Transition><Transition>OP</Transition><Comment><![CDATA[set device state to PREOP]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>1200</Data><Retries>300</Retries><Timeout>200</Timeout></InitCmd><InitCmd><Transition>IP</Transition><Transition>SP</Transition><Transition>SI</Transition><Transition>OP</Transition><Transition>OI</Transition><Comment><![CDATA[clear sms]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2064</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set sm 2 (outputs)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2064</Ado><Data>0011020064000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set sm 3 (inputs)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>2072</Ado><Data>0014020020000100</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set fmmu 0 (outputs)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1536</Ado><Data>00000001020000070011000201000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set fmmu 1 (inputs)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1552</Ado><Data>00000001020000070014000101000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Comment><![CDATA[set fmmu 2 (mailbox state)]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1568</Ado><Data>00000009010000000d08000101000000</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>OS</Transition><Comment><![CDATA[set device state to SAFEOP]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>0400</Data><Retries>3</Retries><Timeout>200</Timeout></InitCmd><InitCmd><Transition>SP</Transition><Transition>SI</Transition><Transition>OP</Transition><Transition>OI</Transition><Comment><![CDATA[clear fmmu 0]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1536</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>SP</Transition><Transition>SI</Transition><Transition>OP</Transition><Transition>OI</Transition><Comment><![CDATA[clear fmmu 1]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1552</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>PI</Transition><Transition>BI</Transition><Transition>SI</Transition><Transition>OI</Transition><Comment><![CDATA[clear fmmu 2]]></Comment><Cmd>5</Cmd><Adp>1001</Adp><Ado>1568</Ado><Data>00000000000000000000000000000000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>SP</Transition><Transition>OP</Transition><Comment><![CDATA[clear DC activation]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>2432</Ado><Data>0000</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>SP</Transition><Transition>OP</Transition><Comment><![CDATA[check device state for PREOP]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Retries>3</Retries><Validate><Data>020000000000</Data><DataMask>0f0000000000</DataMask><Timeout>5000</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Transition>IB</Transition><Comment><![CDATA[assign EEPROM to PDI]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>1280</Ado><Data>01</Data><Cnt>1</Cnt><Retries>3</Retries></InitCmd><InitCmd><Transition>II</Transition><Comment><![CDATA[assign EEPROM back to ECAT]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>1280</Ado><Data>00</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[set device state to PREOP]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>1200</Data><Cnt>1</Cnt><Retries>300</Retries><Timeout>2000</Timeout></InitCmd><InitCmd><Transition>IP</Transition><Comment><![CDATA[check device state for PREOP]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>020000000000</Data><DataMask>1f0000000000</DataMask><Timeout>2000</Timeout></Validate></InitCmd><InitCmd><Transition>IP</Transition><Transition>BI</Transition><Comment><![CDATA[assign EEPROM back to ECAT]]></Comment><Requires>cycle</Requires><Cmd>2</Cmd><Adp>0</Adp><Ado>1280</Ado><Data>00</Data><Retries>3</Retries></InitCmd><InitCmd><Transition>IB</Transition><Comment><![CDATA[set device state to BOOT]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>1300</Data><Cnt>1</Cnt><Retries>3</Retries><Timeout>2000</Timeout></InitCmd><InitCmd><Transition>IB</Transition><Comment><![CDATA[check device state for BOOT]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>030000000000</Data><DataMask>1f0000000000</DataMask><Timeout>2000</Timeout></Validate></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[set device state to SAFEOP]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>0400</Data><Cnt>1</Cnt><Retries>3</Retries><Timeout>9000</Timeout></InitCmd><InitCmd><Transition>PS</Transition><Comment><![CDATA[check device state for SAFEOP]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>040000000000</Data><DataMask>1f0000000000</DataMask><Timeout>9000</Timeout></Validate></InitCmd><InitCmd><Transition>OS</Transition><Comment><![CDATA[check device state for SAFEOP]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Retries>3</Retries><Validate><Data>040000000000</Data><DataMask>0f0000000000</DataMask><Timeout>200</Timeout></Validate></InitCmd><InitCmd><Transition>SO</Transition><Comment><![CDATA[set device state to OP]]></Comment><Requires>cycle</Requires><Cmd>5</Cmd><Adp>1001</Adp><Ado>288</Ado><Data>0800</Data><Cnt>1</Cnt><Retries>3</Retries><Timeout>9000</Timeout></InitCmd><InitCmd><Transition>SO</Transition><Comment><![CDATA[check device state for OP]]></Comment><Requires>cycle</Requires><Cmd>4</Cmd><Adp>1001</Adp><Ado>304</Ado><Data>000000000000</Data><Cnt>1</Cnt><Retries>3</Retries><Validate><Data>080000000000</Data><DataMask>1f0000000000</DataMask><Timeout>9000</Timeout></Validate></InitCmd></InitCmds><DC><ReferenceClock>true</ReferenceClock><CycleTime0>4000000</CycleTime0><CycleTime1>0</CycleTime1><ShiftTime>0</ShiftTime></DC></Slave><Cyclic><Frame><Cmd><State>PREOP</State><State>SAFEOP</State><State>OP</State><Comment><![CDATA[cyclic cmd]]></Comment><Cmd>0</Cmd><Adp>0</Adp><Ado>2304</Ado><DataLength>4</DataLength><InputOffs>16</InputOffs><OutputOffs>16</OutputOffs></Cmd><Cmd><State>PREOP</State><State>SAFEOP</State><State>OP</State><Comment><![CDATA[cyclic cmd]]></Comment><Cmd>13</Cmd><Adp>0</Adp><Ado>2320</Ado><DataLength>4</DataLength><InputOffs>32</InputOffs><OutputOffs>32</OutputOffs></Cmd><Cmd><State>PREOP</State><State>SAFEOP</State><State>OP</State><Comment><![CDATA[cyclic cmd]]></Comment><Cmd>10</Cmd><Addr>150994944</Addr><DataLength>1</DataLength><InputOffs>48</InputOffs><OutputOffs>48</OutputOffs></Cmd><Cmd><State>SAFEOP</State><State>OP</State><Comment><![CDATA[cyclic cmd]]></Comment><Cmd>12</Cmd><Addr>16777216</Addr><DataLength>2</DataLength><Cnt>3</Cnt><InputOffs>61</InputOffs><OutputOffs>61</OutputOffs></Cmd><Cmd><State>PREOP</State><State>SAFEOP</State><State>OP</State><Comment><![CDATA[cyclic cmd]]></Comment><Cmd>7</Cmd><Adp>0</Adp><Ado>304</Ado><DataLength>2</DataLength><Cnt>1</Cnt><InputOffs>75</InputOffs><OutputOffs>75</OutputOffs></Cmd></Frame></Cyclic><ProcessImage><Inputs><ByteSize>1536</ByteSize><Variable><Name>Box 1 (MyEcatSlaveApp).Inputmapping1.LedStatus</Name><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>568</BitOffs></Variable><Variable><Name>Eing�nge.Frm0State</Name><Comment><![CDATA[0x0001 = 1. EtherCAT command not sent (NOP requested)
    0x0002 = 2. EtherCAT command not sent (NOP requested)
    0x0004 = 3. EtherCAT command not sent (NOP requested)
    ...
    0x4000 = 15. EtherCAT command not sent (NOP requested)
    0x8000 = complete frame not sent
    ]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12160</BitOffs></Variable><Variable><Name>Eing�nge.Frm0WcState</Name><Comment><![CDATA[0x0001 = wrong working counter of 1. EtherCAT command received
    0x0002 = wrong working counter of 2. EtherCAT command received
    0x0004 = wrong working counter of 3. EtherCAT command received
    ...
    0x4000 = wrong working counter of 15. EtherCAT command received
    0x8000 = complete frame missing
    ]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12176</BitOffs></Variable><Variable><Name>Box 1 (MyEcatSlaveApp).WcState.WcState</Name><Comment><![CDATA[0 = Data valid
    1 = Data invalid
    ]]></Comment><DataType>BIT</DataType><BitSize>1</BitSize><BitOffs>12179</BitOffs></Variable><Variable><Name>Eing�nge.Frm0InputToggle</Name><Comment><![CDATA[0x0001 = Toggle Bit: 1. EtherCAT command received new inputs
    0x0002 = Toggle Bit: 2. EtherCAT command received new inputs
    0x0004 = Toggle Bit: 3. EtherCAT command received new inputs
    ...
    0x4000 = Toggle Bit: 15. EtherCAT command received new inputs
    0x8000 = Old frame - not from the actual cycle - received
    ]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12192</BitOffs></Variable><Variable><Name>Box 1 (MyEcatSlaveApp).WcState.InputToggle</Name><DataType>BIT</DataType><BitSize>1</BitSize><BitOffs>12195</BitOffs></Variable><Variable><Name>SyncUnits.&lt;default&gt;.&lt;unreferenced&gt;.WcState.WcState</Name><Comment><![CDATA[0 = Data valid
    1 = Data invalid
    ]]></Comment><DataType>BIT</DataType><BitSize>1</BitSize><BitOffs>12208</BitOffs></Variable><Variable><Name>Eing�nge.SlaveCount</Name><Comment><![CDATA[Actual count of EtherCAT slaves received]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12240</BitOffs></Variable><Variable><Name>Eing�nge.DevState</Name><Comment><![CDATA[0x0001 = Link error
    0x0002 = I/O locked after link error (I/O reset required)
    0x0004 = Link error (redundancy adapter)
    0x0008 = Missing one frame (redundancy mode)
    0x0010 = Out of send resources (I/O reset required)
    0x0020 = Watchdog triggered
    0x0040 = Ethernet driver (miniport) not found
    0x0080 = I/O reset active
    0x0100 = At least one device in 'INIT' state
    0x0200 = At least one device in 'PRE-OP' state
    0x0400 = At least one device in 'SAFE-OP' state
    0x0800 = At least one device indicates an error state
    0x1000 = DC not in sync
    ]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12272</BitOffs></Variable><Variable><Name>InfoData.ChangeCount</Name><Comment><![CDATA[Info data change counter]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12288</BitOffs></Variable><Variable><Name>InfoData.DevId</Name><Comment><![CDATA[DeviceId of EtherCAT device]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12304</BitOffs></Variable><Variable><Name>InfoData.AmsNetId</Name><Comment><![CDATA[AmsNetId of EtherCAT device]]></Comment><DataType>AMSNETID</DataType><BitSize>48</BitSize><BitOffs>12320</BitOffs></Variable><Variable><Name>InfoData.CfgSlaveCount</Name><Comment><![CDATA[Count of configured EtherCAT slaves]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12368</BitOffs></Variable><Variable><Name>Box 1 (MyEcatSlaveApp).InfoData.State</Name><Comment><![CDATA[0x___1 = Slave in 'INIT' state
    0x___2 = Slave in 'PREOP' state
    0x___3 = Slave in 'BOOT' state
    0x___4 = Slave in 'SAFEOP' state
    0x___8 = Slave in 'OP' state
    0x001_ = Slave signals error
    0x002_ = Invalid vendorId, productCode... read
    0x004_ = Initialization error occurred
    0x008_ = Slave disabled
    0x010_ = Slave not present
    0x020_ = Slave signals link error
    0x040_ = Slave signals missing link
    0x080_ = Slave signals unexpected link
    0x100_ = Communication port A
    0x200_ = Communication port B
    0x400_ = Communication port C
    0x800_ = Communication port D
    ]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12384</BitOffs></Variable><Variable><Name>Box 1 (MyEcatSlaveApp).InfoData.AdsAddr</Name><Comment><![CDATA[Complete ADS address to access the slave (mailbox)]]></Comment><DataType>AMSADDR</DataType><BitSize>64</BitSize><BitOffs>12400</BitOffs></Variable><Variable><Name>Box 1 (MyEcatSlaveApp).InfoData.DcOutputShift</Name><DataType>DINT</DataType><BitSize>32</BitSize><BitOffs>12464</BitOffs></Variable><Variable><Name>Box 1 (MyEcatSlaveApp).InfoData.DcInputShift</Name><DataType>DINT</DataType><BitSize>32</BitSize><BitOffs>12496</BitOffs></Variable><Variable><Name>SyncUnits.&lt;default&gt;.&lt;unreferenced&gt;.InfoData.ObjectId</Name><DataType>OTCID</DataType><BitSize>32</BitSize><BitOffs>12528</BitOffs></Variable><Variable><Name>SyncUnits.&lt;default&gt;.&lt;unreferenced&gt;.InfoData.State</Name><Comment><![CDATA[0x___1 = At least one slave in 'INIT' state
    0x___2 = At least one slave in 'PREOP' state
    0x___3 = At least one slave in 'BOOT' state
    0x___4 = At least one slave in 'SAFEOP' state
    0x___8 = At least one slave in 'OP' state
    0x001_ = At least one slave signals error
    0x002_ = Invalid vendorId, productCode... read
    0x004_ = Initialization error occurred
    0x008_ = At least one slave disabled
    0x010_ = At least one slave not present
    0x020_ = At least one slave signals link error
    0x040_ = At least one slave signals missing link
    0x080_ = At least one slave signals unexpected link
    ]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12560</BitOffs></Variable><Variable><Name>SyncUnits.&lt;default&gt;.&lt;unreferenced&gt;.InfoData.SlaveCount</Name><Comment><![CDATA[Info data slave counter]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12576</BitOffs></Variable></Inputs><Outputs><ByteSize>1536</ByteSize><Variable><Name>Box 1 (MyEcatSlaveApp).Outputmapping1.LedControl</Name><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>568</BitOffs></Variable><Variable><Name>Ausg�nge.Frm0Ctrl</Name><Comment><![CDATA[0x0001 = prevent 1. EtherCAT command from sending (request NOP)
    0x0002 = prevent 2. EtherCAT command from sending (request NOP)
    0x0004 = prevent 3. EtherCAT command from sending (request NOP)
    ...
    0x4000 = prevent 15. EtherCAT command from sending (request NOP)
    0x8000 = prevent complete frame from sending
    ]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12160</BitOffs></Variable><Variable><Name>Ausg�nge.Frm0WcCtrl</Name><Comment><![CDATA[0x0001 = copy data with wrong working counter of 1. EtherCAT command
    0x0002 = copy data with wrong working counter of 2. EtherCAT command
    0x0004 = copy data with wrong working counter of 3. EtherCAT command
    ...
    0x4000 = copy data with wrong working counter of 15. EtherCAT command
    ]]></Comment><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12176</BitOffs></Variable><Variable><Name>Ausg�nge.DevCtrl</Name><DataType>UINT</DataType><BitSize>16</BitSize><BitOffs>12272</BitOffs></Variable></Outputs></ProcessImage></Config></EtherCATConfig>
    
    <?xml version="1.0" encoding="utf-8"?>
    <EtherCATInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="EtherCATInfo.xsd" Version="1.6">
    	<Vendor>
    		<Id>#xA00</Id>
    		<Name>Test</Name>
    		<ImageData16x14>424DD8020000000000003600000028000000100000000E0000000100180000000000A2020000120B0000120B000000000000000000001306E31306E3190CE42B1FE62B1FE61306E31F13E5190CE42519E51306E31306E3190CE42F24E7190CE41306E31306E31306E31306E35F56EC645CED645CED4137E91F13E5473DE95F57EC3227E71306E3473DE95A51EC271BE61306E31306E31409CA524CC68E8AD74F48C1615CC82218D03E36BF716BCE746FCE453DC01307CE3931BA7D78D27671D1150CB21409CA1712801B1D1D1B1D1D1B1D1D1B1D1D120B891B1D1D1B1D1D1B1D1D1B1D1D120B891B1D1D1B1D1D1B1D1D1B1D1D1712801712807F8080D4D5D5D4D5D5383939120B89545656D4D5D5D4D5D5626464130C89292B2BD4D5D5D4D5D56264641915801712804647471B1D1DAAAAAAD4D5D5130E82383939292B2B717272D4D5D5151183D4D5D57F80801B1D1D7172721E1C81191580464747D4D5D5D4D5D51B1D1D19158A292B2BD4D5D5D4D5D5292B2B1B1B8AD4D5D56264641B1D1D1B1D1D2427821E1D81D4D5D54647476264643839391E208BD4D5D57F8080464747545656242A8BD4D5D59B9C9C292B2BAAAAAA2D3683252882464747D4D5D5D4D5D51B1D1D272D85292B2BD4D5D5D4D5D5292B2B2E37861B1D1DD4D5D5D4D5D5464747394484323BB52324812122822426822526824554C0323883292B822A2D83353C84424CBF3238843940842E32834853865D6EBB5262EB3E43E83334E74147E94349E9535FEB4D56EA5662EB484DEA545DEB636FED545AEA5A63EC6671ED8CA0F290A5F2748AEF6B7BEE5D68EC6874ED788AEF8397F17684EF7986EF8C9FF2818FF1818EF08E9DF18A97F18791F19BA9F3B0C0F691A4F291A2F28390F192A1F29CACF3A3B3F498A6F3A4B3F4AEBDF5B0BEF59EA8F3A3ADF4BBC7F7C4D1F8CAD7F8CED9F9B4C4F6B8C8F6ACB8F59AA3F3B6C1F6C5D2F8C2CDF8CCD7F9D2DDF9D5E0FAD2DAF9D5DCF9DFE7FBE2E9FBE5EBFBE8EEFB0000</ImageData16x14>
    	</Vendor>
    	<Descriptions>
    		<Groups>
    			<Group>
    				<Type>SSC_Device</Type>
    				<Name>SSC_Device</Name>
    				<ImageData16x14>424DD8020000000000003600000028000000100000000E0000000100180000000000A2020000120B0000120B000000000000000000001306E31306E3190CE42B1FE62B1FE61306E31F13E5190CE42519E51306E31306E3190CE42F24E7190CE41306E31306E31306E31306E35F56EC645CED645CED4137E91F13E5473DE95F57EC3227E71306E3473DE95A51EC271BE61306E31306E31409CA524CC68E8AD74F48C1615CC82218D03E36BF716BCE746FCE453DC01307CE3931BA7D78D27671D1150CB21409CA1712801B1D1D1B1D1D1B1D1D1B1D1D120B891B1D1D1B1D1D1B1D1D1B1D1D120B891B1D1D1B1D1D1B1D1D1B1D1D1712801712807F8080D4D5D5D4D5D5383939120B89545656D4D5D5D4D5D5626464130C89292B2BD4D5D5D4D5D56264641915801712804647471B1D1DAAAAAAD4D5D5130E82383939292B2B717272D4D5D5151183D4D5D57F80801B1D1D7172721E1C81191580464747D4D5D5D4D5D51B1D1D19158A292B2BD4D5D5D4D5D5292B2B1B1B8AD4D5D56264641B1D1D1B1D1D2427821E1D81D4D5D54647476264643839391E208BD4D5D57F8080464747545656242A8BD4D5D59B9C9C292B2BAAAAAA2D3683252882464747D4D5D5D4D5D51B1D1D272D85292B2BD4D5D5D4D5D5292B2B2E37861B1D1DD4D5D5D4D5D5464747394484323BB52324812122822426822526824554C0323883292B822A2D83353C84424CBF3238843940842E32834853865D6EBB5262EB3E43E83334E74147E94349E9535FEB4D56EA5662EB484DEA545DEB636FED545AEA5A63EC6671ED8CA0F290A5F2748AEF6B7BEE5D68EC6874ED788AEF8397F17684EF7986EF8C9FF2818FF1818EF08E9DF18A97F18791F19BA9F3B0C0F691A4F291A2F28390F192A1F29CACF3A3B3F498A6F3A4B3F4AEBDF5B0BEF59EA8F3A3ADF4BBC7F7C4D1F8CAD7F8CED9F9B4C4F6B8C8F6ACB8F59AA3F3B6C1F6C5D2F8C2CDF8CCD7F9D2DDF9D5E0FAD2DAF9D5DCF9DFE7FBE2E9FBE5EBFBE8EEFB0000</ImageData16x14>
    			</Group>
    		</Groups>
    		<Devices>
    			<Device Physics="YY">
    				<Type ProductCode="#x54490003" RevisionNo="#x00000011">MyEcatSlaveApp</Type>
    				<Name>MyEcatSlaveApp</Name>
    				<Info>
    					<StateMachine>
    						<Timeout>
    							<PreopTimeout>2000</PreopTimeout>
    							<SafeopOpTimeout>9000</SafeopOpTimeout>
    							<BackToInitTimeout>5000</BackToInitTimeout>
    							<BackToSafeopTimeout>200</BackToSafeopTimeout>
    						</Timeout>
    					</StateMachine>
    					<Mailbox>
    						<Timeout>
    							<RequestTimeout>100</RequestTimeout>
    							<ResponseTimeout>2000</ResponseTimeout>
    						</Timeout>
    					</Mailbox>
    					<EtherCATController>
    						<DpramSize>28672</DpramSize>
    						<SmCount>8</SmCount>
    						<FmmuCount>8</FmmuCount>
    					</EtherCATController>
    				</Info>
    				<GroupType>SSC_Device</GroupType>
    				<Profile>
    					<ProfileNo>5001</ProfileNo>
    					<Dictionary>
    						<DataTypes>
    							<DataType>
    								<Name>STRING(4)</Name>
    								<BitSize>32</BitSize>
    							</DataType>
    							<DataType>
    								<Name>STRING(16)</Name>
    								<BitSize>128</BitSize>
    							</DataType>
    							<DataType>
    								<Name>STRING(14)</Name>
    								<BitSize>112</BitSize>
    							</DataType>
    							<DataType>
    								<Name>USINT</Name>
    								<BitSize>8</BitSize>
    							</DataType>
    							<DataType>
    								<Name>UDINT</Name>
    								<BitSize>32</BitSize>
    							</DataType>
    							<DataType>
    								<Name>UINT</Name>
    								<BitSize>16</BitSize>
    							</DataType>
    							<DataType>
    								<Name>ULINT</Name>
    								<BitSize>64</BitSize>
    							</DataType>
    							<DataType>
    								<Name>BOOL</Name>
    								<BitSize>1</BitSize>
    							</DataType>
    							<DataType>
    								<Name>DT1018</Name>
    								<BitSize>144</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>Vendor ID</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>2</SubIdx>
    									<Name>Product code</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>48</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>3</SubIdx>
    									<Name>Revision</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>80</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>4</SubIdx>
    									<Name>Serial number</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>112</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT10F1</Name>
    								<BitSize>64</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>Local Error Reaction</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>2</SubIdx>
    									<Name>Sync Error Counter Limit</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>48</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT1600</Name>
    								<BitSize>48</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>LedControl</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT1610</Name>
    								<BitSize>80</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>SlaveControl</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>2</SubIdx>
    									<Name>LedControl</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>48</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT1A00</Name>
    								<BitSize>48</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>LedStatus</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT1A10</Name>
    								<BitSize>80</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>SlaveStatus</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>2</SubIdx>
    									<Name>LedStatus</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>48</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT1C00ARR</Name>
    								<BaseType>USINT</BaseType>
    								<BitSize>32</BitSize>
    								<ArrayInfo>
    									<LBound>1</LBound>
    									<Elements>4</Elements>
    								</ArrayInfo>
    							</DataType>
    							<DataType>
    								<Name>DT1C00</Name>
    								<BitSize>48</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<Name>Elements</Name>
    									<Type>DT1C00ARR</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT1C12ARR</Name>
    								<BaseType>UINT</BaseType>
    								<BitSize>16</BitSize>
    								<ArrayInfo>
    									<LBound>1</LBound>
    									<Elements>1</Elements>
    								</ArrayInfo>
    							</DataType>
    							<DataType>
    								<Name>DT1C12</Name>
    								<BitSize>32</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<Name>Elements</Name>
    									<Type>DT1C12ARR</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT1C13ARR</Name>
    								<BaseType>UINT</BaseType>
    								<BitSize>16</BitSize>
    								<ArrayInfo>
    									<LBound>1</LBound>
    									<Elements>1</Elements>
    								</ArrayInfo>
    							</DataType>
    							<DataType>
    								<Name>DT1C13</Name>
    								<BitSize>32</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<Name>Elements</Name>
    									<Type>DT1C13ARR</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT1C32</Name>
    								<BitSize>488</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>Synchronization Type</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access WriteRestrictions="PreOP">rw</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>2</SubIdx>
    									<Name>Cycle Time</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>32</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>4</SubIdx>
    									<Name>Synchronization Types supported</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>96</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>5</SubIdx>
    									<Name>Minimum Cycle Time</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>112</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>6</SubIdx>
    									<Name>Calc and Copy Time</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>144</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>8</SubIdx>
    									<Name>Get Cycle Time</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>208</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>9</SubIdx>
    									<Name>Delay Time</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>224</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>10</SubIdx>
    									<Name>Sync0 Cycle Time</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>256</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>11</SubIdx>
    									<Name>SM-Event Missed</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>288</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>12</SubIdx>
    									<Name>Cycle Time Too Small</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>304</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>32</SubIdx>
    									<Name>Sync Error</Name>
    									<Type>BOOL</Type>
    									<BitSize>1</BitSize>
    									<BitOffs>480</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT1C33</Name>
    								<BitSize>488</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>Synchronization Type</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access WriteRestrictions="PreOP">rw</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>2</SubIdx>
    									<Name>Cycle Time</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>32</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>4</SubIdx>
    									<Name>Synchronization Types supported</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>96</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>5</SubIdx>
    									<Name>Minimum Cycle Time</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>112</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>6</SubIdx>
    									<Name>Calc and Copy Time</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>144</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>8</SubIdx>
    									<Name>Get Cycle Time</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>208</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>9</SubIdx>
    									<Name>Delay Time</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>224</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>10</SubIdx>
    									<Name>Sync0 Cycle Time</Name>
    									<Type>UDINT</Type>
    									<BitSize>32</BitSize>
    									<BitOffs>256</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>11</SubIdx>
    									<Name>SM-Event Missed</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>288</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>12</SubIdx>
    									<Name>Cycle Time Too Small</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>304</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>32</SubIdx>
    									<Name>Sync Error</Name>
    									<Type>BOOL</Type>
    									<BitSize>1</BitSize>
    									<BitOffs>480</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT6000</Name>
    								<BitSize>64</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>SlaveStatus</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    										<PdoMapping>t</PdoMapping>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>2</SubIdx>
    									<Name>LedStatus</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>32</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    										<PdoMapping>t</PdoMapping>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>3</SubIdx>
    									<Name>CommonStatus</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>48</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    										<PdoMapping>t</PdoMapping>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DT7000</Name>
    								<BitSize>48</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>SlaveControl</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    										<PdoMapping>r</PdoMapping>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>2</SubIdx>
    									<Name>LedControl</Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>32</BitOffs>
    									<Flags>
    										<Access>rw</Access>
    										<PdoMapping>r</PdoMapping>
    									</Flags>
    								</SubItem>
    							</DataType>
    							<DataType>
    								<Name>DTF000</Name>
    								<BitSize>48</BitSize>
    								<SubItem>
    									<SubIdx>0</SubIdx>
    									<Name>SubIndex 000</Name>
    									<Type>USINT</Type>
    									<BitSize>8</BitSize>
    									<BitOffs>0</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>1</SubIdx>
    									<Name>Index distance </Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>16</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    								<SubItem>
    									<SubIdx>2</SubIdx>
    									<Name>Maximum number of modules </Name>
    									<Type>UINT</Type>
    									<BitSize>16</BitSize>
    									<BitOffs>32</BitOffs>
    									<Flags>
    										<Access>ro</Access>
    									</Flags>
    								</SubItem>
    							</DataType>
    						</DataTypes>
    						<Objects>
    							<Object>
    								<Index>#x1000</Index>
    								<Name>Device type</Name>
    								<Type>UDINT</Type>
    								<BitSize>32</BitSize>
    								<Info>
    									<DefaultData>89130000</DefaultData>
    								</Info>
    								<Flags>
    									<Access>ro</Access>
    								</Flags>
    							</Object>
    							<Object>
    								<Index>#x1001</Index>
    								<Name>Error register</Name>
    								<Type>USINT</Type>
    								<BitSize>8</BitSize>
    								<Info>
    									<DefaultData>00</DefaultData>
    								</Info>
    								<Flags>
    									<Access>ro</Access>
    								</Flags>
    							</Object>
    							<Object>
    								<Index>#x1008</Index>
    								<Name>Device name</Name>
    								<Type>STRING(14)</Type>
    								<BitSize>112</BitSize>
    								<Info>
    									<DefaultData>4D7945636174536C617665417070</DefaultData>
    								</Info>
    								<Flags>
    									<Access>ro</Access>
    								</Flags>
    							</Object>
    							<Object>
    								<Index>#x1009</Index>
    								<Name>Hardware version</Name>
    								<Type>STRING(16)</Type>
    								<BitSize>128</BitSize>
    								<Info>
    									<DefaultData>4D7945636174536C6176654170702E33</DefaultData>
    								</Info>
    								<Flags>
    									<Access>ro</Access>
    								</Flags>
    							</Object>
    							<Object>
    								<Index>#x100A</Index>
    								<Name>Software version</Name>
    								<Type>STRING(4)</Type>
    								<BitSize>32</BitSize>
    								<Info>
    									<DefaultData>352E3132</DefaultData>
    								</Info>
    								<Flags>
    									<Access>ro</Access>
    								</Flags>
    							</Object>
    							<Object>
    								<Index>#x1018</Index>
    								<Name>Identity</Name>
    								<Type>DT1018</Type>
    								<BitSize>144</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>04</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Vendor ID</Name>
    										<Info>
    											<DefaultData>900A0000</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Product code</Name>
    										<Info>
    											<DefaultData>30049540</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Revision</Name>
    										<Info>
    											<DefaultData>11000000</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Serial number</Name>
    										<Info>
    											<DefaultData>00000000</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x10F1</Index>
    								<Name>Error Settings</Name>
    								<Type>DT10F1</Type>
    								<BitSize>64</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>02</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Local Error Reaction</Name>
    										<Info>
    											<DefaultData>01000000</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Sync Error Counter Limit</Name>
    										<Info>
    											<DefaultData>0400</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x10F8</Index>
    								<Name>Timestamp Object</Name>
    								<Type>ULINT</Type>
    								<BitSize>64</BitSize>
    								<Flags>
    									<Access>rw</Access>
    									<PdoMapping>t</PdoMapping>
    								</Flags>
    							</Object>
    							<Object>
    								<Index>#x1600</Index>
    								<Name>Outputmapping1</Name>
    								<Type>DT1600</Type>
    								<BitSize>48</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>01</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>LedControl</Name>
    										<Info>
    											<DefaultData>10020070</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x1610</Index>
    								<Name>Outputmapping2</Name>
    								<Type>DT1610</Type>
    								<BitSize>80</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>02</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>SlaveControl</Name>
    										<Info>
    											<DefaultData>10010070</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>LedControl</Name>
    										<Info>
    											<DefaultData>10020070</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x1A00</Index>
    								<Name>Inputmapping1</Name>
    								<Type>DT1A00</Type>
    								<BitSize>48</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>01</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>LedStatus</Name>
    										<Info>
    											<DefaultData>10020060</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x1A10</Index>
    								<Name>Inputmapping2</Name>
    								<Type>DT1A10</Type>
    								<BitSize>80</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>02</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>SlaveStatus</Name>
    										<Info>
    											<DefaultData>10010060</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>LedStatus</Name>
    										<Info>
    											<DefaultData>10020060</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x1C00</Index>
    								<Name>Sync manager type</Name>
    								<Type>DT1C00</Type>
    								<BitSize>48</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>04</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>SubIndex 001</Name>
    										<Info>
    											<DefaultData>01</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>SubIndex 002</Name>
    										<Info>
    											<DefaultData>02</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>SubIndex 003</Name>
    										<Info>
    											<DefaultData>03</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>SubIndex 004</Name>
    										<Info>
    											<DefaultData>04</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x1C12</Index>
    								<Name>Obj0x1C12</Name>
    								<Type>DT1C12</Type>
    								<BitSize>32</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>01</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>SubIndex 001</Name>
    										<Info>
    											<DefaultData>0016</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x1C13</Index>
    								<Name>Obj0x1C13</Name>
    								<Type>DT1C13</Type>
    								<BitSize>32</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>01</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>SubIndex 001</Name>
    										<Info>
    											<DefaultData>001A</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x1C32</Index>
    								<Name>SM output parameter</Name>
    								<Type>DT1C32</Type>
    								<BitSize>488</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>20</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Synchronization Type</Name>
    										<Info>
    											<DefaultData>0100</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Synchronization Types supported</Name>
    										<Info>
    											<DefaultData>0780</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Minimum Cycle Time</Name>
    										<Info>
    											<DefaultData>FA000000</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x1C33</Index>
    								<Name>SM input parameter</Name>
    								<Type>DT1C33</Type>
    								<BitSize>488</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>20</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Synchronization Type</Name>
    										<Info>
    											<DefaultData>2200</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Synchronization Types supported</Name>
    										<Info>
    											<DefaultData>0780</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Minimum Cycle Time</Name>
    										<Info>
    											<DefaultData>FA000000</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x6000</Index>
    								<Name>Status</Name>
    								<Type>DT6000</Type>
    								<BitSize>64</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>03</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#x7000</Index>
    								<Name>Control</Name>
    								<Type>DT7000</Type>
    								<BitSize>48</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>02</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    							<Object>
    								<Index>#xF000</Index>
    								<Name>Modular Device Profile</Name>
    								<Type>DTF000</Type>
    								<BitSize>48</BitSize>
    								<Info>
    									<SubItem>
    										<Name>SubIndex 000</Name>
    										<Info>
    											<DefaultData>02</DefaultData>
    										</Info>
    									</SubItem>
    									<SubItem>
    										<Name>Index distance </Name>
    										<Info>
    											<DefaultData>1000</DefaultData>
    										</Info>
    									</SubItem>
    								</Info>
    							</Object>
    						</Objects>
    					</Dictionary>
    				</Profile>
    				<Fmmu>Outputs</Fmmu>
    				<Fmmu>Inputs</Fmmu>
    				<Fmmu>MBoxState</Fmmu>
    				<Sm MinSize="#x24" MaxSize="#x80" DefaultSize="#x80" StartAddress="#x1000" ControlByte="#x26" Enable="1">MBoxOut</Sm>
    				<Sm MinSize="#x24" MaxSize="#x80" DefaultSize="#x80" StartAddress="#x1080" ControlByte="#x22" Enable="1">MBoxIn</Sm>
    				<Sm DefaultSize="2" StartAddress="#x1100" ControlByte="#x64" Enable="1">Outputs</Sm>
    				<Sm DefaultSize="2" StartAddress="#x1400" ControlByte="#x20" Enable="1">Inputs</Sm>
    				<RxPdo Fixed="true" Mandatory="false" Sm="2">
    					<Index>#x1600</Index>
    					<Name>Outputmapping1</Name>
    					<Entry>
    						<Index>#x7000</Index>
    						<SubIndex>2</SubIndex>
    						<BitLen>16</BitLen>
    						<Name>LedControl</Name>
    						<DataType>UINT</DataType>
    					</Entry>
    				</RxPdo>
    				<RxPdo Fixed="true" Mandatory="false">
    					<Index>#x1610</Index>
    					<Name>Outputmapping2</Name>
    					<Entry>
    						<Index>#x7000</Index>
    						<SubIndex>1</SubIndex>
    						<BitLen>16</BitLen>
    						<Name>SlaveControl</Name>
    						<DataType>UINT</DataType>
    					</Entry>
    					<Entry>
    						<Index>#x7000</Index>
    						<SubIndex>2</SubIndex>
    						<BitLen>16</BitLen>
    						<Name>LedControl</Name>
    						<DataType>UINT</DataType>
    					</Entry>
    				</RxPdo>
    				<TxPdo Fixed="true" Mandatory="false" Sm="3">
    					<Index>#x1A00</Index>
    					<Name>Inputmapping1</Name>
    					<Entry>
    						<Index>#x6000</Index>
    						<SubIndex>2</SubIndex>
    						<BitLen>16</BitLen>
    						<Name>LedStatus</Name>
    						<DataType>UINT</DataType>
    					</Entry>
    				</TxPdo>
    				<TxPdo Fixed="true" Mandatory="false">
    					<Index>#x1A10</Index>
    					<Name>Inputmapping2</Name>
    					<Entry>
    						<Index>#x6000</Index>
    						<SubIndex>1</SubIndex>
    						<BitLen>16</BitLen>
    						<Name>SlaveStatus</Name>
    						<DataType>UINT</DataType>
    					</Entry>
    					<Entry>
    						<Index>#x6000</Index>
    						<SubIndex>2</SubIndex>
    						<BitLen>16</BitLen>
    						<Name>LedStatus</Name>
    						<DataType>UINT</DataType>
    					</Entry>
    				</TxPdo>
    				<Mailbox DataLinkLayer="true">
    					<EoE />
    					<CoE SdoInfo="true" PdoAssign="false" PdoConfig="false" CompleteAccess="true" SegmentedSdo="true" />
    					<FoE />
    				</Mailbox>
    				<Dc>
    					<OpMode>
    						<Name>Synchron</Name>
    						<Desc>SM-Synchron</Desc>
    						<AssignActivate>#x0</AssignActivate>
    					</OpMode>
    					<OpMode>
    						<Name>DC</Name>
    						<Desc>DC-Synchron</Desc>
    						<AssignActivate>#x300</AssignActivate>
    						<CycleTimeSync0 Factor="1">0</CycleTimeSync0>
    						<CycleTimeSync1 Factor="1">0</CycleTimeSync1>
    					</OpMode>
    				</Dc>
    				<Eeprom>
    					<ByteSize>2048</ByteSize>
    					<ConfigData>8000E000010000000000</ConfigData>
    					<BootStrap>0010800080108000</BootStrap>
    				</Eeprom>
    			</Device>
    		</Devices>
    	</Descriptions>
    </EtherCATInfo>

    Do you have a runnable slave example project with DC-mode for the AM5728 board?

    Regards,

    Thomas

  • Thomas,

    You can take the pre-built binary to verify the DC mode on AM572x IDK which 

    http://software-dl.ti.com/processor-industrial-sw/esd/PRU-ICSS-ETHERCAT-SLAVE/latest/index_FDS.html

    All the default values are fine for at least DC mode when stack is running from ARM core.

    Regards,
    Garrett

  • Garret,

    Garrett Ding said:

    Thomas,

    You can take the pre-built binary to verify the DC mode on AM572x IDK which 

    http://software-dl.ti.com/processor-industrial-sw/esd/PRU-ICSS-ETHERCAT-SLAVE/latest/index_FDS.html

    I took this binary and try to run it in DC mode. But af first, I had to modify the ESI file TI_ESC_CTT.xml because the running app has a different vendor ID (actual: 0x59D, expected: 0xE000056D) and revision (actual: 0x11, expected: 0x01). After modifying the ESI file the slave can be found (TIESC-003). But the slave is not running (no matter in which mode (SM/DC)). The slave stops in PreOp mode and EC-Engineer printed in the log: slave error (0x98110024). The slave's error state says: no error.

    Maybe the ESI file is wrong? I took the ESI file from "PRU-ICSS-EtherCAT_Slave_01.00.07.02\protocols\ethercat_slave\ecat_appl\esi\TI_ESC_CTT.xml". I'm using the AM5728 IDK eval board.

    Garrett Ding said:

    All the default values are fine for at least DC mode when stack is running from ARM core.

    Regards,
    Garrett

    You mean my values which I've written in my last post? Or do you mean the prebuilt binary?

    Regards,

    Thomas

  • Thomas,

    For the pre-build demo, you need use the TiEtherCATLib.xml from PRU-ICSS-EtherCAT_Slave_01.00.07.02\examples\ethercat_slave\esi.

    I meant the values in your previous post.

    Regards,
    Garrett

  • Garrett Ding said:

    Thomas,

    For the pre-build demo, you need use the TiEtherCATLib.xml from PRU-ICSS-EtherCAT_Slave_01.00.07.02\examples\ethercat_slave\esi.

    Ah okay. I tried this one. Now, I use the prebuilt binary with the default ESI file TiEtherCATLib.xml. But I'll run in the same issue if I use DC-Synchron, that the slave hangs in SafeOP due to synchronization error. Could you set the prebuilt slave to OP in DC-Mode with the IDK AM5728 board?

    What about the first 16 Byte data of EEPROM (ESC_CONFIG_DATA)? I use the default value from SSC. Should I modify this to use DC? There are some configuration registers (ESC Configuration in 0x0141, PDI configuration in 0x150-0x153) that may influence the DC management?

    Regards,

    Thomas

  • Thomas,

    I don't see DC issue on my AM572x IDK board with the pre-built 1.0.7 release demo binary.

    The EEPROM configuration should look like below.

    80 0C E0 88 E8 03 00 00 00 00 00 00 00 00 8B 00 

    Regards,

    Garrett

  • Hi Garret,

    I apologize for the delay in replying. I was on a business trip.

    Garrett Ding said:

    I don't see DC issue on my AM572x IDK board with the pre-built 1.0.7 release demo binary.

    Ok, that's strange because you have only the prebuilt binary which cannot be changed and the ESI file from the TI package. I think we use the identical artefacts. What kind of master do you use? Or should we exchange these files?

    Garrett Ding said:

    The EEPROM configuration should look like below.

    80 0C E0 88 E8 03 00 00 00 00 00 00 00 00 8B 00

    ok, my EEPROM configuration is identical to yours.

    I use an USB LAN Adapter for the master (EC-Engineer on Windows 7) and the slave is connected directly to the adapter. Could the LAN adapter or the EC-Engineer on - non-RTOS capable - Windows 7 make any trouble?

    Regards,

    Thomas

  • Thomas,

    I was out of office for a few days. I used TwinCAT 3 master to test the pre-built image, you may try the same to narrow down the issue.

    Regards,
    Garrett