EtherCAT slave that reads 3 Xsens IMU's connected to a Xbus Master
Dependencies: MODSERIAL mbed KL25Z_ClockControl
Fork of EtherCAT by
EtherCAT/objectlist.h@30:8cf6fbc953b5, 2015-03-10 (annotated)
- Committer:
- vsluiter
- Date:
- Tue Mar 10 11:00:11 2015 +0000
- Revision:
- 30:8cf6fbc953b5
- Parent:
- 29:95ef6b54ec8e
Trying to get it working by using a smaller PDO set; still in preop
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vsluiter | 2:3dd1240eb938 | 1 | /* |
vsluiter | 2:3dd1240eb938 | 2 | * SOES Simple Open EtherCAT Slave |
vsluiter | 2:3dd1240eb938 | 3 | * |
vsluiter | 2:3dd1240eb938 | 4 | * File : objectlist.h |
vsluiter | 2:3dd1240eb938 | 5 | * Version : 0.9.2 |
vsluiter | 2:3dd1240eb938 | 6 | * Date : 22-02-2010 |
vsluiter | 2:3dd1240eb938 | 7 | * Copyright (C) 2007-2010 Arthur Ketels |
vsluiter | 2:3dd1240eb938 | 8 | * |
vsluiter | 2:3dd1240eb938 | 9 | * SOES is free software; you can redistribute it and/or modify it under |
vsluiter | 2:3dd1240eb938 | 10 | * the terms of the GNU General Public License version 2 as published by the Free |
vsluiter | 2:3dd1240eb938 | 11 | * Software Foundation. |
vsluiter | 2:3dd1240eb938 | 12 | * |
vsluiter | 2:3dd1240eb938 | 13 | * SOES is distributed in the hope that it will be useful, but WITHOUT ANY |
vsluiter | 2:3dd1240eb938 | 14 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or |
vsluiter | 2:3dd1240eb938 | 15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
vsluiter | 2:3dd1240eb938 | 16 | * for more details. |
vsluiter | 2:3dd1240eb938 | 17 | * |
vsluiter | 2:3dd1240eb938 | 18 | * As a special exception, if other files instantiate templates or use macros |
vsluiter | 2:3dd1240eb938 | 19 | * or inline functions from this file, or you compile this file and link it |
vsluiter | 2:3dd1240eb938 | 20 | * with other works to produce a work based on this file, this file does not |
vsluiter | 2:3dd1240eb938 | 21 | * by itself cause the resulting work to be covered by the GNU General Public |
vsluiter | 2:3dd1240eb938 | 22 | * License. However the source code for this file must still be made available |
vsluiter | 2:3dd1240eb938 | 23 | * in accordance with section (3) of the GNU General Public License. |
vsluiter | 2:3dd1240eb938 | 24 | * |
vsluiter | 2:3dd1240eb938 | 25 | * This exception does not invalidate any other reasons why a work based on |
vsluiter | 2:3dd1240eb938 | 26 | * this file might be covered by the GNU General Public License. |
vsluiter | 2:3dd1240eb938 | 27 | * |
vsluiter | 2:3dd1240eb938 | 28 | * The EtherCAT Technology, the trade name and logo "EtherCAT" are the intellectual |
vsluiter | 2:3dd1240eb938 | 29 | * property of, and protected by Beckhoff Automation GmbH. |
vsluiter | 2:3dd1240eb938 | 30 | */ |
vsluiter | 2:3dd1240eb938 | 31 | #ifndef __objectlist__ |
vsluiter | 2:3dd1240eb938 | 32 | #define __objectlist__ |
vsluiter | 2:3dd1240eb938 | 33 | |
vsluiter | 2:3dd1240eb938 | 34 | /** |
vsluiter | 2:3dd1240eb938 | 35 | For info about this file, please check http://bitbucket.org/utwente_bss/soes_arm/wiki/objectlist_h |
vsluiter | 2:3dd1240eb938 | 36 | */ |
vsluiter | 2:3dd1240eb938 | 37 | typedef const struct |
vsluiter | 2:3dd1240eb938 | 38 | { |
vsluiter | 2:3dd1240eb938 | 39 | uint16 subindex; |
vsluiter | 2:3dd1240eb938 | 40 | uint16 datatype; |
vsluiter | 2:3dd1240eb938 | 41 | uint16 bitlength; |
vsluiter | 2:3dd1240eb938 | 42 | uint16 access; |
vsluiter | 2:3dd1240eb938 | 43 | char const *name; |
vsluiter | 2:3dd1240eb938 | 44 | uint32 value; |
vsluiter | 2:3dd1240eb938 | 45 | void *data; |
vsluiter | 2:3dd1240eb938 | 46 | } _objd; |
vsluiter | 2:3dd1240eb938 | 47 | |
vsluiter | 2:3dd1240eb938 | 48 | typedef const struct |
vsluiter | 2:3dd1240eb938 | 49 | { |
vsluiter | 2:3dd1240eb938 | 50 | uint16 index; |
vsluiter | 2:3dd1240eb938 | 51 | uint16 objtype; |
vsluiter | 2:3dd1240eb938 | 52 | uint8 maxsub; |
vsluiter | 2:3dd1240eb938 | 53 | uint8 pad1; |
vsluiter | 2:3dd1240eb938 | 54 | char const *name; |
vsluiter | 2:3dd1240eb938 | 55 | _objd const *objdesc; |
vsluiter | 2:3dd1240eb938 | 56 | } _objectlist; |
vsluiter | 2:3dd1240eb938 | 57 | |
vsluiter | 2:3dd1240eb938 | 58 | #define OBJH_READ 0 |
vsluiter | 2:3dd1240eb938 | 59 | #define OBJH_WRITE 1 |
vsluiter | 2:3dd1240eb938 | 60 | |
vsluiter | 2:3dd1240eb938 | 61 | #define _ac const char |
vsluiter | 2:3dd1240eb938 | 62 | #define nil 0 |
vsluiter | 2:3dd1240eb938 | 63 | |
vsluiter | 2:3dd1240eb938 | 64 | //Described in Table 63 & Table 64 of ETG1000.6 |
vsluiter | 2:3dd1240eb938 | 65 | #define OTYPE_DOMAIN 0x0002 |
vsluiter | 2:3dd1240eb938 | 66 | #define OTYPE_DEFTYPE 0x0005 |
vsluiter | 2:3dd1240eb938 | 67 | #define OTYPE_DEFSTRUCT 0x0006 |
vsluiter | 2:3dd1240eb938 | 68 | #define OTYPE_VAR 0x0007 |
vsluiter | 2:3dd1240eb938 | 69 | #define OTYPE_ARRAY 0x0008 |
vsluiter | 2:3dd1240eb938 | 70 | #define OTYPE_RECORD 0x0009 |
vsluiter | 2:3dd1240eb938 | 71 | |
vsluiter | 2:3dd1240eb938 | 72 | //Described in Table 70 of ETG1000.6 |
vsluiter | 2:3dd1240eb938 | 73 | #define DTYPE_BOOLEAN 0x0001 |
vsluiter | 2:3dd1240eb938 | 74 | #define DTYPE_INTEGER8 0x0002 |
vsluiter | 2:3dd1240eb938 | 75 | #define DTYPE_INTEGER16 0x0003 |
vsluiter | 2:3dd1240eb938 | 76 | #define DTYPE_INTEGER32 0x0004 |
vsluiter | 2:3dd1240eb938 | 77 | #define DTYPE_UNSIGNED8 0x0005 |
vsluiter | 2:3dd1240eb938 | 78 | #define DTYPE_UNSIGNED16 0x0006 |
vsluiter | 2:3dd1240eb938 | 79 | #define DTYPE_UNSIGNED32 0x0007 |
vsluiter | 2:3dd1240eb938 | 80 | #define DTYPE_REAL32 0x0008 |
vsluiter | 2:3dd1240eb938 | 81 | #define DTYPE_VISIBLE_STRING 0x0009 |
vsluiter | 2:3dd1240eb938 | 82 | #define DTYPE_OCTET_STRING 0x000A |
vsluiter | 2:3dd1240eb938 | 83 | #define DTYPE_UNICODE_STRING 0x000B |
vsluiter | 2:3dd1240eb938 | 84 | #define DTYPE_INTEGER24 0x0010 |
vsluiter | 2:3dd1240eb938 | 85 | #define DTYPE_UNSIGNED24 0x0016 |
vsluiter | 2:3dd1240eb938 | 86 | #define DTYPE_INTEGER64 0x0015 |
vsluiter | 2:3dd1240eb938 | 87 | #define DTYPE_UNSIGNED64 0x001B |
vsluiter | 2:3dd1240eb938 | 88 | #define DTYPE_REAL64 0x0011 |
vsluiter | 2:3dd1240eb938 | 89 | #define DTYPE_PDO_MAPPING 0x0021 |
vsluiter | 2:3dd1240eb938 | 90 | #define DTYPE_IDENTITY 0x0023 |
vsluiter | 2:3dd1240eb938 | 91 | #define DTYPE_BIT1 0x0030 |
vsluiter | 2:3dd1240eb938 | 92 | #define DTYPE_BIT2 0x0031 |
vsluiter | 2:3dd1240eb938 | 93 | #define DTYPE_BIT3 0x0032 |
vsluiter | 2:3dd1240eb938 | 94 | #define DTYPE_BIT4 0x0033 |
vsluiter | 2:3dd1240eb938 | 95 | #define DTYPE_BIT5 0x0034 |
vsluiter | 2:3dd1240eb938 | 96 | #define DTYPE_BIT6 0x0035 |
vsluiter | 2:3dd1240eb938 | 97 | #define DTYPE_BIT7 0x0036 |
vsluiter | 2:3dd1240eb938 | 98 | #define DTYPE_BIT8 0x0037 |
vsluiter | 2:3dd1240eb938 | 99 | |
vsluiter | 2:3dd1240eb938 | 100 | //See 'Object Access' in Table 47 of ETG1000.6 |
vsluiter | 2:3dd1240eb938 | 101 | #define ATYPE_R 0x07 |
vsluiter | 2:3dd1240eb938 | 102 | #define ATYPE_RW 0x3F |
vsluiter | 2:3dd1240eb938 | 103 | #define ATYPE_RWpre 0x0F |
vsluiter | 2:3dd1240eb938 | 104 | #define ATYPE_RXPDO 0x40 |
vsluiter | 2:3dd1240eb938 | 105 | #define ATYPE_TXPDO 0x80 |
vsluiter | 0:a8daa9348a67 | 106 | |
vsluiter | 2:3dd1240eb938 | 107 | /** Mapping of parameters is according to ETG.5000 document, and ETG.1000.6 |
vsluiter | 2:3dd1240eb938 | 108 | */ |
vsluiter | 2:3dd1240eb938 | 109 | _ac acName1000[]="Device Type"; |
vsluiter | 2:3dd1240eb938 | 110 | _ac acName1008[]="Manufacturer Device Name"; |
vsluiter | 2:3dd1240eb938 | 111 | _ac acName1009[]="Manufacturer Hardware Version"; |
vsluiter | 2:3dd1240eb938 | 112 | _ac acName100A[]="Manufacturer Software Version"; |
vsluiter | 2:3dd1240eb938 | 113 | _ac acName1018[]="Identity Object"; |
vsluiter | 2:3dd1240eb938 | 114 | /*Subindexes for Identity Object*/ |
vsluiter | 2:3dd1240eb938 | 115 | _ac acName1018_01[]="Vendor ID"; |
vsluiter | 2:3dd1240eb938 | 116 | _ac acName1018_02[]="Product Code"; |
vsluiter | 2:3dd1240eb938 | 117 | _ac acName1018_03[]="Revision Number"; |
vsluiter | 2:3dd1240eb938 | 118 | _ac acName1018_04[]="Serial Number"; |
vsluiter | 2:3dd1240eb938 | 119 | /*End of subindexes for Identity Object*/ |
vsluiter | 2:3dd1240eb938 | 120 | _ac acNameMO[]="Mapped object"; |
vsluiter | 2:3dd1240eb938 | 121 | _ac acName1600[]="Receive PDO mapping"; |
vsluiter | 15:b8d72679e644 | 122 | _ac acName1A00[]="Transmit PDO mapping - First IMU"; |
vsluiter | 15:b8d72679e644 | 123 | _ac acName1A01[]="Transmit PDO mapping - Second IMU"; |
vsluiter | 15:b8d72679e644 | 124 | _ac acName1A02[]="Transmit PDO mapping - Third IMU"; |
vsluiter | 23:2b2cdba08259 | 125 | _ac acName1A03[]="Transmit PDO mapping - Timestamp"; |
vsluiter | 2:3dd1240eb938 | 126 | _ac acName1C00[]="Sync Manager Communication type"; |
vsluiter | 2:3dd1240eb938 | 127 | /*Subindexes for Sync Manager Communication type*/ |
vsluiter | 2:3dd1240eb938 | 128 | _ac acName1C00_01[]="Communications type SM0"; |
vsluiter | 2:3dd1240eb938 | 129 | _ac acName1C00_02[]="Communications type SM1"; |
vsluiter | 2:3dd1240eb938 | 130 | _ac acName1C00_03[]="Communications type SM2"; |
vsluiter | 2:3dd1240eb938 | 131 | _ac acName1C00_04[]="Communications type SM3"; |
vsluiter | 2:3dd1240eb938 | 132 | /*End of subindexes for Sync Manager Communication type*/ |
vsluiter | 2:3dd1240eb938 | 133 | _ac acName1C10[]="Sync Manager 0 PDO Assignment"; |
vsluiter | 2:3dd1240eb938 | 134 | _ac acName1C11[]="Sync Manager 1 PDO Assignment"; |
vsluiter | 2:3dd1240eb938 | 135 | _ac acName1C12[]="Sync Manager 2 PDO Assignment"; |
vsluiter | 2:3dd1240eb938 | 136 | _ac acName1C13[]="Sync Manager 3 PDO Assignment"; |
vsluiter | 2:3dd1240eb938 | 137 | _ac acNameNOE[]="Number of entries"; |
vsluiter | 15:b8d72679e644 | 138 | _ac acName6000[]="First IMU"; |
vsluiter | 2:3dd1240eb938 | 139 | /*Subindexes for Digital Inputs*/ |
vsluiter | 15:b8d72679e644 | 140 | _ac acName6000_01[]="Accelerometer X"; |
vsluiter | 15:b8d72679e644 | 141 | _ac acName6000_02[]="Accelerometer Y"; |
vsluiter | 15:b8d72679e644 | 142 | _ac acName6000_03[]="Accelerometer Z"; |
vsluiter | 16:bfc7ea6bd1af | 143 | _ac acName6000_04[]="Gyroscope X"; |
vsluiter | 16:bfc7ea6bd1af | 144 | _ac acName6000_05[]="Gyroscope Y"; |
vsluiter | 16:bfc7ea6bd1af | 145 | _ac acName6000_06[]="Gyroscope Z"; |
vsluiter | 16:bfc7ea6bd1af | 146 | _ac acName6000_07[]="Magnetometer X"; |
vsluiter | 16:bfc7ea6bd1af | 147 | _ac acName6000_08[]="Magnetometer Y"; |
vsluiter | 16:bfc7ea6bd1af | 148 | _ac acName6000_09[]="Magnetometer Z"; |
vsluiter | 16:bfc7ea6bd1af | 149 | _ac acName6000_0A[]="Temperature"; |
vsluiter | 2:3dd1240eb938 | 150 | /*End of subindexes for Digital Inputs*/ |
vsluiter | 15:b8d72679e644 | 151 | _ac acName6001[]="Second IMU"; |
vsluiter | 15:b8d72679e644 | 152 | _ac acName6002[]="Third IMU"; |
vsluiter | 23:2b2cdba08259 | 153 | _ac acName6003[]="Timestamp"; |
vsluiter | 23:2b2cdba08259 | 154 | _ac acName6003_01[]="Timestamp"; |
vsluiter | 2:3dd1240eb938 | 155 | /*End of subindexes for Analog inputs*/ |
vsluiter | 2:3dd1240eb938 | 156 | _ac acName7000[]="Outputs"; |
vsluiter | 2:3dd1240eb938 | 157 | /*Subindexes of Outputs*/ |
vsluiter | 5:6d75f432a41f | 158 | _ac acName7000_01[]="Correct Offset"; |
vsluiter | 2:3dd1240eb938 | 159 | /*End of subindexes for Outputs*/ |
vsluiter | 11:166353137b95 | 160 | _ac acName8000[]="Configuration"; |
vsluiter | 2:3dd1240eb938 | 161 | /*Subindexes of configuration*/ |
vsluiter | 11:166353137b95 | 162 | _ac acName8000_01[]="Settings 8"; |
vsluiter | 5:6d75f432a41f | 163 | //_ac acName8000_02[]="Settings 16"; |
vsluiter | 2:3dd1240eb938 | 164 | /*End of subindexes of configuration*/ |
vsluiter | 2:3dd1240eb938 | 165 | |
vsluiter | 2:3dd1240eb938 | 166 | ///////////////////////////////////////////////////////////////////////////////////// |
vsluiter | 2:3dd1240eb938 | 167 | /** Definiton of Device Name */ |
vsluiter | 12:cac4e7c2bd0f | 168 | char ac1008_00[]="EtherCAT Xbus Master Interface (3 slaves)"; |
vsluiter | 2:3dd1240eb938 | 169 | /** Definition of Hardware version*/ |
vsluiter | 2:3dd1240eb938 | 170 | char ac1009_00[]="0.0.1"; |
vsluiter | 2:3dd1240eb938 | 171 | /** Definition of Software version*/ |
vsluiter | 2:3dd1240eb938 | 172 | char ac100A_00[]="0.0.1"; |
vsluiter | 2:3dd1240eb938 | 173 | /** Service Data Object 1000: Device Type */ |
vsluiter | 2:3dd1240eb938 | 174 | const _objd SDO1000[]= |
vsluiter | 2:3dd1240eb938 | 175 | {{0x00,DTYPE_UNSIGNED32,32,ATYPE_R,&acName1000[0],0x00000000}}; |
vsluiter | 2:3dd1240eb938 | 176 | /** Service Data Object 1008: Device Name */ |
vsluiter | 2:3dd1240eb938 | 177 | const _objd SDO1008[]= |
vsluiter | 2:3dd1240eb938 | 178 | {{0x00,DTYPE_VISIBLE_STRING,sizeof(ac1008_00)<<3,ATYPE_R,&acName1008[0],0,&ac1008_00[0]}}; |
vsluiter | 2:3dd1240eb938 | 179 | /** Service Data Object 1009: Hardware Version */ |
vsluiter | 2:3dd1240eb938 | 180 | const _objd SDO1009[]= |
vsluiter | 2:3dd1240eb938 | 181 | {{0x00,DTYPE_VISIBLE_STRING,sizeof(ac1009_00)<<3,ATYPE_R,&acName1009[0],0,&ac1009_00[0]}}; |
vsluiter | 2:3dd1240eb938 | 182 | /** Service Data Object 100A: Software Version */ |
vsluiter | 2:3dd1240eb938 | 183 | const _objd SDO100A[]= |
vsluiter | 2:3dd1240eb938 | 184 | {{0x00,DTYPE_VISIBLE_STRING,sizeof(ac100A_00)<<3,ATYPE_R,&acName100A[0],0,&ac100A_00[0]}}; |
vsluiter | 2:3dd1240eb938 | 185 | const _objd SDO1018[]= //See ETG.1000.6 'Identity Object' |
vsluiter | 2:3dd1240eb938 | 186 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x04}, //Number of Entries |
vsluiter | 2:3dd1240eb938 | 187 | {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acName1018_01[0],0x500}, //Vendor ID |
vsluiter | 12:cac4e7c2bd0f | 188 | {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acName1018_02[0],005 }, //Product Code |
vsluiter | 12:cac4e7c2bd0f | 189 | {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acName1018_03[0],0x01}, //Revision Number |
vsluiter | 3:3761315146ec | 190 | {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acName1018_04[0],0x001} //Serial Number |
vsluiter | 2:3dd1240eb938 | 191 | }; |
vsluiter | 3:3761315146ec | 192 | |
vsluiter | 12:cac4e7c2bd0f | 193 | |
vsluiter | 2:3dd1240eb938 | 194 | ///////////////////////////////////////////////////////////////////////////////////////////// |
vsluiter | 2:3dd1240eb938 | 195 | const _objd SDO1600[]= //RxPDO mapping (objects from master to slave) |
vsluiter | 5:6d75f432a41f | 196 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x01}, //Number of RxPDOs |
vsluiter | 5:6d75f432a41f | 197 | {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x70000108} //First Object, pointing to object 7001:01 |
vsluiter | 2:3dd1240eb938 | 198 | }; |
vsluiter | 2:3dd1240eb938 | 199 | const _objd SDO1A00[]= //TxPDO mapping (objects from slave to master) |
vsluiter | 29:95ef6b54ec8e | 200 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of TxPDOs |
vsluiter | 29:95ef6b54ec8e | 201 | {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000120}, //First Object, pointing to object 6000:01 |
vsluiter | 29:95ef6b54ec8e | 202 | {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000220}, //Second Object, pointing to object 6000:02 //.. |
vsluiter | 29:95ef6b54ec8e | 203 | {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000320}, |
vsluiter | 29:95ef6b54ec8e | 204 | {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000420}, |
vsluiter | 29:95ef6b54ec8e | 205 | {0x05,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000520}, |
vsluiter | 29:95ef6b54ec8e | 206 | {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000620}, |
vsluiter | 29:95ef6b54ec8e | 207 | {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000720}, |
vsluiter | 29:95ef6b54ec8e | 208 | {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000820}, |
vsluiter | 29:95ef6b54ec8e | 209 | {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000920} |
vsluiter | 29:95ef6b54ec8e | 210 | //{0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000A20} |
vsluiter | 2:3dd1240eb938 | 211 | }; |
vsluiter | 15:b8d72679e644 | 212 | |
vsluiter | 15:b8d72679e644 | 213 | const _objd SDO1A01[]= //TxPDO mapping (objects from slave to master) |
vsluiter | 29:95ef6b54ec8e | 214 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of TxPDOs |
vsluiter | 29:95ef6b54ec8e | 215 | {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010120}, //First Object, pointing to object 6001:01 |
vsluiter | 29:95ef6b54ec8e | 216 | {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010220}, //Second Object, pointing to object 6001:02 //.. |
vsluiter | 29:95ef6b54ec8e | 217 | {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010320}, |
vsluiter | 29:95ef6b54ec8e | 218 | {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010420}, |
vsluiter | 29:95ef6b54ec8e | 219 | {0x05,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010520}, |
vsluiter | 29:95ef6b54ec8e | 220 | {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010620}, |
vsluiter | 29:95ef6b54ec8e | 221 | {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010720}, |
vsluiter | 29:95ef6b54ec8e | 222 | {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010820}, |
vsluiter | 29:95ef6b54ec8e | 223 | {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010920} |
vsluiter | 29:95ef6b54ec8e | 224 | //{0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010A10} |
vsluiter | 2:3dd1240eb938 | 225 | }; |
vsluiter | 15:b8d72679e644 | 226 | |
vsluiter | 15:b8d72679e644 | 227 | const _objd SDO1A02[]= //TxPDO mapping (objects from slave to master) |
vsluiter | 29:95ef6b54ec8e | 228 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of TxPDOs |
vsluiter | 29:95ef6b54ec8e | 229 | {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020120}, //First Object, pointing to object 6002:01 |
vsluiter | 29:95ef6b54ec8e | 230 | {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020220}, //Second Object, pointing to object 6002:02 //.. |
vsluiter | 29:95ef6b54ec8e | 231 | {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020320}, |
vsluiter | 29:95ef6b54ec8e | 232 | {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020420}, |
vsluiter | 29:95ef6b54ec8e | 233 | {0x05,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020520}, |
vsluiter | 29:95ef6b54ec8e | 234 | {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020620}, |
vsluiter | 29:95ef6b54ec8e | 235 | {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020720}, |
vsluiter | 29:95ef6b54ec8e | 236 | {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020820}, |
vsluiter | 29:95ef6b54ec8e | 237 | {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020920} |
vsluiter | 29:95ef6b54ec8e | 238 | //{0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020A20} |
vsluiter | 15:b8d72679e644 | 239 | }; |
vsluiter | 15:b8d72679e644 | 240 | |
vsluiter | 23:2b2cdba08259 | 241 | const _objd SDO1A03[]= //TxPDO mapping (objects from slave to master) |
vsluiter | 23:2b2cdba08259 | 242 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x01}, //Number of TxPDOs |
vsluiter | 23:2b2cdba08259 | 243 | {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60030110} //First Object, pointing to object 6003:01 |
vsluiter | 23:2b2cdba08259 | 244 | }; |
vsluiter | 23:2b2cdba08259 | 245 | |
vsluiter | 2:3dd1240eb938 | 246 | const _objd SDO1C00[]= //Sync Manager |
vsluiter | 2:3dd1240eb938 | 247 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x04}, //Number of used Sync Manager channels |
vsluiter | 2:3dd1240eb938 | 248 | {0x01,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C00_01[0],0x01}, //Sync Manager 0: Mailbox Receive (master->slave) |
vsluiter | 2:3dd1240eb938 | 249 | {0x02,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C00_02[0],0x02}, //Sync Manager 1: Mailbos send (slave->master) |
vsluiter | 2:3dd1240eb938 | 250 | {0x03,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C00_03[0],0x03}, //Process Data Output (or Inputs if no Outputs are used) |
vsluiter | 2:3dd1240eb938 | 251 | {0x04,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C00_04[0],0x04} //Process Data Input |
vsluiter | 2:3dd1240eb938 | 252 | }; |
vsluiter | 2:3dd1240eb938 | 253 | const _objd SDO1C10[]= //Sync Manager 0 PDO Assignment |
vsluiter | 2:3dd1240eb938 | 254 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C10[0],0x00}}; |
vsluiter | 2:3dd1240eb938 | 255 | const _objd SDO1C11[]= //Sync Manager 1 PDO Assignment |
vsluiter | 2:3dd1240eb938 | 256 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C11[0],0x00}}; |
vsluiter | 2:3dd1240eb938 | 257 | const _objd SDO1C12[]= //RxPDO Assign objects |
vsluiter | 2:3dd1240eb938 | 258 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x01}, //Number of Entries |
vsluiter | 29:95ef6b54ec8e | 259 | {0x01,DTYPE_UNSIGNED16,32,ATYPE_R,&acNameMO[0],0x1600} //Send objects in index 0x1600 |
vsluiter | 2:3dd1240eb938 | 260 | }; |
vsluiter | 2:3dd1240eb938 | 261 | const _objd SDO1C13[]= //TxPDO Assign objects ; CHANGEABLE, thus 'RWpre' mode |
vsluiter | 30:8cf6fbc953b5 | 262 | {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x01}, //Number of Entries |
vsluiter | 11:166353137b95 | 263 | {0x01,DTYPE_UNSIGNED16,16,ATYPE_R,&acNameMO[0],0x1A00}, //Send objects in index 0x1A00 |
vsluiter | 30:8cf6fbc953b5 | 264 | //{0x02,DTYPE_UNSIGNED16,16,ATYPE_R,&acNameMO[0],0x1A01}, //Send objects in index 0x1A10 |
vsluiter | 30:8cf6fbc953b5 | 265 | //{0x03,DTYPE_UNSIGNED16,16,ATYPE_R,&acNameMO[0],0x1A02}, |
vsluiter | 30:8cf6fbc953b5 | 266 | //{0x04,DTYPE_UNSIGNED16,16,ATYPE_R,&acNameMO[0],0x1A03} |
vsluiter | 2:3dd1240eb938 | 267 | }; |
vsluiter | 15:b8d72679e644 | 268 | |
vsluiter | 2:3dd1240eb938 | 269 | const _objd SDO6000[]= //TxPDO module |
vsluiter | 29:95ef6b54ec8e | 270 | {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of elements |
vsluiter | 29:95ef6b54ec8e | 271 | {0x01,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.first.acc[0])},//6000:01 is acc X |
vsluiter | 29:95ef6b54ec8e | 272 | {0x02,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.first.acc[1])},//6000:02 is acc Y |
vsluiter | 29:95ef6b54ec8e | 273 | {0x03,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_03[0],0,&(Rb.first.acc[2])},//6000:03 is acc Z |
vsluiter | 29:95ef6b54ec8e | 274 | {0x04,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_04[0],0,&(Rb.first.gyr[0])},//6000:04 is gyr X |
vsluiter | 29:95ef6b54ec8e | 275 | {0x05,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_05[0],0,&(Rb.first.gyr[1])},//6000:05 is gyr Y |
vsluiter | 29:95ef6b54ec8e | 276 | {0x06,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_06[0],0,&(Rb.first.gyr[2])},//6000:06 is gyr Z |
vsluiter | 29:95ef6b54ec8e | 277 | {0x07,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_07[0],0,&(Rb.first.mag[0])},//6000:07 is mag X |
vsluiter | 29:95ef6b54ec8e | 278 | {0x08,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_08[0],0,&(Rb.first.mag[1])},//6000:08 is mag Y |
vsluiter | 29:95ef6b54ec8e | 279 | {0x09,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.first.mag[2])}//6000:09 is mag Z |
vsluiter | 29:95ef6b54ec8e | 280 | //{0x0A,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_0A[0],0,&(Rb.first.temp)} //6000:0A is imu temperature |
vsluiter | 2:3dd1240eb938 | 281 | }; |
vsluiter | 15:b8d72679e644 | 282 | |
vsluiter | 15:b8d72679e644 | 283 | const _objd SDO6001[]= //TxPDO module |
vsluiter | 29:95ef6b54ec8e | 284 | {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of elements |
vsluiter | 29:95ef6b54ec8e | 285 | {0x01,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.second.acc[0])},//6001:01 is acc X |
vsluiter | 29:95ef6b54ec8e | 286 | {0x02,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.second.acc[1])},//6001:02 is acc Y |
vsluiter | 29:95ef6b54ec8e | 287 | {0x03,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_03[0],0,&(Rb.second.acc[2])},//6001:03 is acc Z |
vsluiter | 29:95ef6b54ec8e | 288 | {0x04,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_04[0],0,&(Rb.second.gyr[0])},//6001:04 is gyr X |
vsluiter | 29:95ef6b54ec8e | 289 | {0x05,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_05[0],0,&(Rb.second.gyr[1])},//6001:05 is gyr Y |
vsluiter | 29:95ef6b54ec8e | 290 | {0x06,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_06[0],0,&(Rb.second.gyr[2])},//6001:06 is gyr Z |
vsluiter | 29:95ef6b54ec8e | 291 | {0x07,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_07[0],0,&(Rb.second.mag[0])},//6001:07 is mag X |
vsluiter | 29:95ef6b54ec8e | 292 | {0x08,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_08[0],0,&(Rb.second.mag[1])},//6001:08 is mag Y |
vsluiter | 29:95ef6b54ec8e | 293 | {0x09,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.second.mag[2])}//6001:09 is mag Z |
vsluiter | 29:95ef6b54ec8e | 294 | //{0x0A,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_0A[0],0,&(Rb.second.temp)} //6001:0A is imu temperature |
vsluiter | 15:b8d72679e644 | 295 | }; |
vsluiter | 15:b8d72679e644 | 296 | |
vsluiter | 15:b8d72679e644 | 297 | const _objd SDO6002[]= //TxPDO module |
vsluiter | 29:95ef6b54ec8e | 298 | {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x09}, //Number of elements |
vsluiter | 29:95ef6b54ec8e | 299 | {0x01,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.third.acc[0])},//6002:01 is acc X |
vsluiter | 29:95ef6b54ec8e | 300 | {0x02,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.third.acc[1])},//6002:02 is acc Y |
vsluiter | 29:95ef6b54ec8e | 301 | {0x03,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_03[0],0,&(Rb.third.acc[2])},//6002:03 is acc Z |
vsluiter | 29:95ef6b54ec8e | 302 | {0x04,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_04[0],0,&(Rb.third.gyr[0])},//6002:04 is gyr X |
vsluiter | 29:95ef6b54ec8e | 303 | {0x05,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_05[0],0,&(Rb.third.gyr[1])},//6002:05 is gyr Y |
vsluiter | 29:95ef6b54ec8e | 304 | {0x06,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_06[0],0,&(Rb.third.gyr[2])},//6002:06 is gyr Z |
vsluiter | 29:95ef6b54ec8e | 305 | {0x07,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_07[0],0,&(Rb.third.mag[0])},//6002:07 is mag X |
vsluiter | 29:95ef6b54ec8e | 306 | {0x08,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_08[0],0,&(Rb.third.mag[1])},//6002:08 is mag Y |
vsluiter | 29:95ef6b54ec8e | 307 | {0x09,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.third.mag[2])}//6002:09 is mag Z |
vsluiter | 29:95ef6b54ec8e | 308 | //{0x0A,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_0A[0],0,&(Rb.third.temp)} //6002:0A is imu temperature |
vsluiter | 15:b8d72679e644 | 309 | }; |
vsluiter | 15:b8d72679e644 | 310 | |
vsluiter | 23:2b2cdba08259 | 311 | const _objd SDO6003[]= //TxPDO module |
vsluiter | 23:2b2cdba08259 | 312 | {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x01}, //Number of elements |
vsluiter | 23:2b2cdba08259 | 313 | {0x01,DTYPE_UNSIGNED16 ,16,ATYPE_R,&acName6003_01[0],0,&(Rb.timestamp)},//6003:01 is timestamp |
vsluiter | 23:2b2cdba08259 | 314 | }; |
vsluiter | 16:bfc7ea6bd1af | 315 | |
vsluiter | 2:3dd1240eb938 | 316 | const _objd SDO7000[]= //RxPDO module |
vsluiter | 5:6d75f432a41f | 317 | {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x01}, //Number of elements |
vsluiter | 5:6d75f432a41f | 318 | {0x01,DTYPE_UNSIGNED8 ,8,ATYPE_RW,&acName7000_01[0],0,&(Wb.correct_offset)} //7001:02 is correct_offset |
vsluiter | 2:3dd1240eb938 | 319 | }; |
vsluiter | 11:166353137b95 | 320 | const _objd SDO8000[]= //Configuration mailbox |
vsluiter | 11:166353137b95 | 321 | {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x01}, //number of elements |
vsluiter | 11:166353137b95 | 322 | {0x01,DTYPE_UNSIGNED8 ,8,ATYPE_RW,&acName8000_01[0],0,&(Eb.setting8)} //8000:01 is setting8 |
vsluiter | 11:166353137b95 | 323 | //{0x02,DTYPE_UNSIGNED16 ,16,ATYPE_RW,&acName8000_02[0],0,&(Eb.setting16)} //8000:02 is setting16 |
vsluiter | 11:166353137b95 | 324 | }; |
vsluiter | 2:3dd1240eb938 | 325 | /** Object list; all objects used in EtherCAT slave */ |
vsluiter | 2:3dd1240eb938 | 326 | const _objectlist SDOobjects[]= |
vsluiter | 2:3dd1240eb938 | 327 | {{0x1000,OTYPE_VAR , 0,0,&acName1000[0],&SDO1000[0]}, //Device Type |
vsluiter | 2:3dd1240eb938 | 328 | {0x1008,OTYPE_VAR , 0,0,&acName1008[0],&SDO1008[0]}, //Device Name |
vsluiter | 2:3dd1240eb938 | 329 | {0x1009,OTYPE_VAR , 0,0,&acName1009[0],&SDO1009[0]}, //Hardware Version |
vsluiter | 2:3dd1240eb938 | 330 | {0x100A,OTYPE_VAR , 0,0,&acName100A[0],&SDO100A[0]}, //Software Version |
vsluiter | 2:3dd1240eb938 | 331 | {0x1018,OTYPE_RECORD , 4,0,&acName1018[0],&SDO1018[0]}, //Identity |
vsluiter | 5:6d75f432a41f | 332 | {0x1600,OTYPE_RECORD , 0x01,0,&acName1600[0],&SDO1600[0]}, //RxPDO mapping |
vsluiter | 29:95ef6b54ec8e | 333 | {0x1A00,OTYPE_RECORD , 9,0,&acName1A00[0],&SDO1A00[0]}, //TxPDO mapping |
vsluiter | 29:95ef6b54ec8e | 334 | {0x1A01,OTYPE_RECORD , 9,0,&acName1A01[0],&SDO1A01[0]}, //TxPDO mapping |
vsluiter | 29:95ef6b54ec8e | 335 | {0x1A02,OTYPE_RECORD , 9,0,&acName1A02[0],&SDO1A02[0]}, //TxPDO mapping |
vsluiter | 23:2b2cdba08259 | 336 | {0x1A03,OTYPE_RECORD , 1,0,&acName1A03[0],&SDO1A03[0]}, //TxPDO mapping |
vsluiter | 2:3dd1240eb938 | 337 | {0x1C00,OTYPE_ARRAY , 4,0,&acName1C00[0],&SDO1C00[0]}, //Sync Manager configuration |
vsluiter | 2:3dd1240eb938 | 338 | {0x1C10,OTYPE_ARRAY , 0,0,&acName1C10[0],&SDO1C10[0]}, //Sync Manager 0 PDO assignment |
vsluiter | 2:3dd1240eb938 | 339 | {0x1C11,OTYPE_ARRAY , 0,0,&acName1C11[0],&SDO1C11[0]}, //Sync Manager 1 PDO assignment |
vsluiter | 2:3dd1240eb938 | 340 | {0x1C12,OTYPE_ARRAY , 1,0,&acName1C12[0],&SDO1C12[0]}, //RxPDO objects |
vsluiter | 30:8cf6fbc953b5 | 341 | {0x1C13,OTYPE_ARRAY , 1,0,&acName1C13[0],&SDO1C13[0]}, //TxPDO objects |
vsluiter | 29:95ef6b54ec8e | 342 | {0x6000,OTYPE_ARRAY , 9,0,&acName6000[0],&SDO6000[0]}, //TxPDO module |
vsluiter | 29:95ef6b54ec8e | 343 | {0x6001,OTYPE_ARRAY , 9,0,&acName6001[0],&SDO6001[0]}, //TxPDO module |
vsluiter | 29:95ef6b54ec8e | 344 | {0x6002,OTYPE_ARRAY , 9,0,&acName6002[0],&SDO6002[0]}, //TxPDO module |
vsluiter | 23:2b2cdba08259 | 345 | {0x6003,OTYPE_ARRAY , 1,0,&acName6003[0],&SDO6003[0]}, //TxPDO module |
vsluiter | 5:6d75f432a41f | 346 | {0x7000,OTYPE_ARRAY , 0x01,0,&acName7000[0],&SDO7000[0]}, //RxPDO module |
vsluiter | 11:166353137b95 | 347 | {0x8000,OTYPE_ARRAY , 0x01,0,&acName8000[0],&SDO8000[0]}, //RxPDO module |
vsluiter | 2:3dd1240eb938 | 348 | {0xffff,0xff,0xff,0xff,nil,nil} |
vsluiter | 2:3dd1240eb938 | 349 | }; |
vsluiter | 2:3dd1240eb938 | 350 | |
vsluiter | 2:3dd1240eb938 | 351 | #endif |
vsluiter | 2:3dd1240eb938 | 352 |