ApossC SDK  V01.15
SDK_Amplifier_Epos4.mc
Go to the documentation of this file.
1 
15 #pragma once
16 
17 #include <SysDef.mh>
18 #include "SDK_Amplifier_Epos4.mh"
19 
37 long sdkEpos4_SetupECatBusModule(long axis, long busId, long pdoNumber, long operationMode)
38 {
39  long busmod, slaveNo;
40 
41  busmod = axis;
42  slaveNo = (busId-1000000);
43 
44  print("sdkEpos4_SetupECatBusModule: ",busmod );
45 
46  BUSMOD_PARAM(busmod, BUSMOD_MODE) = BUSMOD_MODE_DEACTIVATE; // Deactivate (objects will be deleted)
47  BUSMOD_PARAM(busmod, BUSMOD_BUSTYPE) = BUSMOD_BUSTYPE_ECAT_M; // EtherCAT Master
48  BUSMOD_PARAM(busmod, BUSMOD_ID) = slaveNo; // Select the nodeid of the connected slave
49 
50  BUSMOD_PARAM(busmod, BUSMOD_PISRC_INPUT1) = VIRTAMP_PROCESS_SRCINDEX(axis,PO_VIRTAMP_CMDWORD); // Select the input value sources object (send to bus): CMD Word
51 
52  if (operationMode==EPOS4_OP_CSP) // cycle synchronous position (csp) mode
53  {
54  BUSMOD_PARAM(busmod, BUSMOD_PISRC_INPUT2) = VIRTAMP_PROCESS_SRCINDEX(axis,PO_VIRTAMP_REFPOS); // Select the input value sources object (send to bus): position setpoint
55  print("...: cycle synchronous position (csp) mode");
56  }
57  else if (operationMode==EPOS4_OP_CSV) // cycle synchronous velocity (csv) mode
58  {
59  BUSMOD_PARAM(busmod, BUSMOD_PISRC_INPUT2) = VIRTAMP_PROCESS_SRCINDEX(axis,PO_VIRTAMP_REFVEL); // Select the input value sources object (send to bus): velocity setvel
60  print("...: cycle synchronous velocity (csv) mode");
61  }
62  else if (operationMode == EPOS4_OP_CST) // cycle synchronous torque (cst) mode
63  {
64  BUSMOD_PARAM(busmod, BUSMOD_PISRC_INPUT2) = AXE_PROCESS_SRCINDEX(axis,REG_USERREFCUR); // Select the input value sources object (send to bus): target torque
65  print("...: cycle synchronous torque (cst) mode");
66  }
67  else // Error
68  {
69  print("...: not supported operation mode");
70  return(-1);
71  }
72 
73  BUSMOD_PARAM(busmod, BUSMOD_TXMAP_INPUT1) = pdoNumber*0x01000000 + 2*0x00010000 + 0; // pdo ; length in bytes; bytes offset control word
74  BUSMOD_PARAM(busmod, BUSMOD_TXMAP_INPUT2) = pdoNumber*0x01000000 + 4*0x00010000 + 2; // pdo ; length in bytes; bytes offset target position/ velocity
75 
76  BUSMOD_PARAM(busmod, BUSMOD_RXMAP_POVALUE1) = pdoNumber*0x01000000 + 2*0x00010000 + 0; // pdo ; length in bytes; bytes offset status word
77  BUSMOD_PARAM(busmod, BUSMOD_RXMAP_POVALUE2) = pdoNumber*0x01000000 + 4*0x00010000 + 2; // pdo ; length in bytes; bytes offset position actual value
78  BUSMOD_PARAM(busmod, BUSMOD_RXMAP_POVALUE3) = pdoNumber*0x01000000 + 4*0x00010000 + 6; // pdo ; length in bytes; bytes offset current actual value
79 
80  BUSMOD_PARAM(busmod, BUSMOD_MODE) = BUSMOD_MODE_ACTIVATE_NOSTOP; // Start bus module
81 
82  return(1);
83 }
84 
101 long sdkEpos4_SetupECatVirtAmp(long axis, long maxRpm, long operationMode)
102 {
103  print("sdkEpos4_SetupECatVirtAmp: ",axis );
104 
105  // virtual amplifiers have a fixed connection to axes number, axes 0 uses amplifier 0.
112 
118  VIRTAMP_PARAM(axis,VIRTAMP_CNTRLW_RESET) = 0x80;
119 
120  VIRTAMP_PARAM(axis,VIRTAMP_STOPDELAY) = 0x0;
121  VIRTAMP_PARAM(axis,VIRTAMP_ERROR_BITMASK) = 0x0008;
123 
124  if (operationMode==EPOS4_OP_CSP) // cycle synchronous position (csp) mode
125  {
126  VIRTAMP_PARAM(axis,VIRTAMP_REF100PERC) = 0; // not used in csp
127  VIRTAMP_PARAM(axis,VIRTAMP_REFLIMIT) = 0; // not used in csp
128  print("...: cycle synchronous position (csp) mode");
129  }
130  else if (operationMode==EPOS4_OP_CSV) // cycle synchronous velocity (csv) mode
131  {
132  VIRTAMP_PARAM(axis,VIRTAMP_REF100PERC) = maxRpm;
133  VIRTAMP_PARAM(axis,VIRTAMP_REFLIMIT) = 2* maxRpm;
134  print("...: cycle synchronous velocity (csv) mode");
135  }
136  else if (operationMode == EPOS4_OP_CST) // cycle synchronous torque (cst) mode
137  {
138  VIRTAMP_PARAM(axis,VIRTAMP_REF100PERC) = 0; // not used in cst
139  VIRTAMP_PARAM(axis,VIRTAMP_REFLIMIT) = 0; // not used in cst
140  print("...: cycle synchronous torque (cst) mode");
141  }
142  else // Error
143  {
144  print("...: not supported operation mode");
145  return(-1);
146  }
147 
148  VIRTAMP_PARAM(axis,VIRTAMP_MODE) = VIRTAMP_MODE_ENABLE; // has to be the last one because it activates all
149 
150  return(1);
151 }
152 
168 long sdkEpos4_SetupECatVirtCntin(long axis, long operationMode)
169 {
170  print("sdkEpos4_SetupECatVirtCntin: ",axis);
171 
173 
174  if (operationMode==EPOS4_OP_CSP) // cycle synchronous position (csp) mode
175  {
176  VIRTCOUNTIN_PARAM(axis,VIRTCNTIN_MODE) = VIRTCNTIN_MODE_ABSOLUTE_DIRECT; // Source is absolute and is taken as it is
177  print("...: cycle synchronous position (csp) mode");
178  }
179  else if (operationMode==EPOS4_OP_CSV) // cycle synchronous velocity (csv) mode
180  {
181  VIRTCOUNTIN_PARAM(axis,VIRTCNTIN_MODE) = VIRTCNTIN_MODE_ABSOLUTE; // Source is a position value and difference to last value is added
182  print("...: cycle synchronous velocity (csv) mode");
183  }
184  else // Error
185  {
186  print("...: not supported operation mode");
187  return(-1);
188  }
189 
190  return(1);
191 }
192 
209 long sdkEpos4_SetupECatSdoParam(long busId, long pdoNumber, long axisPolarity, long operationMode)
210 {
213 
214  print("sdkEpos4_SetupECatSdoParam Ax: ",busId," pdoNumber ",pdoNumber);
215 
216  SdoWriten( busId, sm_TX, 0x00, 1, 0x00); // disable entry
217  SdoWriten( busId, sm_RX, 0x00, 1, 0x00); // disable entry
218 
219  SdoWriten( busId, EPOS4_TRANSMIT_PDO_1_MAPPING, 0, 1, 0); // clear pdo 0x1a00 entries
220  SdoWriten( busId, EPOS4_TRANSMIT_PDO_1_MAPPING, 1, 4, 0x60410010); // download pdo 0x1A00 entry: statusword
221  SdoWriten( busId, EPOS4_TRANSMIT_PDO_1_MAPPING, 2, 4, 0x60640020); // download pdo 0x1A00 entry: actual position
222  SdoWriten( busId, EPOS4_TRANSMIT_PDO_1_MAPPING, 3, 4, 0x30D10120); // download pdo 0x1A00 entry: Current actual value averaged [mA] 0x30D1 / 1 32bit
223  SdoWriten( busId, EPOS4_TRANSMIT_PDO_1_MAPPING, 0, 1, 3); // download pdo 0x1A00 entry: number of entries
224 
225  SdoWriten( busId, EPOS4_TRANSMIT_PDO_2_MAPPING, 0, 1, 0); // clear pdo 0x1a01 entries
226  SdoWriten( busId, EPOS4_TRANSMIT_PDO_3_MAPPING, 0, 1, 0); // clear pdo 0x1a02 entries
227  SdoWriten( busId, EPOS4_TRANSMIT_PDO_4_MAPPING, 0, 1, 0); // clear pdo 0x1a03 entries
228 
229  SdoWriten( busId, EPOS4_RECEIVE_PDO_1_MAPPING, 0, 1, 0); // clear pdo 0x1600 entries
230  SdoWriten( busId, EPOS4_RECEIVE_PDO_1_MAPPING, 1, 4, 0x60400010); // download pdo 0x1600 entry: controlword
231 
232  if (operationMode==EPOS4_OP_CSP) // cycle synchronous position (csp) mode
233  {
234  SdoWriten( busId, EPOS4_RECEIVE_PDO_1_MAPPING, 2, 4, 0x607A0020); // download pdo 0x1600 entry: position set point
235  }
236  else if (operationMode==EPOS4_OP_CSV) // cycle synchronous velocity (csv) mode
237  {
238  SdoWriten( busId, EPOS4_RECEIVE_PDO_1_MAPPING, 2, 4, 0x60FF0020); // download pdo 0x1600 entry: target velocity 32bit
239  }
240  else if (operationMode == EPOS4_OP_CST) {
241  SdoWriten(busId, (EPOS4_RECEIVE_PDO_1_MAPPING), 2, 4, 0x60710010); // download pdo 0x1600 entry: Target torque 32bit
242  }
243 
244  SdoWriten( busId, EPOS4_RECEIVE_PDO_1_MAPPING, 0, 1, 2); // download pdo 0x1600 entry: number of entries
245 
246  SdoWriten( busId, EPOS4_RECEIVE_PDO_2_MAPPING, 0, 1, 0); // clear pdo 0x1601 entries
247  SdoWriten( busId, EPOS4_RECEIVE_PDO_3_MAPPING, 0, 1, 0); // clear pdo 0x1602 entries
248  SdoWriten( busId, EPOS4_RECEIVE_PDO_4_MAPPING, 0, 1, 0); // clear pdo 0x1603 entries
249 
250 
251  SdoWriten( busId, sm_TX, 1, 2, 0x1600); // download pdo 0x1C1@b 2:01 index
252  SdoWriten( busId, sm_TX, 0, 1, 1); // download pdo 0x1C12 count
253 
254  SdoWriten( busId, sm_RX, 1, 2, 0x1A00 ); // download pdo 0x1C13:01 index
255  SdoWriten( busId, sm_RX, 0, 1, 1); // download pdo 0x1C13 count
256 
257 
258  SdoWriten( busId, EPOS4_INTERPOLATION_TIME_PERIOD, 1, 0, 1); //interpolation time periode value
259 
260  if (axisPolarity==1) // set axis polarity
261  {
262  SdoWriten( busId, EPOS4_AXIS_CONFIGURATION, 4, 4, 1);
263  print("...: change axis direction");
264  }
265  else
266  {
267  SdoWriten( busId, EPOS4_AXIS_CONFIGURATION, 4, 4, 0);
268  }
269 
270  if (operationMode==EPOS4_OP_CSP)
271  {
272  SdoWriten( busId, EPOS4_MODES_OF_OPERATION, 0, 1, EPOS4_OP_CSP); // cycle synchronous position (csp) mode
273  print("...: cycle synchronous position (csp) mode");
274  }
275  else if (operationMode==EPOS4_OP_CSV)
276  {
277  SdoWriten( busId, EPOS4_MODES_OF_OPERATION, 0, 1, EPOS4_OP_CSV); // cycle synchronous velocity (csv) mode
278  print("...: cycle synchronous velocity (csv) mode");
279  }
280  else if (operationMode == EPOS4_OP_CST) {
281  SdoWriten(busId, EPOS4_MODES_OF_OPERATION, 0, 1, EPOS4_OP_CST); // cycle synchronous torque (cst) mode
282  print("...: cycle synchronous torque (cst) mode");
283  }
284  else // Error
285  {
286  print("...: not supported operation mode");
287  return(-1);
288  }
289 
290  return(1);
291 }
292 
313 long sdkEpos4_SetupCanBusModule(long axis, long busId, long pdoNumber, long operationMode)
314 {
315  long busmod, signedFlag;
316  busmod = axis;
317  signedFlag = 0x10000000;
318 
319  print("sdkEpos4_SetupCanBusModule: ", busmod);
320 
321  BUSMOD_PARAM(busmod, BUSMOD_MODE) = BUSMOD_MODE_DEACTIVATE; // Deactivate (objects will be deleted)
322  BUSMOD_PARAM(busmod, BUSMOD_BUSTYPE) = BUSMOD_BUSTYPE_CAN; // Can bus
323  BUSMOD_PARAM(busmod, BUSMOD_MODE) = BUSMOD_MODE_ACTIVATE; // Create bus module
324 
325  BUSMOD_PARAM(busmod, BUSMOD_BUSNO) = busId / 100000; // Bus number (0 = master, 1 = slave CAN bus)
326  BUSMOD_PARAM(busmod, BUSMOD_ID) = busId % 1000; // CAN Id for this bus module
327  BUSMOD_PARAM(busmod, BUSMOD_SYNC) = 1; // Sync active
328  BUSMOD_PARAM(busmod, BUSMOD_GUARDTIME) = 0; // no guarding
329 
330  BUSMOD_PARAM(busmod, BUSMOD_PISRC_INPUT1) = VIRTAMP_PROCESS_SRCINDEX(axis,PO_VIRTAMP_CMDWORD); // Select the input value sources object (send to bus): CMD Word
331 
332  if (operationMode == EPOS4_OP_CSP) // cycle synchronous position (csp) mode
333  {
334  BUSMOD_PARAM(busmod, BUSMOD_PISRC_INPUT2) = VIRTAMP_PROCESS_SRCINDEX(axis,PO_VIRTAMP_REFPOS); // Select the input value sources object (send to bus): position setpoint
335  print("...: cycle synchronous position (csp) mode");
336  }
337  else if (operationMode == EPOS4_OP_CSV) // cycle synchronous velocity (csv) mode
338  {
339  BUSMOD_PARAM(busmod, BUSMOD_PISRC_INPUT2) = VIRTAMP_PROCESS_SRCINDEX(axis,PO_VIRTAMP_REFVEL); // Select the input value sources object (send to bus): velocity setvel
340  print("...: cycle synchronous velocity (csv) mode");
341  }
342  else if (operationMode == EPOS4_OP_CST) // cycle synchronous torque (cst) mode
343  {
344  BUSMOD_PARAM(busmod, BUSMOD_PISRC_INPUT2) = AXE_PROCESS_SRCINDEX(axis,REG_USERREFCUR); // Select the input value sources object (send to bus): target torque
345  print("...: cycle synchronous torque (cst) mode");
346  }
347  else // Error
348  {
349  print("...: not supported operation mode");
350  return(-1);
351  }
352 
353  BUSMOD_PARAM(busmod, BUSMOD_TXMAP_INPUT1) = pdoNumber*0x01000000 + 2*0x00010000 + 0; // pdo ; length in bytes; bytes offset control word
354  BUSMOD_PARAM(busmod, BUSMOD_TXMAP_INPUT2) = pdoNumber*0x01000000 + 4*0x00010000 + 2; // pdo ; length in bytes; bytes offset target position/ velocity
355 
356  BUSMOD_PARAM(busmod, BUSMOD_RXMAP_POVALUE1) = pdoNumber*0x01000000 + 2*0x00010000 + 0; // pdo ; length in bytes; bytes offset status word
357  BUSMOD_PARAM(busmod, BUSMOD_RXMAP_POVALUE2) = pdoNumber*0x01000000 + 4*0x00010000 + 2; // pdo ; length in bytes; bytes offset position actual value
358  BUSMOD_PARAM(busmod, BUSMOD_RXMAP_POVALUE3) = signedFlag + pdoNumber*0x01000000 + 2*0x00010000 + 6; // pdo ; length in bytes; bytes offset torque actual value
359 
360  BUSMOD_PARAM(busmod, BUSMOD_MODE) = BUSMOD_MODE_ACTIVATE_NOSTOP; // Start bus module
361 
362  return(1);
363 }
364 
383 long sdkEpos4_SetupCanVirtAmp(long axis, long maxRpm, long operationMode)
384 {
385  print("sdkEpos4_SetupCanVirtAmp: ",axis );
386 
387  // virtual amplifiers have a fixed connection to axes number, axes 0 uses amplifier 0.
394 
400  VIRTAMP_PARAM(axis,VIRTAMP_CNTRLW_RESET) = 0x80;
401 
402  VIRTAMP_PARAM(axis,VIRTAMP_STOPDELAY) = 0x00;
405 
406  if (operationMode == EPOS4_OP_CSP) // cycle synchronous position (csp) mode
407  {
408  VIRTAMP_PARAM(axis,VIRTAMP_REF100PERC) = 0; // not used in csp
409  VIRTAMP_PARAM(axis,VIRTAMP_REFLIMIT) = 0; // not used in csp
410  print("...: cycle synchronous position (csp) mode");
411  }
412  else if (operationMode == EPOS4_OP_CSV) // cycle synchronous velocity (csv) mode
413  {
414  VIRTAMP_PARAM(axis,VIRTAMP_REF100PERC) = maxRpm;
415  VIRTAMP_PARAM(axis,VIRTAMP_REFLIMIT) = 2* maxRpm;
416  print("...: cycle synchronous velocity (csv) mode");
417  }
418  else if (operationMode == EPOS4_OP_CST) // cycle synchronous torque (cst) mode
419  {
420  VIRTAMP_PARAM(axis,VIRTAMP_REF100PERC) = 0; // not used in cst
421  VIRTAMP_PARAM(axis,VIRTAMP_REFLIMIT) = 0; // not used in cst
422  print("...: cycle synchronous torque (cst) mode");
423  }
424  else // Error
425  {
426  print("...: not supported operation mode");
427  return(-1);
428  }
429 
430  VIRTAMP_PARAM(axis,VIRTAMP_MODE) = VIRTAMP_MODE_ENABLE; // has to be the last one because it activates all
431 
432  return(1);
433 }
434 
450 long sdkEpos4_SetupCanVirtCntin(long axis, long operationMode)
451 {
452  print("sdkEpos4_SetupCanVirtCntin: ",axis);
453 
455 
456  if (operationMode == EPOS4_OP_CSP) // cycle synchronous position (csp) mode
457  {
458  VIRTCOUNTIN_PARAM(axis,VIRTCNTIN_MODE) = VIRTCNTIN_MODE_ABSOLUTE_DIRECT; // Source is absolute and is taken as it is
459  print("...: cycle synchronous position (csp) mode");
460  }
461  else if (operationMode == EPOS4_OP_CSV) // cycle synchronous velocity (csv) mode
462  {
463  VIRTCOUNTIN_PARAM(axis,VIRTCNTIN_MODE) = VIRTCNTIN_MODE_ABSOLUTE; // Source is a position value and difference to last value is added
464  print("...: cycle synchronous velocity (csv) mode");
465  }
466  else if (operationMode == EPOS4_OP_CST) // cycle synchronous torque (cst) mode
467  {
468  VIRTCOUNTIN_PARAM(axis,VIRTCNTIN_MODE) = VIRTCNTIN_MODE_ABSOLUTE_DIRECT; // Source is absolute and is taken as it is
469  print("...: cycle synchronous torque (cst) mode");
470  }
471  else // Error
472  {
473  print("...: not supported operation mode");
474  return(-1);
475  }
476 
477  return(1);
478 }
479 
497 long sdkEpos4_SetupCanSdoParam(long busId, long pdonumber, long axisPolarity, long operationMode)
499 {
500  long nodeid, last_value;
501  nodeid = busId % 100000;
502 
503  print("sdkEpos4_SetupCanSdoParam: " ,nodeid);
504 
505  if (axisPolarity==1){ // set axis polarity
506  SdoWrite( busId, EPOS4_AXIS_CONFIGURATION, 4, 1);
507  print("...: change axis direction");
508  }
509  else{
510  SdoWrite( busId, EPOS4_AXIS_CONFIGURATION, 4, 0);
511  }
512 
513  //interpolation time periode value
515  print("...: set interpolation time periode: ", GLB_PARAM(CANSYNCTIMER), " ms");
516 
517  // reset Transmittype
518  SdoWrite(busId, EPOS4_TRANSMIT_PDO_1_PARAMETER, 2, 255); // TxPDO1 Transmittype
519  SdoWrite(busId, EPOS4_TRANSMIT_PDO_2_PARAMETER, 2, 255); // TxPDO2 Transmittype
520  SdoWrite(busId, EPOS4_TRANSMIT_PDO_3_PARAMETER, 2, 255); // TxPDO3 Transmittype
521  SdoWrite(busId, EPOS4_TRANSMIT_PDO_4_PARAMETER, 2, 255); // TxPDO4 Transmittype
522 
523  // the pdos have to be disabled for configuring
524  last_value = (SdoRead(busId, EPOS4_TRANSMIT_PDO_1_PARAMETER, 1));
525  SdoWrite(busId, EPOS4_TRANSMIT_PDO_1_PARAMETER, 1, (last_value | 0x80000000)); // disable pdo 1
526  last_value = (SdoRead(busId, EPOS4_TRANSMIT_PDO_2_PARAMETER, 1));
527  SdoWrite(busId, EPOS4_TRANSMIT_PDO_2_PARAMETER, 1, (last_value | 0x80000000)); // disable pdo 2
528  last_value = (SdoRead(busId, EPOS4_TRANSMIT_PDO_3_PARAMETER, 1));
529  SdoWrite(busId, EPOS4_TRANSMIT_PDO_3_PARAMETER, 1, (last_value | 0x80000000)); // disable pdo 3
530  last_value = (SdoRead(busId, EPOS4_TRANSMIT_PDO_4_PARAMETER, 1));
531  SdoWrite(busId, EPOS4_TRANSMIT_PDO_4_PARAMETER, 1, (last_value | 0x80000000)); // disable pdo 4
532 
533  //the pdos have to be disabled for configuring
534  last_value = (SdoRead(busId, EPOS4_RECEIVE_PDO_1_PARAMETER, 1));
535  SdoWrite(busId, EPOS4_RECEIVE_PDO_1_PARAMETER, 1, (last_value | 0x80000000)); // disable pdo 1
536  last_value = (SdoRead(busId, EPOS4_RECEIVE_PDO_2_PARAMETER, 1));
537  SdoWrite(busId, EPOS4_RECEIVE_PDO_2_PARAMETER, 1, (last_value | 0x80000000)); // disable pdo 2
538  last_value = (SdoRead(busId, EPOS4_RECEIVE_PDO_3_PARAMETER, 1));
539  SdoWrite(busId, EPOS4_RECEIVE_PDO_3_PARAMETER, 1, (last_value | 0x80000000)); // disable pdo 3
540  last_value = (SdoRead(busId, EPOS4_RECEIVE_PDO_4_PARAMETER, 1));
541  SdoWrite(busId, EPOS4_RECEIVE_PDO_4_PARAMETER, 1, (last_value | 0x80000000)); // disable pdo 4
542 
543  // Now we setup the correct PDO transmission for Tx and Rx
544  SdoWrite(busId, (EPOS4_TRANSMIT_PDO_1_PARAMETER + pdonumber-1), 2, 1); // TxPDO Transmittype SYNC
545  SdoWrite(busId, (EPOS4_RECEIVE_PDO_1_PARAMETER + pdonumber-1), 2, 1); // RxPDO Transmittype SYNC
546 
547  // config RX PDO
548  SdoWrite(busId, (EPOS4_RECEIVE_PDO_1_MAPPING + pdonumber-1), 0x00, 0); // disable
549  SdoWrite(busId, (EPOS4_RECEIVE_PDO_1_MAPPING + pdonumber-1), 0x01, 0x60400010); // controlword
550 
551  if (operationMode == EPOS4_OP_CSP) { // cycle synchronous position (csp) mode
552  SdoWrite(busId, (EPOS4_RECEIVE_PDO_1_MAPPING + pdonumber-1), 2, 0x607A0020); // download pdo 0x1600 entry: position set point
553  SdoWrite(busId, EPOS4_MODES_OF_OPERATION, 0, EPOS4_OP_CSP); // mode of operation CSP
554  print("...: cycle synchronous position (csp) mode");
555  }
556  else if (operationMode == EPOS4_OP_CSV ) {
557  SdoWrite(busId, (EPOS4_RECEIVE_PDO_1_MAPPING + pdonumber-1), 2, 0x60FF0020); // download pdo 0x1600 entry: target velocity 32bit
558  SdoWrite(busId, EPOS4_MODES_OF_OPERATION, 0, EPOS4_OP_CSV); // mode of operation CSV
559  print("...: cycle synchronous velocity (csv) mode");
560  }
561  else if (operationMode == EPOS4_OP_CST) {
562  SdoWrite(busId, (EPOS4_RECEIVE_PDO_1_MAPPING + pdonumber-1), 2, 0x60710010); // download pdo 0x1600 entry: Target torque 32bit
563  SdoWrite(busId, EPOS4_MODES_OF_OPERATION, 0, EPOS4_OP_CST); // mode of operation CST
564  print("...: cycle synchronous torque (cst) mode");
565  }
566  else { // Error
567  print("...: not supported operation mode");
568  return(-1);
569  }
570  SdoWrite(busId, (EPOS4_RECEIVE_PDO_1_MAPPING + pdonumber - 1), 0x00, 2); // enable
571 
572  // config TX PDO
573  SdoWrite(busId, (EPOS4_TRANSMIT_PDO_1_MAPPING + pdonumber - 1), 0x00, 0); // disable
574  SdoWrite(busId, (EPOS4_TRANSMIT_PDO_1_MAPPING + pdonumber - 1), 0x01, 0x60410010); // statusword
575  SdoWrite(busId, (EPOS4_TRANSMIT_PDO_1_MAPPING + pdonumber - 1), 0x02, 0x60640020); // actpos
576  SdoWrite(busId, (EPOS4_TRANSMIT_PDO_1_MAPPING + pdonumber - 1), 0x03, 0x30D20110); // Torque actual value averaged
577  SdoWrite(busId, (EPOS4_TRANSMIT_PDO_1_MAPPING + pdonumber - 1), 0x00, 3 ); // enable
578 
579  // fill in the wanted pdo
580  SdoWrite(busId, (EPOS4_TRANSMIT_PDO_1_PARAMETER + pdonumber - 1), 1, (0x80000180 + (pdonumber - 1)*0x100 + nodeid) );// fill in pdo
581  SdoWrite(busId, (EPOS4_RECEIVE_PDO_1_PARAMETER + pdonumber - 1), 1, (0x80000200 + (pdonumber - 1)*0x100 + nodeid) );// fill in pdo
582 
583  // enable
584  SdoWrite(busId, (EPOS4_TRANSMIT_PDO_1_PARAMETER + pdonumber - 1), 1, (0x00000180 + (pdonumber - 1)*0x100 + nodeid) );// enable pdo
585  SdoWrite(busId, (EPOS4_RECEIVE_PDO_1_PARAMETER + pdonumber - 1), 1, (0x00000200 + (pdonumber - 1)*0x100 + nodeid) );// enable pdo
586 
587  return(1);
588 }
589 
607 long sdkEpos4_AxisHomingStart(long axis, long busId, long operationMode, long &homingState)
609 {
610  long time, displayMode;
611  long homingMethode = 0;
612 
613  time= Time()%1000;
614 
615  switch (homingState) {
616  case 0:
617  print("sdkEpos4_AxisHomingStart: " ,axis);
618  homingMethode = SdoRead(busId, EPOS4_HOMING_METHOD,0);
619  print("...: EPOS4 Homing AxisNo: ",axis," - Homing methode: ",homingMethode);
620  homingState = 1;
621  break;
622  case 1:
623  print("...: EPOS4 Homing AxisNo: ",axis," - Enable drive");
624  // The trajectory generator of the EPOS4 is used for homing. With this command the axis is switched on
625  // and the trajectory generator of the MACS is switched off. Thus REG_COMPOS = REG_ACTPOS is set.
626  AxisControl(axis, USERREFVEL);
627 
628  // x6060 Change operation mode to ”6: Homing mode.”
629  SdoWriten( busId, EPOS4_MODES_OF_OPERATION, 0, 1, EPOS4_OP_HMM);
630  print("...: EPOS4 Homing AxisNo: ",axis," - Set mode of OP: 0x06");
631 
632  homingState = 2;
633 
634  case 2:
635  displayMode = SdoRead(busId, EPOS4_MODES_OF_OPERATION_DISPLAY, 0);
636  if(displayMode== EPOS4_OP_HMM)
637  {
638  print("...: EPOS4 Homing AxisNo: ",axis," - Display mode of OP: ",displayMode);
639  homingState = 3;
640  }
641  else if(time==0)
642  {
643  printf("...: EPOS4 Homing AxisNo: %ld - Waiting for OP mode display: %lx\n",axis, VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS));
644  // This section must be called in a 1 ms loop because of the print function.
645  Delay(1);
646  }
647  break;
648 
649  case 3:
650  // Bit 2 Operation enabled - EPOS4 is ready to start
651  // Bit 10 Target reached - Homing procedure is interrupted or not started
652  if(VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS).i[2]==1 && VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS).i[10]==1)
653  {
654  printf("...: EPOS4 Homing AxisNo: %ld - Homing start signal Status: %lx\n",axis,VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS));
657  homingState = 4;
658  }
659  // Bit 13 Homingerror - Homing error occurred
660  else if(VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS).i[13]==1)
661  {
662  printf("...: EPOS4 Homing AxisNo: %ld - Homing Error - Status: %lx\n",axis, VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS));
663  return(-1);
664  }
665  else if(time==0)
666  {
667  printf("...: EPOS4 Homing AxisNo: %ld - Waiting for ready bit: %lx\n",axis, VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS));
668  // This section must be called in a 1 ms loop because of the print function.
669  Delay(1);
670  }
671  break;
672 
673  case 4:
674  // Homing procedure is completed successfully
675  if (VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS).i[12]==1)
676  {
677  printf("...: EPOS4 Homing AxisNo: %ld - Homing done - Status: %lx\n",axis, VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS));
678 
681 
682  SdoWriten(busId, 0x6060, 0, 1, operationMode ); // 0x6060 Change operation mode to ”xxx mode.”
683 
684  homingState = 5;
685  break;
686  }
687  // Bit 13 Homingerror - Homing error occurred
688  else if(VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS).i[13]==1)
689  {
690  printf("...: EPOS4 Homing AxisNo: %ld - Homing Error - Status: %lx\n",axis, VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS));
691  return(-1);
692  }
693  // Homing procedure is in progress
694  else if(time==0)
695  {
696  printf("...: EPOS4 Homing AxisNo: %ld - Homing in progress - Status: %lx\n",axis, VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS));
697  // This section must be called in a 1 ms loop because of the print function.
698  Delay(1);
699  }
700  break;
701 
702  case 5:
703  displayMode = SdoRead(busId, EPOS4_MODES_OF_OPERATION_DISPLAY, 0);
704  if(displayMode== operationMode)
705  {
706  print("...: EPOS4 Homing AxisNo: ",axis," - Display mode of OP: ",displayMode);
707  homingState = 6;
708  }
709  else if(time==0)
710  {
711  printf("...: EPOS4 Homing AxisNo: %ld - Waiting for OP mode display: %lx\n",axis, VIRTAMP_PROCESS(axis,PO_VIRTAMP_STATUS));
712  // This section must be called in a 1 ms loop because of the print function.
713  Delay(1);
714  }
715  case 6:
716  print("...: EPOS4 Homing AxisNo: ",axis," - Disable Drive");
717  AxisControl(axis, OFF);
718  homingState = 7;
719  case 7:
720  return(1);
721  default :
722  print("...: EPOS4 Homing AxisNo: ",axis," - Incorrect hominState value: ", homingState);
723  return(-1);
724  }
725 
726  return(0);
727 }
728 
735 void sdkEpos4_PrintErrorDescription(long errorCode)
736 {
737  switch (errorCode) {
738  case EPOS4_F_NO_ERROR:
739  printf("No error.");
740  break;
741  case EPOS4_F_GENERIC:
742  printf("Generic error.");
743  break;
744  case EPOS4_F_GENERIC_INIT1:
745  case EPOS4_F_GENERIC_INIT2:
746  case EPOS4_F_GENERIC_INIT3:
747  case EPOS4_F_GENERIC_INIT4:
748  case EPOS4_F_GENERIC_INIT5:
749  case EPOS4_F_GENERIC_INIT6:
750  case EPOS4_F_GENERIC_INIT7:
751  case EPOS4_F_GENERIC_INIT8:
752  case EPOS4_F_GENERIC_INIT9:
753  printf("Generic initialization error.");
754  break;
755  case EPOS4_F_FIRMWARE_INCOMPATIBILITY:
756  printf("Firmware incompatibility.");
757  break;
758  case EPOS4_F_OVERCURRENT:
759  printf("Overcurrent.");
760  break;
761  case EPOS4_F_POWER_STAGE_PROTECTION:
762  printf("Power stage protection.");
763  break;
764  case EPOS4_F_OVERVOLTAGE:
765  printf("Overvoltage.");
766  break;
767  case EPOS4_F_UNDERVOLTAGE:
768  printf("Undervoltage.");
769  break;
770  case EPOS4_F_THERMAL_OVERLOAD:
771  printf("Thermal overload.");
772  break;
773  case EPOS4_F_THERMAL_MOTOR_OVERLOAD:
774  printf("Thermal motor overload.");
775  break;
776  case EPOS4_F_LOGIC_VOLTAGE_LOW:
777  printf("Logic supply voltage too low.");
778  break;
779  case EPOS4_F_HARDWARE_DEFECT:
780  printf("Hardware defect.");
781  break;
782  case EPOS4_F_HARDWARE_INCOMPATIBILITY:
783  printf("Hardware incompatibility.");
784  break;
785  case EPOS4_F_HARDWARE1:
786  case EPOS4_F_HARDWARE2:
787  case EPOS4_F_HARDWARE3:
788  case EPOS4_F_HARDWARE4:
789  printf("Hardware error.");
790  break;
791  case EPOS4_F_SIGN_OF_LIFE:
792  printf("Sign of life.");
793  break;
794  case EPOS4_F_EXT_1_WATCHDOG:
795  printf("Extension 1 watchdog.");
796  break;
797  case EPOS4_F_INTERNAL_SOFTWARE:
798  printf("Internal software.");
799  break;
800  case EPOS4_F_SOFTWARE_PARAM:
801  printf("Software parameter error.");
802  break;
803  case EPOS4_F_PERSISTENT_PARAM_CORRUPT:
804  printf("Persistent param corrupt.");
805  break;
806  case EPOS4_F_POSITION_SENSOR:
807  printf("Position sensor error.");
808  break;
809  case EPOS4_F_POSITION_BREACH:
810  printf("Position breach.");
811  break;
812  case EPOS4_F_POSITION_RESOLUTION:
813  printf("Position resolution error.");
814  break;
815  case EPOS4_F_POSITION_INDEX:
816  printf("Position index.");
817  break;
818  case EPOS4_F_HALL_SENSOR:
819  printf("Hall sensor error.");
820  break;
821  case EPOS4_F_HALL_NOT_FOUND:
822  printf("Hall not found.");
823  break;
824  case EPOS4_F_HALL_ANGLE:
825  printf("Hall angle detection error.");
826  break;
827  case EPOS4_F_SSI_SENSOR:
828  printf("SSI sensor.");
829  break;
830  case EPOS4_F_SSI_FRAME:
831  printf("SSI frame.");
832  break;
833  case EPOS4_F_MISSING_MAIN_SENSOR:
834  printf("Missing main sensor.");
835  break;
836  case EPOS4_F_MISSING_COMM_SENSOR:
837  printf("Missing comm sensor.");
838  break;
839  case EPOS4_F_MAIN_SENSOR_DIR:
840  printf("Main sensor direction.");
841  break;
842  case EPOS4_F_CAN_OVERRUN_OBJ_LOST:
843  printf("CAN overrun (object lost).");
844  break;
845  case EPOS4_F_CAN_OVERRUN:
846  printf("CAN overrun.");
847  break;
848  case EPOS4_F_CAN_PASSIVE_MODE:
849  printf("CAN passive mode.");
850  break;
851  case EPOS4_F_CAN_HEARTBEAT:
852  printf("CAN heartbeat error.");
853  break;
854  case EPOS4_F_CAN_PDO_COB_ID_COLLISION:
855  printf("CAN PDO COB-ID collision.");
856  break;
857  case EPOS4_F_ETHERCAT_COMM:
858  printf("EtherCAT communication error.");
859  break;
860  case EPOS4_F_ETHERCAT_INIT:
861  printf("EtherCAT initialization error.");
862  break;
863  case EPOS4_F_ETHERCAT_RX_QUEUE:
864  printf("EtherCAT Rx queue overflow error.");
865  break;
866  case EPOS4_F_ETHERCAT_COMM_INTERNAL:
867  printf("EtherCAT communication (internal) error.");
868  break;
869  case EPOS4_F_ETHERCAT_CYCLE_TIME:
870  printf("EtherCAT communication cycle time error.");
871  break;
872  case EPOS4_F_CAN_BUS_OFF:
873  printf("CAN bus turned off.");
874  break;
875  case EPOS4_F_CAN_RX_QUEUE:
876  printf("CAN Rx queue overflow.");
877  break;
878  case EPOS4_F_CAN_TX_QUEUE:
879  printf("CAN Tx queue overflow.");
880  break;
881  case EPOS4_F_CAN_PDO_LENGTH:
882  printf("CAN PDO length error.");
883  break;
884  case EPOS4_F_RPDO_TIMEOUT:
885  printf("RPDO timeout.");
886  break;
887  case EPOS4_F_ETHERCAT_PDO_COMM:
888  printf("EtherCAT PDO communication error.");
889  break;
890  case EPOS4_F_ETHERCAT_SDO_COMM:
891  printf("EtherCAT SDO communication error.");
892  break;
893  case EPOS4_F_FOLLOWING:
894  printf("Following error.");
895  break;
896  case EPOS4_F_NEG_LIMIT_SWITCH:
897  printf("Negative limit switch error.");
898  break;
899  case EPOS4_F_POS_LIMIT_SWITCH:
900  printf("Positive limit switch error.");
901  break;
902  case EPOS4_F_SOFTWARE_POSITION_LIMIT:
903  printf("Software position limit error.");
904  break;
905  case EPOS4_F_STO:
906  printf("STO error.");
907  break;
908  case EPOS4_F_SYSTEM_OVERLOADED:
909  printf("System overloaded.");
910  break;
911  case EPOS4_F_WATCHDOG:
912  printf("Watchdog error.");
913  break;
914  case EPOS4_F_SYSTEM_PEAK_OVERLOADED:
915  printf("System peak overloaded.");
916  break;
917  case EPOS4_F_CONTROLLER_GAIN:
918  printf("Controller gain error.");
919  break;
920  case EPOS4_F_AUTO_TUNING_ID:
921  printf("Auto tuning identification error.");
922  break;
923  case EPOS4_F_AUTO_TUNING_CURRENT_LIMIT:
924  printf("Auto tuning current limit error.");
925  break;
926  case EPOS4_F_AUTO_TUNING_ID_CURRENT:
927  printf("Auto tuning identification current error.");
928  break;
929  case EPOS4_F_AUTO_TUNING_DATA_SAMPLING:
930  printf("Auto tuning data sampling error.");
931  break;
932  case EPOS4_F_AUTO_TUNING_SAMPLE_MISMATCH:
933  printf("Auto tuning sample mismatch error.");
934  break;
935  case EPOS4_F_AUTO_TUNING_PARAM:
936  printf("Auto tuning parameter error.");
937  break;
938  case EPOS4_F_AUTO_TUNING_AMPLITUDE_MISMATCH:
939  printf("Auto tuning amplitude mismatch error.");
940  break;
941  case EPOS4_F_AUTO_TUNING_TIMEOUT:
942  printf("Auto tuning timeout error.");
943  break;
944  case EPOS4_F_AUTO_TUNING_STANDSTILL:
945  printf("Auto tuning standstill error.");
946  break;
947  case EPOS4_F_AUTO_TUNING_TORQUE_INVALID:
948  printf("Auto tuning torque invalid error.");
949  break;
950  case EPOS4_F_AUTO_TUNING_MAX_SPEED:
951  printf("Auto tuning max system speed error.");
952  break;
953  case EPOS4_F_AUTO_TUNING_MOTOR_CONNECTION:
954  printf("Auto tuning motor connection error.");
955  break;
956  case EPOS4_F_AUTO_TUNING_SENSOR_SIGNAL:
957  printf("Auto tuning sensor signal error.");
958  break;
959  default:
960  if(errorCode >= 0x6180 && errorCode <= 0x61F0) //0x6180 through 0x61F0 is internal software error
961  {
962  printf("Internal software error.");
963  }
964  else
965  {
966  printf("Unknown error code: 0x%04X\n", errorCode);
967  }
968  break;
969  }
970 }
VIRTCNTIN_MODE
#define VIRTCNTIN_MODE
Counter mode.
Definition: SdoDictionary.mh:5003
sdkEpos4_SetupECatVirtCntin
long sdkEpos4_SetupECatVirtCntin(long axis, long operationMode)
Setup the virtual counter input for an Epos4 with EtherCat.
Definition: SDK_Amplifier_Epos4.mc:168
sdkEpos4_SetupCanVirtAmp
long sdkEpos4_SetupCanVirtAmp(long axis, long maxRpm, long operationMode)
Setup the virtual amplifier for an Epos4 with Can bus.
Definition: SDK_Amplifier_Epos4.mc:383
BUSMOD_MODE_ACTIVATE_NOSTOP
#define BUSMOD_MODE_ACTIVATE_NOSTOP
Definition: SdoDictionary.mh:11306
PID_FFACCPART
#define PID_FFACCPART
Definition: SdoDictionary.mh:3454
EPOS4_MODES_OF_OPERATION_DISPLAY
#define EPOS4_MODES_OF_OPERATION_DISPLAY
Definition: SDK_Amplifier_Epos4.mh:133
EPOS4_RECEIVE_PDO_3_PARAMETER
#define EPOS4_RECEIVE_PDO_3_PARAMETER
Definition: SDK_Amplifier_Epos4.mh:45
VIRTCOUNTIN_PARAM
#define VIRTCOUNTIN_PARAM(modno, parno)
Virtual Counter Inputs parameters: Setter.
Definition: SdoDictionary.mh:4985
VIRTAMP_PROCESS_SRCINDEX
#define VIRTAMP_PROCESS_SRCINDEX(modno, parno)
Virtual Amplifier Process Data: Source Index.
Definition: SdoDictionary.mh:6404
EPOS4_INTERPOLATION_TIME_PERIOD
#define EPOS4_INTERPOLATION_TIME_PERIOD
Definition: SDK_Amplifier_Epos4.mh:181
VIRTAMP_CNTRLW_QUICKSTOP
#define VIRTAMP_CNTRLW_QUICKSTOP
Controlword to stop drive with internal ramps.
Definition: SdoDictionary.mh:5395
BUSMOD_ID
#define BUSMOD_ID
Slave node id.
Definition: SdoDictionary.mh:11017
BUSMOD_BUSTYPE_ECAT_M
#define BUSMOD_BUSTYPE_ECAT_M
Definition: SdoDictionary.mh:11311
VIRTAMP_ERROR_POLARITY
#define VIRTAMP_ERROR_POLARITY
Polarity of Error Bit.
Definition: SdoDictionary.mh:5521
VIRTAMP_CNTRLW_RESET
#define VIRTAMP_CNTRLW_RESET
Controlword to reset from error.
Definition: SdoDictionary.mh:5405
SDK_Amplifier_Epos4.mh
Declaration of the Epos4 function.
EPOS4_TRANSMIT_PDO_4_MAPPING
#define EPOS4_TRANSMIT_PDO_4_MAPPING
Definition: SDK_Amplifier_Epos4.mh:58
EPOS4_OP_CST
#define EPOS4_OP_CST
Definition: SDK_Amplifier_Epos4.mh:132
sdkEpos4_AxisHomingStart
long sdkEpos4_AxisHomingStart(long axis, long busId, long operationMode, long &homingState)
State machine function for performing a homing on an EPOS4.
Definition: SDK_Amplifier_Epos4.mc:607
EPOS4_SYNC_MANAGER_2_PDO_ASSIGNMENT
#define EPOS4_SYNC_MANAGER_2_PDO_ASSIGNMENT
Definition: SDK_Amplifier_Epos4.mh:60
EPOS4_RECEIVE_PDO_1_PARAMETER
#define EPOS4_RECEIVE_PDO_1_PARAMETER
Definition: SDK_Amplifier_Epos4.mh:43
VIRTAMP_PISRC_CMDWORD
#define VIRTAMP_PISRC_CMDWORD
Index/subindex of command word.
Definition: SdoDictionary.mh:5300
sdkEpos4_SetupCanBusModule
long sdkEpos4_SetupCanBusModule(long axis, long busId, long pdoNumber, long operationMode)
Setup the Can bus module for an Epos4.
Definition: SDK_Amplifier_Epos4.mc:313
EPOS4_TRANSMIT_PDO_1_PARAMETER
#define EPOS4_TRANSMIT_PDO_1_PARAMETER
Definition: SDK_Amplifier_Epos4.mh:51
VIRTAMP_REF100PERC
#define VIRTAMP_REF100PERC
Output reference value to use at 100 percent.
Definition: SdoDictionary.mh:5442
EPOS4_OP_CSP
#define EPOS4_OP_CSP
Definition: SDK_Amplifier_Epos4.mh:130
BUSMOD_RXMAP_POVALUE2
#define BUSMOD_RXMAP_POVALUE2
Mapping for RX PDOs (receive from bus)
Definition: SdoDictionary.mh:11216
BUSMOD_BUSTYPE
#define BUSMOD_BUSTYPE
Bus type.
Definition: SdoDictionary.mh:10996
BUSMOD_MODE_ACTIVATE
#define BUSMOD_MODE_ACTIVATE
Definition: SdoDictionary.mh:11305
PO_VIRTAMP_REFVEL
#define PO_VIRTAMP_REFVEL
Output reference velocity.
Definition: SdoDictionary.mh:6438
EPOS4_MODES_OF_OPERATION
#define EPOS4_MODES_OF_OPERATION
Definition: SDK_Amplifier_Epos4.mh:126
PO_BUSMOD_VALUE1
#define PO_BUSMOD_VALUE1
Output value of the RX PDOs.
Definition: SdoDictionary.mh:12804
VIRTAMP_PISRC_STATUS
#define VIRTAMP_PISRC_STATUS
Index/subindex of status.
Definition: SdoDictionary.mh:5335
BUSMOD_BUSTYPE_CAN
#define BUSMOD_BUSTYPE_CAN
Definition: SdoDictionary.mh:11309
VIRTCNTIN_MODE_ABSOLUTE
#define VIRTCNTIN_MODE_ABSOLUTE
Definition: SdoDictionary.mh:5080
REG_REFERENCE
#define REG_REFERENCE
Actual reference value generated by position control loop.
Definition: SdoDictionary.mh:3290
BUSMOD_PISRC_INPUT2
#define BUSMOD_PISRC_INPUT2
Index and subindex of Input value.
Definition: SdoDictionary.mh:10872
CANSYNCTIMER
#define CANSYNCTIMER
Cycle time for sending SYNC telegrams on the CAN bus.
Definition: SdoDictionary.mh:132
BUSMOD_TXMAP_INPUT1
#define BUSMOD_TXMAP_INPUT1
Mapping for TX PDOs (send to bus)
Definition: SdoDictionary.mh:11097
sdkEpos4_SetupECatBusModule
long sdkEpos4_SetupECatBusModule(long axis, long busId, long pdoNumber, long operationMode)
Setup the ECAT bus module for an Epos4.
Definition: SDK_Amplifier_Epos4.mc:37
EPOS4_TRANSMIT_PDO_3_PARAMETER
#define EPOS4_TRANSMIT_PDO_3_PARAMETER
Definition: SDK_Amplifier_Epos4.mh:53
EPOS4_OP_HMM
#define EPOS4_OP_HMM
Definition: SDK_Amplifier_Epos4.mh:129
VIRTAMP_PARAM
#define VIRTAMP_PARAM(modno, parno)
Virtual Amplifier Parameters: Setter.
Definition: SdoDictionary.mh:5280
EPOS4_TRANSMIT_PDO_4_PARAMETER
#define EPOS4_TRANSMIT_PDO_4_PARAMETER
Definition: SDK_Amplifier_Epos4.mh:54
BUSMOD_RXMAP_POVALUE1
#define BUSMOD_RXMAP_POVALUE1
Mapping for RX PDOs (receive from bus)
Definition: SdoDictionary.mh:11202
VIRTAMP_ERROR_BITMASK
#define VIRTAMP_ERROR_BITMASK
Bitmask to detect error condition.
Definition: SdoDictionary.mh:5510
EPOS4_RECEIVE_PDO_3_MAPPING
#define EPOS4_RECEIVE_PDO_3_MAPPING
Definition: SDK_Amplifier_Epos4.mh:49
EPOS4_TRANSMIT_PDO_1_MAPPING
#define EPOS4_TRANSMIT_PDO_1_MAPPING
Definition: SDK_Amplifier_Epos4.mh:55
EPOS4_TRANSMIT_PDO_2_MAPPING
#define EPOS4_TRANSMIT_PDO_2_MAPPING
Definition: SDK_Amplifier_Epos4.mh:56
REG_USERREFCUR
#define REG_USERREFCUR
Motor current reference value in AxisControl(USERREFCUR) mode.
Definition: SdoDictionary.mh:3414
BUSMOD_BUSNO
#define BUSMOD_BUSNO
Bus number.
Definition: SdoDictionary.mh:11006
VIRTAMP_STOPDELAY
#define VIRTAMP_STOPDELAY
Delay after a STOP command.
Definition: SdoDictionary.mh:5491
BUSMOD_PROCESS_SRCINDEX
#define BUSMOD_PROCESS_SRCINDEX(modno, parno)
Bus Module Process Data: Source Index.
Definition: SdoDictionary.mh:12789
VIRTAMP_PROCESS
#define VIRTAMP_PROCESS(modno, parno)
Virtual Amplifier Process Data: Setter.
Definition: SdoDictionary.mh:6410
VIRTAMP_PISRC_REFACC
#define VIRTAMP_PISRC_REFACC
Index/subindex of acceleration/current reference.
Definition: SdoDictionary.mh:5321
sdkEpos4_SetupECatVirtAmp
long sdkEpos4_SetupECatVirtAmp(long axis, long maxRpm, long operationMode)
Setup the virtual amplifier for an Epos4 with EtherCat.
Definition: SDK_Amplifier_Epos4.mc:101
PO_BUSMOD_VALUE3
#define PO_BUSMOD_VALUE3
Output value of the RX PDOs.
Definition: SdoDictionary.mh:12814
PO_VIRTAMP_CMDWORD
#define PO_VIRTAMP_CMDWORD
Output command word.
Definition: SdoDictionary.mh:6426
VIRTAMP_CNTRLW_PWRONENN
#define VIRTAMP_CNTRLW_PWRONENN
Controlword to use in power on enable negative direction state (could be same as above)
Definition: SdoDictionary.mh:5385
VIRTAMP_PISRC_CURRENT
#define VIRTAMP_PISRC_CURRENT
Index/subindex of current.
Definition: SdoDictionary.mh:5328
EPOS4_RECEIVE_PDO_2_MAPPING
#define EPOS4_RECEIVE_PDO_2_MAPPING
Definition: SDK_Amplifier_Epos4.mh:48
VIRTAMP_CNTRLW_PWRONENP
#define VIRTAMP_CNTRLW_PWRONENP
Controlword to use in power on enable positive direction state.
Definition: SdoDictionary.mh:5375
BUSMOD_MODE_DEACTIVATE
#define BUSMOD_MODE_DEACTIVATE
Definition: SdoDictionary.mh:11304
EPOS4_RECEIVE_PDO_2_PARAMETER
#define EPOS4_RECEIVE_PDO_2_PARAMETER
Definition: SDK_Amplifier_Epos4.mh:44
EPOS4_TRANSMIT_PDO_2_PARAMETER
#define EPOS4_TRANSMIT_PDO_2_PARAMETER
Definition: SDK_Amplifier_Epos4.mh:52
VIRTAMP_MODE_ENABLE
#define VIRTAMP_MODE_ENABLE
Definition: SdoDictionary.mh:5581
sdkEpos4_PrintErrorDescription
void sdkEpos4_PrintErrorDescription(long errorCode)
Prints a error description for Epos4 errors.
Definition: SDK_Amplifier_Epos4.mc:735
PO_VIRTAMP_REFPOS
#define PO_VIRTAMP_REFPOS
Output reference position.
Definition: SdoDictionary.mh:6432
EPOS4_SYNC_MANAGER_3_PDO_ASSIGNMENT
#define EPOS4_SYNC_MANAGER_3_PDO_ASSIGNMENT
Definition: SDK_Amplifier_Epos4.mh:61
REG_COMPOS
#define REG_COMPOS
Set-point position value.
Definition: SdoDictionary.mh:3207
AXE_PROCESS_SRCINDEX
#define AXE_PROCESS_SRCINDEX(modno, parno)
Axis Process Data: Source Index.
Definition: SdoDictionary.mh:3181
sdkEpos4_SetupECatSdoParam
long sdkEpos4_SetupECatSdoParam(long busId, long pdoNumber, long axisPolarity, long operationMode)
Setup the Sdo parameter for an Epos4 with EtherCat.
Definition: SDK_Amplifier_Epos4.mc:209
EPOS4_OP_CSV
#define EPOS4_OP_CSV
Definition: SDK_Amplifier_Epos4.mh:131
EPOS4_RECEIVE_PDO_4_MAPPING
#define EPOS4_RECEIVE_PDO_4_MAPPING
Definition: SDK_Amplifier_Epos4.mh:50
BUSMOD_MODE
#define BUSMOD_MODE
Activate / Deactivate.
Definition: SdoDictionary.mh:10839
EPOS4_TRANSMIT_PDO_3_MAPPING
#define EPOS4_TRANSMIT_PDO_3_MAPPING
Definition: SDK_Amplifier_Epos4.mh:57
EPOS4_HOMING_METHOD
#define EPOS4_HOMING_METHOD
Definition: SDK_Amplifier_Epos4.mh:153
VIRTAMP_MODE
#define VIRTAMP_MODE
Mode of operation.
Definition: SdoDictionary.mh:5293
EPOS4_AXIS_CONFIGURATION
#define EPOS4_AXIS_CONFIGURATION
Definition: SDK_Amplifier_Epos4.mh:79
BUSMOD_SYNC
#define BUSMOD_SYNC
Sync interval (only for CAN)
Definition: SdoDictionary.mh:11032
REG_CNTRLWORD
#define REG_CNTRLWORD
Definition: SdoDictionary.mh:3369
VIRTAMP_CNTRLW_PWROFF
#define VIRTAMP_CNTRLW_PWROFF
Controlword to use in power off state.
Definition: SdoDictionary.mh:5355
BUSMOD_RXMAP_POVALUE3
#define BUSMOD_RXMAP_POVALUE3
Mapping for RX PDOs (receive from bus)
Definition: SdoDictionary.mh:11230
VIRTAMP_PISRC_REFPOS
#define VIRTAMP_PISRC_REFPOS
Index/subindex of position reference.
Definition: SdoDictionary.mh:5307
GLB_PARAM
#define GLB_PARAM(parno)
Global Parameters: Setter.
Definition: SdoDictionary.mh:67
BUSMOD_GUARDTIME
#define BUSMOD_GUARDTIME
Guard interval.
Definition: SdoDictionary.mh:11047
BUSMOD_PISRC_INPUT1
#define BUSMOD_PISRC_INPUT1
Index and subindex of Input value.
Definition: SdoDictionary.mh:10864
sdkEpos4_SetupCanVirtCntin
long sdkEpos4_SetupCanVirtCntin(long axis, long operationMode)
Setup the virtual counter input for an Epos4 with Can bus.
Definition: SDK_Amplifier_Epos4.mc:450
PO_VIRTAMP_STATUS
#define PO_VIRTAMP_STATUS
Status.
Definition: SdoDictionary.mh:6420
VIRTCNTIN_MODE_ABSOLUTE_DIRECT
#define VIRTCNTIN_MODE_ABSOLUTE_DIRECT
Definition: SdoDictionary.mh:5083
VIRTAMP_PISRC_REFVEL
#define VIRTAMP_PISRC_REFVEL
Index/subindex of velocity reference.
Definition: SdoDictionary.mh:5314
VIRTAMP_REFLIMIT
#define VIRTAMP_REFLIMIT
Output reference limit.
Definition: SdoDictionary.mh:5449
BUSMOD_PARAM
#define BUSMOD_PARAM(modno, parno)
Bus Module Parameters: Setter.
Definition: SdoDictionary.mh:10813
VIRTAMP_CNTRLW_PWRONDIS
#define VIRTAMP_CNTRLW_PWRONDIS
Controlword to use in power on disable state.
Definition: SdoDictionary.mh:5365
EPOS4_RECEIVE_PDO_4_PARAMETER
#define EPOS4_RECEIVE_PDO_4_PARAMETER
Definition: SDK_Amplifier_Epos4.mh:46
BUSMOD_TXMAP_INPUT2
#define BUSMOD_TXMAP_INPUT2
Mapping for TX PDOs (send to bus)
Definition: SdoDictionary.mh:11110
VIRTCNTIN_PISRC_COUNTER
#define VIRTCNTIN_PISRC_COUNTER
Index/subindex of counter source.
Definition: SdoDictionary.mh:5030
sdkEpos4_SetupCanSdoParam
long sdkEpos4_SetupCanSdoParam(long busId, long pdonumber, long axisPolarity, long operationMode)
Setup the Sdo parameter for an Epos4.
Definition: SDK_Amplifier_Epos4.mc:497
PO_BUSMOD_VALUE2
#define PO_BUSMOD_VALUE2
Output value of the RX PDOs.
Definition: SdoDictionary.mh:12809
EPOS4_RECEIVE_PDO_1_MAPPING
#define EPOS4_RECEIVE_PDO_1_MAPPING
Definition: SDK_Amplifier_Epos4.mh:47

Data Sheets | Released Software | Software Manuals | Hardware Manuals | Maxon Shop

Maxon Support Center