Hi,

Is there any example code about how to configure and use K bus digital outputs?

For a little background:

About two years ago I tried to support Kbus ethercat coupler and slaves. Specifically Kollmorgen AKT-ACT-000 coupler and AKT-DNH-xxx digital inputs and AKT-DT-xxx digital outputs. Thanks to Mr Wilhelm, I managed to read the configuration from address 0x4012 and it's sub indexes and construct the necessary pdo_entry, pdo_info and sync_info structures automatically. Now I can read digital inputs. But somehow I can't set a digital output.

Since than I had to abandon that work due to other pressing works. Now for a new project I have to open that work again. For a week I've been searching internet but I couldn't find any solution. It looks I'm doing something wrong but I can't figure it out.

Any help will be appreciated.

By the way, the pseudo code of what I did is below:

1. call ecrt_master_slave_config() to get the slave config.

2. Fill PDO entries:
    a. Read the number of devices attached to the coupler from 0x4012:0x0
    b. Read Structure of the cards after coupler...
        * For each device read device description from 0x4012:0x0+i.
* Check the 15th bit of the description to see if the device is intelligent (ie analog) or not (digital) * If it is digital, get the number of the bits from bits 8th to 14th of the description.
        * Record  these info to a device list
   c. Fill pdo entries using the device list.
        * Add Analog and Digital Outputs.
            - Read number of mapped objects from 0x1600+i:0x0
- Add all the mapped objects to pdo_entry list of the ethercat library. Read the objects from 0x1600+i:1+j.
        * Add gap for alignment considering total number of digital bits.
        * Add Coupler State entry
        * Add Analog and Digital Inputs.
            - Read number of mapped objects from 0x1A00+i:0x0
- Add all the mapped objects to pdo_entry list of the ethercat library. Read the objects from 0x1A00+i:1+j.
        * Add gap for alignment considering total number of digital bits.

2. Fill PDO_info entries:
    a. Add coupler and output devices info
        * Read the number of pdo info from 0x1c12:0x0
        * For each pdo info read 0x1c12:0x1+i to get the object indices
    b. Add coupler and input devices info
        * Read the number of pdo info from 0x1c13:0x0
        * For each pdo info read 0x1c13:0x1+i to get the object indices

3. Fill Sync info:
    a. Fill four sync channels using the PDO_info structure.
    b. Terminate the structure with -1.

4. Call ecrt_slave_config_pdos with the new constructed sync_info structure
5. For each device attached to the coupler call ecrt_slave_config_reg_pdo_entry to get the pdo entry offsets.

I use different domains for read and write.

Again, any help will be appreciated.
Best regards,
Oguz.



--
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