24 unsigned char sm0_2004[] = {0x00, 0x0F, 0x01, 0x00, 0x46, 0x00, 0x01, 0x00}; |
24 unsigned char sm0_2004[] = {0x00, 0x0F, 0x01, 0x00, 0x46, 0x00, 0x01, 0x00}; |
25 |
25 |
26 unsigned char sm2_31xx[] = {0x00, 0x10, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00}; |
26 unsigned char sm2_31xx[] = {0x00, 0x10, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00}; |
27 unsigned char sm3_31xx[] = {0x00, 0x11, 0x06, 0x00, 0x20, 0x00, 0x01, 0x00}; |
27 unsigned char sm3_31xx[] = {0x00, 0x11, 0x06, 0x00, 0x20, 0x00, 0x01, 0x00}; |
28 |
28 |
29 unsigned char sm2_4102[] = {0x00, 0x10, 0x04, 0x00, 0x24, 0x00, 0x01, 0x00}; |
29 unsigned char sm2_41xx[] = {0x00, 0x10, 0x04, 0x00, 0x24, 0x00, 0x01, 0x00}; |
30 |
30 |
31 |
31 |
32 unsigned char fmmu0_1014[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, |
32 unsigned char fmmu0_1014[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, |
33 0x00, 0x10, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00}; |
33 0x00, 0x10, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00}; |
34 |
34 |
36 0x00, 0x0F, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00}; |
36 0x00, 0x0F, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00}; |
37 |
37 |
38 unsigned char fmmu0_31xx[] = {0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x07, |
38 unsigned char fmmu0_31xx[] = {0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x07, |
39 0x00, 0x11, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00}; |
39 0x00, 0x11, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00}; |
40 |
40 |
41 unsigned char fmmu0_4102[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, |
41 unsigned char fmmu0_41xx[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, |
42 0x00, 0x10, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00}; |
42 0x00, 0x10, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00}; |
43 |
43 |
44 int read_1014(unsigned char *data, unsigned int channel) |
44 int read_1014(unsigned char *data, unsigned int channel) |
45 { |
45 { |
46 return (data[0] >> channel) & 0x01; |
46 return (data[0] >> channel) & 0x01; |
61 int read_31xx(unsigned char *data, unsigned int channel) |
61 int read_31xx(unsigned char *data, unsigned int channel) |
62 { |
62 { |
63 return (short int) ((data[channel * 3 + 2] << 8) | data[channel * 3 + 1]); |
63 return (short int) ((data[channel * 3 + 2] << 8) | data[channel * 3 + 1]); |
64 } |
64 } |
65 |
65 |
66 void write_4102(unsigned char *data, unsigned int channel, int value) |
66 void write_41xx(unsigned char *data, unsigned int channel, int value) |
67 { |
67 { |
68 data[channel * 3 + 1] = (value & 0xFF00) >> 8; |
68 data[channel * 3 + 1] = (value & 0xFF00) >> 8; |
69 data[channel * 3 + 2] = value & 0xFF; |
69 data[channel * 3 + 2] = value & 0xFF; |
70 } |
70 } |
71 |
71 |
101 NULL, write_2004 |
101 NULL, write_2004 |
102 }}; |
102 }}; |
103 |
103 |
104 EtherCAT_slave_desc_t Beckhoff_EL3102[] = |
104 EtherCAT_slave_desc_t Beckhoff_EL3102[] = |
105 {{ |
105 {{ |
106 "Beckhoff", "EL3102", "2x Analog Input Diff", |
106 "Beckhoff", "EL3102", "2x Analog Input diff.", |
107 ECAT_ST_MAILBOX, |
107 ECAT_ST_MAILBOX, |
108 sm0_multi, sm1_multi, sm2_31xx, sm3_31xx, |
108 sm0_multi, sm1_multi, sm2_31xx, sm3_31xx, |
109 fmmu0_31xx, |
109 fmmu0_31xx, |
110 6, 2, |
110 6, 2, |
111 read_31xx, NULL |
111 read_31xx, NULL |
123 |
123 |
124 EtherCAT_slave_desc_t Beckhoff_EL4102[] = |
124 EtherCAT_slave_desc_t Beckhoff_EL4102[] = |
125 {{ |
125 {{ |
126 "Beckhoff", "EL4102", "2x Analog Output", |
126 "Beckhoff", "EL4102", "2x Analog Output", |
127 ECAT_ST_MAILBOX, |
127 ECAT_ST_MAILBOX, |
128 sm0_multi, sm1_multi, sm2_4102, NULL, |
128 sm0_multi, sm1_multi, sm2_41xx, NULL, |
129 fmmu0_4102, |
129 fmmu0_41xx, |
130 4, 2, |
130 4, 2, |
131 NULL, write_4102 |
131 NULL, write_41xx |
|
132 }}; |
|
133 |
|
134 EtherCAT_slave_desc_t Beckhoff_EL4132[] = |
|
135 {{ |
|
136 "Beckhoff", "EL4132", "2x Analog Output diff.", |
|
137 ECAT_ST_MAILBOX, |
|
138 sm0_multi, sm1_multi, sm2_41xx, NULL, |
|
139 fmmu0_41xx, |
|
140 4, 2, |
|
141 NULL, write_41xx |
132 }}; |
142 }}; |
133 |
143 |
134 EtherCAT_slave_desc_t Beckhoff_EL5001[] = |
144 EtherCAT_slave_desc_t Beckhoff_EL5001[] = |
135 {{ |
145 {{ |
136 "Beckhoff", "EL5001", "SSI-Interface", |
146 "Beckhoff", "EL5001", "SSI-Interface", |
151 {0x00000002, 0x044C2C52, Beckhoff_EK1100}, |
161 {0x00000002, 0x044C2C52, Beckhoff_EK1100}, |
152 {0x00000002, 0x07D43052, Beckhoff_EL2004}, |
162 {0x00000002, 0x07D43052, Beckhoff_EL2004}, |
153 {0x00000002, 0x0C1E3052, Beckhoff_EL3102}, |
163 {0x00000002, 0x0C1E3052, Beckhoff_EL3102}, |
154 {0x00000002, 0x0C5A3052, Beckhoff_EL3162}, |
164 {0x00000002, 0x0C5A3052, Beckhoff_EL3162}, |
155 {0x00000002, 0x10063052, Beckhoff_EL4102}, |
165 {0x00000002, 0x10063052, Beckhoff_EL4102}, |
|
166 {0x00000002, 0x10243052, Beckhoff_EL4132}, |
156 {0x00000002, 0x13893052, Beckhoff_EL5001} |
167 {0x00000002, 0x13893052, Beckhoff_EL5001} |
157 }; |
168 }; |
158 |
169 |
159 /***************************************************************/ |
170 /***************************************************************/ |
160 |
171 |
162 EXPORT_SYMBOL(Beckhoff_EL1014); |
173 EXPORT_SYMBOL(Beckhoff_EL1014); |
163 EXPORT_SYMBOL(Beckhoff_EL2004); |
174 EXPORT_SYMBOL(Beckhoff_EL2004); |
164 EXPORT_SYMBOL(Beckhoff_EL3102); |
175 EXPORT_SYMBOL(Beckhoff_EL3102); |
165 EXPORT_SYMBOL(Beckhoff_EL3162); |
176 EXPORT_SYMBOL(Beckhoff_EL3162); |
166 EXPORT_SYMBOL(Beckhoff_EL4102); |
177 EXPORT_SYMBOL(Beckhoff_EL4102); |
|
178 EXPORT_SYMBOL(Beckhoff_EL4132); |
167 EXPORT_SYMBOL(Beckhoff_EL5001); |
179 EXPORT_SYMBOL(Beckhoff_EL5001); |