⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emc.hh

📁 Source code for an Numeric Cmputer
💻 HH
📖 第 1 页 / 共 5 页
字号:
/********************************************************************* Description: emc.hh*   Declarations for EMC NML vocabulary**   Derived from a work by Fred Proctor & Will Shackleford** Author:* License: GPL Version 2* System: Linux** Copyright (c) 2004 All rights reserved.** Last change:* $Revision: 1.25 $* $Author: cradek $* $Date: 2006/03/21 02:42:28 $********************************************************************/#ifndef EMC_HH#define EMC_HH#include "config.h"#include "rcs.hh"#include "posemath.h"		// PM_POSE, etc.#include "canon.hh"		// CANON_TOOL_TABLE, CANON_UNITS#include "emcglb.h"		// EMC_AXIS_MAX#include "emcpos.h"// ---------------------// EMC TYPE DECLARATIONS// ---------------------// NML for base EMC#define EMC_OPERATOR_ERROR_TYPE                      ((NMLTYPE) 11)#define EMC_OPERATOR_TEXT_TYPE                       ((NMLTYPE) 12)#define EMC_OPERATOR_DISPLAY_TYPE                    ((NMLTYPE) 13)#define EMC_NULL_TYPE                                ((NMLTYPE) 21)#define EMC_SET_DEBUG_TYPE                           ((NMLTYPE) 22)#define EMC_SYSTEM_CMD_TYPE                          ((NMLTYPE) 30)// NML for EMC_AXIS#define EMC_AXIS_SET_AXIS_TYPE                       ((NMLTYPE) 101)#define EMC_AXIS_SET_UNITS_TYPE                      ((NMLTYPE) 102)/*! \todo FIXME - to be deleted later */#define EMC_AXIS_SET_GAINS_TYPE                      ((NMLTYPE) 103)#define EMC_AXIS_SET_CYCLE_TIME_TYPE                 ((NMLTYPE) 104)#define EMC_AXIS_SET_INPUT_SCALE_TYPE                ((NMLTYPE) 105)#define EMC_AXIS_SET_OUTPUT_SCALE_TYPE               ((NMLTYPE) 106)#define EMC_AXIS_SET_MIN_POSITION_LIMIT_TYPE         ((NMLTYPE) 107)#define EMC_AXIS_SET_MAX_POSITION_LIMIT_TYPE         ((NMLTYPE) 108)#define EMC_AXIS_SET_MIN_OUTPUT_LIMIT_TYPE           ((NMLTYPE) 109)#define EMC_AXIS_SET_MAX_OUTPUT_LIMIT_TYPE           ((NMLTYPE) 110)#define EMC_AXIS_SET_FERROR_TYPE                     ((NMLTYPE) 111)#define EMC_AXIS_SET_HOMING_PARAMS_TYPE              ((NMLTYPE) 112)// gap because of deleted message types#define EMC_AXIS_SET_MIN_FERROR_TYPE                 ((NMLTYPE) 115)#define EMC_AXIS_SET_MAX_VELOCITY_TYPE               ((NMLTYPE) 116)// gap because of deleted message types#define EMC_AXIS_INIT_TYPE                           ((NMLTYPE) 118)#define EMC_AXIS_HALT_TYPE                           ((NMLTYPE) 119)#define EMC_AXIS_ABORT_TYPE                          ((NMLTYPE) 120)#define EMC_AXIS_ENABLE_TYPE                         ((NMLTYPE) 121)#define EMC_AXIS_DISABLE_TYPE                        ((NMLTYPE) 122)#define EMC_AXIS_HOME_TYPE                           ((NMLTYPE) 123)#define EMC_AXIS_JOG_TYPE                            ((NMLTYPE) 124)#define EMC_AXIS_INCR_JOG_TYPE                       ((NMLTYPE) 125)#define EMC_AXIS_ABS_JOG_TYPE                        ((NMLTYPE) 126)#define EMC_AXIS_ACTIVATE_TYPE                       ((NMLTYPE) 127)#define EMC_AXIS_DEACTIVATE_TYPE                     ((NMLTYPE) 128)#define EMC_AXIS_OVERRIDE_LIMITS_TYPE                ((NMLTYPE) 129)#define EMC_AXIS_SET_OUTPUT_TYPE                     ((NMLTYPE) 130)#define EMC_AXIS_LOAD_COMP_TYPE                      ((NMLTYPE) 131)#define EMC_AXIS_ALTER_TYPE                          ((NMLTYPE) 132)#define EMC_AXIS_SET_STEP_PARAMS_TYPE                ((NMLTYPE) 133)#define EMC_AXIS_SET_BACKLASH_TYPE                   ((NMLTYPE) 134)#define EMC_AXIS_STAT_TYPE                           ((NMLTYPE) 199)// NML for EMC_TRAJ// defs for termination conditions#define EMC_TRAJ_TERM_COND_STOP  1#define EMC_TRAJ_TERM_COND_BLEND 2#define EMC_TRAJ_SET_AXES_TYPE                       ((NMLTYPE) 201)#define EMC_TRAJ_SET_UNITS_TYPE                      ((NMLTYPE) 202)#define EMC_TRAJ_SET_CYCLE_TIME_TYPE                 ((NMLTYPE) 203)#define EMC_TRAJ_SET_MODE_TYPE                       ((NMLTYPE) 204)#define EMC_TRAJ_SET_VELOCITY_TYPE                   ((NMLTYPE) 205)#define EMC_TRAJ_SET_ACCELERATION_TYPE               ((NMLTYPE) 206)#define EMC_TRAJ_SET_MAX_VELOCITY_TYPE               ((NMLTYPE) 207)#define EMC_TRAJ_SET_MAX_ACCELERATION_TYPE           ((NMLTYPE) 208)#define EMC_TRAJ_SET_SCALE_TYPE                      ((NMLTYPE) 209)#define EMC_TRAJ_SET_MOTION_ID_TYPE                  ((NMLTYPE) 210)#define EMC_TRAJ_INIT_TYPE                           ((NMLTYPE) 211)#define EMC_TRAJ_HALT_TYPE                           ((NMLTYPE) 212)#define EMC_TRAJ_ENABLE_TYPE                         ((NMLTYPE) 213)#define EMC_TRAJ_DISABLE_TYPE                        ((NMLTYPE) 214)#define EMC_TRAJ_ABORT_TYPE                          ((NMLTYPE) 215)#define EMC_TRAJ_PAUSE_TYPE                          ((NMLTYPE) 216)#define EMC_TRAJ_STEP_TYPE                           ((NMLTYPE) 217)#define EMC_TRAJ_RESUME_TYPE                         ((NMLTYPE) 218)#define EMC_TRAJ_DELAY_TYPE                          ((NMLTYPE) 219)#define EMC_TRAJ_LINEAR_MOVE_TYPE                    ((NMLTYPE) 220)#define EMC_TRAJ_CIRCULAR_MOVE_TYPE                  ((NMLTYPE) 221)#define EMC_TRAJ_SET_TERM_COND_TYPE                  ((NMLTYPE) 222)#define EMC_TRAJ_SET_OFFSET_TYPE                     ((NMLTYPE) 223)#define EMC_TRAJ_SET_ORIGIN_TYPE                     ((NMLTYPE) 224)#define EMC_TRAJ_SET_HOME_TYPE                       ((NMLTYPE) 225)#define EMC_TRAJ_SET_PROBE_INDEX_TYPE                ((NMLTYPE) 226)#define EMC_TRAJ_SET_PROBE_POLARITY_TYPE             ((NMLTYPE) 227)#define EMC_TRAJ_CLEAR_PROBE_TRIPPED_FLAG_TYPE       ((NMLTYPE) 228)#define EMC_TRAJ_PROBE_TYPE                          ((NMLTYPE) 229)#define EMC_TRAJ_SET_TELEOP_ENABLE_TYPE              ((NMLTYPE) 230)#define EMC_TRAJ_SET_TELEOP_VECTOR_TYPE              ((NMLTYPE) 231)#define EMC_TRAJ_SET_SPINDLESYNC_TYPE                ((NMLTYPE) 232)#define EMC_TRAJ_STAT_TYPE                           ((NMLTYPE) 299)// EMC_MOTION aggregate class type declaration#define EMC_MOTION_INIT_TYPE                         ((NMLTYPE) 301)#define EMC_MOTION_HALT_TYPE                         ((NMLTYPE) 302)#define EMC_MOTION_ABORT_TYPE                        ((NMLTYPE) 303)#define EMC_MOTION_SET_AOUT_TYPE                     ((NMLTYPE) 304)#define EMC_MOTION_SET_DOUT_TYPE                     ((NMLTYPE) 305)#define EMC_MOTION_STAT_TYPE                         ((NMLTYPE) 399)// NML for EMC_TASK#define EMC_TASK_INIT_TYPE                           ((NMLTYPE) 501)#define EMC_TASK_HALT_TYPE                           ((NMLTYPE) 502)#define EMC_TASK_ABORT_TYPE                          ((NMLTYPE) 503)#define EMC_TASK_SET_MODE_TYPE                       ((NMLTYPE) 504)#define EMC_TASK_SET_STATE_TYPE                      ((NMLTYPE) 505)#define EMC_TASK_PLAN_OPEN_TYPE                      ((NMLTYPE) 506)#define EMC_TASK_PLAN_RUN_TYPE                       ((NMLTYPE) 507)#define EMC_TASK_PLAN_READ_TYPE                      ((NMLTYPE) 508)#define EMC_TASK_PLAN_EXECUTE_TYPE                   ((NMLTYPE) 509)#define EMC_TASK_PLAN_PAUSE_TYPE                     ((NMLTYPE) 510)#define EMC_TASK_PLAN_STEP_TYPE                      ((NMLTYPE) 511)#define EMC_TASK_PLAN_RESUME_TYPE                    ((NMLTYPE) 512)#define EMC_TASK_PLAN_END_TYPE                       ((NMLTYPE) 513)#define EMC_TASK_PLAN_CLOSE_TYPE                     ((NMLTYPE) 514)#define EMC_TASK_PLAN_INIT_TYPE                      ((NMLTYPE) 515)#define EMC_TASK_PLAN_SYNCH_TYPE                     ((NMLTYPE) 516)#define EMC_TASK_STAT_TYPE                           ((NMLTYPE) 599)// EMC_TOOL type declarations#define EMC_TOOL_INIT_TYPE                           ((NMLTYPE) 1101)#define EMC_TOOL_HALT_TYPE                           ((NMLTYPE) 1102)#define EMC_TOOL_ABORT_TYPE                          ((NMLTYPE) 1103)#define EMC_TOOL_PREPARE_TYPE                        ((NMLTYPE) 1104)#define EMC_TOOL_LOAD_TYPE                           ((NMLTYPE) 1105)#define EMC_TOOL_UNLOAD_TYPE                         ((NMLTYPE) 1106)#define EMC_TOOL_LOAD_TOOL_TABLE_TYPE                ((NMLTYPE) 1107)#define EMC_TOOL_SET_OFFSET_TYPE                     ((NMLTYPE) 1108)#define EMC_TOOL_STAT_TYPE                           ((NMLTYPE) 1199)// EMC_AUX type declarations#define EMC_AUX_INIT_TYPE                             ((NMLTYPE) 1201)#define EMC_AUX_HALT_TYPE                             ((NMLTYPE) 1202)#define EMC_AUX_ABORT_TYPE                            ((NMLTYPE) 1203)#define EMC_AUX_DIO_WRITE_TYPE                        ((NMLTYPE) 1204)#define EMC_AUX_AIO_WRITE_TYPE                        ((NMLTYPE) 1205)#define EMC_AUX_ESTOP_ON_TYPE                         ((NMLTYPE) 1206)#define EMC_AUX_ESTOP_OFF_TYPE                        ((NMLTYPE) 1207)#define EMC_AUX_ESTOP_RESET_TYPE                      ((NMLTYPE) 1208)#define EMC_AUX_STAT_TYPE                             ((NMLTYPE) 1299)// EMC_SPINDLE type declarations#define EMC_SPINDLE_INIT_TYPE                        ((NMLTYPE) 1301)#define EMC_SPINDLE_HALT_TYPE                        ((NMLTYPE) 1302)#define EMC_SPINDLE_ABORT_TYPE                       ((NMLTYPE) 1303)#define EMC_SPINDLE_ON_TYPE                          ((NMLTYPE) 1304)#define EMC_SPINDLE_OFF_TYPE                         ((NMLTYPE) 1305)#define EMC_SPINDLE_FORWARD_TYPE                     ((NMLTYPE) 1306)#define EMC_SPINDLE_REVERSE_TYPE                     ((NMLTYPE) 1307)#define EMC_SPINDLE_STOP_TYPE                        ((NMLTYPE) 1308)#define EMC_SPINDLE_INCREASE_TYPE                    ((NMLTYPE) 1309)#define EMC_SPINDLE_DECREASE_TYPE                    ((NMLTYPE) 1310)#define EMC_SPINDLE_CONSTANT_TYPE                    ((NMLTYPE) 1311)#define EMC_SPINDLE_BRAKE_RELEASE_TYPE               ((NMLTYPE) 1312)#define EMC_SPINDLE_BRAKE_ENGAGE_TYPE                ((NMLTYPE) 1313)#define EMC_SPINDLE_ENABLE_TYPE                      ((NMLTYPE) 1314)#define EMC_SPINDLE_DISABLE_TYPE                     ((NMLTYPE) 1315)#define EMC_SPINDLE_STAT_TYPE                        ((NMLTYPE) 1399)// EMC_COOLANT type declarations#define EMC_COOLANT_INIT_TYPE                        ((NMLTYPE) 1401)#define EMC_COOLANT_HALT_TYPE                        ((NMLTYPE) 1402)#define EMC_COOLANT_ABORT_TYPE                       ((NMLTYPE) 1403)#define EMC_COOLANT_MIST_ON_TYPE                     ((NMLTYPE) 1404)#define EMC_COOLANT_MIST_OFF_TYPE                    ((NMLTYPE) 1405)#define EMC_COOLANT_FLOOD_ON_TYPE                    ((NMLTYPE) 1406)#define EMC_COOLANT_FLOOD_OFF_TYPE                   ((NMLTYPE) 1407)#define EMC_COOLANT_STAT_TYPE                        ((NMLTYPE) 1499)// EMC_LUBE type declarations#define EMC_LUBE_INIT_TYPE                           ((NMLTYPE) 1501)#define EMC_LUBE_HALT_TYPE                           ((NMLTYPE) 1502)#define EMC_LUBE_ABORT_TYPE                          ((NMLTYPE) 1503)#define EMC_LUBE_ON_TYPE                             ((NMLTYPE) 1504)#define EMC_LUBE_OFF_TYPE                            ((NMLTYPE) 1505)#define EMC_LUBE_STAT_TYPE                           ((NMLTYPE) 1599)// EMC IO point configuration declarations#define EMC_SET_DIO_INDEX_TYPE                       ((NMLTYPE) 5001)#define EMC_SET_AIO_INDEX_TYPE                       ((NMLTYPE) 5002)#define EMC_SET_POLARITY_TYPE                        ((NMLTYPE) 5003)// digital IO point indicesenum {    // spindle    EMC_SET_DIO_INDEX_SPINDLE_FORWARD = 5101,    EMC_SET_DIO_INDEX_SPINDLE_REVERSE,    EMC_SET_DIO_INDEX_SPINDLE_DECREASE,    EMC_SET_DIO_INDEX_SPINDLE_INCREASE,    EMC_SET_DIO_INDEX_SPINDLE_BRAKE,    EMC_SET_DIO_INDEX_SPINDLE_ENABLE,    // coolant    EMC_SET_DIO_INDEX_COOLANT_MIST,    EMC_SET_DIO_INDEX_COOLANT_FLOOD,    // lube    EMC_SET_DIO_INDEX_LUBE_SENSE,    // aux    EMC_SET_DIO_INDEX_ESTOP_SENSE,    EMC_SET_DIO_INDEX_ESTOP_WRITE};// analog IO point indicesenum {    // spindle    EMC_SET_AIO_INDEX_SPINDLE_ON = 5201};// IO point polaritiesenum {    // axis    EMC_SET_POLARITY_AXIS_ENABLE = 5301,    EMC_SET_POLARITY_AXIS_MIN_LIMIT_SWITCH,    EMC_SET_POLARITY_AXIS_MAX_LIMIT_SWITCH,    EMC_SET_POLARITY_AXIS_HOME_SWITCH,    EMC_SET_POLARITY_AXIS_HOMING,    EMC_SET_POLARITY_AXIS_FAULT,    // spindle    EMC_SET_POLARITY_SPINDLE_FORWARD,    EMC_SET_POLARITY_SPINDLE_REVERSE,    EMC_SET_POLARITY_SPINDLE_DECREASE,    EMC_SET_POLARITY_SPINDLE_INCREASE,    EMC_SET_POLARITY_SPINDLE_BRAKE,    EMC_SET_POLARITY_SPINDLE_ENABLE,    // coolant    EMC_SET_POLARITY_COOLANT_MIST,    EMC_SET_POLARITY_COOLANT_FLOOD,    // lube    EMC_SET_POLARITY_LUBE_SENSE,    // aux    EMC_SET_POLARITY_ESTOP_SENSE,    EMC_SET_POLARITY_ESTOP_WRITE};// EMC_IO aggregate class type declaration#define EMC_IO_INIT_TYPE                             ((NMLTYPE) 1601)#define EMC_IO_HALT_TYPE                             ((NMLTYPE) 1602)#define EMC_IO_ABORT_TYPE                            ((NMLTYPE) 1603)#define EMC_IO_SET_CYCLE_TIME_TYPE                   ((NMLTYPE) 1604)#define EMC_IO_STAT_TYPE                             ((NMLTYPE) 1699)// EMC aggregate class type declaration// these are placeholders#define EMC_LOG_TYPE_IO_CMD      21	// command into EMC IO controller#define EMC_LOG_TYPE_TASK_CMD    51	// command into EMC Task controller#define EMC_INIT_TYPE                                ((NMLTYPE) 1901)#define EMC_HALT_TYPE                                ((NMLTYPE) 1902)#define EMC_ABORT_TYPE                               ((NMLTYPE) 1903)#define EMC_STAT_TYPE                                ((NMLTYPE) 1999)// types for EMC_TASK modeenum EMC_TASK_MODE_ENUM {    EMC_TASK_MODE_MANUAL = 1,    EMC_TASK_MODE_AUTO = 2,    EMC_TASK_MODE_MDI = 3};// types for EMC_TASK stateenum EMC_TASK_STATE_ENUM {    EMC_TASK_STATE_ESTOP = 1,    EMC_TASK_STATE_ESTOP_RESET = 2,    EMC_TASK_STATE_OFF = 3,    EMC_TASK_STATE_ON = 4};// types for EMC_TASK execStateenum EMC_TASK_EXEC_ENUM {    EMC_TASK_EXEC_ERROR = 1,    EMC_TASK_EXEC_DONE = 2,    EMC_TASK_EXEC_WAITING_FOR_MOTION = 3,    EMC_TASK_EXEC_WAITING_FOR_MOTION_QUEUE = 4,    EMC_TASK_EXEC_WAITING_FOR_IO = 5,    EMC_TASK_EXEC_WAITING_FOR_PAUSE = 6,    EMC_TASK_EXEC_WAITING_FOR_MOTION_AND_IO = 7,    EMC_TASK_EXEC_WAITING_FOR_DELAY = 8,    EMC_TASK_EXEC_WAITING_FOR_SYSTEM_CMD = 9};// types for EMC_TASK interpStateenum EMC_TASK_INTERP_ENUM {    EMC_TASK_INTERP_IDLE = 1,    EMC_TASK_INTERP_READING = 2,    EMC_TASK_INTERP_PAUSED = 3,    EMC_TASK_INTERP_WAITING = 4};// types for motion controlenum EMC_TRAJ_MODE_ENUM {    EMC_TRAJ_MODE_FREE = 1,	// independent-axis motion,    EMC_TRAJ_MODE_COORD = 2,	// coordinated-axis motion,    EMC_TRAJ_MODE_TELEOP = 3	// velocity based world coordinates motion,};#define EMC_MOTION_TYPE_TRAVERSE 1#define EMC_MOTION_TYPE_FEED 2#define EMC_MOTION_TYPE_ARC 3#define EMC_MOTION_TYPE_TOOLCHANGE 4// --------------// EMC VOCABULARY// --------------// NML formatting functionextern int emcFormat(NMLTYPE type, void *buffer, CMS * cms);// NML Symbol Lookup Functionextern const char *emc_symbol_lookup(long type);#define emcSymbolLookup(a) emc_symbol_lookup(a)// decls for command line args-- mains are responsible for setting these// so that other modules can get cmd line args for ad hoc processingextern int Argc;extern char **Argv;// ------------------------// IMPLEMENTATION FUNCTIONS// ------------------------// implementation functions for EMC error, message types// intended to be implemented in main() file, by writing to NML buffer// print an errorextern int emcOperatorError(int id, const char *fmt, ...);// print general textextern int emcOperatorText(int id, const char *fmt, ...);// print note to operatorextern int emcOperatorDisplay(int id, const char *fmt, ...);// implementation functions for EMC_AXIS typesextern int emcAxisSetAxis(int axis, unsigned char axisType);extern int emcAxisSetUnits(int axis, double units);/*! \todo FIXME - soon to be deleted */extern int emcAxisSetGains(int axis, double p, double i, double d,			   double ff0, double ff1, double ff2,			   double bias, double maxError, double deadband);extern int emcAxisSetBacklash(int axis, double backlash);extern int emcAxisSetCycleTime(int axis, double cycleTime);extern int emcAxisSetInterpolationRate(int axis, int rate);extern int emcAxisSetInputScale(int axis, double scale, double offset);extern int emcAxisSetOutputScale(int axis, double scale, double offset);extern int emcAxisSetMinPositionLimit(int axis, double limit);extern int emcAxisSetMaxPositionLimit(int axis, double limit);extern int emcAxisSetMinOutputLimit(int axis, double limit);extern int emcAxisSetMaxOutputLimit(int axis, double limit);extern int emcAxisSetFerror(int axis, double ferror);extern int emcAxisSetMinFerror(int axis, double ferror);/*! \todo FIXME - should be deleted */extern int emcAxisSetStepParams(int axis, double setup_time,				double hold_time);extern int emcAxisSetHomingParams(int axis, double home, double offset,				  double search_vel, double latch_vel,				  int use_index, int ignore_limits);extern int emcAxisSetMaxVelocity(int axis, double vel);extern int emcAxisSetMaxAcceleration(int axis, double acc);/*! \todo FIXME - polarity messages should be deleted */extern int emcAxisSetEnablePolarity(int axis, int level);extern int emcAxisSetMinLimitSwitchPolarity(int axis, int level);extern int emcAxisSetMaxLimitSwitchPolarity(int axis, int level);extern int emcAxisSetHomeSwitchPolarity(int axis, int level);extern int emcAxisSetHomingPolarity(int axis, int level);extern int emcAxisSetFaultPolarity(int axis, int level);extern int emcAxisInit(int axis);extern int emcAxisHalt(int axis);extern int emcAxisAbort(int axis);extern int emcAxisEnable(int axis);extern int emcAxisDisable(int axis);extern int emcAxisHome(int axis);extern int emcAxisJog(int axis, double vel);extern int emcAxisIncrJog(int axis, double incr, double vel);extern int emcAxisAbsJog(int axis, double pos, double vel);extern int emcAxisActivate(int axis);extern int emcAxisDeactivate(int axis);extern int emcAxisOverrideLimits(int axis);extern int emcAxisSetOutput(int axis, double output);extern int emcAxisLoadComp(int axis, const char *file);extern int emcAxisAlter(int axis, double alter);class EMC_AXIS_STAT;		// forward declextern int emcAxisUpdate(EMC_AXIS_STAT stat[], int numAxes);// implementation functions for EMC_TRAJ typesextern int emcTrajSetAxes(int axes);extern int emcTrajSetUnits(double linearUnits, double angularUnits);extern int emcTrajSetCycleTime(double cycleTime);extern int emcTrajSetMode(int axes);extern int emcTrajSetTeleopVector(EmcPose vel);extern int emcTrajSetVelocity(double vel, double ini_maxvel);extern int emcTrajSetAcceleration(double acc);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -