[etherlab-users] How to run this demo with the ethercat master

Richard Andrysek richard.andrysek at gomtec.de
Wed Jul 8 19:33:37 CEST 2015


I have an XML file (4 pages, I can send it) with slave description - demo. I have also a binary.
...
<Sm DefaultSize="512" StartAddress="#x1000" ControlByte="#x26" Enable="1">MBoxOut</Sm>
<Sm DefaultSize="512" StartAddress="#x1200" ControlByte="#x22" Enable="1">MBoxIn</Sm>
<Sm MaxSize="1024" StartAddress="#x1400" ControlByte="#x24" Enable="1">Outputs</Sm>
<Sm MaxSize="1024" StartAddress="#x2000" ControlByte="#x20" Enable="1">Inputs</Sm>
<RxPdo Mandatory="1" Fixed="1" Sm="2">
          <Index>#x1600</Index>
          <Name>Fix Output Module</Name>
          <Entry Fixed="1">
            <Index>#x7000</Index>
            <SubIndex>1</SubIndex>
            <BitLen>8</BitLen>
            <Name>LED_Output</Name>
            <DataType>USINT</DataType>
          </Entry>
        </RxPdo>
        <RxPdo Fixed="0" Sm="2">
          <Index>#x1601</Index>
          <Name>Variable Output Module</Name>
          <Entry>
            <Index>#x7001</Index>
            <SubIndex>1</SubIndex>
            <BitLen>32</BitLen>
            <Name>Variable 1</Name>
            <DataType>UDINT</DataType>
          </Entry>
          <Entry>
            <Index>#x7001</Index>
            <SubIndex>2</SubIndex>
            <BitLen>16</BitLen>
            <Name>Variable 2</Name>
            <DataType>UINT</DataType>
          </Entry>
          <Entry>
            <Index>#x7001</Index>
            <SubIndex>3</SubIndex>
            <BitLen>8</BitLen>
            <Name>Variable 3</Name>
            <DataType>USINT</DataType>
          </Entry>
        </RxPdo>
        <TxPdo Mandatory="1" Fixed="1" Sm="3">
          <Index>#x1A00</Index>
          <Name>Fix Input Module</Name>
          <Entry Fixed="1">
            <Index>#x6000</Index>
            <SubIndex>1</SubIndex>
            <BitLen>8</BitLen>
            <Name>LED_Speed</Name>
            <DataType>USINT</DataType>
          </Entry>
        </TxPdo>
        <TxPdo Fixed="0" Sm="3">
          <Index>#x1A01</Index>
          <Name>Variable Input Module</Name>
          <Entry>
            <Index>#x6001</Index>
            <SubIndex>1</SubIndex>
            <BitLen>16</BitLen>
            <Name>Variable 1</Name>
            <DataType>UINT</DataType>
          </Entry>
          <Entry>
            <Index>#x6001</Index>
            <SubIndex>2</SubIndex>
            <BitLen>16</BitLen>
            <Name>Variable 2</Name>
            <DataType>UINT</DataType>
          </Entry>
          <Entry>
            <Index>#x6001</Index>
            <SubIndex>3</SubIndex>
            <BitLen>32</BitLen>
            <Name>Variable 3</Name>
            <DataType>UDINT</DataType>
          </Entry>
          <Entry>
            <Index>#x6001</Index>
            <SubIndex>4</SubIndex>
            <BitLen>32</BitLen>
            <Name>Variable 4</Name>
            <DataType>UDINT</DataType>
          </Entry>
        </TxPdo>
        <Mailbox>
          <EoE />
          <CoE SdoInfo="1" PdoAssign="1" PdoConfig="1" DiagHistory="1"/>
          <FoE />
        </Mailbox>
        <Dc>
          <OpMode>
            <Name>Synchron</Name>
            <Desc>Synchron with SM2 Event</Desc>
            <AssignActivate>#x0000</AssignActivate>
          </OpMode>
        </Dc>
        <Eeprom AssignToPdi="1">
          <ByteSize>2048</ByteSize>
          <ConfigData>8004036600000000000000000000</ConfigData>
          <BootStrap>0010000200120002</BootStrap>
        </Eeprom>
      </Device>

But I can't get the device to set it in the operational mode. I use a demo example "user".


1)      What do I need to specify in the main.c?  I've tried to add PDOs, but in the XML file are DiagMessages, Sms, Mailbox, ...

But in the user main.c are only PDOs:

static ec_pdo_entry_info_t xxx_pdo_entries[] = {

    /* RxPDO */

    {0x7000, 1,  8}, // Led Output

    {0x7001, 1, 32}, // Variable 1

    {0x7001, 2, 16}, // Variable 2

    {0x7001, 3, 8},  // Variable 3

    /* TxPDO */

    {0x6000, 1,  8}, // Led Output

    {0x6001, 1, 16}, // Variable 1

    {0x6001, 2, 16}, // Variable 2

    {0x6001, 3, 32}, // Variable 3

    {0x6001, 4, 32}, // Variable 4

};



static ec_pdo_info_t xxx_pdos[] = {

    {0x1600, 4, xxx_pdo_entries},

    {0x1A00, 1, &xxx_pdo_entries[4]},

    {0x1A01, 4, &xxx_pdo_entries[5]}

};



/* no idea what shal be here inside? Do I needed or does it send a slave? */

static ec_sync_info_t xxx_syncs[] = {

    {2, EC_DIR_OUTPUT, 2, &xxx_pdos[1]},

    {3, EC_DIR_INPUT, 1, &xxx_pdos[0]},

    {0xff}

};



2)      Here is a dump from main.c
Configuring sync PDOs...
Configuring domain1...
Activating master...
Domain data ...
setprioriry ...
Warning: Failed to set priority: Permission denied
sigaction ...
Starting timer...
Started.
1 slave(s).
AL states: 0x02.
Link is up.
XXX: State 0x02.
XXX: online.

3)dmesg debug dump
...
[176175.854987] EtherCAT: 1 master waiting for devices.
[176175.856693] ec_generic: EtherCAT master generic Ethernet device module devel af21f0bdc7c9+
[176175.856700] EtherCAT: Accepting device BC:5F:F4:FB:17:AB for master 0.
[176175.856708] ec_generic: Binding socket to interface 2 (eth1).
[176175.860080] EtherCAT 0: Starting EtherCAT-IDLE thread.
[176175.860143] EtherCAT 0: Link state changed to UP.
[176175.861006] EtherCAT 0: 1 slave(s) responding.
[176175.861007] EtherCAT 0: Slave states: PREOP.
[176175.861067] EtherCAT 0: Scanning bus.
[176175.863692] EtherCAT WARNING 0-0: SII size exceeds 4096 words (0xffff limiter missing?).
[176175.879559] EtherCAT 0: Bus scanning completed in 18 ms.
[176180.950532] EtherCAT: Requesting master 0...
[176180.950549] EtherCAT: Successfully requested master 0.
[176180.950664] EtherCAT 0: Domain0: Logical address 0x00000000, 21 byte, expected working counter 3.
[176180.950667] EtherCAT 0:   Datagram domain0-0: Logical offset 0x00000000, 21 byte, type LRW.
[176180.950707] EtherCAT 0: Master thread exited.
[176180.950709] EtherCAT 0: Starting EtherCAT-OP thread.
[176183.762439] EtherCAT 0: Releasing master...
[176183.762447] EtherCAT 0: Master thread exited.
[176183.762453] EtherCAT 0: Starting EtherCAT-IDLE thread.
[176183.762555] EtherCAT 0: Released.

[176770.181924] EtherCAT: Successfully requested master 0.

[176770.181971] EtherCAT 0: Domain0: Logical address 0x00000000, 21 byte, expected working counter 3.

[176770.181974] EtherCAT 0:   Datagram domain0-0: Logical offset 0x00000000, 21 byte, type LRW.

[176770.182007] EtherCAT 0: Master thread exited.

[176770.182010] EtherCAT 0: Starting EtherCAT-OP thread.

[176770.182093] EtherCAT WARNING 0: 1 datagram UNMATCHED!

[176770.353005] EtherCAT WARNING 0-0: PDOs configured for SM2, but slave does not provide the sync manager information!

[176770.353009] EtherCAT WARNING 0-0: PDOs configured for SM3, but slave does not provide the sync manager information!

[176770.353012] EtherCAT ERROR 0-0: Failed to determine PDO sync manager for FMMU!

[176817.598870] EtherCAT 0: Releasing master...

[176817.598924] EtherCAT 0: Master thread exited.

[176817.598930] EtherCAT 0: Starting EtherCAT-IDLE thread.

[176817.599057] EtherCAT 0: Released.

What am I missing or doing wrong?

By

Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20150708/af1cdc09/attachment-0002.htm>


More information about the Etherlab-users mailing list