EtherCAT slave that reads 3 Xsens IMU's connected to a Xbus Master
Dependencies: MODSERIAL mbed KL25Z_ClockControl
Fork of EtherCAT by
Diff: EtherCAT/objectlist.h
- Revision:
- 4:bb72df6dce33
- Parent:
- 3:3761315146ec
- Child:
- 5:6d75f432a41f
--- a/EtherCAT/objectlist.h Thu Dec 11 21:55:47 2014 +0000 +++ b/EtherCAT/objectlist.h Thu Dec 11 22:31:10 2014 +0000 @@ -133,23 +133,18 @@ _ac acName1C12[]="Sync Manager 2 PDO Assignment"; _ac acName1C13[]="Sync Manager 3 PDO Assignment"; _ac acNameNOE[]="Number of entries"; -_ac acName6000[]="Digital Inputs"; +_ac acName6000[]="Centre of Pressure"; /*Subindexes for Digital Inputs*/ -_ac acName6000_01[]="Status"; -_ac acName6000_02[]="Counter"; -_ac acName6000_03[]="Digital inputs"; +_ac acName6000_01[]="Centre of Pressure X"; +_ac acName6000_02[]="Centre of Pressure Y"; /*End of subindexes for Digital Inputs*/ -_ac acName6001[]="Analog Inputs"; +_ac acName6001[]="Raw Sensor Inputs"; /*Subindexes for Analog inputs*/ _ac acName6001_01[]="Analog 1"; _ac acName6001_02[]="Analog 2"; _ac acName6001_03[]="Analog 3"; _ac acName6001_04[]="Analog 4"; -_ac acName6001_05[]="Analog 5"; -_ac acName6001_06[]="Analog 6"; -_ac acName6001_07[]="Analog 7"; -_ac acName6001_08[]="Analog 8"; -_ac acName6001_09[]="Timestamp"; +_ac acName6001_05[]="Timestamp"; /*End of subindexes for Analog inputs*/ _ac acName7000[]="Outputs"; /*Subindexes of Outputs*/ @@ -196,22 +191,17 @@ {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x70000208} //Second Object, pointing to object 7001:02 }; const _objd SDO1A00[]= //TxPDO mapping (objects from slave to master) -{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x03}, //Number of TxPDOs - {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000108}, //First Object, pointing to object 6000:01 - {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000208}, //Second Object, pointing to object 6000:02 - {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000308} //.. +{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x02}, //Number of TxPDOs + {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000120}, //First Object, pointing to object 6000:01 + {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000220}, //Second Object, pointing to object 6000:02 //.. }; const _objd SDO1A10[]= //Second TxPDO module -{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x09}, - {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010110}, - {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010210}, - {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010310}, - {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010410}, - {0x05,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010510}, - {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010610}, - {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010710}, - {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010810}, - {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010920} +{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x05}, + {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010120}, + {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010220}, + {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010320}, + {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010420}, + {0x05,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010520} }; const _objd SDO1C00[]= //Sync Manager {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x04}, //Number of used Sync Manager channels @@ -234,22 +224,18 @@ {0x02,DTYPE_UNSIGNED16,16,ATYPE_RWpre,&acNameMO[0],0x1A10} //Send objects in index 0x1A10 }; const _objd SDO6000[]= //TxPDO module -{{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x03}, //Number of elements - {0x01,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acName6000_01[0],0,&(Rb.status)}, //6000:01 is status - {0x02,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acName6000_02[0],0,&(Rb.counter)}, //6000:02 is counter - {0x03,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acName6000_03[0],0,&(Rb.diginput)} //6000:03 is digital inputs +{{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x02}, //Number of elements + {0x01,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.CoPx)}, //6000:01 is status + {0x02,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.CoPy)} //6000:02 is counter }; +//TODO: Comments const _objd SDO6001[]= //TxPDO module -{{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of elements - {0x01,DTYPE_INTEGER16 ,16,ATYPE_R,&acName6001_01[0],0,&(Rb.analog[0])}, //6001:1 is analog 0 - {0x02,DTYPE_INTEGER16 ,16,ATYPE_R,&acName6001_02[0],0,&(Rb.analog[1])}, //6001:2 is analog 1 - {0x03,DTYPE_INTEGER16 ,16,ATYPE_R,&acName6001_03[0],0,&(Rb.analog[2])}, //6001:3 is analog 2 - {0x04,DTYPE_INTEGER16 ,16,ATYPE_R,&acName6001_04[0],0,&(Rb.analog[3])}, //6001:4 is analog 3 - {0x05,DTYPE_INTEGER16 ,16,ATYPE_R,&acName6001_05[0],0,&(Rb.analog[4])}, //6001:5 is analog 4 - {0x06,DTYPE_INTEGER16 ,16,ATYPE_R,&acName6001_06[0],0,&(Rb.analog[5])}, //6001:6 is analog 5 - {0x07,DTYPE_INTEGER16 ,16,ATYPE_R,&acName6001_07[0],0,&(Rb.analog[6])}, //6001:7 is analog 6 - {0x08,DTYPE_INTEGER16 ,16,ATYPE_R,&acName6001_08[0],0,&(Rb.analog[7])}, //6001:8 is analog 7 - {0x09,DTYPE_UNSIGNED32 ,32,ATYPE_R,&acName6001_09[0],0,&(Rb.timestamp)} //6001:9 is timestamp +{{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x05}, //Number of elements + {0x01,DTYPE_REAL32 ,32,ATYPE_R,&acName6001_01[0],0,&(Rb.FrontLeft)}, //6001:1 is analog 0 + {0x02,DTYPE_REAL32 ,32,ATYPE_R,&acName6001_02[0],0,&(Rb.FrontRight)}, //6001:2 is analog 1 + {0x03,DTYPE_REAL32 ,32,ATYPE_R,&acName6001_03[0],0,&(Rb.BackLeft)}, //6001:3 is analog 2 + {0x04,DTYPE_REAL32 ,32,ATYPE_R,&acName6001_04[0],0,&(Rb.BackRight)}, //6001:4 is analog + {0x05,DTYPE_UNSIGNED32 ,32,ATYPE_R,&acName6001_05[0],0,&(Rb.timestamp)} //6001:9 is timestamp }; const _objd SDO7000[]= //RxPDO module {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x02}, //Number of elements @@ -269,15 +255,15 @@ {0x100A,OTYPE_VAR , 0,0,&acName100A[0],&SDO100A[0]}, //Software Version {0x1018,OTYPE_RECORD , 4,0,&acName1018[0],&SDO1018[0]}, //Identity {0x1600,OTYPE_RECORD , 0x02,0,&acName1600[0],&SDO1600[0]}, //RxPDO mapping - {0x1A00,OTYPE_RECORD , 0x03,0,&acName1A00[0],&SDO1A00[0]}, //TxPDO mapping - {0x1A10,OTYPE_RECORD , 0x09,0,&acName1A10[0],&SDO1A10[0]}, //TxPDO mapping + {0x1A00,OTYPE_RECORD , 0x02,0,&acName1A00[0],&SDO1A00[0]}, //TxPDO mapping + {0x1A10,OTYPE_RECORD , 0x05,0,&acName1A10[0],&SDO1A10[0]}, //TxPDO mapping {0x1C00,OTYPE_ARRAY , 4,0,&acName1C00[0],&SDO1C00[0]}, //Sync Manager configuration {0x1C10,OTYPE_ARRAY , 0,0,&acName1C10[0],&SDO1C10[0]}, //Sync Manager 0 PDO assignment {0x1C11,OTYPE_ARRAY , 0,0,&acName1C11[0],&SDO1C11[0]}, //Sync Manager 1 PDO assignment {0x1C12,OTYPE_ARRAY , 1,0,&acName1C12[0],&SDO1C12[0]}, //RxPDO objects {0x1C13,OTYPE_ARRAY , 2,0,&acName1C13[0],&SDO1C13[0]}, //TxPDO objects - {0x6000,OTYPE_ARRAY , 0x03,0,&acName6000[0],&SDO6000[0]}, //TxPDO module - {0x6001,OTYPE_ARRAY , 0x09,0,&acName6001[0],&SDO6001[0]}, //TxPDO module + {0x6000,OTYPE_ARRAY , 0x02,0,&acName6000[0],&SDO6000[0]}, //TxPDO module + {0x6001,OTYPE_ARRAY , 0x05,0,&acName6001[0],&SDO6001[0]}, //TxPDO module {0x7000,OTYPE_ARRAY , 0x02,0,&acName7000[0],&SDO7000[0]}, //RxPDO module {0x8000,OTYPE_ARRAY , 0x02,0,&acName8000[0],&SDO8000[0]}, //RxPDO module {0xffff,0xff,0xff,0xff,nil,nil}