[etherlab-users] Emerson Control Techniques Drvive, No PDO exchange, WC=0
Henry Bausley
hbausley at deltatau.com
Wed Oct 20 17:31:56 CEST 2010
ecrt_domain_process and ecrt_domain_queue are called for both the input
and output domain.
The code is below and the same code works with a different drive! I am
using the latest etherlab
driver and the ec_r8169.ko.
Does anyone have another suggestion after looking at the debug log
void cyclic_task(unsigned long data)
{
unsigned short inputdata;
static unsigned short ctrlword = 0;
// receive process data
down(&master_sem);
ecrt_master_receive(master);
#ifdef ENABLE_INPUTS
ecrt_domain_process(domainInput);
#endif
ecrt_domain_process(domainOutput);
up(&master_sem);
if (counter) {
counter--;
} else { // do this at 1 Hz
counter = FREQUENCY*10;///10;
// calculate new process data
// blink ^= 0xFFFF;
blink *= 2;
// check process data state (optional)
check_domainInput_state();
// check for master state (optional)
check_master_state();
// check for islave configuration state(s) (optional)
check_slave_config_states();
if (blink > 0x8000)
blink = 1;
}
// write process data
EC_WRITE_U16(domainOutput_pd + ofs_ctrlword_coe, ctrlword);
#ifdef ENABLE_INPUTS
inputdata = EC_READ_U16(domainInput_pd + ofs_statusword_coe);
if(counter == FREQUENCY*10)
printk(KERN_ALERT "inputdata = %08X\n",inputdata);
inputdata = EC_READ_U16(domainInput_pd + ofs_feedbackword_coe);
if(counter == FREQUENCY*10)
printk(KERN_ALERT "inputdata = %08X\n",inputdata);
#endif
// send process data
down(&master_sem);
ecrt_domain_queue(domainInput);
ecrt_domain_queue(domainOutput);
ecrt_master_send(master);
up(&master_sem);
// restart timer
timer.expires += HZ / FREQUENCY;
add_timer(&timer);
if(ctrlword == 0)
ctrlword = 6;
else if(ctrlword == 6)
ctrlword = 7;
else if(ctrlword == 7)
ctrlword = 15;
}
On Wed, 2010-10-20 at 10:33 +0200, Olaf Holowenko wrote:
> Do you call
> ecrt_domain_process(...);
> ...
> ecrt_domain_queue (...);
> for BOTH domains CYCLIC in your RT-task?
>
>
> See also
> http://www.mail-archive.com/etherlab-users@etherlab.org/msg00496.html
>
>
>
>
> -----Ursprüngliche Nachricht-----
> Von: etherlab-users-bounces at etherlab.org
> [mailto:etherlab-users-bounces at etherlab.org] Im Auftrag von Henry Bausley
> Gesendet: Mittwoch, 20. Oktober 2010 00:47
> An: etherlab-users at etherlab.org
> Betreff: [etherlab-users] Emerson Control Techniques Drvive, No PDO
> exchange,WC=0
>
>
>
> I am trying to use an Emerson Control Techniques Digitax ST Servo Drive
> via their SM-EtherCAT module but no PDO information is ever exchanged.
> The Working Counter and Working State are always 0. I verified all the
> PDO mappings and Sync Manager configurations. The Drive goes to OP mode
> but no data is ever exchanged. I am using the basic mini.c example to
> check the drive. I have a Copley drive that works perfectly with the
> same mini.c example (the only difference being the PDO indexes , the
> vendor/product code are different)
>
> I believe the SM-EtherCAT module uses the Hilscher chip. The domain
> working counter and working state are always 0.
>
> Does anyone have any suggestions?
>
> Below are the debug messages. Everything seems to be setup correct.
> ----------------------------------------------------------------------------
> --------------
>
> root at 10.34.9.212:/opt/ppmac/mini# insmod miniEmerson.ko
> root at 10.34.9.212:/opt/ppmac/mini# dmesg
> ec_mini: Starting...
> EtherCAT: Requesting master 0...
> EtherCAT DEBUG 0: IDLE -> OPERATION.
> EtherCAT: Successfully requested master 0.
> EtherCAT DEBUG 0: ecrt_master_callbacks(master = 0xafbd7000, send_cb =
> 0xb91c404c, receive_cb = 0xb91c4000, cb_data = 0xafbd7000)
> ec_mini: Registering domain...
> EtherCAT DEBUG 0: ecrt_master_create_domain(master = 0xafbd7000)
> EtherCAT DEBUG 0: Created domain 0.
> EtherCAT DEBUG 0: ecrt_master_create_domain(master = 0xafbd7000)
> EtherCAT DEBUG 0: Created domain 1.
> EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xafbd7000, alias =
> 0, position = 0, vendor_id = 0x000000f9, product_code = 0x00040203)
> EtherCAT DEBUG 0: Creating slave configuration for 0:0,
> 0x000000F9/0x00040203.
> EtherCAT DEBUG 0 0:0: Attached slave 0.
> ec_mini: Configuring PDOs...
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdos(sc = 0xaed9b800, n_syncs =
> 4294967295, syncs = 0xb91c53e4)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_sync_manager(sc = 0xaed9b800,
> sync_index = 0, dir = 1, watchdog_mode = 2)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_sync_manager(sc = 0xaed9b800,
> sync_index = 1, dir = 2, watchdog_mode = 2)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_sync_manager(sc = 0xaed9b800,
> sync_index = 2, dir = 1, watchdog_mode = 2)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdo_assign_clear(sc =
> 0xaed9b800, sync_index = 2)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdo_assign_add(sc = 0xaed9b800,
> sync_index = 2, pdo_index = 0x1605)
> EtherCAT DEBUG 0 0:0: Loading default mapping for PDO 0x1605.
> EtherCAT DEBUG 0 0:0: Entry 0x6040:00.
> EtherCAT DEBUG 0 0:0: Entry 0x6042:00.
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdo_mapping_clear(sc =
> 0xaed9b800, pdo_index = 0x1605)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdo_mapping_add(sc = 0xaed9b800,
> pdo_index = 0x1605, entry_index = 0x6040, entry_subindex = 0x00,
> entry_bit_length = 16)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdo_mapping_add(sc = 0xaed9b800,
> pdo_index = 0x1605, entry_index = 0x6042, entry_subindex = 0x00,
> entry_bit_length = 16)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_sync_manager(sc = 0xaed9b800,
> sync_index = 3, dir = 2, watchdog_mode = 2)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdo_assign_clear(sc =
> 0xaed9b800, sync_index = 3)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdo_assign_add(sc = 0xaed9b800,
> sync_index = 3, pdo_index = 0x1A05)
> EtherCAT DEBUG 0 0:0: Loading default mapping for PDO 0x1A05.
> EtherCAT DEBUG 0 0:0: Entry 0x6041:00.
> EtherCAT DEBUG 0 0:0: Entry 0x6044:00.
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdo_mapping_clear(sc =
> 0xaed9b800, pdo_index = 0x1A05)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdo_mapping_add(sc = 0xaed9b800,
> pdo_index = 0x1A05, entry_index = 0x6041, entry_subindex = 0x00,
> entry_bit_length = 16)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_pdo_mapping_add(sc = 0xaed9b800,
> pdo_index = 0x1A05, entry_index = 0x6044, entry_subindex = 0x00,
> entry_bit_length = 16)
> ec_mini: Registering PDO entries...
> EtherCAT DEBUG 0: ecrt_domain_reg_pdo_entry_list(domain = 0xaee11d00,
> regs = 0xb91c4650)
> EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xafbd7000, alias =
> 0, position = 0, vendor_id = 0x000000f9, product_code = 0x00040203)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xaed9b800,
> index = 0x6041, subindex = 0x00, domain = 0xaee11d00, bit_position =
> 0x(null))
> EtherCAT DEBUG 0: Domain 0: Added 4 bytes, total 4.
> EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xafbd7000, alias =
> 0, position = 0, vendor_id = 0x000000f9, product_code = 0x00040203)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xaed9b800,
> index = 0x6044, subindex = 0x00, domain = 0xaee11d00, bit_position =
> 0x(null))
> EtherCAT DEBUG 0: ecrt_domain_reg_pdo_entry_list(domain = 0xaee11100,
> regs = 0xb91c4698)
> EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xafbd7000, alias =
> 0, position = 0, vendor_id = 0x000000f9, product_code = 0x00040203)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xaed9b800,
> index = 0x6040, subindex = 0x00, domain = 0xaee11100, bit_position =
> 0x(null))
> EtherCAT DEBUG 0: Domain 1: Added 4 bytes, total 4.
> EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xafbd7000, alias =
> 0, position = 0, vendor_id = 0x000000f9, product_code = 0x00040203)
> EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xaed9b800,
> index = 0x6042, subindex = 0x00, domain = 0xaee11100, bit_position =
> 0x(null))
> ec_mini: Activating master...
> EtherCAT DEBUG 0: ecrt_master_activate(master = 0xafbd7000)
> EtherCAT 0: Domain0: Logical address 0x00000000, 4 byte, expected
> working counter 1.
> EtherCAT 0: Datagram domain0-0: Logical offset 0x00000000, 4 byte,
> type LRD.
> EtherCAT 0: Domain1: Logical address 0x00000004, 4 byte, expected
> working counter 1.
> EtherCAT 0: Datagram domain1-4: Logical offset 0x00000004, 4 byte,
> type LWR.
> EtherCAT DEBUG 0: Stopping master thread.
> EtherCAT DEBUG 0: Master IDLE thread exiting...
> EtherCAT 0: Master thread exited.
> EtherCAT DEBUG 0: FSM datagram is afbd73e4.
> EtherCAT 0: Starting EtherCAT-OP thread.
> ec_mini: Starting cyclic sample thread.
> ec_mini: Started.
> EtherCAT DEBUG 0: Operation thread running with fsm interval = 1000 us,
> max data size=11250
> EtherCAT WARNING 0: 2 datagrams UNMATCHED!
> ec_mini: 1 slave(s).
> ec_mini: AL states: 0x02.
> ec_mini: Link is up.
> ec_mini: DigIn: State 0x02.
> ec_mini: DigIn: online.
> inputdata = 00000000
> inputdata = 00000000
> EtherCAT DEBUG 0: Configuration changed.
> EtherCAT DEBUG 0: Writing system time offsets...
> EtherCAT DEBUG 0: No app_time received up to now.
> EtherCAT DEBUG 0: Requesting OP...
> EtherCAT DEBUG 0-0: Changing state from PREOP to OP.
> EtherCAT DEBUG 0-0: Configuring...
> EtherCAT DEBUG 0-0: Now in INIT.
> EtherCAT DEBUG 0-0: Clearing FMMU configurations...
> EtherCAT DEBUG 0-0: Clearing sync manager configurations...
> EtherCAT DEBUG 0-0: Clearing DC assignment...
> EtherCAT DEBUG 0-0: Configuring mailbox sync managers...
> EtherCAT DEBUG 0-0: SM0: Addr 0x1000, Size 128, Ctrl 0x26, En 1
> EtherCAT DEBUG 0-0: SM1: Addr 0x1080, Size 128, Ctrl 0x22, En 1
> EtherCAT DEBUG 0-0: Now in PREOP.
> EtherCAT DEBUG 0-0: Changing mapping of PDO 0x1605.
> EtherCAT DEBUG 0-0: Currently mapped PDO entries: 0x6040:00/16
> 0x6042:00/16. Entries to map: 0x6040:00/16 0x6042:00/16
> EtherCAT DEBUG 0-0: Setting entry count to zero.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1605:00.
> EtherCAT DEBUG: 00
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 2F 05 16 00 00 00 00 00
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 05 16 00 00 00 00 00
> EtherCAT DEBUG 0-0: Mapping PDO entry 0x6040:00 (16 bit) at position 1.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1605:01.
> EtherCAT DEBUG: 10 00 40 60
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 23 05 16 01 10 00 40 60
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 05 16 01 10 00 40 60
> EtherCAT DEBUG 0-0: Mapping PDO entry 0x6042:00 (16 bit) at position 2.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1605:02.
> EtherCAT DEBUG: 10 00 42 60
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 23 05 16 02 10 00 42 60
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 05 16 02 10 00 42 60
> EtherCAT DEBUG 0-0: Setting number of PDO entries to 2.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1605:00.
> EtherCAT DEBUG: 02
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 2F 05 16 00 02 00 00 00
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 05 16 00 02 00 00 00
> EtherCAT DEBUG 0-0: Successfully configured mapping for PDO 0x1605.
> EtherCAT DEBUG 0-0: Setting PDO assignment of SM2:
> EtherCAT DEBUG 0-0: Currently assigned PDOs: 0x1605. PDOs to assign:
> 0x1605
> EtherCAT DEBUG 0-0: Setting number of assigned PDOs to zero.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1C12:00.
> EtherCAT DEBUG: 00
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 2F 12 1C 00 00 00 00 00
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 12 1C 00 00 00 00 00
> EtherCAT DEBUG 0-0: Assigning PDO 0x1605 at position 1.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1C12:01.
> EtherCAT DEBUG: 05 16
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 2B 12 1C 01 05 16 00 00
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 12 1C 01 05 16 00 00
> EtherCAT DEBUG 0-0: Setting number of assigned PDOs to 1.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1C12:00.
> EtherCAT DEBUG: 01
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 2F 12 1C 00 01 00 00 00
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 12 1C 00 01 00 00 00
> EtherCAT DEBUG 0-0: Successfully configured PDO assignment of SM2.
> EtherCAT DEBUG 0-0: Changing mapping of PDO 0x1A05.
> EtherCAT DEBUG 0-0: Currently mapped PDO entries: 0x6041:00/16
> 0x6044:00/16. Entries to map: 0x6041:00/16 0x6044:00/16
> EtherCAT DEBUG 0-0: Setting entry count to zero.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1A05:00.
> EtherCAT DEBUG: 00
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 2F 05 1A 00 00 00 00 00
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 05 1A 00 00 00 00 00
> EtherCAT DEBUG 0-0: Mapping PDO entry 0x6041:00 (16 bit) at position 1.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1A05:01.
> EtherCAT DEBUG: 10 00 41 60
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 23 05 1A 01 10 00 41 60
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 05 1A 01 10 00 41 60
> EtherCAT DEBUG 0-0: Mapping PDO entry 0x6044:00 (16 bit) at position 2.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1A05:02.
> EtherCAT DEBUG: 10 00 44 60
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 23 05 1A 02 10 00 44 60
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 05 1A 02 10 00 44 60
> EtherCAT DEBUG 0-0: Setting number of PDO entries to 2.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1A05:00.
> EtherCAT DEBUG: 02
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 2F 05 1A 00 02 00 00 00
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 05 1A 00 02 00 00 00
> EtherCAT DEBUG 0-0: Successfully configured mapping for PDO 0x1A05.
> EtherCAT DEBUG 0-0: Setting PDO assignment of SM3:
> EtherCAT DEBUG 0-0: Currently assigned PDOs: 0x1A05. PDOs to assign:
> 0x1A05
> EtherCAT DEBUG 0-0: Setting number of assigned PDOs to zero.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1C13:00.
> EtherCAT DEBUG: 00
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 2F 13 1C 00 00 00 00 00
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 13 1C 00 00 00 00 00
> EtherCAT DEBUG 0-0: Assigning PDO 0x1A05 at position 1.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1C13:01.
> EtherCAT DEBUG: 05 1A
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 2B 13 1C 01 05 1A 00 00
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 13 1C 01 05 1A 00 00
> EtherCAT DEBUG 0-0: Setting number of assigned PDOs to 1.
> EtherCAT DEBUG 0-0: Downloading SDO 0x1C13:00.
> EtherCAT DEBUG: 01
> EtherCAT DEBUG 0-0: Expedited download request:
> EtherCAT DEBUG: 00 20 2F 13 1C 00 01 00 00 00
> EtherCAT DEBUG 0-0: Download response:
> EtherCAT DEBUG: 00 30 62 13 1C 00 01 00 00 00
> EtherCAT DEBUG 0-0: Successfully configured PDO assignment of SM3.
> EtherCAT DEBUG 0-0: SM2: Addr 0x1100, Size 4, Ctrl 0x24, En 1
> EtherCAT DEBUG 0-0: SM3: Addr 0x1280, Size 4, Ctrl 0x20, En 1
> EtherCAT DEBUG 0 0:0: FMMU: LogAddr 0x00000000, Size 4, PhysAddr
> 0x1280, SM3, Dir in
> EtherCAT DEBUG 0 0:0: FMMU: LogAddr 0x00000004, Size 4, PhysAddr
> 0x1100, SM2, Dir out
> EtherCAT DEBUG 0-0: Now in SAFEOP.
> EtherCAT DEBUG 0-0: Now in OP. Finished configuration.
> EtherCAT 0: Slave states: OP.
> ec_mini: AL states: 0x08.
> ec_mini: DigIn: State 0x08.
> ec_mini: DigIn: operational.
> inputdata = 00000000
> inputdata = 00000000
> inputdata = 00000000
> inputdata = 00000000
>
>
> root at 10.34.9.212:/opt/ppmac/mini# ethercat -m0 -p0 -t int8 upload
> 0x1c12 0
> 0x01 1
> root at 10.34.9.212:/opt/ppmac/mini# ethercat -m0 -p0 -t int16 upload
> 0x1c12 1
> 0x1605 5637
> root at 10.34.9.212:/opt/ppmac/mini#
> root at 10.34.9.212:/opt/ppmac/mini# ethercat -m0 -p0 -t int8 upload
> 0x1c13 0
> 0x01 1
> root at 10.34.9.212:/opt/ppmac/mini# ethercat -m0 -p0 -t int16 upload
> 0x1c13 1
> 0x1a05 6661
> root at 10.34.9.212:/opt/ppmac/mini#
> root at 10.34.9.212:/opt/ppmac/mini#
> root at 10.34.9.212:/opt/ppmac/mini# ethercat -m0 -p0 -t int8 upload 0x1605
> 0
> 0x02 2
> root at 10.34.9.212:/opt/ppmac/mini# ethercat -m0 -p0 -t uint32 upload
> 0x1605 1
> 0x60400010 1614807056
> root at 10.34.9.212:/opt/ppmac/mini# ethercat -m0 -p0 -t uint32 upload
> 0x1605 2
> 0x60420010 1614938128
> root at 10.34.9.212:/opt/ppmac/mini#
> root at 10.34.9.212:/opt/ppmac/mini# ethercat -m0 -p0 -t int8 upload 0x1a05
> 0
> 0x02 2
> root at 10.34.9.212:/opt/ppmac/mini# ethercat -m0 -p0 -t uint32 upload
> 0x1a05 1
> 0x60410010 1614872592
> root at 10.34.9.212:/opt/ppmac/mini# ethercat -m0 -p0 -t uint32 upload
> 0x1a05 2
> `
>
>
>
> **********************************************************
> Outbound scan for Spam or Virus by Barracuda at Delta Tau
> **********************************************************
> _______________________________________________
> etherlab-users mailing list
> etherlab-users at etherlab.org
> http://lists.etherlab.org/mailman/listinfo/etherlab-users
>
> _______________________________________________
> etherlab-users mailing list
> etherlab-users at etherlab.org
> http://lists.etherlab.org/mailman/listinfo/etherlab-users
**********************************************************
Outbound scan for Spam or Virus by Barracuda at Delta Tau
**********************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20101020/99550250/attachment-0004.htm>
More information about the Etherlab-users
mailing list