27 // EtherCAT |
27 // EtherCAT |
28 ec_master_t *master = NULL; |
28 ec_master_t *master = NULL; |
29 ec_domain_t *domain1 = NULL; |
29 ec_domain_t *domain1 = NULL; |
30 |
30 |
31 // Datenfelder |
31 // Datenfelder |
|
32 void *r_ssi_input, *r_ssi_status; |
32 void *r_field[9]; |
33 void *r_field[9]; |
33 void *r_4102[3]; |
34 void *r_4102[3]; |
34 |
35 |
35 // Kanäle |
36 // Kanäle |
36 uint32_t k_pos; |
37 uint32_t k_pos; |
|
38 uint8_t k_stat; |
37 |
39 |
38 ec_field_init_t domain1_fields[] = { |
40 ec_field_init_t domain1_fields[] = { |
39 {&r_field[0], "1", "Beckhoff", "EL5001", "InputValue", 0, 1}, |
41 {&r_ssi_input, "1", "Beckhoff", "EL5001", "InputValue", 0, 1}, |
|
42 {&r_ssi_status, "1", "Beckhoff", "EL5001", "Status", 0, 1}, |
40 {&r_field[1], "2", "Beckhoff", "EL4132", "OutputValue", 0, 1}, |
43 {&r_field[1], "2", "Beckhoff", "EL4132", "OutputValue", 0, 1}, |
41 {&r_field[2], "3", "Beckhoff", "EL3162", "InputValue", 0, 1}, |
44 {&r_field[2], "3", "Beckhoff", "EL3162", "InputValue", 0, 1}, |
42 {r_4102, "4", "Beckhoff", "EL4102", "OutputValue", 0, 3}, |
45 {r_4102, "4", "Beckhoff", "EL4102", "OutputValue", 0, 2}, |
43 {&r_field[4], "5", "Beckhoff", "EL5001", "InputValue", 0, 1}, |
46 {&r_field[4], "5", "Beckhoff", "EL5001", "InputValue", 0, 1}, |
44 {&r_field[5], "6", "Beckhoff", "EL1014", "InputValue", 0, 1}, |
47 {&r_field[5], "6", "Beckhoff", "EL1014", "InputValue", 0, 1}, |
45 {&r_field[6], "7", "Beckhoff", "EL2004", "OutputValue", 0, 1}, |
48 {&r_field[6], "7", "Beckhoff", "EL2004", "OutputValue", 0, 1}, |
46 {&r_field[7], "8", "Beckhoff", "EL4132", "OutputValue", 0, 1}, |
49 {&r_field[7], "8", "Beckhoff", "EL4132", "OutputValue", 0, 1}, |
47 {&r_field[8], "9", "Beckhoff", "EL4132", "OutputValue", 0, 1}, |
50 {&r_field[8], "9", "Beckhoff", "EL4132", "OutputValue", 0, 1}, |
48 {} |
51 {} |
49 }; |
52 }; |
121 if (ecrt_master_activate(master)) { |
126 if (ecrt_master_activate(master)) { |
122 printk(KERN_ERR "EtherCAT: Could not activate master!\n"); |
127 printk(KERN_ERR "EtherCAT: Could not activate master!\n"); |
123 goto out_release_master; |
128 goto out_release_master; |
124 } |
129 } |
125 |
130 |
|
131 //ecrt_master_debug(master, 2); |
|
132 |
|
133 if (ecrt_master_sdo_write(master, "1", 0x4061, 1, 0, 1) || |
|
134 ecrt_master_sdo_write(master, "1", 0x4061, 2, 1, 1) || |
|
135 ecrt_master_sdo_write(master, "1", 0x4061, 3, 1, 1) || |
|
136 ecrt_master_sdo_write(master, "1", 0x4066, 0, 0, 1) || |
|
137 ecrt_master_sdo_write(master, "1", 0x4067, 0, 4, 1) || |
|
138 ecrt_master_sdo_write(master, "1", 0x4068, 0, 0, 1) || |
|
139 ecrt_master_sdo_write(master, "1", 0x4069, 0, 25, 1) || |
|
140 ecrt_master_sdo_write(master, "1", 0x406A, 0, 25, 1) || |
|
141 ecrt_master_sdo_write(master, "1", 0x406B, 0, 50, 1)) { |
|
142 printk(KERN_ERR "EtherCAT: Failed to configure SSI!\n"); |
|
143 goto out_deactivate; |
|
144 } |
|
145 |
|
146 //ecrt_master_debug(master, 0); |
|
147 |
126 #ifdef ASYNC |
148 #ifdef ASYNC |
127 // Einmal senden und warten... |
149 // Einmal senden und warten... |
128 ecrt_master_prepare_async_io(master); |
150 ecrt_master_prepare_async_io(master); |
129 #endif |
151 #endif |
130 |
152 |