34 // Kanäle |
34 // Kanäle |
35 uint32_t k_pos; |
35 uint32_t k_pos; |
36 uint8_t k_stat; |
36 uint8_t k_stat; |
37 |
37 |
38 ec_field_init_t domain1_fields[] = { |
38 ec_field_init_t domain1_fields[] = { |
39 {&r_ssi_input, "1", "Beckhoff", "EL5001", "InputValue", 0}, |
39 {NULL, "1", "Beckhoff", "EL1014", "InputValue", 0}, |
40 {&r_ssi_status, "1", "Beckhoff", "EL5001", "Status", 0}, |
40 {NULL, "2", "Beckhoff", "EL1014", "InputValue", 0}, |
41 {NULL, "2", "Beckhoff", "EL4132", "OutputValue", 0}, |
41 {NULL, "3", "Beckhoff", "EL1014", "InputValue", 0}, |
42 {NULL, "3", "Beckhoff", "EL3162", "InputValue", 0}, |
42 {NULL, "4", "Beckhoff", "EL1014", "InputValue", 0}, |
43 {r_4102, "4", "Beckhoff", "EL4102", "OutputValue", 0, 2}, |
43 {NULL, "5", "Beckhoff", "EL1014", "InputValue", 0}, |
44 {NULL, "5", "Beckhoff", "EL5001", "InputValue", 0}, |
44 {NULL, "6", "Beckhoff", "EL2004", "OutputValue", 0}, |
45 {NULL, "6", "Beckhoff", "EL1014", "InputValue", 0}, |
45 {NULL, "7", "Beckhoff", "EL2004", "OutputValue", 0}, |
46 {NULL, "#0xBEEF:7", "Beckhoff", "EL2004", "OutputValue", 0}, |
46 {NULL, "8", "Beckhoff", "EL2004", "OutputValue", 0}, |
47 {NULL, "8", "Beckhoff", "EL4132", "OutputValue", 0}, |
|
48 {NULL, "#48879:9", "Beckhoff", "EL4132", "OutputValue", 0}, |
|
49 {} |
47 {} |
50 }; |
48 }; |
51 |
49 |
52 /*****************************************************************************/ |
50 /*****************************************************************************/ |
53 |
51 |
59 // Prozessdaten empfangen |
57 // Prozessdaten empfangen |
60 ecrt_master_async_receive(master); |
58 ecrt_master_async_receive(master); |
61 ecrt_domain_process(domain1); |
59 ecrt_domain_process(domain1); |
62 |
60 |
63 // Prozessdaten verarbeiten |
61 // Prozessdaten verarbeiten |
64 k_pos = EC_READ_U32(r_ssi_input); |
62 //k_pos = EC_READ_U32(r_ssi_input); |
65 k_stat = EC_READ_U8(r_ssi_status); |
63 //k_stat = EC_READ_U8(r_ssi_status); |
66 |
64 |
67 // Prozessdaten senden |
65 // Prozessdaten senden |
68 ecrt_domain_queue(domain1); |
66 ecrt_domain_queue(domain1); |
69 ecrt_master_async_send(master); |
67 ecrt_master_async_send(master); |
70 #else |
68 #else |
72 ecrt_domain_queue(domain1); |
70 ecrt_domain_queue(domain1); |
73 ecrt_master_sync_io(master); |
71 ecrt_master_sync_io(master); |
74 ecrt_domain_process(domain1); |
72 ecrt_domain_process(domain1); |
75 |
73 |
76 // Prozessdaten verarbeiten |
74 // Prozessdaten verarbeiten |
77 k_pos = EC_READ_U32(r_ssi_input); |
75 //k_pos = EC_READ_U32(r_ssi_input); |
78 k_stat = EC_READ_U8(r_ssi_status); |
76 //k_stat = EC_READ_U8(r_ssi_status); |
79 #endif |
77 #endif |
80 |
78 |
81 if (counter) { |
79 if (counter) { |
82 counter--; |
80 counter--; |
83 } |
81 } |
84 else { |
82 else { |
85 counter = ABTASTFREQUENZ; |
83 counter = ABTASTFREQUENZ; |
86 printk(KERN_INFO "k_pos = %i\n", k_pos); |
84 //printk(KERN_INFO "k_pos = %i\n", k_pos); |
87 printk(KERN_INFO "k_stat = 0x%02X\n", k_stat); |
85 //printk(KERN_INFO "k_stat = 0x%02X\n", k_stat); |
88 } |
86 } |
89 |
87 |
90 // Timer neu starten |
88 // Timer neu starten |
91 timer.expires += HZ / ABTASTFREQUENZ; |
89 timer.expires += HZ / ABTASTFREQUENZ; |
92 add_timer(&timer); |
90 add_timer(&timer); |