NexMotion  1.4.0
Open Robots & Machines [WIP]
NexMotionDef.h
Go to the documentation of this file.
1 
7 #ifndef __NEXMOTION_DEF_H
8 #define __NEXMOTION_DEF_H
9 
10 #include "nex_type.h"
11 
16 #define NMC_DEVICE_TYPE_SIMULATOR (0)
17 #define NMC_DEVICE_TYPE_ETHERCAT (1)
18 
22 #define NMC_WAIT_TIME_INFINITE (0xFFFFFFFF)
24 
25 
29 #define NMC_DEVICE_STATE_INIT (1)
30 #define NMC_DEVICE_STATE_READY (2)
31 #define NMC_DEVICE_STATE_ERROR (3)
32 #define NMC_DEVICE_STATE_OPERATION (4)
33 
42 #define NMC_SAFETY_STATE_DISABLE (0)
43 #define NMC_SAFETY_STATE_READY (1)
44 #define NMC_SAFETY_STATE_ERROR (2)
45 
54 #define NMC_SAFETY_MODE_OP_T1 (0)
55 #define NMC_SAFETY_MODE_OP_T2 (1)
56 #define NMC_SAFETY_MODE_OP_AUT (2)
57 
66 #define NMC_SAFETY_WDT_TIMEOUT_STOP0 (0)
67 #define NMC_SAFETY_WDT_TIMEOUT_STOP1 (1)
68 
76 #define NMC_COORD_MCS (0)
77 #define NMC_COORD_PCS (1)
78 #define NMC_COORD_ACS (2)
79 
89 #define NMC_AXIS_STATE_DISABLE (0)
90 #define NMC_AXIS_STATE_STAND_STILL (1)
91 #define NMC_AXIS_STATE_HOMING (2)
92 #define NMC_AXIS_STATE_DISCRETE_MOTION (3)
93 #define NMC_AXIS_STATE_CONTINUOUS_MOTION (4)
94 #define NMC_AXIS_STATE_STOPPING (5)
95 #define NMC_AXIS_STATE_STOPPED (6)
96 #define NMC_AXIS_STATE_WAIT_SYNC (7)
97 #define NMC_AXIS_STATE_GROUP_MOTION (8)
98 #define NMC_AXIS_STATE_ERROR (10)
99 
112 #define NMC_AXIS_STATUS_EMG (0)
113 #define NMC_AXIS_STATUS_ALM (1)
114 #define NMC_AXIS_STATUS_PEL (2)
115 #define NMC_AXIS_STATUS_NEL (3)
116 #define NMC_AXIS_STATUS_PSEL (4)
117 #define NMC_AXIS_STATUS_NSEL (5)
118 #define NMC_AXIS_STATUS_ENA (6)
119 #define NMC_AXIS_STATUS_ERR (7)
120 #define NMC_AXIS_STATUS_TAR (8)
121 #define NMC_AXIS_STATUS_CSTP (9)
122 #define NMC_AXIS_STATUS_ACC (10)
123 #define NMC_AXIS_STATUS_DEC (11)
124 #define NMC_AXIS_STATUS_MV (12)
125 #define NMC_AXIS_STATUS_OP (13)
126 #define NMC_AXIS_STATUS_STOP (14)
127 #define NMC_AXIS_STATUS_RPEL (16)
128 #define NMC_AXIS_STATUS_RNEL (17)
129 #define NMC_AXIS_STATUS_RHOM (18)
130 
145 #define NMC_AXIS_STATUS_MASK_EMG (0x00000001)
146 #define NMC_AXIS_STATUS_MASK_ALM (0x00000002)
147 #define NMC_AXIS_STATUS_MASK_PEL (0x00000004)
148 #define NMC_AXIS_STATUS_MASK_NEL (0x00000008)
149 #define NMC_AXIS_STATUS_MASK_PSEL (0x00000010)
150 #define NMC_AXIS_STATUS_MASK_NSEL (0x00000020)
151 #define NMC_AXIS_STATUS_MASK_ENA (0x00000040)
152 #define NMC_AXIS_STATUS_MASK_ERR (0x00000080)
153 #define NMC_AXIS_STATUS_MASK_TAR (0x00000100)
154 #define NMC_AXIS_STATUS_MASK_CSTP (0x00000200)
155 #define NMC_AXIS_STATUS_MASK_ACC (0x00000400)
156 #define NMC_AXIS_STATUS_MASK_DEC (0x00000800)
157 #define NMC_AXIS_STATUS_MASK_MV (0x00001000)
158 #define NMC_AXIS_STATUS_MASK_OP (0x00002000)
159 #define NMC_AXIS_STATUS_MASK_STOP (0x00004000)
160 #define NMC_AXIS_STATUS_MASK_RPEL (0x00010000)
161 #define NMC_AXIS_STATUS_MASK_RNEL (0x00020000)
162 #define NMC_AXIS_STATUS_MASK_RHOM (0x00040000)
163 
174 #define NMC_GROUP_STATE_DISABLE (0)
175 #define NMC_GROUP_STATE_STAND_STILL (1)
176 #define NMC_GROUP_STATE_STOPPED (2)
177 #define NMC_GROUP_STATE_STOPPING (3)
178 #define NMC_GROUP_STATE_MOVING (4)
179 #define NMC_GROUP_STATE_HOMING (5)
180 #define NMC_GROUP_STATE_ERROR (6)
181 
195 #define NMC_GROUP_STATUS_EMG (0)
196 #define NMC_GROUP_STATUS_ALM (1)
197 #define NMC_GROUP_STATUS_PEL (2)
198 #define NMC_GROUP_STATUS_NEL (3)
199 #define NMC_GROUP_STATUS_PSEL (4)
200 #define NMC_GROUP_STATUS_NSEL (5)
201 #define NMC_GROUP_STATUS_ENA (6)
202 #define NMC_GROUP_STATUS_ERR (7)
203 #define NMC_GROUP_STATUS_CSTP (9)
204 #define NMC_GROUP_STATUS_ACC (10)
205 #define NMC_GROUP_STATUS_DEC (11)
206 #define NMC_GROUP_STATUS_MV (12)
207 #define NMC_GROUP_STATUS_OP (13)
208 #define NMC_GROUP_STATUS_STOP (14)
209 
218 #define NMC_GROUP_STATUS_MASK_EMG (0x00000001)
219 #define NMC_GROUP_STATUS_MASK_ALM (0x00000002)
220 #define NMC_GROUP_STATUS_MASK_PEL (0x00000004)
221 #define NMC_GROUP_STATUS_MASK_NEL (0x00000008)
222 #define NMC_GROUP_STATUS_MASK_PSEL (0x00000010)
223 #define NMC_GROUP_STATUS_MASK_NSEL (0x00000020)
224 #define NMC_GROUP_STATUS_MASK_ENA (0x00000040)
225 #define NMC_GROUP_STATUS_MASK_ERR (0x00000080)
226 #define NMC_GROUP_STATUS_MASK_CSTP (0x00000200)
227 #define NMC_GROUP_STATUS_MASK_ACC (0x00000400)
228 #define NMC_GROUP_STATUS_MASK_DEC (0x00000800)
229 #define NMC_GROUP_STATUS_MASK_MV (0x00001000)
230 #define NMC_GROUP_STATUS_MASK_OP (0x00002000)
231 #define NMC_GROUP_STATUS_MASK_STOP (0x00004000)
232 
236 #define NMC_MAX_AXES_IN_GROUP (8)
238 
240 #define NMC_MAX_POS_SIZE (8)
241 
243 #define NMC_MAX_XYZ_SIZE (3)
244 
246 #define NMC_MAX_AXIS_POS_SIZE (NMC_MAX_AXES_IN_GROUP)
247 
249 #define NMC_MAX_CARTESIAN_POS_SIZE (6)
250 
255 #define NMC_GROUP_AXIS_X (0)
256 #define NMC_GROUP_AXIS_Y (1)
257 #define NMC_GROUP_AXIS_Z (2)
258 #define NMC_GROUP_AXIS_A (3)
259 #define NMC_GROUP_AXIS_B (4)
260 #define NMC_GROUP_AXIS_C (5)
261 #define NMC_GROUP_AXIS_U (6)
262 #define NMC_GROUP_AXIS_V (7)
263 
271 #define NMC_GROUP_AXIS_MASK_X (0x00000001)
272 #define NMC_GROUP_AXIS_MASK_Y (0x00000002)
273 #define NMC_GROUP_AXIS_MASK_Z (0x00000004)
274 #define NMC_GROUP_AXIS_MASK_A (0x00000008)
275 #define NMC_GROUP_AXIS_MASK_B (0x00000010)
276 #define NMC_GROUP_AXIS_MASK_C (0x00000020)
277 #define NMC_GROUP_AXIS_MASK_U (0x00000040)
278 #define NMC_GROUP_AXIS_MASK_V (0x00000080)
279 #define NMC_GROUP_AXIS_MASK_ALL (0x000000FF)
280 
288 #define NMC_TRACE_MODE_DISABLE (0)
289 #define NMC_TRACE_MODE_ERROR (1)
290 #define NMC_TRACE_MODE_ALL (2)
291 
300 #define NMC_MAX_MSG_SOURCE_SIZE (128)
301 #define NMC_MAX_MSG_TEXT_SIZE (1024)
302 #define NMC_MSG_TYPE_NORMAL (0)
303 #define NMC_MSG_TYPE_WARNING (1)
304 #define NMC_MSG_TYPE_ERROR (2)
305 #define NMC_MSG_TYPE_DEBUGING (3)
306 
315 #define NMC_MEM_ENTRY_NAME_SIZE (128)
316 #define NMC_MEM_ENTRY_CLASS_DIO (0)
317 #define NMC_MEM_ENTRY_CLASS_DATA (1)
318 
322 #define NMC_MAX_POSE_DATA_SIZE (6)
324 
330 #define NMC_TOOL_NONE (-1)
331 #define NMC_BASE_NONE (-1)
332 
341 #define RCFG_BIT0 0
342 #define RCFG_BIT1 1
343 #define RCFG_BIT2 2
344 #define RCFG_SIZE 4
345 #define RCFG_1 0
346 #define RCFG_4 1
347 #define RCFG_6 2
348 #define RCFG_X 3
349 #define RCFG_OPTION 10
350 #define RCFG_INI 20
351 #define RCFG_UNUSE 30
352 
363 typedef struct
364 {
365  // For Cartesian space(MCS,PCS) : X, Y, Z, A, B, C, U, V
366  // For Axis space(ACS): Axis 0 ~ 7
373 } Pos_T;
374 
375 
383 typedef struct
384 {
385  // For Cartesian space(MCS,PCS) : X, Y, Z,
390 } Xyz_T;
391 
392 
399 typedef struct
400 {
403 } APos_T;
404 
405 
412 typedef struct
413 {
416 } CPos_T;
417 
423 typedef struct
424 {
425  I32_T rc1;
426  I32_T rc2;
427  I32_T rc3;
428  I32_T rc4;
429 } RCfg_T;
430 
436 typedef struct
437 {
438  // To describe a position in Cartesian space(MCS,PCS) : X, Y, Z, A, B, C
439  CPos_T cPos;
440  RCfg_T rCfg;
441 } RCPos_T;
442 
448 typedef struct
449 {
450  // To describe the coordinate transformation between two coordinate systems: (x, y, z, roll, pitch, yaw)
451  // (x,y,z) for translation, (r,p,y) for rotation
456 } CoordTrans_T;
457 
458 
467 typedef void(*PF_NmcHookAPI)( const void *FPFuncAddress , const char *PFuncName, RTN_ERR ReturnCode, void *PUserData );
468 
469 #pragma pack(push, 1)
470 
474 typedef struct
475 {
483 } NmcTime_T;
484 
485 
490 typedef struct
491 {
496  char source[NMC_MAX_MSG_SOURCE_SIZE];
499  char text[NMC_MAX_MSG_TEXT_SIZE];
500 } NmcMsg_T;
501 #pragma pack(pop)
502 
503 
508 typedef struct
509 {
510  U32_T bitStartOffset;
511  U32_T bitLen;
512  U32_T dataType;
513  U32_T fclass;
514  char name[NMC_MEM_ENTRY_NAME_SIZE];
516 
518 // Obsolete definition
520 
524 #define MAX_POS_SIZE (NMC_MAX_POS_SIZE)
526 #define MAX_XYZ_SIZE (NMC_MAX_XYZ_SIZE)
527 
528 // Group axis index definition
529 #define GROUP_AXIS_X (0)
530 #define GROUP_AXIS_Y (1)
531 #define GROUP_AXIS_Z (2)
532 #define GROUP_AXIS_A (3)
533 #define GROUP_AXIS_B (4)
534 #define GROUP_AXIS_C (5)
535 #define GROUP_AXIS_U (6)
536 #define GROUP_AXIS_V (7)
537 
538 // Group axis mask definition
539 #define GROUP_AXIS_MASK_X (0x00000001)
540 #define GROUP_AXIS_MASK_Y (0x00000002)
541 #define GROUP_AXIS_MASK_Z (0x00000004)
542 #define GROUP_AXIS_MASK_A (0x00000008)
543 #define GROUP_AXIS_MASK_B (0x00000010)
544 #define GROUP_AXIS_MASK_C (0x00000020)
545 #define GROUP_AXIS_MASK_U (0x00000040)
546 #define GROUP_AXIS_MASK_V (0x00000080)
547 
551 #endif
A data structure is used to describe the system message.
Definition: NexMotionDef.h:490
#define NMC_MAX_POSE_DATA_SIZE
Definition: NexMotionDef.h:323
U32_T index
The index of message.
Definition: NexMotionDef.h:494
U32_T minute
0 through 59.
Definition: NexMotionDef.h:480
Definition: NexMotionDef.h:423
A head file define variable types for NexMotion Library.
The data types related to pose in Cartesian space, which is defined in NexMotionDef.h.
Definition: NexMotionDef.h:412
The data types related to motion in Axis system, which is defined in NexMotionDef.h.
Definition: NexMotionDef.h:399
NmcTime_T localTime
The system time recorded when the message is generated.
Definition: NexMotionDef.h:493
I32_T code
The code of message.
Definition: NexMotionDef.h:498
U32_T year
1601 through 30827
Definition: NexMotionDef.h:476
U32_T hour
0 through 23.
Definition: NexMotionDef.h:479
A data structure is used to describe the system time.
Definition: NexMotionDef.h:474
The data structure to descibe the transformmed reslationship between two coordinate system...
Definition: NexMotionDef.h:448
int I32_T
-2147483648 ~ 2147483647
Definition: nex_type.h:29
A data structure is used to describe the information of memory entry.
Definition: NexMotionDef.h:508
The data types related to motion in Cartesian system, which is defined in NexMotionDef.h.
Definition: NexMotionDef.h:383
U32_T second
0 through 59
Definition: NexMotionDef.h:481
I32_T id
The identification of message (reserved).
Definition: NexMotionDef.h:497
U32_T month
1 through 12.
Definition: NexMotionDef.h:477
Definition: NexMotionDef.h:436
I32_T RTN_ERR
Return code.
Definition: nex_type.h:39
#define NMC_MAX_CARTESIAN_POS_SIZE
CPos_T array size definition.
Definition: NexMotionDef.h:249
#define NMC_MAX_XYZ_SIZE
Xyz_T array size definition.
Definition: NexMotionDef.h:243
#define NMC_MAX_AXIS_POS_SIZE
APos_T array size definition.
Definition: NexMotionDef.h:246
I32_T type
The type of message.
Definition: NexMotionDef.h:495
U32_T day
1 through 31.
Definition: NexMotionDef.h:478
#define NMC_MAX_POS_SIZE
Pos_T array size definition.
Definition: NexMotionDef.h:240
U32_T milliseconds
0 through 999
Definition: NexMotionDef.h:482
unsigned int U32_T
0 ~ 4294967295
Definition: nex_type.h:20
The general data types related to motion, which is defined in NexMotionDef.h.
Definition: NexMotionDef.h:363
U32_T sizeOfStruct
The size of NmcMsg_T, and equivalent to the sizeof(NmcMsg_T).
Definition: NexMotionDef.h:492
void(* PF_NmcHookAPI)(const void *FPFuncAddress, const char *PFuncName, RTN_ERR ReturnCode, void *PUserData)
Hook function type definition.
Definition: NexMotionDef.h:467
double F64_T
Double precision floating point.
Definition: nex_type.h:37