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:
- 29:95ef6b54ec8e
- Parent:
- 23:2b2cdba08259
- Child:
- 30:8cf6fbc953b5
--- a/EtherCAT/objectlist.h Tue Mar 10 09:43:41 2015 +0000 +++ b/EtherCAT/objectlist.h Tue Mar 10 10:13:16 2015 +0000 @@ -197,45 +197,45 @@ {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x70000108} //First Object, pointing to object 7001:01 }; const _objd SDO1A00[]= //TxPDO mapping (objects from slave to master) -{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x0A}, //Number of TxPDOs - {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000110}, //First Object, pointing to object 6000:01 - {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000210}, //Second Object, pointing to object 6000:02 //.. - {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000310}, - {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000410}, - {0x05,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000510}, - {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000610}, - {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000710}, - {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000810}, - {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000910}, - {0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000A10} +{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x09}, //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 //.. + {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000320}, + {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000420}, + {0x05,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000520}, + {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000620}, + {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000720}, + {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000820}, + {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000920} + //{0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000A20} }; const _objd SDO1A01[]= //TxPDO mapping (objects from slave to master) -{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x0A}, //Number of TxPDOs - {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010110}, //First Object, pointing to object 6001:01 - {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010210}, //Second Object, pointing to object 6001:02 //.. - {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],0x60010910}, - {0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010A10} +{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of TxPDOs + {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010120}, //First Object, pointing to object 6001:01 + {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010220}, //Second Object, pointing to object 6001:02 //.. + {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}, + {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010620}, + {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010720}, + {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010820}, + {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010920} + //{0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010A10} }; const _objd SDO1A02[]= //TxPDO mapping (objects from slave to master) -{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x0A}, //Number of TxPDOs - {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020110}, //First Object, pointing to object 6002:01 - {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020210}, //Second Object, pointing to object 6002:02 //.. - {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020310}, - {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020410}, - {0x05,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020510}, - {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020610}, - {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020710}, - {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020810}, - {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020910}, - {0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020A10} +{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of TxPDOs + {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020120}, //First Object, pointing to object 6002:01 + {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020220}, //Second Object, pointing to object 6002:02 //.. + {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020320}, + {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020420}, + {0x05,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020520}, + {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020620}, + {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020720}, + {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020820}, + {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020920} + //{0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020A20} }; const _objd SDO1A03[]= //TxPDO mapping (objects from slave to master) @@ -256,7 +256,7 @@ {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C11[0],0x00}}; const _objd SDO1C12[]= //RxPDO Assign objects {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x01}, //Number of Entries - {0x01,DTYPE_UNSIGNED16,16,ATYPE_R,&acNameMO[0],0x1600} //Send objects in index 0x1600 + {0x01,DTYPE_UNSIGNED16,32,ATYPE_R,&acNameMO[0],0x1600} //Send objects in index 0x1600 }; const _objd SDO1C13[]= //TxPDO Assign objects ; CHANGEABLE, thus 'RWpre' mode {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x04}, //Number of Entries @@ -267,45 +267,45 @@ }; const _objd SDO6000[]= //TxPDO module -{{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x0A}, //Number of elements - {0x01,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_01[0],0,&(Rb.first.acc[0])},//6000:01 is acc X - {0x02,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_02[0],0,&(Rb.first.acc[1])},//6000:02 is acc Y - {0x03,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_03[0],0,&(Rb.first.acc[2])},//6000:03 is acc Z - {0x04,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_04[0],0,&(Rb.first.gyr[0])},//6000:04 is gyr X - {0x05,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_05[0],0,&(Rb.first.gyr[1])},//6000:05 is gyr Y - {0x06,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_06[0],0,&(Rb.first.gyr[2])},//6000:06 is gyr Z - {0x07,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_07[0],0,&(Rb.first.mag[0])},//6000:07 is mag X - {0x08,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_08[0],0,&(Rb.first.mag[1])},//6000:08 is mag Y - {0x09,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_09[0],0,&(Rb.first.mag[2])},//6000:09 is mag Z - {0x0A,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_0A[0],0,&(Rb.first.temp)} //6000:0A is imu temperature +{{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of elements + {0x01,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.first.acc[0])},//6000:01 is acc X + {0x02,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.first.acc[1])},//6000:02 is acc Y + {0x03,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_03[0],0,&(Rb.first.acc[2])},//6000:03 is acc Z + {0x04,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_04[0],0,&(Rb.first.gyr[0])},//6000:04 is gyr X + {0x05,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_05[0],0,&(Rb.first.gyr[1])},//6000:05 is gyr Y + {0x06,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_06[0],0,&(Rb.first.gyr[2])},//6000:06 is gyr Z + {0x07,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_07[0],0,&(Rb.first.mag[0])},//6000:07 is mag X + {0x08,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_08[0],0,&(Rb.first.mag[1])},//6000:08 is mag Y + {0x09,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.first.mag[2])}//6000:09 is mag Z + //{0x0A,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_0A[0],0,&(Rb.first.temp)} //6000:0A is imu temperature }; const _objd SDO6001[]= //TxPDO module -{{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x0A}, //Number of elements - {0x01,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_01[0],0,&(Rb.second.acc[0])},//6001:01 is acc X - {0x02,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_02[0],0,&(Rb.second.acc[1])},//6001:02 is acc Y - {0x03,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_03[0],0,&(Rb.second.acc[2])},//6001:03 is acc Z - {0x04,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_04[0],0,&(Rb.second.gyr[0])},//6001:04 is gyr X - {0x05,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_05[0],0,&(Rb.second.gyr[1])},//6001:05 is gyr Y - {0x06,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_06[0],0,&(Rb.second.gyr[2])},//6001:06 is gyr Z - {0x07,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_07[0],0,&(Rb.second.mag[0])},//6001:07 is mag X - {0x08,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_08[0],0,&(Rb.second.mag[1])},//6001:08 is mag Y - {0x09,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_09[0],0,&(Rb.second.mag[2])},//6001:09 is mag Z - {0x0A,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_0A[0],0,&(Rb.second.temp)} //6001:0A is imu temperature +{{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of elements + {0x01,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.second.acc[0])},//6001:01 is acc X + {0x02,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.second.acc[1])},//6001:02 is acc Y + {0x03,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_03[0],0,&(Rb.second.acc[2])},//6001:03 is acc Z + {0x04,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_04[0],0,&(Rb.second.gyr[0])},//6001:04 is gyr X + {0x05,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_05[0],0,&(Rb.second.gyr[1])},//6001:05 is gyr Y + {0x06,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_06[0],0,&(Rb.second.gyr[2])},//6001:06 is gyr Z + {0x07,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_07[0],0,&(Rb.second.mag[0])},//6001:07 is mag X + {0x08,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_08[0],0,&(Rb.second.mag[1])},//6001:08 is mag Y + {0x09,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.second.mag[2])}//6001:09 is mag Z + //{0x0A,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_0A[0],0,&(Rb.second.temp)} //6001:0A is imu temperature }; const _objd SDO6002[]= //TxPDO module -{{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x0A}, //Number of elements - {0x01,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_01[0],0,&(Rb.third.acc[0])},//6002:01 is acc X - {0x02,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_02[0],0,&(Rb.third.acc[1])},//6002:02 is acc Y - {0x03,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_03[0],0,&(Rb.third.acc[2])},//6002:03 is acc Z - {0x04,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_04[0],0,&(Rb.third.gyr[0])},//6002:04 is gyr X - {0x05,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_05[0],0,&(Rb.third.gyr[1])},//6002:05 is gyr Y - {0x06,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_06[0],0,&(Rb.third.gyr[2])},//6002:06 is gyr Z - {0x07,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_07[0],0,&(Rb.third.mag[0])},//6002:07 is mag X - {0x08,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_08[0],0,&(Rb.third.mag[1])},//6002:08 is mag Y - {0x09,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_09[0],0,&(Rb.third.mag[2])},//6002:09 is mag Z - {0x0A,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6000_0A[0],0,&(Rb.third.temp)} //6002:0A is imu temperature +{{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of elements + {0x01,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.third.acc[0])},//6002:01 is acc X + {0x02,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.third.acc[1])},//6002:02 is acc Y + {0x03,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_03[0],0,&(Rb.third.acc[2])},//6002:03 is acc Z + {0x04,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_04[0],0,&(Rb.third.gyr[0])},//6002:04 is gyr X + {0x05,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_05[0],0,&(Rb.third.gyr[1])},//6002:05 is gyr Y + {0x06,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_06[0],0,&(Rb.third.gyr[2])},//6002:06 is gyr Z + {0x07,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_07[0],0,&(Rb.third.mag[0])},//6002:07 is mag X + {0x08,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_08[0],0,&(Rb.third.mag[1])},//6002:08 is mag Y + {0x09,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.third.mag[2])}//6002:09 is mag Z + //{0x0A,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_0A[0],0,&(Rb.third.temp)} //6002:0A is imu temperature }; const _objd SDO6003[]= //TxPDO module @@ -330,18 +330,18 @@ {0x100A,OTYPE_VAR , 0,0,&acName100A[0],&SDO100A[0]}, //Software Version {0x1018,OTYPE_RECORD , 4,0,&acName1018[0],&SDO1018[0]}, //Identity {0x1600,OTYPE_RECORD , 0x01,0,&acName1600[0],&SDO1600[0]}, //RxPDO mapping - {0x1A00,OTYPE_RECORD , 10,0,&acName1A00[0],&SDO1A00[0]}, //TxPDO mapping - {0x1A01,OTYPE_RECORD , 10,0,&acName1A01[0],&SDO1A01[0]}, //TxPDO mapping - {0x1A02,OTYPE_RECORD , 10,0,&acName1A02[0],&SDO1A02[0]}, //TxPDO mapping + {0x1A00,OTYPE_RECORD , 9,0,&acName1A00[0],&SDO1A00[0]}, //TxPDO mapping + {0x1A01,OTYPE_RECORD , 9,0,&acName1A01[0],&SDO1A01[0]}, //TxPDO mapping + {0x1A02,OTYPE_RECORD , 9,0,&acName1A02[0],&SDO1A02[0]}, //TxPDO mapping {0x1A03,OTYPE_RECORD , 1,0,&acName1A03[0],&SDO1A03[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 , 4,0,&acName1C13[0],&SDO1C13[0]}, //TxPDO objects - {0x6000,OTYPE_ARRAY , 10,0,&acName6000[0],&SDO6000[0]}, //TxPDO module - {0x6001,OTYPE_ARRAY , 10,0,&acName6001[0],&SDO6001[0]}, //TxPDO module - {0x6002,OTYPE_ARRAY , 10,0,&acName6002[0],&SDO6002[0]}, //TxPDO module + {0x6000,OTYPE_ARRAY , 9,0,&acName6000[0],&SDO6000[0]}, //TxPDO module + {0x6001,OTYPE_ARRAY , 9,0,&acName6001[0],&SDO6001[0]}, //TxPDO module + {0x6002,OTYPE_ARRAY , 9,0,&acName6002[0],&SDO6002[0]}, //TxPDO module {0x6003,OTYPE_ARRAY , 1,0,&acName6003[0],&SDO6003[0]}, //TxPDO module {0x7000,OTYPE_ARRAY , 0x01,0,&acName7000[0],&SDO7000[0]}, //RxPDO module {0x8000,OTYPE_ARRAY , 0x01,0,&acName8000[0],&SDO8000[0]}, //RxPDO module