SOES implementation i.c.w. ET1100 (Beckhoff ASIC)

Dependencies:   KL25Z_ClockControl MODSERIAL mbed

Fork of EtherCAT-XbusMaster by First Last

Committer:
vsluiter
Date:
Mon Mar 02 15:25:21 2015 +0000
Revision:
11:166353137b95
Parent:
9:33673e05639f
Child:
12:cac4e7c2bd0f
Ready to publish;

Who changed what in which revision?

UserRevisionLine numberNew 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 5:6d75f432a41f 122 _ac acName1A00[]="Transmit PDO mapping - CoP";
vsluiter 5:6d75f432a41f 123 _ac acName1A10[]="Transmit PDO mapping - Raw";
vsluiter 2:3dd1240eb938 124 _ac acName1C00[]="Sync Manager Communication type";
vsluiter 2:3dd1240eb938 125 /*Subindexes for Sync Manager Communication type*/
vsluiter 2:3dd1240eb938 126 _ac acName1C00_01[]="Communications type SM0";
vsluiter 2:3dd1240eb938 127 _ac acName1C00_02[]="Communications type SM1";
vsluiter 2:3dd1240eb938 128 _ac acName1C00_03[]="Communications type SM2";
vsluiter 2:3dd1240eb938 129 _ac acName1C00_04[]="Communications type SM3";
vsluiter 2:3dd1240eb938 130 /*End of subindexes for Sync Manager Communication type*/
vsluiter 2:3dd1240eb938 131 _ac acName1C10[]="Sync Manager 0 PDO Assignment";
vsluiter 2:3dd1240eb938 132 _ac acName1C11[]="Sync Manager 1 PDO Assignment";
vsluiter 2:3dd1240eb938 133 _ac acName1C12[]="Sync Manager 2 PDO Assignment";
vsluiter 2:3dd1240eb938 134 _ac acName1C13[]="Sync Manager 3 PDO Assignment";
vsluiter 2:3dd1240eb938 135 _ac acNameNOE[]="Number of entries";
vsluiter 4:bb72df6dce33 136 _ac acName6000[]="Centre of Pressure";
vsluiter 2:3dd1240eb938 137 /*Subindexes for Digital Inputs*/
vsluiter 4:bb72df6dce33 138 _ac acName6000_01[]="Centre of Pressure X";
vsluiter 4:bb72df6dce33 139 _ac acName6000_02[]="Centre of Pressure Y";
vsluiter 9:33673e05639f 140 _ac acName6000_03[]="Ground Reaction Force";
vsluiter 2:3dd1240eb938 141 /*End of subindexes for Digital Inputs*/
vsluiter 4:bb72df6dce33 142 _ac acName6001[]="Raw Sensor Inputs";
vsluiter 2:3dd1240eb938 143 /*Subindexes for Analog inputs*/
vsluiter 5:6d75f432a41f 144 _ac acName6001_01[]="Raw FrontLeft";
vsluiter 5:6d75f432a41f 145 _ac acName6001_02[]="Raw FrontRight";
vsluiter 5:6d75f432a41f 146 _ac acName6001_03[]="Raw BackLeft";
vsluiter 5:6d75f432a41f 147 _ac acName6001_04[]="Raw BackRight";
vsluiter 4:bb72df6dce33 148 _ac acName6001_05[]="Timestamp";
vsluiter 2:3dd1240eb938 149 /*End of subindexes for Analog inputs*/
vsluiter 2:3dd1240eb938 150 _ac acName7000[]="Outputs";
vsluiter 2:3dd1240eb938 151 /*Subindexes of Outputs*/
vsluiter 5:6d75f432a41f 152 _ac acName7000_01[]="Correct Offset";
vsluiter 2:3dd1240eb938 153 /*End of subindexes for Outputs*/
vsluiter 11:166353137b95 154 _ac acName8000[]="Configuration";
vsluiter 2:3dd1240eb938 155 /*Subindexes of configuration*/
vsluiter 11:166353137b95 156 _ac acName8000_01[]="Settings 8";
vsluiter 5:6d75f432a41f 157 //_ac acName8000_02[]="Settings 16";
vsluiter 2:3dd1240eb938 158 /*End of subindexes of configuration*/
vsluiter 2:3dd1240eb938 159
vsluiter 2:3dd1240eb938 160 /////////////////////////////////////////////////////////////////////////////////////
vsluiter 2:3dd1240eb938 161 /** Definiton of Device Name */
vsluiter 3:3761315146ec 162 char ac1008_00[]="EtherCAT BalanceBoard";
vsluiter 2:3dd1240eb938 163 /** Definition of Hardware version*/
vsluiter 2:3dd1240eb938 164 char ac1009_00[]="0.0.1";
vsluiter 2:3dd1240eb938 165 /** Definition of Software version*/
vsluiter 2:3dd1240eb938 166 char ac100A_00[]="0.0.1";
vsluiter 2:3dd1240eb938 167 /** Service Data Object 1000: Device Type */
vsluiter 2:3dd1240eb938 168 const _objd SDO1000[]=
vsluiter 2:3dd1240eb938 169 {{0x00,DTYPE_UNSIGNED32,32,ATYPE_R,&acName1000[0],0x00000000}};
vsluiter 2:3dd1240eb938 170 /** Service Data Object 1008: Device Name */
vsluiter 2:3dd1240eb938 171 const _objd SDO1008[]=
vsluiter 2:3dd1240eb938 172 {{0x00,DTYPE_VISIBLE_STRING,sizeof(ac1008_00)<<3,ATYPE_R,&acName1008[0],0,&ac1008_00[0]}};
vsluiter 2:3dd1240eb938 173 /** Service Data Object 1009: Hardware Version */
vsluiter 2:3dd1240eb938 174 const _objd SDO1009[]=
vsluiter 2:3dd1240eb938 175 {{0x00,DTYPE_VISIBLE_STRING,sizeof(ac1009_00)<<3,ATYPE_R,&acName1009[0],0,&ac1009_00[0]}};
vsluiter 2:3dd1240eb938 176 /** Service Data Object 100A: Software Version */
vsluiter 2:3dd1240eb938 177 const _objd SDO100A[]=
vsluiter 2:3dd1240eb938 178 {{0x00,DTYPE_VISIBLE_STRING,sizeof(ac100A_00)<<3,ATYPE_R,&acName100A[0],0,&ac100A_00[0]}};
vsluiter 2:3dd1240eb938 179 const _objd SDO1018[]= //See ETG.1000.6 'Identity Object'
vsluiter 2:3dd1240eb938 180 {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x04}, //Number of Entries
vsluiter 2:3dd1240eb938 181 {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acName1018_01[0],0x500}, //Vendor ID
vsluiter 3:3761315146ec 182 {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acName1018_02[0],0004 }, //Product Code
vsluiter 2:3dd1240eb938 183 {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acName1018_03[0],0x001}, //Revision Number
vsluiter 3:3761315146ec 184 {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acName1018_04[0],0x001} //Serial Number
vsluiter 2:3dd1240eb938 185 };
vsluiter 3:3761315146ec 186
vsluiter 2:3dd1240eb938 187 /////////////////////////////////////////////////////////////////////////////////////////////
vsluiter 2:3dd1240eb938 188 const _objd SDO1600[]= //RxPDO mapping (objects from master to slave)
vsluiter 5:6d75f432a41f 189 {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x01}, //Number of RxPDOs
vsluiter 5:6d75f432a41f 190 {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x70000108} //First Object, pointing to object 7001:01
vsluiter 2:3dd1240eb938 191 };
vsluiter 2:3dd1240eb938 192 const _objd SDO1A00[]= //TxPDO mapping (objects from slave to master)
vsluiter 9:33673e05639f 193 {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x03}, //Number of TxPDOs
vsluiter 4:bb72df6dce33 194 {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000120}, //First Object, pointing to object 6000:01
vsluiter 4:bb72df6dce33 195 {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000220}, //Second Object, pointing to object 6000:02 //..
vsluiter 9:33673e05639f 196 {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000320},
vsluiter 2:3dd1240eb938 197 };
vsluiter 2:3dd1240eb938 198 const _objd SDO1A10[]= //Second TxPDO module
vsluiter 4:bb72df6dce33 199 {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x05},
vsluiter 4:bb72df6dce33 200 {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010120},
vsluiter 4:bb72df6dce33 201 {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010220},
vsluiter 4:bb72df6dce33 202 {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010320},
vsluiter 4:bb72df6dce33 203 {0x04,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010420},
vsluiter 4:bb72df6dce33 204 {0x05,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010520}
vsluiter 2:3dd1240eb938 205 };
vsluiter 2:3dd1240eb938 206 const _objd SDO1C00[]= //Sync Manager
vsluiter 2:3dd1240eb938 207 {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x04}, //Number of used Sync Manager channels
vsluiter 2:3dd1240eb938 208 {0x01,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C00_01[0],0x01}, //Sync Manager 0: Mailbox Receive (master->slave)
vsluiter 2:3dd1240eb938 209 {0x02,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C00_02[0],0x02}, //Sync Manager 1: Mailbos send (slave->master)
vsluiter 2:3dd1240eb938 210 {0x03,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C00_03[0],0x03}, //Process Data Output (or Inputs if no Outputs are used)
vsluiter 2:3dd1240eb938 211 {0x04,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C00_04[0],0x04} //Process Data Input
vsluiter 2:3dd1240eb938 212 };
vsluiter 2:3dd1240eb938 213 const _objd SDO1C10[]= //Sync Manager 0 PDO Assignment
vsluiter 2:3dd1240eb938 214 {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C10[0],0x00}};
vsluiter 2:3dd1240eb938 215 const _objd SDO1C11[]= //Sync Manager 1 PDO Assignment
vsluiter 2:3dd1240eb938 216 {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acName1C11[0],0x00}};
vsluiter 2:3dd1240eb938 217 const _objd SDO1C12[]= //RxPDO Assign objects
vsluiter 2:3dd1240eb938 218 {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x01}, //Number of Entries
vsluiter 2:3dd1240eb938 219 {0x01,DTYPE_UNSIGNED16,16,ATYPE_R,&acNameMO[0],0x1600} //Send objects in index 0x1600
vsluiter 2:3dd1240eb938 220 };
vsluiter 2:3dd1240eb938 221 const _objd SDO1C13[]= //TxPDO Assign objects ; CHANGEABLE, thus 'RWpre' mode
vsluiter 11:166353137b95 222 {{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x02}, //Number of Entries
vsluiter 11:166353137b95 223 {0x01,DTYPE_UNSIGNED16,16,ATYPE_R,&acNameMO[0],0x1A00}, //Send objects in index 0x1A00
vsluiter 11:166353137b95 224 {0x02,DTYPE_UNSIGNED16,16,ATYPE_R,&acNameMO[0],0x1A10} //Send objects in index 0x1A10
vsluiter 2:3dd1240eb938 225 };
vsluiter 2:3dd1240eb938 226 const _objd SDO6000[]= //TxPDO module
vsluiter 9:33673e05639f 227 {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x03}, //Number of elements
vsluiter 4:bb72df6dce33 228 {0x01,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.CoPx)}, //6000:01 is status
vsluiter 9:33673e05639f 229 {0x02,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.CoPy)}, //6000:02 is counter
vsluiter 9:33673e05639f 230 {0x03,DTYPE_REAL32 ,32,ATYPE_R,&acName6000_03[0],0,&(Rb.grf)}
vsluiter 2:3dd1240eb938 231 };
vsluiter 4:bb72df6dce33 232 //TODO: Comments
vsluiter 2:3dd1240eb938 233 const _objd SDO6001[]= //TxPDO module
vsluiter 4:bb72df6dce33 234 {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x05}, //Number of elements
vsluiter 4:bb72df6dce33 235 {0x01,DTYPE_REAL32 ,32,ATYPE_R,&acName6001_01[0],0,&(Rb.FrontLeft)}, //6001:1 is analog 0
vsluiter 4:bb72df6dce33 236 {0x02,DTYPE_REAL32 ,32,ATYPE_R,&acName6001_02[0],0,&(Rb.FrontRight)}, //6001:2 is analog 1
vsluiter 4:bb72df6dce33 237 {0x03,DTYPE_REAL32 ,32,ATYPE_R,&acName6001_03[0],0,&(Rb.BackLeft)}, //6001:3 is analog 2
vsluiter 4:bb72df6dce33 238 {0x04,DTYPE_REAL32 ,32,ATYPE_R,&acName6001_04[0],0,&(Rb.BackRight)}, //6001:4 is analog
vsluiter 4:bb72df6dce33 239 {0x05,DTYPE_UNSIGNED32 ,32,ATYPE_R,&acName6001_05[0],0,&(Rb.timestamp)} //6001:9 is timestamp
vsluiter 2:3dd1240eb938 240 };
vsluiter 2:3dd1240eb938 241 const _objd SDO7000[]= //RxPDO module
vsluiter 5:6d75f432a41f 242 {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x01}, //Number of elements
vsluiter 5:6d75f432a41f 243 {0x01,DTYPE_UNSIGNED8 ,8,ATYPE_RW,&acName7000_01[0],0,&(Wb.correct_offset)} //7001:02 is correct_offset
vsluiter 2:3dd1240eb938 244 };
vsluiter 11:166353137b95 245 const _objd SDO8000[]= //Configuration mailbox
vsluiter 11:166353137b95 246 {{0x00,DTYPE_UNSIGNED8 ,8,ATYPE_R,&acNameNOE[0],0x01}, //number of elements
vsluiter 11:166353137b95 247 {0x01,DTYPE_UNSIGNED8 ,8,ATYPE_RW,&acName8000_01[0],0,&(Eb.setting8)} //8000:01 is setting8
vsluiter 11:166353137b95 248 //{0x02,DTYPE_UNSIGNED16 ,16,ATYPE_RW,&acName8000_02[0],0,&(Eb.setting16)} //8000:02 is setting16
vsluiter 11:166353137b95 249 };
vsluiter 2:3dd1240eb938 250 /** Object list; all objects used in EtherCAT slave */
vsluiter 2:3dd1240eb938 251 const _objectlist SDOobjects[]=
vsluiter 2:3dd1240eb938 252 {{0x1000,OTYPE_VAR , 0,0,&acName1000[0],&SDO1000[0]}, //Device Type
vsluiter 2:3dd1240eb938 253 {0x1008,OTYPE_VAR , 0,0,&acName1008[0],&SDO1008[0]}, //Device Name
vsluiter 2:3dd1240eb938 254 {0x1009,OTYPE_VAR , 0,0,&acName1009[0],&SDO1009[0]}, //Hardware Version
vsluiter 2:3dd1240eb938 255 {0x100A,OTYPE_VAR , 0,0,&acName100A[0],&SDO100A[0]}, //Software Version
vsluiter 2:3dd1240eb938 256 {0x1018,OTYPE_RECORD , 4,0,&acName1018[0],&SDO1018[0]}, //Identity
vsluiter 5:6d75f432a41f 257 {0x1600,OTYPE_RECORD , 0x01,0,&acName1600[0],&SDO1600[0]}, //RxPDO mapping
vsluiter 9:33673e05639f 258 {0x1A00,OTYPE_RECORD , 0x03,0,&acName1A00[0],&SDO1A00[0]}, //TxPDO mapping
vsluiter 4:bb72df6dce33 259 {0x1A10,OTYPE_RECORD , 0x05,0,&acName1A10[0],&SDO1A10[0]}, //TxPDO mapping
vsluiter 2:3dd1240eb938 260 {0x1C00,OTYPE_ARRAY , 4,0,&acName1C00[0],&SDO1C00[0]}, //Sync Manager configuration
vsluiter 2:3dd1240eb938 261 {0x1C10,OTYPE_ARRAY , 0,0,&acName1C10[0],&SDO1C10[0]}, //Sync Manager 0 PDO assignment
vsluiter 2:3dd1240eb938 262 {0x1C11,OTYPE_ARRAY , 0,0,&acName1C11[0],&SDO1C11[0]}, //Sync Manager 1 PDO assignment
vsluiter 2:3dd1240eb938 263 {0x1C12,OTYPE_ARRAY , 1,0,&acName1C12[0],&SDO1C12[0]}, //RxPDO objects
vsluiter 2:3dd1240eb938 264 {0x1C13,OTYPE_ARRAY , 2,0,&acName1C13[0],&SDO1C13[0]}, //TxPDO objects
vsluiter 9:33673e05639f 265 {0x6000,OTYPE_ARRAY , 0x03,0,&acName6000[0],&SDO6000[0]}, //TxPDO module
vsluiter 4:bb72df6dce33 266 {0x6001,OTYPE_ARRAY , 0x05,0,&acName6001[0],&SDO6001[0]}, //TxPDO module
vsluiter 5:6d75f432a41f 267 {0x7000,OTYPE_ARRAY , 0x01,0,&acName7000[0],&SDO7000[0]}, //RxPDO module
vsluiter 11:166353137b95 268 {0x8000,OTYPE_ARRAY , 0x01,0,&acName8000[0],&SDO8000[0]}, //RxPDO module
vsluiter 2:3dd1240eb938 269 {0xffff,0xff,0xff,0xff,nil,nil}
vsluiter 2:3dd1240eb938 270 };
vsluiter 2:3dd1240eb938 271
vsluiter 2:3dd1240eb938 272 #endif
vsluiter 2:3dd1240eb938 273