1 /*-----------------------------------------------------------------------------
2 * EcType.h
3 * Copyright acontis technologies GmbH, Weingarten, Germany
4 * Response Stefan Zintgraf
5 * Description EtherCAT Master type definitions
6 *---------------------------------------------------------------------------*/
8 #ifndef INC_ECTYPE
9 #define INC_ECTYPE
11 /*-TYPEDEFS------------------------------------------------------------------*/
12 #define EC_T_VOID void
13 typedef void* EC_T_PVOID;
15 typedef int EC_T_BOOL;
17 typedef char EC_T_CHAR;
18 typedef unsigned short EC_T_WCHAR;
20 typedef unsigned char EC_T_BYTE, *EC_T_PBYTE;
21 typedef unsigned short EC_T_WORD;
22 typedef unsigned int EC_T_DWORD;
24 typedef signed char EC_T_SBYTE;
25 typedef signed short EC_T_SWORD;
26 typedef signed int EC_T_SDWORD;
28 typedef int EC_T_INT;
29 typedef unsigned int EC_T_UINT;
31 typedef short EC_T_SHORT;
32 typedef unsigned short EC_T_USHORT;
34 typedef double EC_T_REAL;
36 typedef void* EC_T_ADDRESS;
38 typedef void* EC_T_HANDLE;
40 /* type of lock */
41 typedef enum
42 {
43 eLockType_DEFAULT= 1, /*< Default mutex */
44 eLockType_SPIN, /*< only jobs --> spin lock */
45 eLockType_INTERFACE, /*< interface and jobs */
47 /* Borland C++ datatype alignment correction */
48 eLockType_BCppDummy = 0xFFFFFFFF
49 } EC_T_OS_LOCK_TYPE;
52 /*/////////////////////////////////////////////////////////////////////////////////////////
53 //
54 // Standard Types
55 */
56 #define DEFTYPE_NULL ((EC_T_WORD)0x0000)
57 #define DEFTYPE_BOOLEAN ((EC_T_WORD)0x0001) /* bit size: 1 */
58 #define DEFTYPE_INTEGER8 ((EC_T_WORD)0x0002) /* bit size: 8 */
59 #define DEFTYPE_INTEGER16 ((EC_T_WORD)0x0003) /* bit size: 16 */
60 #define DEFTYPE_INTEGER32 ((EC_T_WORD)0x0004) /* bit size: 32 */
61 #define DEFTYPE_UNSIGNED8 ((EC_T_WORD)0x0005) /* bit size: 8 */
62 #define DEFTYPE_UNSIGNED16 ((EC_T_WORD)0x0006) /* bit size: 16 */
63 #define DEFTYPE_UNSIGNED32 ((EC_T_WORD)0x0007) /* bit size: 32 */
64 #define DEFTYPE_REAL32 ((EC_T_WORD)0x0008) /* bit size: 32 */
65 #define DEFTYPE_VISIBLESTRING ((EC_T_WORD)0x0009) /* bit size: 8*n */
66 #define DEFTYPE_OCTETSTRING ((EC_T_WORD)0x000A) /* bit size: 8*(n+1) */
67 #define DEFTYPE_UNICODESTRING ((EC_T_WORD)0x000B) /* bit size: 16*(n+1) */
68 #define DEFTYPE_TIMEOFDAY ((EC_T_WORD)0x000C)
69 #define DEFTYPE_TIMEDIFFERENCE ((EC_T_WORD)0x000D)
70 #define DEFTYPE_DOMAIN ((EC_T_WORD)0x000F)
71 #define DEFTYPE_INTEGER24 ((EC_T_WORD)0x0010) /* bit size: 24 */
72 #define DEFTYPE_REAL64 ((EC_T_WORD)0x0011) /* bit size: 64 */
73 #define DEFTYPE_INTEGER40 ((EC_T_WORD)0x0012) /* bit size: 40 */
74 #define DEFTYPE_INTEGER48 ((EC_T_WORD)0x0013) /* bit size: 48 */
75 #define DEFTYPE_INTEGER56 ((EC_T_WORD)0x0014) /* bit size: 56 */
76 #define DEFTYPE_INTEGER64 ((EC_T_WORD)0x0015) /* bit size: 64 */
77 #define DEFTYPE_UNSIGNED24 ((EC_T_WORD)0x0016) /* bit size: 24 */
78 #define DEFTYPE_UNSIGNED40 ((EC_T_WORD)0x0018) /* bit size: 40 */
79 #define DEFTYPE_UNSIGNED48 ((EC_T_WORD)0x0019) /* bit size: 48 */
80 #define DEFTYPE_UNSIGNED56 ((EC_T_WORD)0x001A) /* bit size: 56 */
81 #define DEFTYPE_UNSIGNED64 ((EC_T_WORD)0x001B) /* bit size: 64 */
83 #define DEFTYPE_GUID ((EC_T_WORD)0x001D) /* bit size: 128 */
84 #define DEFTYPE_BYTE ((EC_T_WORD)0x001E) /* bit size: 8 */
85 #define DEFTYPE_WORD ((EC_T_WORD)0x001F) /* bit size: 16 */
86 #define DEFTYPE_DWORD ((EC_T_WORD)0x0020) /* bit size: 32 */
87 #define DEFTYPE_PDOMAPPING ((EC_T_WORD)0x0021)
89 #define DEFTYPE_IDENTITY ((EC_T_WORD)0x0023)
91 #define DEFTYPE_COMMAND ((EC_T_WORD)0x0025)
92 #define DEFTYPE_PDOCOMPAR ((EC_T_WORD)0x0027)
93 #define DEFTYPE_ENUM ((EC_T_WORD)0x0028)
94 #define DEFTYPE_SMPAR ((EC_T_WORD)0x0029)
95 #define DEFTYPE_RECORD ((EC_T_WORD)0x002A)
96 #define DEFTYPE_BACKUP_PARAMETER ((EC_T_WORD)0x002B)
97 #define DEFTYPE_MODULAR_DEVICE_PROFILE ((EC_T_WORD)0x002C)
98 #define DEFTYPE_BITARR8 ((EC_T_WORD)0x002D) /* bit size: 8 */
99 #define DEFTYPE_BITARR16 ((EC_T_WORD)0x002E) /* bit size: 16 */
100 #define DEFTYPE_BITARR32 ((EC_T_WORD)0x002F) /* bit size: 32 */
101 #define DEFTYPE_BIT1 ((EC_T_WORD)0x0030) /* bit size: 1 */
102 #define DEFTYPE_BIT2 ((EC_T_WORD)0x0031) /* bit size: 1 */
103 #define DEFTYPE_BIT3 ((EC_T_WORD)0x0032) /* bit size: 1 */
104 #define DEFTYPE_BIT4 ((EC_T_WORD)0x0033) /* bit size: 1 */
105 #define DEFTYPE_BIT5 ((EC_T_WORD)0x0034) /* bit size: 1 */
106 #define DEFTYPE_BIT6 ((EC_T_WORD)0x0035) /* bit size: 1 */
107 #define DEFTYPE_BIT7 ((EC_T_WORD)0x0036) /* bit size: 1 */
108 #define DEFTYPE_BIT8 ((EC_T_WORD)0x0037) /* bit size: 1 */
111 /*-MACROS--------------------------------------------------------------------*/
112 #define EC_FALSE 0
113 #define EC_TRUE 1
114 #define EC_NULL 0
116 #define EC_NOWAIT ((EC_T_DWORD)0x00000000)
117 #define EC_WAITINFINITE ((EC_T_DWORD)0xFFFFFFFF)
120 /*-MASTER FEATURES-----------------------------------------------------------*/
122 /* object dictionary */
123 #define EC_MASTER_DEVICE_NAME "EC-Master" /* Index: 0x1008 */
124 #define EC_MASTER_HW_VERSION "V xx.xx.xx.xx" /* Index: 0x1009 */
125 #define EC_MASTER_SW_VERSION "V xx.xx.xx.xx" /* Index: 0x100A */
126 #define EC_MASTER_VENDOR_ID 0x00004154 /* Index: 0x1018 Subindex 1 */
127 #define EC_MASTER_PRODUCT_CODE 0x6d657461 /* Index: 0x1018 Subindex 2 */
129 /* bit mask for supported features (used for license check) */
130 #define EC_FEATURES_MASTER_MASK 0x00000001
131 #define EC_FEATURES_RED_MASK 0x00000002
133 /* Class B */
134 #ifdef EXCLUDE_EC_MASTER_CLASS_B
135 #define EXCLUDE_EC_MASTER_CLASS_A /* Class A needs Class B */
136 #define EXCLUDE_EOE_SUPPORT /* mailbox protocol EoE */
137 #define EXCLUDE_SOE_SUPPORT /* servoDrive over EtherCAT */
138 #define EXCLUDE_FRAME_LOGGING /* callback interface to log frames */
139 #define EXCLUDE_FRAME_LOSS_SIMULATION
140 #define EXCLUDE_MEMORY_PROVIDER
141 #define EXCLUDE_SLAVE_STATISTICS /* cyclic reading of slave error registers */
142 #define EXCLUDE_VARREAD /* read PD variable tags from XML */
143 #endif
145 /* Class A */
146 #ifdef EXCLUDE_EC_MASTER_CLASS_A
147 #define EXCLUDE_AOE_SUPPORT /* ADS over EtherCAT */
148 #define EXCLUDE_DC_SUPPORT /* distributed clock */
149 #define EXCLUDE_FOE_SUPPORT /* file access over EtherCAT */
150 #define EXCLUDE_MASTER_OBD /* master object dictionary */
151 #define EXCLUDE_MULTIPLE_CYC_ENTRIES
152 #define EXCLUDE_RED_DEVICE /* redundancy */
153 #define EXCLUDE_VOE_SUPPORT /* vendor specific access over EtherCAT */
154 #endif
156 /* Base functionality */
157 #ifdef EXCLUDE_AOE_SUPPORT
158 #define EXCLUDE_ADS_ADAPTER /* ADS adapter needs AoE */
159 #else
160 #define INCLUDE_AOE_SUPPORT /* ADS over EtherCAT */
161 #endif
162 #ifndef EXCLUDE_DC_SUPPORT
163 #define INCLUDE_DC_SUPPORT /* distributed clock */
164 #endif
165 #ifndef EXCLUDE_DC_ADD_ACYC_DISTRIBUTION
166 #define INCLUDE_DC_ADD_ACYC_DISTRIBUTION /* additional system time distribution in acyc frame */
167 #endif
168 #ifndef EXCLUDE_EOE_SUPPORT
169 #define INCLUDE_EOE_SUPPORT /* mailbox protocol EoE */
170 #endif
171 #ifndef EXCLUDE_FOE_SUPPORT
172 #define INCLUDE_FOE_SUPPORT /* file access over EtherCAT */
173 #endif
174 #ifndef EXCLUDE_FRAME_LOGGING
175 #define INCLUDE_FRAME_LOGGING /* callback interface to log frames */
176 #endif
177 #ifndef EXCLUDE_FRAME_LOSS_SIMULATION
178 #define FRAME_LOSS_SIMULATION /* frame loss simulation */
179 #endif
180 #ifndef EXCLUDE_GEN_OP_ENI
181 #define INCLUDE_GEN_OP_ENI /* generation of ENI file to reach OP state */
182 #endif
183 #ifdef EXCLUDE_LOG_MESSAGES
184 #define EXCLUDE_TEXT
185 #else
186 #define INCLUDE_LOG_MESSAGES /* log messages */
187 #endif
188 #ifndef EXCLUDE_TEXT
189 #define INCLUDE_TEXT /* text returned by e.g. EcErrorText() */
190 #endif
191 #ifndef EXCLUDE_MASTER_OBD
192 #define INCLUDE_MASTER_OBD /* master object dictionary */
193 #endif
194 #ifndef EXCLUDE_MEMORY_PROVIDER
195 #define INCLUDE_MEMORY_PROVIDER /* memory provider */
196 #endif
197 #ifndef EXCLUDE_MULTIPLE_CYC_ENTRIES
198 #define INCLUDE_MULTIPLE_CYC_ENTRIES /* multiple cyclic entries */
199 #endif
200 #ifndef EXCLUDE_PORT_OPERATION
201 #define INCLUDE_PORT_OPERATION /* port operation (close/open ports blocknode) */
202 #endif
203 #ifndef EXCLUDE_RAWMBX_SUPPORT
204 #define INCLUDE_RAWMBX_SUPPORT /* raw mailbox transfer (e.g. used by mailbox gateway) */
205 #endif
206 #ifndef EXCLUDE_SOE_SUPPORT
207 #define INCLUDE_SOE_SUPPORT /* servoDrive over EtherCAT */
208 #endif
209 #ifndef EXCLUDE_SLAVE_STATISTICS
210 #define INCLUDE_SLAVE_STATISTICS /* cyclic reading of slave error registers */
211 #endif
212 #ifndef EXCLUDE_TRACE_DATA
213 #define INCLUDE_TRACE_DATA /* Trace data */
214 #ifndef EXCLUDE_TRACE_DATA_VARINFO
215 #define INCLUDE_TRACE_DATA_VARINFO
216 #endif
217 #endif
218 #ifndef EXCLUDE_VARREAD
219 #define INCLUDE_VARREAD /* read PD variable tags from XML */
220 #endif
221 #ifndef EXCLUDE_VOE_SUPPORT
222 #define INCLUDE_VOE_SUPPORT /* vendor specific access over EtherCAT */
223 #endif
224 #ifndef EXCLUDE_WKCSTATE
225 #define INCLUDE_WKCSTATE /* WkcState bits in diagnosis image */
226 #endif
228 #if 0
229 #define VLAN_FRAME_SUPPORT /* VLAN frame support. default: not included. */
230 #define INCLUDE_COE_PDO_SUPPORT /* currently not supported */
231 #define INCLUDE_EC_INTERNAL_TSC_MEASUREMENT
232 #define INCLUDE_RAS_SPOCSUPPORT
233 #endif
235 #ifndef EXCLUDE_FORCE_PROCESSDATA
236 #define INCLUDE_FORCE_PROCESSDATA /*Force/Release process data */
237 #endif
239 #ifndef EXCLUDE_LINE_CROSSED_DETECTION
240 #define INCLUDE_LINE_CROSSED_DETECTION
241 #endif
243 #ifndef EXCLUDE_OEM
244 #define INCLUDE_OEM
245 #endif
247 #ifndef EXCLUDE_JUNCTION_REDUNDANCY
248 #define INCLUDE_JUNCTION_REDUNDANCY /* junction redundancy */
249 #endif
251 /* feature packs */
252 #ifndef EXCLUDE_RED_DEVICE
253 #define INCLUDE_RED_DEVICE /* redundancy */
254 #endif
255 #ifndef EXCLUDE_ADS_ADAPTER
256 #define INCLUDE_ADS_ADAPTER
257 #endif
258 #ifndef EXCLUDE_EOE_ENDPOINT
259 #define INCLUDE_EOE_ENDPOINT /* ethernet over EtherCAT end point */
260 #endif
261 #ifndef EXCLUDE_HOTCONNECT
262 #define INCLUDE_HOTCONNECT
263 #endif
264 #ifndef EXCLUDE_PASS_THROUGH_SERVER
265 #define INCLUDE_PASS_THROUGH_SERVER
266 #endif
268 #endif /* INC_ECTYPE */
270 /*-END OF SOURCE FILE--------------------------------------------------------*/