Hi Mr Wilhelm,

I managed to read necessary objects and construct cstruct output myself.
It looks OK when I compare it with the cstruct output.

But still I can't access IO.

For test, I tried to write to a 8 channel digital output device (AKD DT 004, But twincat reads it as KL2408)
I get the pdo entry offset using *ecrt_slave_config_reg_pdo_entry* function.
I pass the first channel object index and subindex (which is for this case 0x7000:01) as parameters. Result seems OK. For only one device attached to coupler I get "2". I guess first two bytes are reserved for the control word of the coupler.
But nothing happens when I write to this domain data.

I couldn't find any information about control word of the coupler. Should I set something? Also I couldn't find any information about terminal tables too. How should I set them?

If you can send me a link of some documents I'd be very grateful.

Best regards,
Oguz.

09.09.2014 22:02 tarihinde, Bilko AS, Oguz Dilmac yazdı:
Hi,

Infact we are using kollmorgen ECT 000 bus coupler. I examined the device documents more carefully.
Thank you for the tips. I think I understand it now.

Best regards,
Oguz.

04.09.2014 11:35 tarihinde, Dr.-Ing. Wilhelm Hagemeister yazdı:
Hello,


"ethercat cstruct" tells you the meaning of the mapping (see comments
after the pdo-entries):

Example:

/* Master 0, Slave 0
  * Vendor ID:       0x00000002
  * Product code:    0x04602c22
  * Revision number: 0x00000000
  */

ec_pdo_entry_info_t slave_0_pdo_entries[] = {
     {0xf100, 0x01, 16}, /* CouplerState */
     {0x6020, 0x01, 8}, /* Channel 1 Status */
     {0x0000, 0x00, 8}, /* Gap */
     {0x6020, 0x03, 16}, /* Channel 1 Data */
     {0x6020, 0x04, 8}, /* Channel 2 Status */
     {0x0000, 0x00, 8}, /* Gap */
     {0x6020, 0x06, 16}, /* Channel 2 Data */
     {0x6020, 0x07, 8}, /* Channel 3 Status */
     {0x0000, 0x00, 8}, /* Gap */
     {0x6020, 0x09, 16}, /* Channel 3 Data */
     {0x6020, 0x0a, 8}, /* Channel 4 Status */
     {0x0000, 0x00, 8}, /* Gap */
     {0x6020, 0x0c, 16}, /* Channel 4 Data */
     {0x6030, 0x01, 8}, /* Channel 1 Status */
     {0x0000, 0x00, 8}, /* Gap */

     ...

     {0x6050, 0x04, 8}, /* Channel 2 Status */
     {0x0000, 0x00, 8}, /* Gap */
     {0x6050, 0x06, 16}, /* Channel 2 Data */
     {0x6000, 0x01, 1}, /* Channel 1  */
     {0x6000, 0x02, 1}, /* Channel 2  */
     {0x6000, 0x03, 1}, /* Channel 3  */
     {0x6000, 0x04, 1}, /* Channel 4  */
     {0x6070, 0x01, 1}, /* Channel 1  */
     {0x6070, 0x02, 1}, /* Channel 2  */
     {0x0000, 0x00, 10}, /* Gap */
};

ec_pdo_info_t slave_0_pdos[] = {
     {0x1aff, 1, slave_0_pdo_entries + 0}, /* Status PDO */
{0x1a02, 12, slave_0_pdo_entries + 1}, /* TxPDO Mapping Terminal 003 */ {0x1a03, 12, slave_0_pdo_entries + 13}, /* TxPDO Mapping Terminal 004 */ {0x1a04, 12, slave_0_pdo_entries + 25}, /* TxPDO Mapping Terminal 005 */ {0x1a05, 6, slave_0_pdo_entries + 37}, /* TxPDO Mapping Terminal 006 */ {0x1a00, 4, slave_0_pdo_entries + 43}, /* TxPDO Mapping Terminal 001 */ {0x1a07, 2, slave_0_pdo_entries + 47}, /* TxPDO Mapping Terminal 008 */
     {0x1b01, 1, slave_0_pdo_entries + 49}, /* TxPDO Digital Align */
};

ec_sync_info_t slave_0_syncs[] = {
     {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
     {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
     {2, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
     {3, EC_DIR_INPUT, 8, slave_0_pdos + 0, EC_WD_DISABLE},
     {0xff}
};


End of example.

Usually analog-IO is mapped with a status + a fill byte before the value
word. All analog or "complex" IO-Terminals are mapped first and aligned
to 16bit. At the end the digital IO-termials with bit-mapping follow
without gaps of fill bits.

The mapping of a single K-Bus slave is good documented in the Beckhoff
documents for the terminal.

Also TwinCat can be used to find out the mapping.

Regards Wilhelm.

Am 04.09.2014 09:15, schrieb Bilko AS, Oguz Dilmac:
Hello

We have a problem with configuring BK1120. We made EK1100 run without a
problem.

We found out that they are using different protocols to communicate the
modules (BK1120 K-Bus, and EK110 E-Bus).
We searched for information on how to create the cstruct for BK1120 and
how to map the connected I/0 modules but we couldnt find an answer that
exactly answers our question.

Until now we ran "ethercat cstruct" and copy that into our code and it
goes to run state, fine, but we need an example or explanation of how
the connected modules match the entries in cstruct, where to read or
write to the I/O.

Thanks





--
Oguz Dilmac
ARGE Bolumu

Bilko AS, R&D Department
====================================
Perpa Ticaret Merkezi B Blok Kat 13 Nr. 2568
TR-34384 Okmeydani Istanbul Turkey
Tel : +90 212 220 07 40  Fax :   +90 212 210 47 01
e-mail : odil...@bilko-automation.com
web site : http://www.bilko-automation.com

_______________________________________________
etherlab-users mailing list
etherlab-users@etherlab.org
http://lists.etherlab.org/mailman/listinfo/etherlab-users

Reply via email to