diff --git a/ecmc_plugin_grbl/ecmcGrbl.cpp b/ecmc_plugin_grbl/ecmcGrbl.cpp index 7dddcd0..35f3e49 100644 --- a/ecmc_plugin_grbl/ecmcGrbl.cpp +++ b/ecmc_plugin_grbl/ecmcGrbl.cpp @@ -108,6 +108,7 @@ ecmcGrbl::ecmcGrbl(char* configStr, grblInitDone_ = 0; cfgAutoEnableAtStart_ = 0; autoEnableExecuted_ = 0; + timeToNextExeMs_ = 0; //grbl default rate 30khz.. grblExeCycles_ = 30.0/(1/exeSampleTimeMs); @@ -382,10 +383,14 @@ void ecmcGrbl::grblRTexecute() { autoEnableAtStart(); + double sampleRateMs =.0; + if(grblInitDone_ && autoEnableExecuted_) { - for(int i=0; i < grblExeCycles_; i++) { - ecmc_grbl_main_rt_thread(); + while(timeToNextExeMs_ < exeSampleTimeMs_) { + sampleRateMs=ecmc_grbl_main_rt_thread(); + timeToNextExeMs_ = timeToNextExeMs_ + sampleRateMs; } + timeToNextExeMs_-= exeSampleTimeMs_; } // write to ecmc if(cfgXAxisId_>=0) { diff --git a/ecmc_plugin_grbl/ecmcGrbl.h b/ecmc_plugin_grbl/ecmcGrbl.h index 7c35718..5cd0681 100644 --- a/ecmc_plugin_grbl/ecmcGrbl.h +++ b/ecmc_plugin_grbl/ecmcGrbl.h @@ -72,6 +72,7 @@ class ecmcGrbl : public asynPortDriver { bool firstCommandWritten_; int autoEnableExecuted_; int grblExeCycles_; + double timeToNextExeMs_; }; #endif /* ECMC_GRBL_H_ */ diff --git a/grbl/grbl_stepper.c b/grbl/grbl_stepper.c index 057008a..d88c456 100644 --- a/grbl/grbl_stepper.c +++ b/grbl/grbl_stepper.c @@ -84,6 +84,7 @@ static st_block_t st_block_buffer[SEGMENT_BUFFER_SIZE-1]; typedef struct { uint16_t n_step; // Number of step events to be executed for this segment uint16_t cycles_per_tick; // Step distance traveled per ISR tick, aka step rate. + double ecmc_interrupt_time_ms; uint8_t st_block_index; // Stepper block data index. Uses this information to execute this segment. #ifdef ADAPTIVE_MULTI_AXIS_STEP_SMOOTHING uint8_t amass_level; // Indicates AMASS level for the ISR to execute this segment @@ -367,11 +368,12 @@ void st_go_idle() // with probing and homing cycles that require true real-time positions. // call from plugin execute -void ecmc_grbl_main_rt_thread() +// returns exe_time_rate_ms (need to downsample to ecmc rate) +double ecmc_grbl_main_rt_thread() { //printf("%s:%s:%d\n",__FILE__,__FUNCTION__,__LINE__); - if (busy || !stepperInterruptEnable) { return; } // The busy-flag is used to avoid reentering this interrupt + if (busy || !stepperInterruptEnable) { return 0.0; } // The busy-flag is used to avoid reentering this interrupt // Set the direction pins a couple of nanoseconds before we step the steppers //DIRECTION_PORT = (DIRECTION_PORT & ~DIRECTION_MASK) | (st.dir_outbits & DIRECTION_MASK); @@ -405,13 +407,18 @@ void ecmc_grbl_main_rt_thread() if (st.exec_segment == NULL) { // Anything in the buffer? If so, load and initialize next step segment. if (segment_buffer_head != segment_buffer_tail) { + // Initialize new step segment and load number of steps to execute st.exec_segment = &segment_buffer[segment_buffer_tail]; - - #ifndef ADAPTIVE_MULTI_AXIS_STEP_SMOOTHING - // With AMASS is disabled, set timer prescaler for segments with slow step frequencies (< 250Hz). - TCCR1B = (TCCR1B & ~(0x07<prescaler<n_step, + st.exec_segment->spindle_pwm,(double)st.exec_segment->cycles_per_tick/((double)F_CPU)*1000, + st.exec_segment->ecmc_interrupt_time_ms); + + //#ifndef ADAPTIVE_MULTI_AXIS_STEP_SMOOTHING + // // With AMASS is disabled, set timer prescaler for segments with slow step frequencies (< 250Hz). + // TCCR1B = (TCCR1B & ~(0x07<prescaler<cycles_per_tick; @@ -425,6 +432,12 @@ void ecmc_grbl_main_rt_thread() // Initialize Bresenham line and distance counters st.counter_x = st.counter_y = st.counter_z = (st.exec_block->step_event_count >> 1); } + + //printf("X steps %d, sys_position %d, step_event_count %d\n", st.steps[X_AXIS],sys_position[X_AXIS],st.exec_block->step_event_count); + //printf("Y steps %d, sys_position %d, step_event_count %d\n", st.steps[Y_AXIS],sys_position[Y_AXIS],st.exec_block->step_event_count); + //printf("Z steps %d, sys_position %d, step_event_count %d\n", st.steps[Z_AXIS],sys_position[Z_AXIS],st.exec_block->step_event_count); + + st.dir_outbits = st.exec_block->direction_bits ^ dir_port_invert_mask; #ifdef ENABLE_DUAL_AXIS st.dir_outbits_dual = st.exec_block->direction_bits_dual ^ dir_port_invert_mask_dual; @@ -451,11 +464,11 @@ void ecmc_grbl_main_rt_thread() if (st.exec_block->is_pwm_rate_adjusted) { spindle_set_speed(SPINDLE_PWM_OFF_VALUE); } #endif system_set_exec_state_flag(EXEC_CYCLE_STOP); // Flag main program for cycle end - return; // Nothing to do but exit. + return 0.0; // Nothing to do but exit. } } - + printf("EXE\n"); // Check probing state. if (sys_probe_state == PROBE_ACTIVE) { probe_state_monitor(); } @@ -526,6 +539,11 @@ void ecmc_grbl_main_rt_thread() st.step_outbits_dual ^= step_port_invert_mask_dual; #endif busy = false; + + if(!st.exec_segment) { + return 0.0; + } + return st.exec_segment->ecmc_interrupt_time_ms; } @@ -824,6 +842,7 @@ void st_prep_buffer() */ prep.mm_complete = 0.0; // Default velocity profile complete at 0.0mm from end of block. float inv_2_accel = 0.5/pl_block->acceleration; + //printf("pl_block->acceleration=%f\n",pl_block->acceleration); if (sys.step_control & STEP_CONTROL_EXECUTE_HOLD) { // [Forced Deceleration to Zero Velocity] // Compute velocity profile parameters for a feed hold in-progress. This profile overrides // the planner block profile, enforcing a deceleration to zero speed. @@ -1092,26 +1111,33 @@ void st_prep_buffer() cycles >>= prep_segment->amass_level; prep_segment->n_step <<= prep_segment->amass_level; } + if (cycles < (1UL << 16)) { prep_segment->cycles_per_tick = cycles; } // < 65536 (4.1ms @ 16MHz) else { prep_segment->cycles_per_tick = 0xffff; } // Just set the slowest speed possible. + prep_segment->ecmc_interrupt_time_ms = (double)prep_segment->cycles_per_tick/((double)F_CPU)*1000; + #else // Compute step timing and timer prescalar for normal step generation. if (cycles < (1UL << 16)) { // < 65536 (4.1ms @ 16MHz) prep_segment->prescaler = 1; // prescaler: 0 prep_segment->cycles_per_tick = cycles; + prep_segment->ecmc_interrupt_time_ms = (double)cycles/((double)F_CPU)*1000; } else if (cycles < (1UL << 19)) { // < 524288 (32.8ms@16MHz) prep_segment->prescaler = 2; // prescaler: 8 prep_segment->cycles_per_tick = cycles >> 3; + prep_segment->ecmc_interrupt_time_ms = (double)cycles/((double)F_CPU)*1000; } else { - prep_segment->prescaler = 3; // prescaler: 64 + prep_segment->prescaler = 3; // prescaler: 64 if (cycles < (1UL << 22)) { // < 4194304 (262ms@16MHz) prep_segment->cycles_per_tick = cycles >> 6; + prep_segment->ecmc_interrupt_time_ms = (double)cycles/((double)F_CPU)*1000; } else { // Just set the slowest speed possible. (Around 4 step/sec.) + prep_segment->ecmc_interrupt_time_ms = (double)prep_segment->cycles_per_tick/((double)F_CPU)*1000; prep_segment->cycles_per_tick = 0xffff; } } #endif - + // Added for ecmc // Segment complete! Increment segment buffer indices, so stepper ISR can immediately execute it. segment_buffer_head = segment_next_head; if ( ++segment_next_head == SEGMENT_BUFFER_SIZE ) { segment_next_head = 0; } diff --git a/grbl/grbl_stepper.h b/grbl/grbl_stepper.h index d7ffa8a..c85fbf6 100644 --- a/grbl/grbl_stepper.h +++ b/grbl/grbl_stepper.h @@ -57,7 +57,7 @@ void st_update_plan_block_parameters(); float st_get_realtime_rate(); // main execution -void ecmc_grbl_main_rt_thread(); +double ecmc_grbl_main_rt_thread(); #endif diff --git a/iocsh/log2.log b/iocsh/log2.log deleted file mode 100644 index c426cd9..0000000 --- a/iocsh/log2.log +++ /dev/null @@ -1,3633 +0,0 @@ -registerChannelProviderLocal firstTime true -# -# Start at "2022-W03-Jan21-1233-04-CET" -# -# Version information: -# European Spallation Source ERIC : iocsh.bash (3.4.0-PID-5240) -# -# --->--> snip -->--> -# Please Use Version and other environment variables -# in order to report or debug this shell -# -# HOSTDISPLAY="" -# WINDOWID="" -# PWD="/home/pi/sources/e3-ecmc_plugin_grbl/ecmc_plugin_grbl-dev/iocsh" -# USER="pi" -# LOGNAME="pi" -# EPICS_HOST_ARCH="linux-arm" -# EPICS_BASE="/home/pi/epics/base-7.0.5" -# E3_REQUIRE_NAME="require" -# E3_REQUIRE_VERSION="3.4.0" -# E3_REQUIRE_LOCATION="/home/pi/epics/base-7.0.5/require/3.4.0" -# E3_REQUIRE_BIN="/home/pi/epics/base-7.0.5/require/3.4.0/bin" -# E3_REQUIRE_DB="/home/pi/epics/base-7.0.5/require/3.4.0/db" -# E3_REQUIRE_DBD="/home/pi/epics/base-7.0.5/require/3.4.0/dbd" -# E3_REQUIRE_INC="/home/pi/epics/base-7.0.5/require/3.4.0/include" -# E3_REQUIRE_LIB="/home/pi/epics/base-7.0.5/require/3.4.0/lib" -# EPICS_DRIVER_PATH="/home/pi/epics/base-7.0.5/require/3.4.0/siteMods:/home/pi/epics/base-7.0.5/require/3.4.0/siteApps" -# EPICS_CA_AUTO_ADDR_LIST="" -# EPICS_CA_ADDR_LIST="" -# PATH="/home/pi/epics/base-7.0.5/require/3.4.0/bin:/home/pi/epics/base-7.0.5/bin/linux-arm:/home/pi/berryconda3/bin:/home/pi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games" -# --->--> snip -->--> -# -# Set REQUIRE_IOC for its internal PVs -epicsEnvSet REQUIRE_IOC "REQMOD:raspberrypi-5240" -# -# Enable an exit subroutine for sotfioc -dbLoadRecords "/home/pi/epics/base-7.0.5/db/softIocExit.db" "IOC=REQMOD:raspberrypi-5240" -# -# Set E3_IOCSH_TOP for the absolute path where iocsh.bash is executed. -epicsEnvSet E3_IOCSH_TOP "/home/pi/sources/e3-ecmc_plugin_grbl/ecmc_plugin_grbl-dev/iocsh" -# -# -# Load require module, which has the version 3.4.0 -# -dlload /home/pi/epics/base-7.0.5/require/3.4.0/lib/linux-arm/librequire.so -dbLoadDatabase /home/pi/epics/base-7.0.5/require/3.4.0/dbd/require.dbd -require_registerRecordDeviceDriver -Loading module info records for require -# -# Set E3_CMD_TOP for the absolute path where test.script exists -epicsEnvSet E3_CMD_TOP "/home/pi/sources/e3-ecmc_plugin_grbl/ecmc_plugin_grbl-dev/iocsh" -# -iocshLoad 'test.script','' -############################################################################## -## Example: Demo of ecmc SocketCAN plugin -## https://github.com/anderssandstrom/e3-ecmc_plugin_socketcan -## -## The plugin exposes: -## -## Initiation: -epicsEnvSet("IOC" ,"IOC_TEST") -epicsEnvSet("ECMCCFG_INIT" ,"") #Only run startup once (auto at PSI, need call at ESS), variable set to "#" in startup.cmd -epicsEnvSet("SCRIPTEXEC" ,"iocshLoad") -require ecmccfg ruckig -Module ecmccfg version ruckig found in /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ -Loading library /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/lib/linux-arm/libecmccfg.so -Loaded ecmccfg version ruckig -Loading dbd file /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/dbd/ecmccfg.dbd -Calling function ecmccfg_registerRecordDeviceDriver -Loading module info records for ecmccfg -# Epics Motor record driver that will be used: -epicsEnvShow(ECMC_MR_MODULE) -ECMC_MR_MODULE is not an environment variable. -# run module startup.cmd (only needed at ESS PSI auto call at require) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/startup.cmd, "IOC=IOC_TEST,ECMC_VER=ruckig" -#============================================================================== -# startup.cmd -on error halt -require ecmc "ruckig" -Module ecmc version ruckig found in /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmc/ruckig/ -Module ecmc depends on asyn 4.41.0 -Module asyn version 4.41.0 found in /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/asyn/4.41.0/ -Loading library /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/asyn/4.41.0/lib/linux-arm/libasyn.so -Loaded asyn version 4.41.0 -Loading dbd file /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/asyn/4.41.0/dbd/asyn.dbd -Calling function asyn_registerRecordDeviceDriver -Loading module info records for asyn -Module ecmc depends on exprtk 1.2.1 -Module exprtk version 1.2.1 found in /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/exprtk/1.2.1/ -Loading library /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/exprtk/1.2.1/lib/linux-arm/libexprtk.so -Loaded exprtk version 1.2.1 -exprtk has no dbd file -Loading module info records for exprtk -Module ecmc depends on motor develop -Module motor version develop found in /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/motor/develop/ -Module motor depends on asyn 4.41.0 -Module asyn version 4.41.0 already loaded -Loading library /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/motor/develop/lib/linux-arm/libmotor.so -Loaded motor version develop -Loading dbd file /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/motor/develop/dbd/motor.dbd -Calling function motor_registerRecordDeviceDriver -Loading module info records for motor -Module ecmc depends on ruckig 1.0.0 -Module ruckig version 1.0.0 found in /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ruckig/1.0.0/ -Loading library /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ruckig/1.0.0/lib/linux-arm/libruckig.so -Loaded ruckig version 1.0.0 -ruckig has no dbd file -Loading module info records for ruckig -Loading library /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmc/ruckig/lib/linux-arm/libecmc.so -Loaded ecmc version ruckig -Loading dbd file /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmc/ruckig/dbd/ecmc.dbd -Calling function ecmc_registerRecordDeviceDriver -Loading module info records for ecmc -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "'ecmcMotorRecord'='EthercatMC'", "require EthercatMC 3.0.2 # Using EthercatMC motor record support.","# Using ecmcMotorRecord motor record support.") -# Using ecmcMotorRecord motor record support. -epicsEnvUnset(ECMC_EXE_CMD) -epicsEnvSet("ECMC_CONFIG_ROOT", "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/") -epicsEnvSet("ECMC_CONFIG_DB", "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/db") -epicsEnvSet("SCRIPTEXEC", "iocshLoad") -epicsEnvSet("SM_PREFIX", "IOC_TEST:") # colon added since IOC is _not_ PREFIX -epicsEnvSet("ECMC_PROC_HOOK", "") -epicsEnvSet(ECMC_MODE, FULL) -ecmcEpicsEnvSetCalcTernary(ECMC_SUPPORT_MOTION, "'FULL'!='DAQ'","","# MODE == DAQ, DISABLING MOTION.") -epicsEnvShow(ECMC_SUPPORT_MOTION) -ECMC_SUPPORT_MOTION= -ecmcEpicsEnvSetCalcTernary(ECMC_USE_MOTOR_RECORD, "'FULL'=='FULL'","","# MODE != FULL, DISABLING MOTOR RECORD.") -epicsEnvShow(ECMC_USE_MOTOR_RECORD) -ECMC_USE_MOTOR_RECORD= -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/initAll.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/initAll.cmd" -#============================================================================== -# initAll.cmd -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/init.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/init.cmd -#============================================================================== -# init.cmd -epicsEnvSet("ECMC_ASYN_TIMEOUT", 1) # Asyn timeout -epicsEnvSet("ECMC_ASYN_ADDR", 0) # Asyn Address -epicsEnvSet("ECMC_MOTOR_PORT", "NOT SET") -epicsEnvSet("ECMC_ASYN_PORT", "NOT SET") -epicsEnvSet("ECMC_PREFIX", "NOT SET") -epicsEnvSet("ECMC_GEN_EC_RECORDS", "NOT SET") -epicsEnvSet("ECMC_GEN_AX_RECORDS", "NOT SET") -epicsEnvSet("ECMC_EC_AXIS_HEALTH", "NOT SET") -epicsEnvSet("ECMC_PLC_SAMPLE_RATE_MS", "NOT SET") -epicsEnvSet("ECMC_TSE", -2) -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/initAxis.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/initAxis.cmd" -#============================================================================== -# initAxis.cmd -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_unset.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_unset.cmd" -#============================================================================== -# ecmc_axis_unset.cmd -epicsEnvUnset(ECMC_AXISCONFIG) -epicsEnvUnset(ECMC_AXISFIELDINIT) -epicsEnvUnset(ECMC_PREC) -epicsEnvUnset(ECMC_EGU) -epicsEnvUnset(ECMC_DESC) -epicsEnvUnset(ECMC_R) -epicsEnvUnset(ECMC_MOTOR_NAME) -epicsEnvUnset(ECMC_EC_AXIS_HEALTH) -epicsEnvUnset(ECMC_MOD_RANGE) -epicsEnvUnset(ECMC_MOD_TYPE) -epicsEnvUnset(ECMC_EMERG_DECEL) -epicsEnvUnset(ECMC_VELO) -epicsEnvUnset(ECMC_ACCL) -epicsEnvUnset(ECMC_ACCS_EGU_PER_S2) -epicsEnvUnset(ECMC_HOME_VEL_TO) -epicsEnvUnset(ECMC_HOME_VEL_FRM) -epicsEnvUnset(ECMC_CNTRL_KP) -epicsEnvUnset(ECMC_CNTRL_KI) -epicsEnvUnset(ECMC_CNTRL_KD) -epicsEnvUnset(ECMC_CNTRL_KFF) -epicsEnvUnset(ECMC_EC_ENC_ACTPOS) -epicsEnvUnset(ECMC_EC_ENC_LATCHPOS) -epicsEnvUnset(ECMC_EC_ENC_LATCH_CONTROL) -epicsEnvUnset(ECMC_EC_ENC_LATCH_STATUS) -epicsEnvUnset(ECMC_HOME_LATCH_COUNT_OFFSET) -epicsEnvUnset(ECMC_ENC_SCALE_DENOM) -epicsEnvUnset(ECMC_ENC_SCALE_NUM) -epicsEnvUnset(ECMC_ENC_TYPE) -epicsEnvUnset(ECMC_ENC_BITS) -epicsEnvUnset(ECMC_ENC_ABS_BITS) -epicsEnvUnset(ECMC_ENC_ABS_OFFSET) -epicsEnvUnset(ECMC_ENC_VEL_FILTER_SIZE) -epicsEnvUnset(ECMC_ENC_POS_FILTER_SIZE) -epicsEnvUnset(ECMC_ENC_POS_FILTER_ENABLE) -epicsEnvUnset(ECMC_EC_ENC_RESET) -epicsEnvUnset(ECMC_EC_ENC_ALARM_0) -epicsEnvUnset(ECMC_EC_ENC_ALARM_1) -epicsEnvUnset(ECMC_EC_ENC_ALARM_2) -epicsEnvUnset(ECMC_EC_ENC_WARNING) -epicsEnvUnset(ECMC_EC_DRV_CONTROL) -epicsEnvUnset(ECMC_EC_DRV_STATUS) -epicsEnvUnset(ECMC_EC_DRV_VELOCITY) -epicsEnvUnset(ECMC_EC_DRV_BRAKE) -epicsEnvUnset(ECMC_EC_DRV_REDUCE_TORQUE) -epicsEnvUnset(ECMC_EC_DRV_RESET) -epicsEnvUnset(ECMC_EC_DRV_ALARM_0) -epicsEnvUnset(ECMC_EC_DRV_ALARM_1) -epicsEnvUnset(ECMC_EC_DRV_ALARM_2) -epicsEnvUnset(ECMC_EC_DRV_WARNING) -epicsEnvUnset(ECMC_DRV_SCALE_DENOM) -epicsEnvUnset(ECMC_DRV_SCALE_NUM) -epicsEnvUnset(ECMC_DRV_BRAKE_OPEN_DLY_TIME) -epicsEnvUnset(ECMC_DRV_BRAKE_CLOSE_AHEAD_TIME) -epicsEnvUnset(ECMC_SOFT_LOW_LIM) -epicsEnvUnset(ECMC_DXLM_ENABLE) -epicsEnvUnset(ECMC_SOFT_HIGH_LIM) -epicsEnvUnset(ECMC_DXLM_ENABLE) -epicsEnvUnset(ECMC_EC_MON_LOWLIM) -epicsEnvUnset(ECMC_EC_MON_HIGHLIM) -epicsEnvUnset(ECMC_EC_MON_HOME_SWITCH) -epicsEnvUnset(ECMC_EC_MON_EXT_INTERLOCK) -epicsEnvUnset(ECMC_MON_AT_TARGET_TOL) -epicsEnvUnset(ECMC_MON_AT_TARGET_TIME) -epicsEnvUnset(ECMC_MON_AT_TARGET_ENA) -epicsEnvUnset(ECMC_MON_LAG_MON_TOL) -epicsEnvUnset(ECMC_MON_LAG_MON_TIME) -epicsEnvUnset(ECMC_MON_LAG_MON_ENA) -epicsEnvUnset(ECMC_MON_VELO_MAX) -epicsEnvUnset(ECMC_MON_VELO_MAX_ENA) -epicsEnvUnset(ECMC_MON_VELO_MAX_DRV_TIME) -epicsEnvUnset(ECMC_MON_VELO_MAX_TRAJ_TIME) -epicsEnvUnset(ECMC_JOG_VEL) -epicsEnvUnset(ECMC_JAR) -epicsEnvUnset(ECMC_HOME_PROC) -epicsEnvUnset(ECMC_HOME_POS) -epicsEnvUnset(ECMC_HOME_ACC) -epicsEnvUnset(ECMC_HOME_DEC) -epicsEnvUnset(ECMC_DRV_TYPE) -epicsEnvUnset(ECMC_VELO) -epicsEnvUnset(ECMC_SOFT_LOW_LIM) -epicsEnvUnset(ECMC_SOFT_HIGH_LIM) -epicsEnvUnset(ECMC_HOME_POS_MOVE_ENA) -epicsEnvUnset(ECMC_HOME_POS_MOVE_TARG_POS) -epicsEnvUnset(ECMC_TRAJ_TYPE) -epicsEnvUnset(ECMC_JERK) -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_sync_unset.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_sync_unset.cmd" -#============================================================================== -# ecmc_axis_sync_unset.cmd -epicsEnvUnset(ECMC_CMD_FRM_OTHER_PLC_ENABLE) -epicsEnvUnset(ECMC_CMD_AXIS_PLC_ENABLE) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_1) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_2) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_3) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_4) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_5) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_6) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_7) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_8) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_9) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_10) -epicsEnvUnset(ECMC_ENC_VELO_FILT_SIZE) -epicsEnvUnset(ECMC_ENC_VELO_FILT_ENABLE) -epicsEnvUnset(ECMC_ENC_SOURCE) -epicsEnvUnset(ECMC_TRAJ_VELO_FILT_SIZE) -epicsEnvUnset(ECMC_TRAJ_VELO_FILT_ENABLE) -epicsEnvUnset(ECMC_TRAJ_SOURCE) -epicsEnvSet("ECMC_EGU", "mm") -epicsEnvSet("ECMC_PREC", 3) -epicsEnvSet("ECMC_AXISFIELDINIT", "") # Extra field init to motor record -epicsEnvSet("ECMC_AXISCONFIG", 2022/01/21 12:33:04.693 -ECMC Initializes............. -2022/01/21 12:33:04.694 ESS Open Source EtherCAT Motion Control Epics Module2022/01/21 12:33:04.694 -Mode: Configuration -2022/01/21 12:33:04.694 OK -2022/01/21 12:33:04.694 OK -2022/01/21 12:33:04.695 OK -2022/01/21 12:33:04.697 OK -2022/01/21 12:33:04.718 OK -2022/01/21 12:33:04.718 OK -2022/01/21 12:33:04.718 OK - "") # Extra parameters to driver -############################################################ -############# ASYN Configuration: -epicsEnvSet("ECMC_MOTOR_PORT" "MCU1") -epicsEnvSet("ECMC_ASYN_PORT" "MC_CPU1") -epicsEnvSet("ECMC_PREFIX" "IOC_TEST:") -ecmcAsynPortDriverConfigure(MC_CPU1,1000,0,0,100) -ecmcAsynPortDriverConfigure: portName = MC_CPU1, paramTableSize = 1000, disableAutoConnect = 0, priority = 0, defaultSampleRateMS = 100.000000 -asynOctetSetOutputEos(MC_CPU1, -1, ";\n") -asynOctetSetInputEos(MC_CPU1, -1, ";\n") -asynSetTraceMask(MC_CPU1, -1, 0x41) -asynSetTraceIOMask(MC_CPU1, -1, 6) -asynSetTraceInfoMask(MC_CPU1, -1, 1) -ecmcMotorRecordCreateController(MCU1, MC_CPU1, "64", 200, 1000, "") -############################################################ -############# Misc settings: -# Disable function call trace printouts -ecmcConfigOrDie "Cfg.SetEnableFuncCallDiag(0)" -# Disable on change printouts from objects (enable for easy logging) -ecmcConfigOrDie "Cfg.SetTraceMaskBit(15,0)" -# Choose to generate EPICS-records for EtherCAT-entries -# (For records use ECMC_GEN_EC_RECORDS="-records" otherwise ECMC_GEN_EC_RECORDS="") -epicsEnvSet("ECMC_GEN_EC_RECORDS", "-records") -# Choose to generate EPICS-records for ax-entries (PosAct, SetPos,..) -# (For records use ECMC_GEN_AX_RECORDS="-records" otherwise ECMC_GEN_AX_RECORDS="") -epicsEnvSet("ECMC_GEN_AX_RECORDS", "-records") -# suffix for pva enabled scripts, templates and substitutions -ecmcEpicsEnvSetCalcTernary(ECMC_PVA, "0", "Pva","") -# Set EtherCAT frequency (defaults to 1000) -ecmcConfigOrDie "Cfg.SetSampleRate(1000)" -epicsEnvSet("ECMC_EC_SAMPLE_RATE" , 1000) -ecmcEpicsEnvSetCalc("ECMC_EC_SAMPLE_RATE_MS" ,1000/1000) -# Update records in 10ms (100Hz) for FULL MODE and in EC_RATE for DAQ mode -ecmcEpicsEnvSetCalcTernary(ECMC_SAMPLE_RATE_MS, "'FULL'=='DAQ'","1","10") -epicsEnvSet("ECMC_P_SCRIPT", "mXsXXX") -ecmcEpicsEnvSetCalcTernary(ECMC_MASTER_CMD, "0>=0", "","#- ") - ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addMaster.cmd",1) - iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addMaster.cmd", "MASTER_ID=0" -#=============================================================================== -# addMaster.cfg -epicsEnvSet("ECMC_EC_MASTER_ID" "0") -# Claim master -ecmcConfigOrDie "Cfg.EcSetMaster(0)" -epicsEnvSet("ECMC_EC_MASTER_ID" ,0) -epicsEnvSet("ECMC_TMP_DIR", "/tmp/IOC_TEST/EcMaster_0/") -system "mkdir -p /tmp/IOC_TEST/EcMaster_0/" -epicsEnvSet("ECMC_TMP_DIR", "/tmp/IOC_TEST/EcMaster_0/") -system "mkdir -p /tmp/IOC_TEST/EcMaster_0/" -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/setDiagnostics.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/setDiagnostics.cmd -#============================================================================== -# setDiagnostics.cmd -ecmcConfigOrDie "Cfg.EcSetDiagnostics(1)" -ecmcConfigOrDie "Cfg.EcEnablePrintouts(0)" -ecmcConfigOrDie "Cfg.EcSetDomainFailedCyclesLimit(100)" -epicsEnvSet("ECMCCFG_INIT" ,"#") -############################################################################## -## Configure hardware: -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcMCU1021_coupler.cmd -############################################################ -############# MCU1021: -#Configure EK1100 coupler terminal -epicsEnvSet(ECMC_EC_SLAVE_NUM,0) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd, "SLAVE_ID=0, HW_DESC=EK1100" -#============================================================================== -# addSlave.cmd -epicsEnvSet("ECMC_EC_SLAVE_NUM", "0") -epicsEnvSet("HW_DESC", "EK1100") -epicsEnvSet("P_SCRIPT", "mXsXXX") -# add ${HW_DESC} to the bus at position ${SLAVE_ID} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEK1100.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEK1100.cmd" "NELM=1" -epicsEnvSet("ECMC_EC_HWTYPE" "EK112022/01/21 12:33:04.720 OK -2022/01/21 12:33:04.721 OK -2022/01/21 12:33:04.728 OK -2022/01/21 12:33:04.729 OK -2022/01/21 12:33:04.729 OK -2022/01/21 12:33:04.729 OK -2022/01/21 12:33:04.730 OK -00") -epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") -epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x044c2c52") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_VERIFY, "0==0", "","#- ") -ecmcConfigOrDie "Cfg.EcSlaveVerify(0,0,0x2,0x044c2c52)" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_RESET, "0>0", "","#- ") -epicsEnvSet(ECMC_EC_SLAVE_FW, "0x0000") -epicsEnvUnset(ECMC_SLAVE_VERIFY) -epicsEnvUnset(ECMC_COMMENT) -ecmcConfigOrDie "Cfg.EcAddSlave(0,0,0x2,0x044c2c52)" -# deduce what the prefix should be -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd" "MASTER_ID=0,SLAVE_POS=0,HWTYPE=EK1100" -#============================================================================== -# ecmcmXsXXX.cmd -ecmcEpicsEnvSetCalc("sid", "0","%03d") -ecmcEpicsEnvSetCalc("mid", "0","%01d") -epicsEnvSet("ECMC_G", "IOC_TEST:m0s000") -epicsEnvSet("ECMC_P", "IOC_TEST:m0s000-") -epicsEnvUnset(sid) -epicsEnvUnset(mid) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SUBS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applySubstitutions.cmd" "SUBST_FILE=ecmcEK1100.substitutions,ECMC_P=IOC_TEST:m0s000-" -#============================================================================== -# applySubstitutions.cmd -ecmcFileExist(ecmcEK1100.substitutions,1,1) -dbLoadTemplate(ecmcEK1100.substitutions,"ECMC_P=IOC_TEST:m0s000-,ECMC_G=IOC_TEST:m0s000,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=0,HWTYPE=EK1100,T_SMP_MS=10,TSE=-2,NELM=1") -epicsEnvUnset(DEFAULT_SUBS) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SLAVE_PVS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applyTemplate.cmd" "TEMPLATE_FILE=ecmcEcSlave.template,ECMC_P=IOC_TEST:m0s000-,ECMC_G=IOC_TEST:m0s000" -#============================================================================== -# applyTemplate.cmd -ecmcFileExist(ecmcEcSlave.template,1,1) -dbLoadRecords("ecmcEcSlave.template", "ECMC_P=IOC_TEST:m0s000-,ECMC_G=IOC_TEST:m0s000,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=0,HWTYPE=EK1100,T_SMP_MS=10,TSE=-2,") -epicsEnvUnset(DEFAULT_SLAVE_PVS) -# increment SLAVE_ID -ecmcEpicsEnvSetCalc("SLAVE_ID", "0+1","%d") -#Configure EL1018 digital input terminal -ecmcEpicsEnvSetCalc(ECMC_EC_SLAVE_NUM, "0+1") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd, "SLAVE_ID=1, HW_DESC=EL1018" -#============================================================================== -# addSlave.cmd -epicsEnvSet("ECMC_EC_SLAVE_NUM", "1") -epicsEnvSet("HW_DESC", "EL1018") -epicsEnvSet("P_SCRIPT", "mXsXXX") -# add ${HW_DESC} to the bus at position ${SLAVE_ID} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL1018.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL1018.cmd" "NELM=1" -epicsEnvSet("ECMC_EC_HWTYPE" "EL1018") -epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") -epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x03fa3052") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_VERIFY, "0==0", "","#- ") -ecmcConfigOrDie "Cfg.EcSlaveVerify(0,1,0x2,0x03fa3052)" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_RESET, "0>0", "","#- ") -epicsEnvSet(ECMC_EC_SLAVE_FW, "0x0000") -epicsEnvUnset(ECMC_SLAVE_VERIFY) -epicsEnvUnset(ECMC_COMMENT) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEX1008.cmd -ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a00,0x6000,0x1,B1,binaryInput01)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a01,0x6010,0x1,B1,binaryInput02)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a02,0x6020,0x1,B1,binaryInput03)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a03,0x6030,0x1,B1,binaryInput04)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a04,0x6040,0x1,B1,binaryI2022/01/21 12:33:04.730 OK -2022/01/21 12:33:04.730 OK -2022/01/21 12:33:04.730 OK -2022/01/21 12:33:04.730 OK -2022/01/21 12:33:04.739 OK -2022/01/21 12:33:04.740 OK -2022/01/21 12:33:04.740 OK -2022/01/21 12:33:04.741 OK -2022/01/21 12:33:04.741 OK -2022/01/21 12:33:04.741 OK -2022/01/21 12:33:04.741 OK -2022/01/21 12:33:04.741 OK -nput05)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a05,0x6050,0x1,B1,binaryInput06)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a06,0x6060,0x1,B1,binaryInput07)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a07,0x6070,0x1,B1,binaryInput08)" -# deduce what the prefix should be -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd" "MASTER_ID=0,SLAVE_POS=1,HWTYPE=EL1018" -#============================================================================== -# ecmcmXsXXX.cmd -ecmcEpicsEnvSetCalc("sid", "1","%03d") -ecmcEpicsEnvSetCalc("mid", "0","%01d") -epicsEnvSet("ECMC_G", "IOC_TEST:m0s001") -epicsEnvSet("ECMC_P", "IOC_TEST:m0s001-") -epicsEnvUnset(sid) -epicsEnvUnset(mid) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SUBS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applySubstitutions.cmd" "SUBST_FILE=ecmcEL1018.substitutions,ECMC_P=IOC_TEST:m0s001-" -#============================================================================== -# applySubstitutions.cmd -ecmcFileExist(ecmcEL1018.substitutions,1,1) -dbLoadTemplate(ecmcEL1018.substitutions,"ECMC_P=IOC_TEST:m0s001-,ECMC_G=IOC_TEST:m0s001,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=1,HWTYPE=EL1018,T_SMP_MS=10,TSE=-2,NELM=1") -epicsEnvUnset(DEFAULT_SUBS) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SLAVE_PVS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applyTemplate.cmd" "TEMPLATE_FILE=ecmcEcSlave.template,ECMC_P=IOC_TEST:m0s001-,ECMC_G=IOC_TEST:m0s001" -#============================================================================== -# applyTemplate.cmd -ecmcFileExist(ecmcEcSlave.template,1,1) -dbLoadRecords("ecmcEcSlave.template", "ECMC_P=IOC_TEST:m0s001-,ECMC_G=IOC_TEST:m0s001,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=1,HWTYPE=EL1018,T_SMP_MS=10,TSE=-2,") -epicsEnvUnset(DEFAULT_SLAVE_PVS) -# increment SLAVE_ID -ecmcEpicsEnvSetCalc("SLAVE_ID", "1+1","%d") -#Configure EL2808 digital output terminal -ecmcEpicsEnvSetCalc(ECMC_EC_SLAVE_NUM, "1+1") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd, "SLAVE_ID=2, HW_DESC=EL2808" -#============================================================================== -# addSlave.cmd -epicsEnvSet("ECMC_EC_SLAVE_NUM", "2") -epicsEnvSet("HW_DESC", "EL2808") -epicsEnvSet("P_SCRIPT", "mXsXXX") -# add ${HW_DESC} to the bus at position ${SLAVE_ID} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL2808.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL2808.cmd" "NELM=1" -epicsEnvSet("ECMC_EC_HWTYPE" "EL2808") -epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") -epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x0af83052") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_VERIFY, "0==0", "","#- ") -ecmcConfigOrDie "Cfg.EcSlaveVerify(0,2,0x2,0x0af83052)" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_RESET, "0>0", "","#- ") -epicsEnvSet(ECMC_EC_SLAVE_FW, "0x0000") -epicsEnvUnset(ECMC_SLAVE_VERIFY) -epicsEnvUnset(ECMC_COMMENT) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEX2008.cmd -ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af83052,1,0,0x1600,0x7000,0x1,B1,binaryOutput01)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af83052,1,0,0x1601,0x7010,0x1,B1,binaryOutput02)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af83052,1,0,0x1602,0x7020,0x1,B1,binaryOutput03)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af83052,1,0,0x1603,0x7030,0x1,B1,binaryOutput04)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af83052,1,0,0x1604,0x7040,0x1,B1,binaryOutput05)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af83052,1,0,0x1605,0x7050,0x1,B1,binaryOutput06)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af83052,1,0,0x1606,0x7060,0x1,B1,binaryOutput07)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af8302022/01/21 12:33:04.742 OK -2022/01/21 12:33:04.751 OK -2022/01/21 12:33:04.842 OK -2022/01/21 12:33:04.922 14385 -2022/01/21 12:33:04.923 OK -2022/01/21 12:33:04.923 OK -2022/01/21 12:33:04.923 OK -2022/01/21 12:33:04.923 OK -2022/01/21 12:33:04.923 OK -52,1,0,0x1607,0x7070,0x1,B1,binaryOutput08)" -# deduce what the prefix should be -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd" "MASTER_ID=0,SLAVE_POS=2,HWTYPE=EL2808" -#============================================================================== -# ecmcmXsXXX.cmd -ecmcEpicsEnvSetCalc("sid", "2","%03d") -ecmcEpicsEnvSetCalc("mid", "0","%01d") -epicsEnvSet("ECMC_G", "IOC_TEST:m0s002") -epicsEnvSet("ECMC_P", "IOC_TEST:m0s002-") -epicsEnvUnset(sid) -epicsEnvUnset(mid) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SUBS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applySubstitutions.cmd" "SUBST_FILE=ecmcEL2808.substitutions,ECMC_P=IOC_TEST:m0s002-" -#============================================================================== -# applySubstitutions.cmd -ecmcFileExist(ecmcEL2808.substitutions,1,1) -dbLoadTemplate(ecmcEL2808.substitutions,"ECMC_P=IOC_TEST:m0s002-,ECMC_G=IOC_TEST:m0s002,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=2,HWTYPE=EL2808,T_SMP_MS=10,TSE=-2,NELM=1") -epicsEnvUnset(DEFAULT_SUBS) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SLAVE_PVS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applyTemplate.cmd" "TEMPLATE_FILE=ecmcEcSlave.template,ECMC_P=IOC_TEST:m0s002-,ECMC_G=IOC_TEST:m0s002" -#============================================================================== -# applyTemplate.cmd -ecmcFileExist(ecmcEcSlave.template,1,1) -dbLoadRecords("ecmcEcSlave.template", "ECMC_P=IOC_TEST:m0s002-,ECMC_G=IOC_TEST:m0s002,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=2,HWTYPE=EL2808,T_SMP_MS=10,TSE=-2,") -epicsEnvUnset(DEFAULT_SLAVE_PVS) -# increment SLAVE_ID -ecmcEpicsEnvSetCalc("SLAVE_ID", "2+1","%d") -# Save the slave number for later -epicsEnvSet("ECMC_EC_SLAVE_NUM_DIG_OUT", "2") -#Configure EL5101 Incremental Encoder Interface -ecmcEpicsEnvSetCalc(ECMC_EC_SLAVE_NUM, "2+1") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd, "SLAVE_ID=3, HW_DESC=EL5101" -#============================================================================== -# addSlave.cmd -epicsEnvSet("ECMC_EC_SLAVE_NUM", "3") -epicsEnvSet("HW_DESC", "EL5101") -epicsEnvSet("P_SCRIPT", "mXsXXX") -# add ${HW_DESC} to the bus at position ${SLAVE_ID} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL5101.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL5101.cmd" "NELM=1" -epicsEnvSet("ECMC_EC_HWTYPE" "EL5101") -epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") -epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x13ed3052") -ecmcFileExist(/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd,1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd "RESET=true" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_VERIFY, "0==0", "","#- ") -ecmcConfigOrDie "Cfg.EcSlaveVerify(0,3,0x2,0x13ed3052)" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_RESET, "true>0", "","#- ") -ecmcConfigOrDie "Cfg.EcWriteSdo(3,0x1011,0x1,1684107116,4)" -epicsEnvSet(ECMC_EC_SLAVE_FW, "0x0000") -ecmcConfig "EcReadSdo(3,0x100a,0x0,2)" -ecmcEpicsEnvSetCalc("ECMC_EC_SLAVE_FW", "14385", "0x%04x") -# Firmware version: 0x3831 -epicsEnvUnset(ECMC_SLAVE_VERIFY) -epicsEnvUnset(ECMC_COMMENT) -ecmcConfigOrDie "Cfg.EcAddEntryComplete(3,0x2,0x13ed3052,1,2,0x1600,0x7000,0x01,8,encoderControl01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(3,0x2,0x13ed3052,1,2,0x1600,0x7000,0x02,16,encoderValue01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(3,0x2,0x13ed3052,2,3,0x1a03,0x6010,0x00,16,encoderStatus01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(3,0x2,0x13ed3052,2,3,0x1a03,0x6010,0x10,16,positionActual01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(3,0x2,0x13ed3052,2,3,0x1a03,0x6010,0x20,16,encoderLatchPostion01)" -# deduce what the prefix should be -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd",1) -2022/01/21 12:33:04.931 OK -2022/01/21 12:33:05.022 OK -2022/01/21 12:33:05.102 14385 -2022/01/21 12:33:05.103 OK -2022/01/21 12:33:05.103 OK -2022/01/21 12:33:05.103 OK -2022/01/21 12:33:05.103 OK -2022/01/21 12:33:05.103 OK -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd" "MASTER_ID=0,SLAVE_POS=3,HWTYPE=EL5101" -#============================================================================== -# ecmcmXsXXX.cmd -ecmcEpicsEnvSetCalc("sid", "3","%03d") -ecmcEpicsEnvSetCalc("mid", "0","%01d") -epicsEnvSet("ECMC_G", "IOC_TEST:m0s003") -epicsEnvSet("ECMC_P", "IOC_TEST:m0s003-") -epicsEnvUnset(sid) -epicsEnvUnset(mid) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SUBS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applySubstitutions.cmd" "SUBST_FILE=ecmcEL5101.substitutions,ECMC_P=IOC_TEST:m0s003-" -#============================================================================== -# applySubstitutions.cmd -ecmcFileExist(ecmcEL5101.substitutions,1,1) -dbLoadTemplate(ecmcEL5101.substitutions,"ECMC_P=IOC_TEST:m0s003-,ECMC_G=IOC_TEST:m0s003,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=3,HWTYPE=EL5101,T_SMP_MS=10,TSE=-2,NELM=1") -epicsEnvUnset(DEFAULT_SUBS) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SLAVE_PVS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applyTemplate.cmd" "TEMPLATE_FILE=ecmcEcSlave.template,ECMC_P=IOC_TEST:m0s003-,ECMC_G=IOC_TEST:m0s003" -#============================================================================== -# applyTemplate.cmd -ecmcFileExist(ecmcEcSlave.template,1,1) -dbLoadRecords("ecmcEcSlave.template", "ECMC_P=IOC_TEST:m0s003-,ECMC_G=IOC_TEST:m0s003,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=3,HWTYPE=EL5101,T_SMP_MS=10,TSE=-2,") -epicsEnvUnset(DEFAULT_SLAVE_PVS) -# increment SLAVE_ID -ecmcEpicsEnvSetCalc("SLAVE_ID", "3+1","%d") -#Configure EL5101 Incremental Encoder Interface -ecmcEpicsEnvSetCalc(ECMC_EC_SLAVE_NUM, "3+1") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd, "SLAVE_ID=4, HW_DESC=EL5101" -#============================================================================== -# addSlave.cmd -epicsEnvSet("ECMC_EC_SLAVE_NUM", "4") -epicsEnvSet("HW_DESC", "EL5101") -epicsEnvSet("P_SCRIPT", "mXsXXX") -# add ${HW_DESC} to the bus at position ${SLAVE_ID} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL5101.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL5101.cmd" "NELM=1" -epicsEnvSet("ECMC_EC_HWTYPE" "EL5101") -epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") -epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x13ed3052") -ecmcFileExist(/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd,1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd "RESET=true" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_VERIFY, "0==0", "","#- ") -ecmcConfigOrDie "Cfg.EcSlaveVerify(0,4,0x2,0x13ed3052)" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_RESET, "true>0", "","#- ") -ecmcConfigOrDie "Cfg.EcWriteSdo(4,0x1011,0x1,1684107116,4)" -epicsEnvSet(ECMC_EC_SLAVE_FW, "0x0000") -ecmcConfig "EcReadSdo(4,0x100a,0x0,2)" -ecmcEpicsEnvSetCalc("ECMC_EC_SLAVE_FW", "14385", "0x%04x") -# Firmware version: 0x3831 -epicsEnvUnset(ECMC_SLAVE_VERIFY) -epicsEnvUnset(ECMC_COMMENT) -ecmcConfigOrDie "Cfg.EcAddEntryComplete(4,0x2,0x13ed3052,1,2,0x1600,0x7000,0x01,8,encoderControl01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(4,0x2,0x13ed3052,1,2,0x1600,0x7000,0x02,16,encoderValue01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(4,0x2,0x13ed3052,2,3,0x1a03,0x6010,0x00,16,encoderStatus01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(4,0x2,0x13ed3052,2,3,0x1a03,0x6010,0x10,16,positionActual01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(4,0x2,0x13ed3052,2,3,0x1a03,0x6010,0x20,16,encoderLatchPostion01)" -# deduce what the prefix should be -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd" "MASTER_ID=0,SLAVE_POS=4,HWTYPE=EL5101" -#============================================================================== -# ecmcmXsXXX.cmd -ecmcEpicsEnvSetCalc("sid", "4"2022/01/21 12:33:05.111 OK -2022/01/21 12:33:05.112 OK -2022/01/21 12:33:05.112 OK -,"%03d") -ecmcEpicsEnvSetCalc("mid", "0","%01d") -epicsEnvSet("ECMC_G", "IOC_TEST:m0s004") -epicsEnvSet("ECMC_P", "IOC_TEST:m0s004-") -epicsEnvUnset(sid) -epicsEnvUnset(mid) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SUBS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applySubstitutions.cmd" "SUBST_FILE=ecmcEL5101.substitutions,ECMC_P=IOC_TEST:m0s004-" -#============================================================================== -# applySubstitutions.cmd -ecmcFileExist(ecmcEL5101.substitutions,1,1) -dbLoadTemplate(ecmcEL5101.substitutions,"ECMC_P=IOC_TEST:m0s004-,ECMC_G=IOC_TEST:m0s004,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=4,HWTYPE=EL5101,T_SMP_MS=10,TSE=-2,NELM=1") -epicsEnvUnset(DEFAULT_SUBS) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SLAVE_PVS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applyTemplate.cmd" "TEMPLATE_FILE=ecmcEcSlave.template,ECMC_P=IOC_TEST:m0s004-,ECMC_G=IOC_TEST:m0s004" -#============================================================================== -# applyTemplate.cmd -ecmcFileExist(ecmcEcSlave.template,1,1) -dbLoadRecords("ecmcEcSlave.template", "ECMC_P=IOC_TEST:m0s004-,ECMC_G=IOC_TEST:m0s004,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=4,HWTYPE=EL5101,T_SMP_MS=10,TSE=-2,") -epicsEnvUnset(DEFAULT_SLAVE_PVS) -# increment SLAVE_ID -ecmcEpicsEnvSetCalc("SLAVE_ID", "4+1","%d") -# Configure EL9505 Power supply terminal 5V -ecmcEpicsEnvSetCalc(ECMC_EC_SLAVE_NUM, "4+1") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd, "SLAVE_ID=5, HW_DESC=EL9505" -#============================================================================== -# addSlave.cmd -epicsEnvSet("ECMC_EC_SLAVE_NUM", "5") -epicsEnvSet("HW_DESC", "EL9505") -epicsEnvSet("P_SCRIPT", "mXsXXX") -# add ${HW_DESC} to the bus at position ${SLAVE_ID} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL9505.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL9505.cmd" "NELM=1" -epicsEnvSet("ECMC_EC_HWTYPE" "EL9505") -epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") -epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x25213052") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_VERIFY, "0==0", "","#- ") -ecmcConfigOrDie "Cfg.EcSlaveVerify(0,5,0x2,0x25213052)" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_RESET, "0>0", "","#- ") -epicsEnvSet(ECMC_EC_SLAVE_FW, "0x0000") -epicsEnvUnset(ECMC_SLAVE_VERIFY) -epicsEnvUnset(ECMC_COMMENT) -ecmcConfigOrDie "Cfg.EcAddEntryComplete(5,0x2,0x25213052,2,0,0x1a00,0x6000,0x1,1,powerOk01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(5,0x2,0x25213052,2,0,0x1a00,0x6000,0x2,1,overload01)" -# deduce what the prefix should be -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd" "MASTER_ID=0,SLAVE_POS=5,HWTYPE=EL9505" -#============================================================================== -# ecmcmXsXXX.cmd -ecmcEpicsEnvSetCalc("sid", "5","%03d") -ecmcEpicsEnvSetCalc("mid", "0","%01d") -epicsEnvSet("ECMC_G", "IOC_TEST:m0s005") -epicsEnvSet("ECMC_P", "IOC_TEST:m0s005-") -epicsEnvUnset(sid) -epicsEnvUnset(mid) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SUBS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applySubstitutions.cmd" "SUBST_FILE=ecmcEL9505.substitutions,ECMC_P=IOC_TEST:m0s005-" -#============================================================================== -# applySubstitutions.cmd -ecmcFileExist(ecmcEL9505.substitutions,1,1) -dbLoadTemplate(ecmcEL9505.substitutions,"ECMC_P=IOC_TEST:m0s005-,ECMC_G=IOC_TEST:m0s005,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=5,HWTYPE=EL9505,T_SMP_MS=10,TSE=-2,NELM=1") -epicsEnvUnset(DEFAULT_SUBS) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SLAVE_PVS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.42022/01/21 12:33:05.120 OK -2022/01/21 12:33:05.121 OK -2022/01/21 12:33:05.122 OK -2022/01/21 12:33:05.122 OK -2022/01/21 12:33:05.122 OK -2022/01/21 12:33:05.122 OK -2022/01/21 12:33:05.122 OK -2022/01/21 12:33:05.122 OK -2022/01/21 12:33:05.122 OK -.0/siteMods/ecmccfg/ruckig/applyTemplate.cmd" "TEMPLATE_FILE=ecmcEcSlave.template,ECMC_P=IOC_TEST:m0s005-,ECMC_G=IOC_TEST:m0s005" -#============================================================================== -# applyTemplate.cmd -ecmcFileExist(ecmcEcSlave.template,1,1) -dbLoadRecords("ecmcEcSlave.template", "ECMC_P=IOC_TEST:m0s005-,ECMC_G=IOC_TEST:m0s005,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=5,HWTYPE=EL9505,T_SMP_MS=10,TSE=-2,") -epicsEnvUnset(DEFAULT_SLAVE_PVS) -# increment SLAVE_ID -ecmcEpicsEnvSetCalc("SLAVE_ID", "5+1","%d") -# Configure EL1252 digital input terminal -ecmcEpicsEnvSetCalc(ECMC_EC_SLAVE_NUM, "5+1") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd, "SLAVE_ID=6, HW_DESC=EL1252" -#============================================================================== -# addSlave.cmd -epicsEnvSet("ECMC_EC_SLAVE_NUM", "6") -epicsEnvSet("HW_DESC", "EL1252") -epicsEnvSet("P_SCRIPT", "mXsXXX") -# add ${HW_DESC} to the bus at position ${SLAVE_ID} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL1252.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL1252.cmd" "NELM=1" -epicsEnvSet("ECMC_EC_HWTYPE" "EL1252") -epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") -epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x04e43052") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_VERIFY, "0==0", "","#- ") -ecmcConfigOrDie "Cfg.EcSlaveVerify(0,6,0x2,0x04e43052)" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_RESET, "0>0", "","#- ") -epicsEnvSet(ECMC_EC_SLAVE_FW, "0x0000") -epicsEnvUnset(ECMC_SLAVE_VERIFY) -epicsEnvUnset(ECMC_COMMENT) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEX1002.cmd -ecmcConfigOrDie "Cfg.EcAddEntryDT(6,0x2,0x04e43052,2,0,0x1a00,0x6000,0x1,B1,binaryInput01)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(6,0x2,0x04e43052,2,0,0x1a01,0x6010,0x1,B1,binaryInput02)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(6,0x2,0x04e43052,2,1,0x1a13,0x1d09,0xae,U8,status01)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(6,0x2,0x04e43052,2,1,0x1a13,0x1d09,0xaf,U8,status02)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(6,0x2,0x04e43052,2,1,0x1a13,0x1d09,0xb0,U64,timestampLatchPositive01)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(6,0x2,0x04e43052,2,1,0x1a13,0x1d09,0xb8,U64,timestampLatchNegative01)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(6,0x2,0x04e43052,2,1,0x1a13,0x1d09,0xc0,U64,timestampLatchPositive02)" -ecmcConfigOrDie "Cfg.EcAddEntryDT(6,0x2,0x04e43052,2,1,0x1a13,0x1d09,0xc8,U64,timestampLatchNegative02)" -# deduce what the prefix should be -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd" "MASTER_ID=0,SLAVE_POS=6,HWTYPE=EL1252" -#============================================================================== -# ecmcmXsXXX.cmd -ecmcEpicsEnvSetCalc("sid", "6","%03d") -ecmcEpicsEnvSetCalc("mid", "0","%01d") -epicsEnvSet("ECMC_G", "IOC_TEST:m0s006") -epicsEnvSet("ECMC_P", "IOC_TEST:m0s006-") -epicsEnvUnset(sid) -epicsEnvUnset(mid) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SUBS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applySubstitutions.cmd" "SUBST_FILE=ecmcEL1252.substitutions,ECMC_P=IOC_TEST:m0s006-" -#============================================================================== -# applySubstitutions.cmd -ecmcFileExist(ecmcEL1252.substitutions,1,1) -dbLoadTemplate(ecmcEL1252.substitutions,"ECMC_P=IOC_TEST:m0s006-,ECMC_G=IOC_TEST:m0s006,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=6,HWTYPE=EL1252,T_SMP_MS=10,TSE=-2,NELM=1") -epicsEnvUnset(DEFAULT_SUBS) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SLAVE_PVS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applyTemplate.cmd" "TEMPLATE_FILE=ecmcEcSlave.template,ECMC_P=IOC_TEST:m0s006-,ECMC_G=IOC_TEST:m0s006" -#=========================================================================2022/01/21 12:33:05.132 OK -2022/01/21 12:33:05.242 OK -2022/01/21 12:33:05.322 12848 -2022/01/21 12:33:05.325 OK -2022/01/21 12:33:05.325 OK -2022/01/21 12:33:05.326 OK -2022/01/21 12:33:05.326 OK -2022/01/21 12:33:05.326 OK -2022/01/21 12:33:05.326 OK -2022/01/21 12:33:05.327 OK -2022/01/21 12:33:05.327 OK -2022/01/21 12:33:05.327 OK -2022/01/21 12:33:05.327 OK -2022/01/21 12:33:05.327 OK -2022/01/21 12:33:05.328 OK -===== -# applyTemplate.cmd -ecmcFileExist(ecmcEcSlave.template,1,1) -dbLoadRecords("ecmcEcSlave.template", "ECMC_P=IOC_TEST:m0s006-,ECMC_G=IOC_TEST:m0s006,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=6,HWTYPE=EL1252,T_SMP_MS=10,TSE=-2,") -epicsEnvUnset(DEFAULT_SLAVE_PVS) -# increment SLAVE_ID -ecmcEpicsEnvSetCalc("SLAVE_ID", "6+1","%d") -# Configure EL9410 Power supply with refresh of E-Bus. -ecmcEpicsEnvSetCalc(ECMC_EC_SLAVE_NUM, "6+1") -#${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=${ECMC_EC_SLAVE_NUM}, HW_DESC=EL9410" -#Configure EL7037 stepper drive terminal, motor 1 -ecmcEpicsEnvSetCalc(ECMC_EC_SLAVE_NUM, "7+1") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/configureSlave.cmd, "SLAVE_ID=8, HW_DESC=EL7037, CONFIG=-Motor-Nanotec-ST4118L1804-B" -#============================================================================== -# configureSlave.cmd -epicsEnvSet("ECMC_EC_SLAVE_NUM", "8") -epicsEnvSet("HW_DESC", "EL7037") -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd "SLAVE_ID=8, HW_DESC=EL7037, NELM=1" -#============================================================================== -# addSlave.cmd -epicsEnvSet("ECMC_EC_SLAVE_NUM", "8") -epicsEnvSet("HW_DESC", "EL7037") -epicsEnvSet("P_SCRIPT", "mXsXXX") -# add ${HW_DESC} to the bus at position ${SLAVE_ID} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL7037.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL7037.cmd" "NELM=1" -epicsEnvSet("ECMC_EC_HWTYPE" "EL7037") -epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") -epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x1b7d3052") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd "RESET=true" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_VERIFY, "0==0", "","#- ") -ecmcConfigOrDie "Cfg.EcSlaveVerify(0,8,0x2,0x1b7d3052)" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_RESET, "true>0", "","#- ") -ecmcConfigOrDie "Cfg.EcWriteSdo(8,0x1011,0x1,1684107116,4)" -epicsEnvSet(ECMC_EC_SLAVE_FW, "0x0000") -ecmcConfig "EcReadSdo(8,0x100a,0x0,2)" -ecmcEpicsEnvSetCalc("ECMC_EC_SLAVE_FW", "12848", "0x%04x") -# Firmware version: 0x3230 -epicsEnvUnset(ECMC_SLAVE_VERIFY) -epicsEnvUnset(ECMC_COMMENT) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEX70XX.cmd -ecmcConfigOrDie "Cfg.EcAddEntryComplete(8,0x2,0x1b7d3052,1,2,0x1600,0x7000,0x01,16,encoderControl01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(8,0x2,0x1b7d3052,1,2,0x1600,0x7000,0x11,16,encoderValue01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(8,0x2,0x1b7d3052,1,2,0x1602,0x7010,0x1,16,driveControl01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(8,0x2,0x1b7d3052,1,2,0x1604,0x7010,0x21,16,1,velocitySetpoint01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(8,0x2,0x1b7d3052,2,3,0x1a00,0x6000,0x0,16,encoderStatus01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(8,0x2,0x1b7d3052,2,3,0x1a00,0x6000,0x11,16,positionActual01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(8,0x2,0x1b7d3052,2,3,0x1a00,0x6000,0x12,16,encoderLatchPostion01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(8,0x2,0x1b7d3052,2,3,0x1a03,0x6010,0x1,16,driveStatus01)" -ecmcConfigOrDie "Cfg.EcAddSdo(8,0x8012,0x5,1,1)" -ecmcConfigOrDie "Cfg.EcAddSdo(8,0x8012,0xA,1,1)" -ecmcConfigOrDie "Cfg.EcAddSdo(8,0x8012,0x8,1,1)" -ecmcConfigOrDie "Cfg.EcAddSdo(8,0x8012,0x9,0,1)" -# deduce what the prefix should be -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd" "MASTER_ID=0,SLAVE_POS=8,HWTYPE=EL7037" -#============================================================================== -# ecmcmXsXXX.cmd -ecmcEpicsEnvSetCalc("sid", "8","%03d") -ecmcEpicsEnvSetCalc("mid", "0","%01d") -epicsEnvSet("ECMC_G", "IOC_TEST:m0s008") -epicsEnvSet("ECMC_P", "IOC_TEST:m0s008-") -epicsEnvUnset(sid) -epicsEnvUnset(mid) -ecmcEpicsEnvSetCalcTern2022/01/21 12:33:05.347 OK -2022/01/21 12:33:05.347 OK -2022/01/21 12:33:05.347 OK -2022/01/21 12:33:05.348 OK -2022/01/21 12:33:05.348 OK -2022/01/21 12:33:05.348 OK -ary(DEFAULT_SUBS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applySubstitutions.cmd" "SUBST_FILE=ecmcEL7037.substitutions,ECMC_P=IOC_TEST:m0s008-" -#============================================================================== -# applySubstitutions.cmd -ecmcFileExist(ecmcEL7037.substitutions,1,1) -dbLoadTemplate(ecmcEL7037.substitutions,"ECMC_P=IOC_TEST:m0s008-,ECMC_G=IOC_TEST:m0s008,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=8,HWTYPE=EL7037,T_SMP_MS=10,TSE=-2,NELM=1") -epicsEnvUnset(DEFAULT_SUBS) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SLAVE_PVS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applyTemplate.cmd" "TEMPLATE_FILE=ecmcEcSlave.template,ECMC_P=IOC_TEST:m0s008-,ECMC_G=IOC_TEST:m0s008" -#============================================================================== -# applyTemplate.cmd -ecmcFileExist(ecmcEcSlave.template,1,1) -dbLoadRecords("ecmcEcSlave.template", "ECMC_P=IOC_TEST:m0s008-,ECMC_G=IOC_TEST:m0s008,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=8,HWTYPE=EL7037,T_SMP_MS=10,TSE=-2,") -epicsEnvUnset(DEFAULT_SLAVE_PVS) -# increment SLAVE_ID -ecmcEpicsEnvSetCalc("SLAVE_ID", "8+1","%d") -# apply config ${CONFIG} for ${HW_DESC} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL7037-Motor-Nanotec-ST4118L1804-B.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL7037-Motor-Nanotec-ST4118L1804-B.cmd "" -epicsEnvSet(I_MAX_MA_LOCAL,"1500") -epicsEnvSet(I_RUN_MA_LOCAL,1000) -epicsEnvSet(I_STDBY_MA_LOCAL,500) -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/chkValidCurrentSetOrDie.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/chkValidCurrentSetOrDie.cmd "I_RUN_MA=1000,I_STDBY_MA=500,I_MAX_MA=1500" -#============================================================================== -# chkValidCurrentSetOrDie.cmd -# Ensure running current is below max current otherwise exit -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "1000>1500 or 1000<=0", "ecmcExit Error: Run current setpoint to high or negative...","# Run current setting OK (1000)...") -# Result: -# Run current setting OK (1000)... -epicsEnvUnset(ECMC_EXE_CMD) -# Ensure standby current is below max current otherwise exit -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "500>1500 or 500<0", "ecmcExit Error: Standby current setpoint to high or negative...","# Standby current setting OK (500)...") -# Result: -# Standby current setting OK (500)... -epicsEnvUnset(ECMC_EXE_CMD) -# Ensure standby current is below run current otherwise exit -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "500>1000", "ecmcExit Error: Standby current higher than run current...","# Standby current and run current setting OK (500<1000)...") -# Result: -# Standby current and run current setting OK (500<1000)... -epicsEnvUnset(ECMC_EXE_CMD) -ecmcConfigOrDie "Cfg.EcAddSdo(8,0x8010,0x1,1000,2)" -ecmcConfigOrDie "Cfg.EcAddSdo(8,0x8010,0x2,500,2)" -ecmcConfigOrDie "Cfg.EcAddSdo(8,0x8010,0x3,2400,2)" -ecmcConfigOrDie "Cfg.EcAddSdo(8,0x8010,0x4,175,2)" -ecmcConfigOrDie "Cfg.EcAddSdo(8,0x8010,0x6,200,2)" -ecmcConfigOrDie "Cfg.EcAddSdo(8,0x8010,0xA,330,2)" -epicsEnvUnset("I_RUN_MA_LOCAL") -epicsEnvUnset("I_STDBY_MA_LOCAL") -epicsEnvUnset("I_MAX_MA_LOCAL") -#Configure EL7037 stepper drive terminal, motor 2 -ecmcEpicsEnvSetCalc(ECMC_EC_SLAVE_NUM, "8+1") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/configureSlave.cmd, "SLAVE_ID=9, HW_DESC=EL7037, CONFIG=-Motor-Nanotec-ST4118L1804-B" -#============================================================================== -# configureSlave.cmd -epicsEnvSet("ECMC_EC_SLAVE_NUM", "9") -epicsEnvSet("HW_DESC", "EL7037") -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addSlave.cmd "SLAVE_ID=9, HW_DESC=EL7037, NELM=1" -#============================================================================== -# addSlave.cmd -epicsEnvSet("ECMC_EC_SL2022/01/21 12:33:05.353 OK -2022/01/21 12:33:05.462 OK -2022/01/21 12:33:05.542 12848 -2022/01/21 12:33:05.544 OK -2022/01/21 12:33:05.544 OK -2022/01/21 12:33:05.545 OK -2022/01/21 12:33:05.545 OK -2022/01/21 12:33:05.545 OK -2022/01/21 12:33:05.546 OK -2022/01/21 12:33:05.546 OK -2022/01/21 12:33:05.546 OK -2022/01/21 12:33:05.546 OK -2022/01/21 12:33:05.547 OK -2022/01/21 12:33:05.547 OK -2022/01/21 12:33:05.547 OK -AVE_NUM", "9") -epicsEnvSet("HW_DESC", "EL7037") -epicsEnvSet("P_SCRIPT", "mXsXXX") -# add ${HW_DESC} to the bus at position ${SLAVE_ID} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL7037.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL7037.cmd" "NELM=1" -epicsEnvSet("ECMC_EC_HWTYPE" "EL7037") -epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") -epicsEnvSet("ECMC_EC_PRODUCT_ID" "0x1b7d3052") -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/slaveVerify.cmd "RESET=true" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_VERIFY, "0==0", "","#- ") -ecmcConfigOrDie "Cfg.EcSlaveVerify(0,9,0x2,0x1b7d3052)" -ecmcEpicsEnvSetCalcTernary(ECMC_SLAVE_RESET, "true>0", "","#- ") -ecmcConfigOrDie "Cfg.EcWriteSdo(9,0x1011,0x1,1684107116,4)" -epicsEnvSet(ECMC_EC_SLAVE_FW, "0x0000") -ecmcConfig "EcReadSdo(9,0x100a,0x0,2)" -ecmcEpicsEnvSetCalc("ECMC_EC_SLAVE_FW", "12848", "0x%04x") -# Firmware version: 0x3230 -epicsEnvUnset(ECMC_SLAVE_VERIFY) -epicsEnvUnset(ECMC_COMMENT) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEX70XX.cmd -ecmcConfigOrDie "Cfg.EcAddEntryComplete(9,0x2,0x1b7d3052,1,2,0x1600,0x7000,0x01,16,encoderControl01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(9,0x2,0x1b7d3052,1,2,0x1600,0x7000,0x11,16,encoderValue01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(9,0x2,0x1b7d3052,1,2,0x1602,0x7010,0x1,16,driveControl01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(9,0x2,0x1b7d3052,1,2,0x1604,0x7010,0x21,16,1,velocitySetpoint01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(9,0x2,0x1b7d3052,2,3,0x1a00,0x6000,0x0,16,encoderStatus01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(9,0x2,0x1b7d3052,2,3,0x1a00,0x6000,0x11,16,positionActual01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(9,0x2,0x1b7d3052,2,3,0x1a00,0x6000,0x12,16,encoderLatchPostion01)" -ecmcConfigOrDie "Cfg.EcAddEntryComplete(9,0x2,0x1b7d3052,2,3,0x1a03,0x6010,0x1,16,driveStatus01)" -ecmcConfigOrDie "Cfg.EcAddSdo(9,0x8012,0x5,1,1)" -ecmcConfigOrDie "Cfg.EcAddSdo(9,0x8012,0xA,1,1)" -ecmcConfigOrDie "Cfg.EcAddSdo(9,0x8012,0x8,1,1)" -ecmcConfigOrDie "Cfg.EcAddSdo(9,0x8012,0x9,0,1)" -# deduce what the prefix should be -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd",1) -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcmXsXXX.cmd" "MASTER_ID=0,SLAVE_POS=9,HWTYPE=EL7037" -#============================================================================== -# ecmcmXsXXX.cmd -ecmcEpicsEnvSetCalc("sid", "9","%03d") -ecmcEpicsEnvSetCalc("mid", "0","%01d") -epicsEnvSet("ECMC_G", "IOC_TEST:m0s009") -epicsEnvSet("ECMC_P", "IOC_TEST:m0s009-") -epicsEnvUnset(sid) -epicsEnvUnset(mid) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SUBS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applySubstitutions.cmd" "SUBST_FILE=ecmcEL7037.substitutions,ECMC_P=IOC_TEST:m0s009-" -#============================================================================== -# applySubstitutions.cmd -ecmcFileExist(ecmcEL7037.substitutions,1,1) -dbLoadTemplate(ecmcEL7037.substitutions,"ECMC_P=IOC_TEST:m0s009-,ECMC_G=IOC_TEST:m0s009,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=9,HWTYPE=EL7037,T_SMP_MS=10,TSE=-2,NELM=1") -epicsEnvUnset(DEFAULT_SUBS) -ecmcEpicsEnvSetCalcTernary(DEFAULT_SLAVE_PVS, "True", "","#- ") -iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applyTemplate.cmd" "TEMPLATE_FILE=ecmcEcSlave.template,ECMC_P=IOC_TEST:m0s009-,ECMC_G=IOC_TEST:m0s009" -#============================================================================== -# applyTemplate.cmd -ecmcFileExist(ecmcEcSlave.template,1,1) -dbLoadRecords("ecmcEcSlave.template", "ECMC_P=IOC_TEST:m0s009-,ECMC_G=IOC_TEST:m0s009,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,SLAVE_POS=9,HWTYPE=EL7037,T_SMP_MS=10,TSE=-2,") -epicsEnvUnset(DEFAULT_SLAVE_PVS) -# increment SLAVE_ID -ecmcEpicsEnvSetCalc("SLAVE_ID", "9+1","%d") -# apply config ${CONFIG} for ${HW_DESC} -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/s2022/01/21 12:33:05.573 OK -2022/01/21 12:33:05.573 OK -2022/01/21 12:33:05.573 OK -2022/01/21 12:33:05.574 OK -2022/01/21 12:33:05.574 OK -2022/01/21 12:33:05.575 OK -2022/01/21 12:33:05.575 OK -2022/01/21 12:33:05.576 OK -2022/01/21 12:33:05.576 OK -2022/01/21 12:33:05.576 OK -2022/01/21 12:33:05.577 OK -2022/01/21 12:33:05.577 OK -2022/01/21 12:33:05.577 OK -2022/01/21 12:33:05.578 OK -2022/01/21 12:33:05.578 OK -iteMods/ecmccfg/ruckig/ecmcEL7037-Motor-Nanotec-ST4118L1804-B.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEL7037-Motor-Nanotec-ST4118L1804-B.cmd "" -epicsEnvSet(I_MAX_MA_LOCAL,"1500") -epicsEnvSet(I_RUN_MA_LOCAL,1000) -epicsEnvSet(I_STDBY_MA_LOCAL,500) -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/chkValidCurrentSetOrDie.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/chkValidCurrentSetOrDie.cmd "I_RUN_MA=1000,I_STDBY_MA=500,I_MAX_MA=1500" -#============================================================================== -# chkValidCurrentSetOrDie.cmd -# Ensure running current is below max current otherwise exit -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "1000>1500 or 1000<=0", "ecmcExit Error: Run current setpoint to high or negative...","# Run current setting OK (1000)...") -# Result: -# Run current setting OK (1000)... -epicsEnvUnset(ECMC_EXE_CMD) -# Ensure standby current is below max current otherwise exit -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "500>1500 or 500<0", "ecmcExit Error: Standby current setpoint to high or negative...","# Standby current setting OK (500)...") -# Result: -# Standby current setting OK (500)... -epicsEnvUnset(ECMC_EXE_CMD) -# Ensure standby current is below run current otherwise exit -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "500>1000", "ecmcExit Error: Standby current higher than run current...","# Standby current and run current setting OK (500<1000)...") -# Result: -# Standby current and run current setting OK (500<1000)... -epicsEnvUnset(ECMC_EXE_CMD) -ecmcConfigOrDie "Cfg.EcAddSdo(9,0x8010,0x1,1000,2)" -ecmcConfigOrDie "Cfg.EcAddSdo(9,0x8010,0x2,500,2)" -ecmcConfigOrDie "Cfg.EcAddSdo(9,0x8010,0x3,2400,2)" -ecmcConfigOrDie "Cfg.EcAddSdo(9,0x8010,0x4,175,2)" -ecmcConfigOrDie "Cfg.EcAddSdo(9,0x8010,0x6,200,2)" -ecmcConfigOrDie "Cfg.EcAddSdo(9,0x8010,0xA,330,2)" -epicsEnvUnset("I_RUN_MA_LOCAL") -epicsEnvUnset("I_STDBY_MA_LOCAL") -epicsEnvUnset("I_MAX_MA_LOCAL") -#Apply hardware configuration -ecmcConfigOrDie "Cfg.EcApplyConfig(1)" -# ADDITIONAL SETUP -# Set all outputs to feed switches -ecmcConfigOrDie "Cfg.WriteEcEntryIDString(2,binaryOutput01,1)" -ecmcConfigOrDie "Cfg.WriteEcEntryIDString(2,binaryOutput02,1)" -ecmcConfigOrDie "Cfg.WriteEcEntryIDString(2,binaryOutput03,1)" -ecmcConfigOrDie "Cfg.WriteEcEntryIDString(2,binaryOutput04,1)" -ecmcConfigOrDie "Cfg.WriteEcEntryIDString(2,binaryOutput05,1)" -ecmcConfigOrDie "Cfg.WriteEcEntryIDString(2,binaryOutput06,1)" -ecmcConfigOrDie "Cfg.WriteEcEntryIDString(2,binaryOutput07,1)" -ecmcConfigOrDie "Cfg.WriteEcEntryIDString(2,binaryOutput08,1)" -# END of ADDITIONAL SETUP -############################################################################## -## AXIS 1 -# -epicsEnvSet("DEV", "IOC_TEST") -iocshLoad (/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/configureAxis.cmd, CONFIG=./cfg/linear_1.ax) -#============================================================================== -# configureAxis.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "'FULL'='DAQ'","ecmcExit Error: ECMC started in DAQ mode. Motion not supported..","#-") -epicsEnvUnset(ECMC_EXE_CMD) -epicsEnvSet("ECMC_PREFIX" "IOC_TEST:") -ecmcFileExist("./cfg/linear_1.ax",1) -iocshLoad ./cfg/linear_1.ax "" -#General -epicsEnvSet("ECMC_MOTOR_NAME", "Axis1") -epicsEnvSet("ECMC_R", "Axis1-") -epicsEnvSet("ECMC_AXIS_NO", "1") -epicsEnvSet("ECMC_DESC", "MCU1021 Lower Axis (1)") -epicsEnvSet("ECMC_EGU", "mm") # Motor Record Unit -epicsEnvSet("ECMC_PREC", "3") # Motor Record Precision -epicsEnvSet("ECMC_AXISCONFIG", "") # Extra parameters to driver -epicsEnvSet("ECMC_EC_AXIS_HEALTH", "") # Entry for axis health output (example: ec0.s1.binaryOutput01.0) -epicsEnvSet("ECMC_MOD_RANGE" , "0") # Modulo range (traj setpoints and encoder values will be in range 0..ECMC_MOD_RANGE) -epicsEnvSet("ECMC_MOD_TYPE", "0") # For positioning and MOD_RANGE>0: 0 = Normal, 1 = Always Fwd, 2 = Always Bwd, 3 = Closest Distance -#Encoder -epicsEnvSet("ECMC_ENC_SCALE_NUM" "-60") -epicsEnvSet("ECMC_ENC_SCALE_DENOM" "2000") -epicsEnvSet("ECMC_ENC_TYPE" "0") # Type: 0=Incremental, 1=Absolute -epicsEnvSet("ECMC_ENC_BITS" "16") # Total bit count of encoder raw data -epicsEnvSet("ECMC_ENC_ABS_BITS", "0") # Absolute bit count (for absolute encoders) always least significant part of ECMC_ENC_BITS -epicsEnvSet("ECMC_ENC_ABS_OFFSET" "0") # Encoder offset in eng units (for absolute encoders) -epicsEnvSet("ECMC_EC_ENC_ACTPOS", "ec0.s3.positionActual01") # Ethercat entry for actual position input (encoder) -epicsEnvSet("ECMC_EC_ENC_RESET", "") # Reset (if no encoder reset bit then leave empty) -epicsEnvSet("ECMC_EC_ENC_ALARM_0", "") # Error 0 (if no encoder error bit then leave empty) -epicsEnvSet("ECMC_EC_ENC_ALARM_1", "") # Error 1 (if no encoder error bit then leave empty) -epicsEnvSet("ECMC_EC_ENC_ALARM_2", "") # Error 2 (if no encoder error bit then leave empty) -epicsEnvSet("ECMC_EC_ENC_WARNING", "") # Warning (if no encoder warning bit then leave empty) -#Drive -epicsEnvSet("ECMC_DRV_TYPE" "0") # Stepper: 0. DS402: 1 (DS402 = servos and advanced stepper drives) -epicsEnvSet("ECMC_DRV_SCALE_NUM" "600.0") # Fastest speed in engineering units -epicsEnvSet("ECMC_DRV_SCALE_DENOM" "32768.0") # I/O range for ECMC_EC_ALIAS_DRV_VELO_SET -epicsEnvSet("ECMC_EC_DRV_CONTROL", "ec0.s8.driveControl01.0") # Ethercat entry for control word or bit output -epicsEnvSet("ECMC_EC_DRV_STATUS", "ec0.s8.driveStatus01.1") # Ethercat entry for status word or bit input -epicsEnvSet("ECMC_EC_DRV_VELOCITY", "ec0.s8.velocitySetpoint01") # Ethercat entry for velocity setpoint output -epicsEnvSet("ECMC_EC_DRV_REDUCE_TORQUE", "ec0.s8.driveControl01.2") # Ethercat entry for reduce torque output -epicsEnvSet("ECMC_EC_DRV_BRAKE", "") # Ethercat entry for brake output -epicsEnvSet("ECMC_DRV_BRAKE_OPEN_DLY_TIME", "0") # Brake timing parameter in cycles (default 1kHz) -epicsEnvSet("ECMC_DRV_BRAKE_CLOSE_AHEAD_TIME", "0") # Brake timing parameter in cycles (default 1kHz) -epicsEnvSet("ECMC_EC_DRV_RESET", "ec0.s8.driveControl01.1") # Reset -epicsEnvSet("ECMC_EC_DRV_ALARM_0", "ec0.s8.driveStatus01.3") # Error -epicsEnvSet("ECMC_EC_DRV_ALARM_1", "ec0.s8.driveStatus01.7") # Stall -epicsEnvSet("ECMC_EC_DRV_ALARM_2", "ec0.s8.driveStatus01.14") # Sync error -epicsEnvSet("ECMC_EC_DRV_WARNING", "ec0.s8.driveStatus01.2") # Warning -#Trajectory -epicsEnvSet("ECMC_TRAJ_TYPE" "1") # Trapetz: 0. S-Curve: 1 -epicsEnvSet("ECMC_VELO", "10.0") -epicsEnvSet("ECMC_JOG_VEL", "5") -epicsEnvSet("ECMC_JAR", "0.0") # JAR defaults to VELO/ACCL -epicsEnvSet("ECMC_ACCS_EGU_PER_S2", "10") -epicsEnvSet("ECMC_EMERG_DECEL", "100") # Emergency deceleration -epicsEnvSet("ECMC_JERK", "10.0") # Only valid for ECMC_TRAJ_TYPE==1 -#Homing -epicsEnvSet("ECMC_HOME_PROC", "3") -epicsEnvSet("ECMC_HOME_POS", "0.0") -epicsEnvSet("ECMC_HOME_VEL_TO", "5") -epicsEnvSet("ECMC_HOME_VEL_FRM", "4") -epicsEnvSet("ECMC_HOME_ACC", "21") -epicsEnvSet("ECMC_HOME_DEC", "100") -epicsEnvSet("ECMC_HOME_POS_MOVE_ENA", "0") # Enable move to position after successfull homing -epicsEnvSet("ECMC_HOME_POS_MOVE_TARG_POS","0") # Target position to go to after successfull homing -#Controller -epicsEnvSet("ECMC_CNTRL_KP", "15.0") -epicsEnvSet("ECMC_CNTRL_KI", "0.02") -epicsEnvSet("ECMC_CNTRL_KD", "0.0") -epicsEnvSet("ECMC_CNTRL_KFF", "1.0") -#Monitoring -# Switches -epicsEnvSet("ECMC_EC_MON_LOWLIM", "ec0.s1.binaryInput02.0") # Ethercat entry for low limit switch input -epicsEnvSet("ECMC_EC_MON_HIGHLIM", "ec0.s1.binaryInput01.0") # Ethercat entry for high limit switch inpuit -epicsEnvSet("ECMC_EC_MON_HOME_SWITCH", "ec0.s1.binaryInput03.0") # Ethercat entry for home switch input -epicsEnvSet("ECMC_EC_MON_EXT_INTERLOCK", "ec0.s1.ONE.0") # Ethercat entry for external interlock input -# Softlimits (disable with 0,0,0) -epicsEnvSet("ECMC_SOFT_LOW_LIM", "-20") -epicsEnvSet("ECMC_SOFT_HIGH_LIM", "130") -epicsEnvSet("ECMC_DXLM_ENABLE", "1") -# Position lag -epicsEnvSet("ECMC_MON_LAG_MON_TOL", "1.0") -epicsEnvSet("ECMC_MON_LAG_MON_TIME", "10") -epicsEnvSet("ECMC_MON_LAG_MON_ENA", "1") -# At target -epicsEnvSet("ECMC_MON_AT_TARGET_TOL", "0.1") -epicsEnvSet("ECMC_MON_AT_TARGET_TIME", "100") -epicsEnvSet("ECMC_MON_AT_TARGET_ENA", "1") -# Velocity -epicsEnvSet("ECMC_MON_VELO_MAX", "100.0") -epicsEnvSet("ECMC_MON_VELO_MAX_TRAJ_TIME","100") -epicsEnvSet("ECMC_MON_VELO_MAX_DRV_TIME", "200") -epicsEnvSet("ECMC_MON_VELO_MAX_ENA", "1") -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addAxis.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addAxis.cmd -#============================================================================== -# addAxis.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "'FULL'='DAQ'","ecmcExit Error: ECMC started in DAQ mode. Motion not supported..","#-") -epicsEnvUnset(ECMC_EXE_CMD) -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis-records.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis-records.cmd -#============================================================================== -# ecmc_axis-records.cmd -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis.cmd -#============================================================================== -# ecmc_axis.cmd -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd "EXPR_STR='abs(-60)<>0',SUCCESS_STR='ECMC_ENC_SCALE_NUM value OK == -60...',ERROR_STR='ECMC_ENC_SCALE_NUM == 0...'" -#============================================================================== -# verifyOrDie.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"abs(-60)<>0","# ECMC_ENC_SCALE_NUM value OK == -60...", "ecmcExit Error: ECMC_ENC_SCALE_NUM == 0...") -# ECMC_ENC_SCALE_NUM value OK == -60... -epicsEnvUnset(ECMC_EXE_CMD) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd "EXPR_STR='abs(2000)<>0',SUCCESS_STR='ECMC_ENC_SCALE_DENOM value OK == 2000...',ERROR_STR='ECMC_ENC_SCALE_DENOM == 0...'" -#============================================================================== -# verifyOrDie.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"abs(2000)<>0","# ECMC_ENC_SCALE_DENOM value OK == 2000...", "ecmcExit Error: ECMC_ENC_SCALE_DENOM == 0...") -# ECMC_ENC_SCALE_DENOM value OK == 2000... -epicsEnvUnset(ECMC_EXE_CMD) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd "EXPR_STR='abs(600.0)<>0',SUCCESS_STR='ECMC_DRV_SCALE_NUM value OK == 600.0...',ERROR_STR='ECMC_DRV_SCALE_NUM == 0...'" -#============================================================================== -# verifyOrDie.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"abs(600.0)<>0","# ECMC_DRV_SCALE_NU2022/01/21 12:33:05.608 OK -2022/01/21 12:33:05.609 OK -2022/01/21 12:33:05.609 OK -2022/01/21 12:33:05.609 OK -2022/01/21 12:33:05.614 OK -2022/01/21 12:33:05.614 OK -2022/01/21 12:33:05.614 OK -2022/01/21 12:33:05.614 OK -2022/01/21 12:33:05.614 OK -2022/01/21 12:33:05.615 OK -2022/01/21 12:33:05.615 OK -2022/01/21 12:33:05.615 OK -2022/01/21 12:33:05.615 OK -2022/01/21 12:33:05.615 OK -2022/01/21 12:33:05.615 OK -2022/01/21 12:33:05.616 OK -2022/01/21 12:33:05.616 OK -2022/01/21 12:33:05.616 OK -2022/01/21 12:33:05.616 OK -2022/01/21 12:33:05.616 OK -2022/01/21 12:33:05.616 OK -2022/01/21 12:33:05.616 OK -2022/01/21 12:33:05.617 OK -2022/01/21 12:33:05.617 OK -2022/01/21 12:33:05.617 OK -2022/01/21 12:33:05.617 OK -2022/01/21 12:33:05.617 OK -2022/01/21 12:33:05.617 OK -2022/01/21 12:33:05.618 OK -2022/01/21 12:33:05.618 OK -2022/01/21 12:33:05.618 OK -2022/01/21 12:33:05.618 OK -2022/01/21 12:33:05.618 OK -2022/01/21 12:33:05.619 OK -2022/01/21 12:33:05.619 OK -2022/01/21 12:33:05.619 OK -2022/01/21 12:33:05.620 OK -2022/01/21 12:33:05.620 OK -2022/01/21 12:33:05.620 OK -M value OK == 600.0...", "ecmcExit Error: ECMC_DRV_SCALE_NUM == 0...") -# ECMC_DRV_SCALE_NUM value OK == 600.0... -epicsEnvUnset(ECMC_EXE_CMD) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd "EXPR_STR='abs(32768.0)<>0',SUCCESS_STR='ECMC_DRV_SCALE_DENOM value OK == 32768.0...',ERROR_STR='ECMC_DRV_SCALE_DENOM == 0...'" -#============================================================================== -# verifyOrDie.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"abs(32768.0)<>0","# ECMC_DRV_SCALE_DENOM value OK == 32768.0...", "ecmcExit Error: ECMC_DRV_SCALE_DENOM == 0...") -# ECMC_DRV_SCALE_DENOM value OK == 32768.0... -epicsEnvUnset(ECMC_EXE_CMD) -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/issueWarning.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/issueWarning.cmd "EXPR_STR='-1>0',WARNING_STR='WARNING: ECMC_MRES setting is deprecated and will not be used. (MRES will be calulated instead: ECMC_ENC_SCALE_NUM/ECMC_ENC_SCALE_DENOM).. '" -#============================================================================== -# issueWarning.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"-1>0","", "#-") -epicsEnvUnset(ECMC_EXE_CMD) -ecmcConfigOrDie "Cfg.CreateAxis(1,1,0,1)" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.health")" -ecmcConfigOrDie "Cfg.SetAxisModRange(1, 0)" -ecmcConfigOrDie "Cfg.SetAxisModType(1, 0)" -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/issueWarning.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/issueWarning.cmd "EXPR_STR='-1>0',WARNING_STR='WARNING: ECMC_ACCL setting is deprecated. Please use ECMC_ACCS_EGU_PER_S2 instead..'" -#============================================================================== -# issueWarning.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"-1>0","", "#-") -epicsEnvUnset(ECMC_EXE_CMD) -ecmcEpicsEnvSetCalcTernary(ECMC_BLOCK_ACCL,"'EMPTY'!='EMPTY'","", "#-") -ecmcEpicsEnvSetCalcTernary(ECMC_BLOCK_ACCS,"'EMPTY'=='EMPTY'","", "#-") - ecmcConfigOrDie "Cfg.SetAxisAcc(1,10)" - ecmcConfigOrDie "Cfg.SetAxisDec(1,10)" -ecmcConfigOrDie "Cfg.SetAxisJerk(1,10.0)" -ecmcConfigOrDie "Cfg.SetAxisVel(1,10.0)" -ecmcConfigOrDie "Cfg.SetAxisEmergDeceleration(1,100)" -ecmcConfigOrDie "Cfg.SetAxisHomeVelTwordsCam(1,5)" -ecmcConfigOrDie "Cfg.SetAxisHomeVelOffCam(1,4)" -ecmcConfigOrDie "Cfg.SetAxisCntrlKp(1,15.0)" -ecmcConfigOrDie "Cfg.SetAxisCntrlKi(1,0.02)" -ecmcConfigOrDie "Cfg.SetAxisCntrlKd(1,0.0)" -ecmcConfigOrDie "Cfg.SetAxisCntrlKff(1,1.0)" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s3.positionActual01,"ax1.enc.actpos")" -ecmcConfigOrDie "Cfg.SetAxisEncScaleDenom(1,2000)" -ecmcConfigOrDie "Cfg.SetAxisEncScaleNum(1,-60)" -ecmcConfigOrDie "Cfg.SetAxisEncType(1,0)" -ecmcConfigOrDie "Cfg.SetAxisEncBits(1,16)" -ecmcConfigOrDie "Cfg.SetAxisEncAbsBits(1,0)" -ecmcConfigOrDie "Cfg.SetAxisEncOffset(1,0)" -ecmcConfigOrDie "Cfg.SetAxisEncVelFilterSize(1,100)" -ecmcConfigOrDie "Cfg.SetAxisEncPosFilterSize(1,1)" -ecmcConfigOrDie "Cfg.SetAxisEncPosFilterEnable(1,0)" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.enc.reset")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.enc.alarm0")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.enc.alarm1")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.enc.alarm2")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.enc.warning")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.enc.latchpos")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.enc.latchcontrol")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.enc.latchstatus")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveControl01.0,"ax1.drv.control")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveStatus01.1,"ax1.drv.status")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.velocitySetpoint01,"ax1.drv.velocity")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.drv.position")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.drv.brake")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveControl01.2,"ax1.drv.reducetorque")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveControl01.2022/01/21 12:33:05.621 OK -2022/01/21 12:33:05.621 OK -2022/01/21 12:33:05.622 OK -2022/01/21 12:33:05.622 OK -2022/01/21 12:33:05.622 OK -2022/01/21 12:33:05.622 OK -2022/01/21 12:33:05.622 OK -2022/01/21 12:33:05.623 OK -2022/01/21 12:33:05.623 OK -2022/01/21 12:33:05.623 OK -2022/01/21 12:33:05.623 OK -2022/01/21 12:33:05.623 OK -2022/01/21 12:33:05.624 OK -2022/01/21 12:33:05.624 OK -2022/01/21 12:33:05.624 OK -2022/01/21 12:33:05.624 OK -2022/01/21 12:33:05.624 OK -2022/01/21 12:33:05.624 OK -2022/01/21 12:33:05.625 OK -2022/01/21 12:33:05.625 OK -2022/01/21 12:33:05.625 OK -2022/01/21 12:33:05.625 OK -2022/01/21 12:33:05.626 OK -2022/01/21 12:33:05.626 OK -2022/01/21 12:33:05.626 OK -2022/01/21 12:33:05.626 OK -2022/01/21 12:33:05.626 OK -2022/01/21 12:33:05.627 OK -2022/01/21 12:33:05.627 OK -2022/01/21 12:33:05.627 OK -2022/01/21 12:33:05.627 OK -2022/01/21 12:33:05.628 OK -2022/01/21 12:33:05.628 ecmcMotorRecord:: setIntegerParam(1 motorPowerAutoOnOff_)=2 -2022/01/21 12:33:05.629 ecmcMotorRecord:: setDoubleParam(1 motorPowerOnDelay_)=6 -2022/01/21 12:33:05.629 ecmcMotorRecord:: setDoubleParam(1 motorPowerOffDelay_=-1 -2022/01/21 12:33:05.630 ecmcMotorRecord:: udateMotorLimitsRO(1) enabledHighAndLow=1 valid=1 fValueHigh=130 fValueLow=-20 -2022/01/21 12:33:05.630 ecmcMotorRecord:: connected(1) -2022/01/21 12:33:05.630 ecmcMotorRecord:: initialPoll(1) status=0 -1,"ax1.drv.reset")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveStatus01.3,"ax1.drv.alarm0")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveStatus01.7,"ax1.drv.alarm1")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveStatus01.14,"ax1.drv.alarm2")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveStatus01.2,"ax1.drv.warning")" -ecmcConfigOrDie "Cfg.SetAxisDrvScaleDenom(1,32768.0)" -ecmcConfigOrDie "Cfg.SetAxisDrvScaleNum(1,600.0)" -ecmcConfigOrDie "Cfg.SetAxisDrvBrakeOpenDelayTime(1,0)" -ecmcConfigOrDie "Cfg.SetAxisDrvBrakeCloseAheadTime(1,0)" -ecmcConfigOrDie "Cfg.SetAxisSoftLimitPosBwd(1,-20)" -ecmcConfigOrDie "Cfg.SetAxisEnableSoftLimitBwd(1,1)" -ecmcConfigOrDie "Cfg.SetAxisSoftLimitPosFwd(1,130)" -ecmcConfigOrDie "Cfg.SetAxisEnableSoftLimitFwd(1,1)" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s1.binaryInput02.0,"ax1.mon.lowlim")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s1.binaryInput01.0,"ax1.mon.highlim")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s1.binaryInput03.0,"ax1.mon.homesensor")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s1.ONE.0,"ax1.mon.extinterlock")" -ecmcConfigOrDie "Cfg.SetAxisMonAtTargetTol(1,0.1)" -ecmcConfigOrDie "Cfg.SetAxisMonAtTargetTime(1,100)" -ecmcConfigOrDie "Cfg.SetAxisMonEnableAtTargetMon(1,1)" -ecmcConfigOrDie "Cfg.SetAxisMonPosLagTol(1,1.0)" -ecmcConfigOrDie "Cfg.SetAxisMonPosLagTime(1,10)" -ecmcConfigOrDie "Cfg.SetAxisMonEnableLagMon(1,1)" -ecmcConfigOrDie "Cfg.SetAxisMonMaxVel(1,100.0)" -ecmcConfigOrDie "Cfg.SetAxisMonEnableMaxVel(1,1)" -ecmcConfigOrDie "Cfg.SetAxisMonMaxVelDriveILDelay(1,200)" -ecmcConfigOrDie "Cfg.SetAxisMonMaxVelTrajILDelay(1,100)" -ecmcConfigOrDie "Cfg.SetAxisMonHomeSwitchPolarity(1,0)" -ecmcConfigOrDie "Cfg.SetAxisHomeLatchCountOffset(1,0.0)" -ecmcConfigOrDie "Cfg.SetAxisHomePosition(1,0.0)" -ecmcConfigOrDie "Cfg.SetAxisHomePostMoveEnable(1, 0)" -ecmcConfigOrDie "Cfg.SetAxisHomePostMoveTargetPosition(1, 0)" - ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_mr.cmd",1) - iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_mr.cmd -#============================================================================== -# ecmc_axis_mr.cmd -ecmcMotorRecordCreateAxis(MCU1, "1", "6", ) -ecmcEpicsEnvSetCalc("ECMC_TEMP_SREV","if(abs(2000)>0){RESULT:=abs(2000);} else {RESULT:=1.0};","%d") -ecmcEpicsEnvSetCalc("ECMC_TEMP_UREV","if(abs(-60)>0){RESULT:=abs(-60);} else {RESULT:=1.0};","%lf") -ecmcFileExist(ecmcMotorRecord.template,1,1) - dbLoadRecords(ecmcMotorRecord.template, "PREFIX=IOC_TEST:, MOTOR_NAME=Axis1, MOTOR_PORT=MCU1, AXIS_NO=1, DESC=MCU1021 Lower Axis (1), EGU=mm, PREC=3, VELO=10.0, JVEL=5, JAR=0.0, ACCS=10, RDBD=0.1, DLLM=-20, DHLM=130, HOMEPROC=3,SREV=2000,UREV=60.000000, ") -epicsEnvSet("ECMC_AXISFIELDINIT", "") -ecmcFileExist(ecmcMotorRecordhome.template,1,1) -dbLoadRecords(ecmcMotorRecordhome.template, "PREFIX=IOC_TEST:, MOTOR_NAME=Axis1, MOTOR_PORT=MCU1, AXIS_NO=1,HOMEPROC=3, HOMEPOS=0.0, HVELTO=5, HVELFRM=4, HOMEACC=21, HOMEDEC=100") -epicsEnvUnset(ECMC_TEMP_SREV) -epicsEnvUnset(ECMC_TEMP_UREV) -epicsEnvUnset(ECMC_BLOCK_ACCL) -epicsEnvUnset(ECMC_BLOCK_ACCS) -ecmcFileExist("ecmcAxis.db",1,1) -dbLoadRecords("ecmcAxis.db","P=IOC_TEST:,AXIS_NAME=Axis1,AXIS_NO=1,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,T_SMP_MS=10,TSE=-2") -ecmcFileExist("ecmcAxisType.db",1,1) -dbLoadRecords("ecmcAxisType.db","P=IOC_TEST:,AXIS_NAME=Axis1,AXIS_TYPE=1") -ecmcFileExist(/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_unset.cmd,1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_unset.cmd -#============================================================================== -# ecmc_axis_unset.cmd -epicsEnvUnset(ECMC_AXISCONFIG) -epicsEnvUnset(ECMC_AXISFIELDINIT) -epicsEnvUnset(ECMC_PREC) -epicsEnvUnset(ECMC_EGU) -epicsEnvUnset(ECMC_DESC) -epicsEnvUnset(ECMC_R) -epicsEnvUnset(ECMC_MOTOR_NAME) -epicsEnvUnset(ECMC_EC_AXIS_HEALTH) -epicsEnvUnset(ECMC_MOD_RANGE) -epicsEnvUnset(ECMC_MOD_TYPE) -epicsEnvUnset(ECMC_EMERG_DECEL) -epicsEnvUnset(ECMC_VELO) -epicsEnvUnset(ECMC_ACCL) -epicsEnvUnset(ECMC_ACCS_EGU_PmacLib: macro ECMC_EXE_CMD is undefined (expanding string ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "'${ECMC_MODE=FULL}'='DAQ'","ecmcExit Error: ECMC started in DAQ mode. Motion not supported..","#-")${ECMC_EXE_CMD}) -macLib: macro ECMC_EXE_CMD is undefined (expanding string ${ECMC_EXE_CMD}) -ER_S2) -epicsEnvUnset(ECMC_HOME_VEL_TO) -epicsEnvUnset(ECMC_HOME_VEL_FRM) -epicsEnvUnset(ECMC_CNTRL_KP) -epicsEnvUnset(ECMC_CNTRL_KI) -epicsEnvUnset(ECMC_CNTRL_KD) -epicsEnvUnset(ECMC_CNTRL_KFF) -epicsEnvUnset(ECMC_EC_ENC_ACTPOS) -epicsEnvUnset(ECMC_EC_ENC_LATCHPOS) -epicsEnvUnset(ECMC_EC_ENC_LATCH_CONTROL) -epicsEnvUnset(ECMC_EC_ENC_LATCH_STATUS) -epicsEnvUnset(ECMC_HOME_LATCH_COUNT_OFFSET) -epicsEnvUnset(ECMC_ENC_SCALE_DENOM) -epicsEnvUnset(ECMC_ENC_SCALE_NUM) -epicsEnvUnset(ECMC_ENC_TYPE) -epicsEnvUnset(ECMC_ENC_BITS) -epicsEnvUnset(ECMC_ENC_ABS_BITS) -epicsEnvUnset(ECMC_ENC_ABS_OFFSET) -epicsEnvUnset(ECMC_ENC_VEL_FILTER_SIZE) -epicsEnvUnset(ECMC_ENC_POS_FILTER_SIZE) -epicsEnvUnset(ECMC_ENC_POS_FILTER_ENABLE) -epicsEnvUnset(ECMC_EC_ENC_RESET) -epicsEnvUnset(ECMC_EC_ENC_ALARM_0) -epicsEnvUnset(ECMC_EC_ENC_ALARM_1) -epicsEnvUnset(ECMC_EC_ENC_ALARM_2) -epicsEnvUnset(ECMC_EC_ENC_WARNING) -epicsEnvUnset(ECMC_EC_DRV_CONTROL) -epicsEnvUnset(ECMC_EC_DRV_STATUS) -epicsEnvUnset(ECMC_EC_DRV_VELOCITY) -epicsEnvUnset(ECMC_EC_DRV_BRAKE) -epicsEnvUnset(ECMC_EC_DRV_REDUCE_TORQUE) -epicsEnvUnset(ECMC_EC_DRV_RESET) -epicsEnvUnset(ECMC_EC_DRV_ALARM_0) -epicsEnvUnset(ECMC_EC_DRV_ALARM_1) -epicsEnvUnset(ECMC_EC_DRV_ALARM_2) -epicsEnvUnset(ECMC_EC_DRV_WARNING) -epicsEnvUnset(ECMC_DRV_SCALE_DENOM) -epicsEnvUnset(ECMC_DRV_SCALE_NUM) -epicsEnvUnset(ECMC_DRV_BRAKE_OPEN_DLY_TIME) -epicsEnvUnset(ECMC_DRV_BRAKE_CLOSE_AHEAD_TIME) -epicsEnvUnset(ECMC_SOFT_LOW_LIM) -epicsEnvUnset(ECMC_DXLM_ENABLE) -epicsEnvUnset(ECMC_SOFT_HIGH_LIM) -epicsEnvUnset(ECMC_DXLM_ENABLE) -epicsEnvUnset(ECMC_EC_MON_LOWLIM) -epicsEnvUnset(ECMC_EC_MON_HIGHLIM) -epicsEnvUnset(ECMC_EC_MON_HOME_SWITCH) -epicsEnvUnset(ECMC_EC_MON_EXT_INTERLOCK) -epicsEnvUnset(ECMC_MON_AT_TARGET_TOL) -epicsEnvUnset(ECMC_MON_AT_TARGET_TIME) -epicsEnvUnset(ECMC_MON_AT_TARGET_ENA) -epicsEnvUnset(ECMC_MON_LAG_MON_TOL) -epicsEnvUnset(ECMC_MON_LAG_MON_TIME) -epicsEnvUnset(ECMC_MON_LAG_MON_ENA) -epicsEnvUnset(ECMC_MON_VELO_MAX) -epicsEnvUnset(ECMC_MON_VELO_MAX_ENA) -epicsEnvUnset(ECMC_MON_VELO_MAX_DRV_TIME) -epicsEnvUnset(ECMC_MON_VELO_MAX_TRAJ_TIME) -epicsEnvUnset(ECMC_JOG_VEL) -epicsEnvUnset(ECMC_JAR) -epicsEnvUnset(ECMC_HOME_PROC) -epicsEnvUnset(ECMC_HOME_POS) -epicsEnvUnset(ECMC_HOME_ACC) -epicsEnvUnset(ECMC_HOME_DEC) -epicsEnvUnset(ECMC_DRV_TYPE) -epicsEnvUnset(ECMC_VELO) -epicsEnvUnset(ECMC_SOFT_LOW_LIM) -epicsEnvUnset(ECMC_SOFT_HIGH_LIM) -epicsEnvUnset(ECMC_HOME_POS_MOVE_ENA) -epicsEnvUnset(ECMC_HOME_POS_MOVE_TARG_POS) -epicsEnvUnset(ECMC_TRAJ_TYPE) -epicsEnvUnset(ECMC_JERK) -epicsEnvSet("ECMC_PREFIX" "IOC_TEST:") -# Set external setpoints -iocshLoad (/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applyAxisSynchronization.cmd, CONFIG=./cfg/linear_1.sax) -#============================================================================== -# applyAxisSynchronization.cmd -epicsEnvUnset(ECMC_EXE_CMD) -iocshLoad ./cfg/linear_1.sax -############# Encoder -epicsEnvSet("ECMC_ENC_SOURCE", "0") # 0 Internal (from hardware), 1 from PLC -epicsEnvSet("ECMC_ENC_VELO_FILT_ENABLE", "1") # Enable velocity filter -epicsEnvSet("ECMC_ENC_VELO_FILT_SIZE", "20") # Encoder velocity Low pass filter size -############# Trajectory -epicsEnvSet("ECMC_TRAJ_SOURCE", "1") # 0 Internal (from hardware), 1 from PLC -epicsEnvSet("ECMC_TRAJ_VELO_FILT_ENABLE", "1") # Enable velocity filter -epicsEnvSet("ECMC_TRAJ_VELO_FILT_SIZE", "20") # Trajectory velocity Low pass filter size -############# Commands -epicsEnvSet("ECMC_CMD_FRM_OTHER_PLC_ENABLE", "1") # Allow commands from PLC -epicsEnvSet("ECMC_CMD_AXIS_PLC_ENABLE", "0") # Enable Axis PLC -# Each line below is appended to one single expression/source. -# Executed in sync with axis (before) -epicsEnvSet("ECMC_AXIS_EXPR_LINE_1", "var a:=1|") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_2", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_3", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_4", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_5", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_6", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_7", "") -2022/01/21 12:33:05.648 OK -2022/01/21 12:33:05.648 OK -2022/01/21 12:33:05.648 OK -2022/01/21 12:33:05.648 OK -2022/01/21 12:33:05.648 OK -2022/01/21 12:33:05.648 OK -2022/01/21 12:33:05.648 OK -2022/01/21 12:33:05.649 OK -2022/01/21 12:33:05.649 OK -2022/01/21 12:33:05.649 OK -2022/01/21 12:33:05.649 OK -2022/01/21 12:33:05.649 OK -2022/01/21 12:33:05.649 OK -2022/01/21 12:33:05.649 OK -2022/01/21 12:33:05.649 OK -2022/01/21 12:33:05.649 OK -2022/01/21 12:33:05.649 OK -2022/01/21 12:33:05.649 OK -epicsEnvSet("ECMC_AXIS_EXPR_LINE_8", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_9", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_10", "") -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_sync.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_sync.cmd -#============================================================================== -# ecmc_axis_sync.cmd -ecmcConfigOrDie "Cfg.SetAxisAllowCommandsFromPLC(1,1)" -ecmcConfigOrDie "Cfg.SetAxisPLCEnable(1,0)" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(1)=var a:=1|" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(1)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(1)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(1)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(1)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(1)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(1)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(1)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(1)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(1)=" -ecmcConfigOrDie "Cfg.SetAxisPLCEncVelFilterSize(1,20)" -ecmcConfigOrDie "Cfg.SetAxisPLCEncVelFilterEnable(1,1)" -ecmcConfigOrDie "Cfg.SetAxisEncSourceType(1,0)" -ecmcConfigOrDie "Cfg.SetAxisPLCTrajVelFilterSize(1,20)" -ecmcConfigOrDie "Cfg.SetAxisPLCTrajVelFilterEnable(1,1)" -ecmcConfigOrDie "Cfg.SetAxisTrajSourceType(1,1)" -ecmcFileExist(/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_sync_unset.cmd,1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_sync_unset.cmd -#============================================================================== -# ecmc_axis_sync_unset.cmd -epicsEnvUnset(ECMC_CMD_FRM_OTHER_PLC_ENABLE) -epicsEnvUnset(ECMC_CMD_AXIS_PLC_ENABLE) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_1) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_2) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_3) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_4) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_5) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_6) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_7) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_8) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_9) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_10) -epicsEnvUnset(ECMC_ENC_VELO_FILT_SIZE) -epicsEnvUnset(ECMC_ENC_VELO_FILT_ENABLE) -epicsEnvUnset(ECMC_ENC_SOURCE) -epicsEnvUnset(ECMC_TRAJ_VELO_FILT_SIZE) -epicsEnvUnset(ECMC_TRAJ_VELO_FILT_ENABLE) -epicsEnvUnset(ECMC_TRAJ_SOURCE) -############################################################################## -## AXIS 2 -# -#epicsEnvSet("DEV", "$(IOC)") -iocshLoad (/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/configureAxis.cmd, CONFIG=./cfg/linear_2.ax) -#============================================================================== -# configureAxis.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "'FULL'='DAQ'","ecmcExit Error: ECMC started in DAQ mode. Motion not supported..","#-") -epicsEnvUnset(ECMC_EXE_CMD) -epicsEnvSet("ECMC_PREFIX" "IOC_TEST:") -ecmcFileExist("./cfg/linear_2.ax",1) -iocshLoad ./cfg/linear_2.ax "" -#General -epicsEnvSet("ECMC_MOTOR_NAME", "Axis2") -epicsEnvSet("ECMC_R", "Axis2-") -epicsEnvSet("ECMC_AXIS_NO", "2") -epicsEnvSet("ECMC_DESC", "MCU1021 Upper Axis (2)") -epicsEnvSet("ECMC_EGU", "mm") # Motor Record Unit -epicsEnvSet("ECMC_PREC", "3") # Motor Record Precision -epicsEnvSet("ECMC_AXISCONFIG", "") # Extra parameters to driver -epicsEnvSet("ECMC_EC_AXIS_HEALTH", "") # Entry for axis health output (example: ec0.s1.binaryOutput01.0) -epicsEnvSet("ECMC_MOD_RANGE" , "0") # Modulo range (traj setpoints and encoder values will be in range 0..ECMC_MOD_RANGE) -epicsEnvSet("ECMC_MOD_TYPE", "0") # For positioning and MOD_RANGE>0: 0 = Normal, 1 = Always Fwd, 2 = Always Bwd, 3 = Closest Distance -#Encoder -epicsEnvSet("ECMC_ENC_SCALE_NUM" "60") -epicsEnvSet("ECMC_ENC_SCALE_DENOM" "2000") -epicsEnvSet("ECMC_ENC_TYPE" "0") # Type: 0=Incremental, 1=Absolute -epicsEnvSet("ECMC_ENC_BITS" "16") # Total bit count of encoder raw data -epicsEnvSet("ECMC_ENC_ABS_BITS", "0") # Absolute bit count (for absolute encoders) always least significant part of ECMC_ENC_BITS -epicsEnvSet("ECMC_ENC_ABS_OFFSET" "0") # Encoder offset in eng units (for absolute encoders) -epicsEnvSet("ECMC_EC_ENC_ACTPOS", "ec0.s4.positionActual01") # Ethercat entry for actual position input (encoder) -epicsEnvSet("ECMC_EC_ENC_RESET", "") # Reset (if no encoder reset bit then leave empty) -epicsEnvSet("ECMC_EC_ENC_ALARM_0", "") # Error 0 (if no encoder error bit then leave empty) -epicsEnvSet("ECMC_EC_ENC_ALARM_1", "") # Error 1 (if no encoder error bit then leave empty) -epicsEnvSet("ECMC_EC_ENC_ALARM_2", "") # Error 2 (if no encoder error bit then leave empty) -epicsEnvSet("ECMC_EC_ENC_WARNING", "") # Warning (if no encoder warning bit then leave empty) -#Drive -epicsEnvSet("ECMC_DRV_TYPE" "0") # Stepper: 0. DS402: 1 (DS402 = servos and advanced stepper drives) -epicsEnvSet("ECMC_DRV_SCALE_NUM" "-600.0") # Fastest speed in engineering units -epicsEnvSet("ECMC_DRV_SCALE_DENOM" "32768.0") # I/O range for ECMC_EC_ALIAS_DRV_VELO_SET -epicsEnvSet("ECMC_EC_DRV_CONTROL", "ec0.s9.driveControl01.0") # Ethercat entry for control word or bit output -epicsEnvSet("ECMC_EC_DRV_STATUS", "ec0.s9.driveStatus01.1") # Ethercat entry for status word or bit input -epicsEnvSet("ECMC_EC_DRV_VELOCITY", "ec0.s9.velocitySetpoint01") # Ethercat entry for velocity setpoint output -epicsEnvSet("ECMC_EC_DRV_REDUCE_TORQUE", "ec0.s9.driveControl01.2") # Ethercat entry for reduce torque output -epicsEnvSet("ECMC_EC_DRV_BRAKE", "") # Ethercat entry for brake output -epicsEnvSet("ECMC_DRV_BRAKE_OPEN_DLY_TIME", "0") # Brake timing parameter in cycles (default 1kHz) -epicsEnvSet("ECMC_DRV_BRAKE_CLOSE_AHEAD_TIME", "0") # Brake timing parameter in cycles (default 1kHz) -epicsEnvSet("ECMC_EC_DRV_RESET", "ec0.s9.driveControl01.1") # Reset -epicsEnvSet("ECMC_EC_DRV_ALARM_0", "ec0.s9.driveStatus01.3") # Error -epicsEnvSet("ECMC_EC_DRV_ALARM_1", "ec0.s9.driveStatus01.7") # Stall -epicsEnvSet("ECMC_EC_DRV_ALARM_2", "ec0.s9.driveStatus01.14") # Sync error -epicsEnvSet("ECMC_EC_DRV_WARNING", "ec0.s9.driveStatus01.2") # Warning -#Trajectory -epicsEnvSet("ECMC_VELO", "10.0") -epicsEnvSet("ECMC_JOG_VEL", "5") -epicsEnvSet("ECMC_JAR", "0.0") # JAR defaults to VELO/ACCL -epicsEnvSet("ECMC_ACCS_EGU_PER_S2", "10") -epicsEnvSet("ECMC_EMERG_DECEL", "100") # Emergency deceleration -#Homing -epicsEnvSet("ECMC_HOME_PROC", "3") -epicsEnvSet("ECMC_HOME_POS", "0.0") -epicsEnvSet("ECMC_HOME_VEL_TO", "5") -epicsEnvSet("ECMC_HOME_VEL_FRM", "4") -epicsEnvSet("ECMC_HOME_ACC", "21") -epicsEnvSet("ECMC_HOME_DEC", "100") -epicsEnvSet("ECMC_HOME_POS_MOVE_ENA", "0") # Enable move to position after successfull homing -epicsEnvSet("ECMC_HOME_POS_MOVE_TARG_POS","0") # Target position to go to after successfull homing -#Controller -epicsEnvSet("ECMC_CNTRL_KP", "15.0") -epicsEnvSet("ECMC_CNTRL_KI", "0.02") -epicsEnvSet("ECMC_CNTRL_KD", "0.0") -epicsEnvSet("ECMC_CNTRL_KFF", "1.0") -#Monitoring -# Switches -epicsEnvSet("ECMC_EC_MON_LOWLIM", "ec0.s1.binaryInput06.0") # Ethercat entry for low limit switch input -epicsEnvSet("ECMC_EC_MON_HIGHLIM", "ec0.s1.binaryInput05.0") # Ethercat entry for high limit switch inpuit -epicsEnvSet("ECMC_EC_MON_HOME_SWITCH", "ec0.s1.binaryInput07.0") # Ethercat entry for home switch input -epicsEnvSet("ECMC_EC_MON_EXT_INTERLOCK", "ec0.s0.ONE.0") # Ethercat entry for external interlock input -# Softlimits (disable with 0,0) -epicsEnvSet("ECMC_SOFT_LOW_LIM", "-130") -epicsEnvSet("ECMC_SOFT_HIGH_LIM", "20") -epicsEnvSet("ECMC_DXLM_ENABLE", "1") -# Position lag -epicsEnvSet("ECMC_MON_LAG_MON_TOL", "1.0") -epicsEnvSet("ECMC_MON_LAG_MON_TIME", "10") -epicsEnvSet("ECMC_MON_LAG_MON_ENA", "1") -# At target -epicsEnvSet("ECMC_MON_AT_TARGET_TOL", "0.1") -epicsEnvSet("ECMC_MON_AT_TARGET_TIME", "100") -epicsEnvSet("ECMC_MON_AT_TARGET_ENA", "1") -# Velocity -epicsEnvSet("ECMC_MON_VELO_MAX", "100.0") -epicsEnvSet("ECMC_MON_VELO_MAX_TRAJ_TIME","100") -epicsEnvSet("ECMC_MON_VELO_MAX_DRV_TIME", "200") -epicsEnvSet("ECMC_MON_VELO_MAX_ENA", "1") -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addAxis.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/addAxis.cmd -#============================================================================== -# addAxis.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "'FULL'='DAQ'","ecmcExit Error: ECMC started in DAQ mode. Motion not supported..","#-") -epicsEnvUnset(ECMC_EXE_CMD) -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis-records.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis-records.cmd -#============================================================================== -# ecmc_axis-records.cmd -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis.cmd -#============================================================================== -# ecmc_axis.cmd -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd "EXPR_STR='abs(60)<>0',SUCCESS_STR='ECMC_ENC_SCALE_NUM value OK == 60...',ERROR_STR='ECMC_ENC_SCALE_NUM == 0...'" -#============================================================================== -# verifyOrDie.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"abs(60)<>0","# ECMC_ENC_SCALE_NUM value OK == 60...", "ecmcExit Error: ECMC_ENC_SCALE_NUM == 0...") -# ECMC_ENC_SCALE_NUM value OK == 60... -epicsEnvUnset(ECMC_EXE_CMD) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd "EXPR_STR='abs(2000)<>0',SUCCESS_STR='ECMC_ENC_SCALE_DENOM value OK == 2000...',ERROR_STR='ECMC_ENC_SCALE_DENOM == 0...'" -#============================================================================== -# verifyOrDie.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"abs(2000)<>0","# ECMC_ENC_SCALE_DENOM value OK == 2000...", "ecmcExit Error: ECMC_ENC_SCALE_DENOM == 0...") -# ECMC_ENC_SCALE_DENOM value OK == 2000... -epicsEnvUnset(ECMC_EXE_CMD) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd "EXPR_STR='abs(-600.0)<>0',SUCCESS_STR='ECMC_DRV_SCALE_NUM value OK == -600.0...',ERROR_STR='ECMC_DRV_SCALE_NUM == 0...'" -#============================================================================== -# verifyOrDie.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"abs(-600.0)<>0","# ECMC_DRV_SCALE_NUM value OK == -600.0...", "ecmcExit Error: ECMC_DRV_SCALE_NUM == 0...") -# ECMC_DRV_SCALE_NUM value OK == -600.0... -epicsEnvUnset(ECMC_EXE_CMD) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd "EXPR_STR='abs(32768.0)<>0',SUCCESS_STR='ECMC_DRV_SCALE_DENOM value OK == 32768.0...',ERROR_STR='ECMC_DRV_SCALE_DENOM == 0...'" -#============================================================================== -# verifyOrDie.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"abs(32768.0)<>0","# ECMC_DRV_SCALE_DENOM value OK == 32768.0...", "ecmcExit Error: ECMC_DRV_SCALE_DEN2022/01/21 12:33:05.661 OK -2022/01/21 12:33:05.661 OK -2022/01/21 12:33:05.661 OK -2022/01/21 12:33:05.662 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.665 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.666 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.667 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -OM == 0...") -# ECMC_DRV_SCALE_DENOM value OK == 32768.0... -epicsEnvUnset(ECMC_EXE_CMD) -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/issueWarning.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/issueWarning.cmd "EXPR_STR='-1>0',WARNING_STR='WARNING: ECMC_MRES setting is deprecated and will not be used. (MRES will be calulated instead: ECMC_ENC_SCALE_NUM/ECMC_ENC_SCALE_DENOM).. '" -#============================================================================== -# issueWarning.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"-1>0","", "#-") -epicsEnvUnset(ECMC_EXE_CMD) -ecmcConfigOrDie "Cfg.CreateAxis(2,1,0,0)" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.health")" -ecmcConfigOrDie "Cfg.SetAxisModRange(2, 0)" -ecmcConfigOrDie "Cfg.SetAxisModType(2, 0)" -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/issueWarning.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/issueWarning.cmd "EXPR_STR='-1>0',WARNING_STR='WARNING: ECMC_ACCL setting is deprecated. Please use ECMC_ACCS_EGU_PER_S2 instead..'" -#============================================================================== -# issueWarning.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"-1>0","", "#-") -epicsEnvUnset(ECMC_EXE_CMD) -ecmcEpicsEnvSetCalcTernary(ECMC_BLOCK_ACCL,"'EMPTY'!='EMPTY'","", "#-") -ecmcEpicsEnvSetCalcTernary(ECMC_BLOCK_ACCS,"'EMPTY'=='EMPTY'","", "#-") - ecmcConfigOrDie "Cfg.SetAxisAcc(2,10)" - ecmcConfigOrDie "Cfg.SetAxisDec(2,10)" -ecmcConfigOrDie "Cfg.SetAxisJerk(2,0)" -ecmcConfigOrDie "Cfg.SetAxisVel(2,10.0)" -ecmcConfigOrDie "Cfg.SetAxisEmergDeceleration(2,100)" -ecmcConfigOrDie "Cfg.SetAxisHomeVelTwordsCam(2,5)" -ecmcConfigOrDie "Cfg.SetAxisHomeVelOffCam(2,4)" -ecmcConfigOrDie "Cfg.SetAxisCntrlKp(2,15.0)" -ecmcConfigOrDie "Cfg.SetAxisCntrlKi(2,0.02)" -ecmcConfigOrDie "Cfg.SetAxisCntrlKd(2,0.0)" -ecmcConfigOrDie "Cfg.SetAxisCntrlKff(2,1.0)" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s4.positionActual01,"ax2.enc.actpos")" -ecmcConfigOrDie "Cfg.SetAxisEncScaleDenom(2,2000)" -ecmcConfigOrDie "Cfg.SetAxisEncScaleNum(2,60)" -ecmcConfigOrDie "Cfg.SetAxisEncType(2,0)" -ecmcConfigOrDie "Cfg.SetAxisEncBits(2,16)" -ecmcConfigOrDie "Cfg.SetAxisEncAbsBits(2,0)" -ecmcConfigOrDie "Cfg.SetAxisEncOffset(2,0)" -ecmcConfigOrDie "Cfg.SetAxisEncVelFilterSize(2,100)" -ecmcConfigOrDie "Cfg.SetAxisEncPosFilterSize(2,1)" -ecmcConfigOrDie "Cfg.SetAxisEncPosFilterEnable(2,0)" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.enc.reset")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.enc.alarm0")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.enc.alarm1")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.enc.alarm2")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.enc.warning")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.enc.latchpos")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.enc.latchcontrol")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.enc.latchstatus")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s9.driveControl01.0,"ax2.drv.control")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s9.driveStatus01.1,"ax2.drv.status")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s9.velocitySetpoint01,"ax2.drv.velocity")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.drv.position")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax2.drv.brake")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s9.driveControl01.2,"ax2.drv.reducetorque")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s9.driveControl01.1,"ax2.drv.reset")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s9.driveStatus01.3,"ax2.drv.alarm0")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s9.driveStatus01.7,"ax2.drv.alarm1")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s9.driveStatus01.14,"ax2.drv.alarm2")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s9.driveStatus01.2,"ax2.drv.warning")" -ecmcConfigOrDie "Cfg.SetAxisDrvScaleDenom(2,32768.0)" -ecmcConfigOrDie "Cfg.SetAxisDrvScaleNum(2,-600.0)" -ecmcConfigOrDie "Cfg.SetAxisDrvBrakeOpenDelayTime(2,0)" -ecmcConfigOrDie "Cfg.SetAxisDrvBrakeCloseAheadTime(2,0)" -ecmcConfigOrDie "Cfg.SetAxisSof2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.668 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.669 OK -2022/01/21 12:33:05.670 OK -2022/01/21 12:33:05.670 ecmcMotorRecord:: setIntegerParam(2 motorPowerAutoOnOff_)=2 -2022/01/21 12:33:05.670 ecmcMotorRecord:: setDoubleParam(2 motorPowerOnDelay_)=6 -2022/01/21 12:33:05.670 ecmcMotorRecord:: setDoubleParam(2 motorPowerOffDelay_=-1 -2022/01/21 12:33:05.670 ecmcMotorRecord:: udateMotorLimitsRO(2) enabledHighAndLow=1 valid=1 fValueHigh=20 fValueLow=-130 -2022/01/21 12:33:05.670 ecmcMotorRecord:: connected(2) -2022/01/21 12:33:05.670 ecmcMotorRecord:: initialPoll(2) status=0 -tLimitPosBwd(2,-130)" -ecmcConfigOrDie "Cfg.SetAxisEnableSoftLimitBwd(2,1)" -ecmcConfigOrDie "Cfg.SetAxisSoftLimitPosFwd(2,20)" -ecmcConfigOrDie "Cfg.SetAxisEnableSoftLimitFwd(2,1)" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s1.binaryInput06.0,"ax2.mon.lowlim")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s1.binaryInput05.0,"ax2.mon.highlim")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s1.binaryInput07.0,"ax2.mon.homesensor")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s0.ONE.0,"ax2.mon.extinterlock")" -ecmcConfigOrDie "Cfg.SetAxisMonAtTargetTol(2,0.1)" -ecmcConfigOrDie "Cfg.SetAxisMonAtTargetTime(2,100)" -ecmcConfigOrDie "Cfg.SetAxisMonEnableAtTargetMon(2,1)" -ecmcConfigOrDie "Cfg.SetAxisMonPosLagTol(2,1.0)" -ecmcConfigOrDie "Cfg.SetAxisMonPosLagTime(2,10)" -ecmcConfigOrDie "Cfg.SetAxisMonEnableLagMon(2,1)" -ecmcConfigOrDie "Cfg.SetAxisMonMaxVel(2,100.0)" -ecmcConfigOrDie "Cfg.SetAxisMonEnableMaxVel(2,1)" -ecmcConfigOrDie "Cfg.SetAxisMonMaxVelDriveILDelay(2,200)" -ecmcConfigOrDie "Cfg.SetAxisMonMaxVelTrajILDelay(2,100)" -ecmcConfigOrDie "Cfg.SetAxisMonHomeSwitchPolarity(2,0)" -ecmcConfigOrDie "Cfg.SetAxisHomeLatchCountOffset(2,0.0)" -ecmcConfigOrDie "Cfg.SetAxisHomePosition(2,0.0)" -ecmcConfigOrDie "Cfg.SetAxisHomePostMoveEnable(2, 0)" -ecmcConfigOrDie "Cfg.SetAxisHomePostMoveTargetPosition(2, 0)" - ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_mr.cmd",1) - iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_mr.cmd -#============================================================================== -# ecmc_axis_mr.cmd -ecmcMotorRecordCreateAxis(MCU1, "2", "6", ) -ecmcEpicsEnvSetCalc("ECMC_TEMP_SREV","if(abs(2000)>0){RESULT:=abs(2000);} else {RESULT:=1.0};","%d") -ecmcEpicsEnvSetCalc("ECMC_TEMP_UREV","if(abs(60)>0){RESULT:=abs(60);} else {RESULT:=1.0};","%lf") -ecmcFileExist(ecmcMotorRecord.template,1,1) - dbLoadRecords(ecmcMotorRecord.template, "PREFIX=IOC_TEST:, MOTOR_NAME=Axis2, MOTOR_PORT=MCU1, AXIS_NO=2, DESC=MCU1021 Upper Axis (2), EGU=mm, PREC=3, VELO=10.0, JVEL=5, JAR=0.0, ACCS=10, RDBD=0.1, DLLM=-130, DHLM=20, HOMEPROC=3,SREV=2000,UREV=60.000000, ") -epicsEnvSet("ECMC_AXISFIELDINIT", "") -ecmcFileExist(ecmcMotorRecordhome.template,1,1) -dbLoadRecords(ecmcMotorRecordhome.template, "PREFIX=IOC_TEST:, MOTOR_NAME=Axis2, MOTOR_PORT=MCU1, AXIS_NO=2,HOMEPROC=3, HOMEPOS=0.0, HVELTO=5, HVELFRM=4, HOMEACC=21, HOMEDEC=100") -epicsEnvUnset(ECMC_TEMP_SREV) -epicsEnvUnset(ECMC_TEMP_UREV) -epicsEnvUnset(ECMC_BLOCK_ACCL) -epicsEnvUnset(ECMC_BLOCK_ACCS) -ecmcFileExist("ecmcAxis.db",1,1) -dbLoadRecords("ecmcAxis.db","P=IOC_TEST:,AXIS_NAME=Axis2,AXIS_NO=2,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,T_SMP_MS=10,TSE=-2") -ecmcFileExist("ecmcAxisType.db",1,1) -dbLoadRecords("ecmcAxisType.db","P=IOC_TEST:,AXIS_NAME=Axis2,AXIS_TYPE=1") -ecmcFileExist(/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_unset.cmd,1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_unset.cmd -#============================================================================== -# ecmc_axis_unset.cmd -epicsEnvUnset(ECMC_AXISCONFIG) -epicsEnvUnset(ECMC_AXISFIELDINIT) -epicsEnvUnset(ECMC_PREC) -epicsEnvUnset(ECMC_EGU) -epicsEnvUnset(ECMC_DESC) -epicsEnvUnset(ECMC_R) -epicsEnvUnset(ECMC_MOTOR_NAME) -epicsEnvUnset(ECMC_EC_AXIS_HEALTH) -epicsEnvUnset(ECMC_MOD_RANGE) -epicsEnvUnset(ECMC_MOD_TYPE) -epicsEnvUnset(ECMC_EMERG_DECEL) -epicsEnvUnset(ECMC_VELO) -epicsEnvUnset(ECMC_ACCL) -epicsEnvUnset(ECMC_ACCS_EGU_PER_S2) -epicsEnvUnset(ECMC_HOME_VEL_TO) -epicsEnvUnset(ECMC_HOME_VEL_FRM) -epicsEnvUnset(ECMC_CNTRL_KP) -epicsEnvUnset(ECMC_CNTRL_KI) -epicsEnvUnset(ECMC_CNTRL_KD) -epicsEnvUnset(ECMC_CNTRL_KFF) -epicsEnvUnset(ECMC_EC_ENC_ACTPOS) -epicsEnvUnset(ECMC_EC_ENC_LATCHPOS) -epicsEnvUnset(ECMC_EC_ENC_LATCH_CONTROL) -epicsEnvUnset(ECMC_EC_ENC_LATCH_STATUS) -epicsEnvUnset(ECMC_HOME_LATCH_COUNT_OFFSET) -epicsEnvUnset(ECMC_ENC_SCALE_DENOM) -epicsEnvUnset(ECMC_ENC_SCALE_NUM) -epicsEnvUnset(ECMC_ENC_TYPE) -epicsEnvUnset(ECMC_ENC_BITS) -epicsEnvUnset(ECMC_ENC_ABS_BITS) -epicsEnvUnset(ECMC_ENC_ABS_OFFSET) -epicsEnvUnset(ECMC_ENC_VmacLib: macro ECMC_EXE_CMD is undefined (expanding string ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, "'${ECMC_MODE=FULL}'='DAQ'","ecmcExit Error: ECMC started in DAQ mode. Motion not supported..","#-")${ECMC_EXE_CMD}) -macLib: macro ECMC_EXE_CMD is undefined (expanding string ${ECMC_EXE_CMD}) -2022/01/21 12:33:05.681 OK -2022/01/21 12:33:05.681 OK -2022/01/21 12:33:05.681 OK -EL_FILTER_SIZE) -epicsEnvUnset(ECMC_ENC_POS_FILTER_SIZE) -epicsEnvUnset(ECMC_ENC_POS_FILTER_ENABLE) -epicsEnvUnset(ECMC_EC_ENC_RESET) -epicsEnvUnset(ECMC_EC_ENC_ALARM_0) -epicsEnvUnset(ECMC_EC_ENC_ALARM_1) -epicsEnvUnset(ECMC_EC_ENC_ALARM_2) -epicsEnvUnset(ECMC_EC_ENC_WARNING) -epicsEnvUnset(ECMC_EC_DRV_CONTROL) -epicsEnvUnset(ECMC_EC_DRV_STATUS) -epicsEnvUnset(ECMC_EC_DRV_VELOCITY) -epicsEnvUnset(ECMC_EC_DRV_BRAKE) -epicsEnvUnset(ECMC_EC_DRV_REDUCE_TORQUE) -epicsEnvUnset(ECMC_EC_DRV_RESET) -epicsEnvUnset(ECMC_EC_DRV_ALARM_0) -epicsEnvUnset(ECMC_EC_DRV_ALARM_1) -epicsEnvUnset(ECMC_EC_DRV_ALARM_2) -epicsEnvUnset(ECMC_EC_DRV_WARNING) -epicsEnvUnset(ECMC_DRV_SCALE_DENOM) -epicsEnvUnset(ECMC_DRV_SCALE_NUM) -epicsEnvUnset(ECMC_DRV_BRAKE_OPEN_DLY_TIME) -epicsEnvUnset(ECMC_DRV_BRAKE_CLOSE_AHEAD_TIME) -epicsEnvUnset(ECMC_SOFT_LOW_LIM) -epicsEnvUnset(ECMC_DXLM_ENABLE) -epicsEnvUnset(ECMC_SOFT_HIGH_LIM) -epicsEnvUnset(ECMC_DXLM_ENABLE) -epicsEnvUnset(ECMC_EC_MON_LOWLIM) -epicsEnvUnset(ECMC_EC_MON_HIGHLIM) -epicsEnvUnset(ECMC_EC_MON_HOME_SWITCH) -epicsEnvUnset(ECMC_EC_MON_EXT_INTERLOCK) -epicsEnvUnset(ECMC_MON_AT_TARGET_TOL) -epicsEnvUnset(ECMC_MON_AT_TARGET_TIME) -epicsEnvUnset(ECMC_MON_AT_TARGET_ENA) -epicsEnvUnset(ECMC_MON_LAG_MON_TOL) -epicsEnvUnset(ECMC_MON_LAG_MON_TIME) -epicsEnvUnset(ECMC_MON_LAG_MON_ENA) -epicsEnvUnset(ECMC_MON_VELO_MAX) -epicsEnvUnset(ECMC_MON_VELO_MAX_ENA) -epicsEnvUnset(ECMC_MON_VELO_MAX_DRV_TIME) -epicsEnvUnset(ECMC_MON_VELO_MAX_TRAJ_TIME) -epicsEnvUnset(ECMC_JOG_VEL) -epicsEnvUnset(ECMC_JAR) -epicsEnvUnset(ECMC_HOME_PROC) -epicsEnvUnset(ECMC_HOME_POS) -epicsEnvUnset(ECMC_HOME_ACC) -epicsEnvUnset(ECMC_HOME_DEC) -epicsEnvUnset(ECMC_DRV_TYPE) -epicsEnvUnset(ECMC_VELO) -epicsEnvUnset(ECMC_SOFT_LOW_LIM) -epicsEnvUnset(ECMC_SOFT_HIGH_LIM) -epicsEnvUnset(ECMC_HOME_POS_MOVE_ENA) -epicsEnvUnset(ECMC_HOME_POS_MOVE_TARG_POS) -epicsEnvUnset(ECMC_TRAJ_TYPE) -epicsEnvUnset(ECMC_JERK) -epicsEnvSet("ECMC_PREFIX" "IOC_TEST:") -# Set external setpoints -iocshLoad (/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applyAxisSynchronization.cmd, CONFIG=./cfg/linear_2.sax) -#============================================================================== -# applyAxisSynchronization.cmd -epicsEnvUnset(ECMC_EXE_CMD) -iocshLoad ./cfg/linear_2.sax -############# Encoder -epicsEnvSet("ECMC_ENC_SOURCE", "0") # 0 Internal (from hardware), 1 from PLC -epicsEnvSet("ECMC_ENC_VELO_FILT_ENABLE", "1") # Enable velocity filter -epicsEnvSet("ECMC_ENC_VELO_FILT_SIZE", "20") # Encoder velocity Low pass filter size -############# Trajectory -epicsEnvSet("ECMC_TRAJ_SOURCE", "1") # 0 Internal (from hardware), 1 from PLC -epicsEnvSet("ECMC_TRAJ_VELO_FILT_ENABLE", "1") # Enable velocity filter -epicsEnvSet("ECMC_TRAJ_VELO_FILT_SIZE", "20") # Trajectory velocity Low pass filter size -############# Commands -epicsEnvSet("ECMC_CMD_FRM_OTHER_PLC_ENABLE", "1") # Allow commands from PLC -epicsEnvSet("ECMC_CMD_AXIS_PLC_ENABLE", "0") # Enable Axis PLC -# Each line below is appended to one single expression/source. -# Executed in sync with axis (before) -epicsEnvSet("ECMC_AXIS_EXPR_LINE_1", "var a:=1|") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_2", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_3", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_4", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_5", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_6", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_7", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_8", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_9", "") -epicsEnvSet("ECMC_AXIS_EXPR_LINE_10", "") -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_sync.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_sync.cmd -#============================================================================== -# ecmc_axis_sync.cmd -ecmcConfigOrDie "Cfg.SetAxisAllowCommandsFromPLC(2,1)" -ecmcConfigOrDie "Cfg.SetAxisPLCEnable(2,0)" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=var a:=1|" -ecm2022/01/21 12:33:05.681 OK -2022/01/21 12:33:05.681 OK -2022/01/21 12:33:05.681 OK -2022/01/21 12:33:05.681 OK -2022/01/21 12:33:05.681 OK -2022/01/21 12:33:05.681 OK -2022/01/21 12:33:05.681 OK -2022/01/21 12:33:05.681 OK -2022/01/21 12:33:05.682 OK -2022/01/21 12:33:05.682 OK -2022/01/21 12:33:05.682 OK -2022/01/21 12:33:05.682 OK -2022/01/21 12:33:05.682 OK -2022/01/21 12:33:05.682 OK -2022/01/21 12:33:05.682 OK -cConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" -ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" -ecmcConfigOrDie "Cfg.SetAxisPLCEncVelFilterSize(2,20)" -ecmcConfigOrDie "Cfg.SetAxisPLCEncVelFilterEnable(2,1)" -ecmcConfigOrDie "Cfg.SetAxisEncSourceType(2,0)" -ecmcConfigOrDie "Cfg.SetAxisPLCTrajVelFilterSize(2,20)" -ecmcConfigOrDie "Cfg.SetAxisPLCTrajVelFilterEnable(2,1)" -ecmcConfigOrDie "Cfg.SetAxisTrajSourceType(2,1)" -ecmcFileExist(/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_sync_unset.cmd,1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmc_axis_sync_unset.cmd -#============================================================================== -# ecmc_axis_sync_unset.cmd -epicsEnvUnset(ECMC_CMD_FRM_OTHER_PLC_ENABLE) -epicsEnvUnset(ECMC_CMD_AXIS_PLC_ENABLE) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_1) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_2) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_3) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_4) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_5) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_6) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_7) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_8) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_9) -epicsEnvUnset(ECMC_AXIS_EXPR_LINE_10) -epicsEnvUnset(ECMC_ENC_VELO_FILT_SIZE) -epicsEnvUnset(ECMC_ENC_VELO_FILT_ENABLE) -epicsEnvUnset(ECMC_ENC_SOURCE) -epicsEnvUnset(ECMC_TRAJ_VELO_FILT_SIZE) -epicsEnvUnset(ECMC_TRAJ_VELO_FILT_ENABLE) -epicsEnvUnset(ECMC_TRAJ_SOURCE) -############################################################################## -## Load plugin: -epicsEnvSet("PLUGIN_VER" ,"develop") -require ecmc_plugin_grbl develop -Module ecmc_plugin_grbl version develop found in /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmc_plugin_grbl/develop/ -Module ecmc_plugin_grbl depends on asyn 4.41.0 -Module asyn version 4.41.0 already loaded -Module ecmc_plugin_grbl depends on ecmc ruckig -Module ecmc version ruckig already loaded -Loading library /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmc_plugin_grbl/develop/lib/linux-arm/libecmc_plugin_grbl.so -Loaded ecmc_plugin_grbl version develop -Loading dbd file /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmc_plugin_grbl/develop/dbd/ecmc_plugin_grbl.dbd -Calling function ecmc_plugin_grbl_registerRecordDeviceDriver -Loading module info records for ecmc_plugin_grbl -epicsEnvSet(ECMC_PLUGIN_FILNAME,"/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmc_plugin_grbl/develop/lib/linux-arm/libecmc_plugin_grbl.so") -epicsEnvSet(ECMC_PLUGIN_CONFIG,"DBG_PRINT=1;X_AXIS=1;Y_AXIS=2;AUTO_ENABLE=1;") # Only one option implemented in this plugin -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/loadPlugin.cmd, "PLUGIN_ID=0,FILE=/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmc_plugin_grbl/develop/lib/linux-arm/libecmc_plugin_grbl.so,CONFIG='DBG_PRINT=1;X_AXIS=1;Y_AXIS=2;AUTO_ENABLE=1;', REPORT=1" -#============================================================================== -# loadPlugin.cmd -ecmcConfigOrDie "Cfg.LoadPlugin(0,/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmc_plugin_grbl/develop/lib/linux-arm/libecmc_plugin_grbl.so,DBG_PRINT=1;X_AXIS=1;Y_AXIS=2;AUTO_ENABLE=1;)" -../ecmc_plugin_grbl/ecmcGrbl.cpp:doReadWorker:222 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doMainWorker:260 -../grbl/grbl_serial.c:serial_init:70: -../grbl/grbl_eeprom.c:ecmc_init_file:53 -../grbl/grbl_settings.c:settings_restore:132 settings_restore complete!!!.. -../grbl/grbl_eeprom.c:memcpy_from_eeprom_with_checksum:215 EEPROM simulated by file.. -../grbl/grbl_stepper.c:stepper_init:626 -../grbl/grbl_system.c:system_init:26: -../grbl/grbl_gcode.c:gc_init:44: -../grbl/grbl_eeprom.c:memcpy_from_eeprom_with_checksum:215 EEPROM simulated by file.. -../grbl/grbl_spindle_control.c:spindle_init:31 Not supported yet.. -../grbl/grbl_coolant_control.c:coolant_init:25 Not supported yet.. -../grbl/grbl_li2022/01/21 12:33:05.887 OK -2022/01/21 12:33:05.888 OK -mits.c:limits_init:44 Not supported yet.. -../grbl/grbl_probe.c:probe_init:31 Not supported yet.. -../grbl/grbl_stepper.c:st_reset:593 -../grbl/grbl_stepper.c:st_go_idle:297 -Waiting for grbl init..../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:234 -../grbl/grbl_stepper.c:st_generate_step_dir_invert_masks:571 -../grbl/grbl_gcode.c:gc_sync_position:59: -../grbl/grbl_protocol.c:protocol_main_loop:40 -../grbl/grbl_system.c:system_check_safety_door_ajar:93: -../grbl/grbl_system.c:system_execute_startup:107: -../grbl/grbl_eeprom.c:memcpy_from_eeprom_with_checksum:215 EEPROM simulated by file.. -../grbl/grbl_eeprom.c:memcpy_from_eeprom_with_checksum:215 EEPROM simulated by file.. - -Grbl 1.1h ['$' for help] -.ecmcEpicsEnvSetCalcTernary("ECMC_PLUGIN_REPORT", "1>0","","#") -ecmcConfigOrDie "Cfg.ReportPlugin(0)" -Plugin info: - Index = 0 - Name = ecmcPluginGrbl - Description = grbl plugin for use with ecmc. - Option description = - DBG_PRINT=<1/0> : Enables/disables printouts from plugin, default = disabled (=0). - X_AXIS=: Ecmc Axis id for use as grbl X axis, default = disabled (=-1). - Y_AXIS=: Ecmc Axis id for use as grbl Y axis, default = disabled (=-1). - Z_AXIS=: Ecmc Axis id for use as grbl Z axis, default = disabled (=-1). - SPINDLE_AXIS=: Ecmc Axis id for use as grbl spindle axis, default = disabled (=-1). - AUTO_ENABLE=<1/0>: Auto enable the linked ecmc axes autmatically before start, default = disabled (=0). - - Filename = /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmc_plugin_grbl/develop/lib/linux-arm/libecmc_plugin_grbl.so - Config string = DBG_PRINT=1;X_AXIS=1;Y_AXIS=2;AUTO_ENABLE=1; - Version = 2 - Interface version = 65536 (ecmc = 65536) - max plc funcs = 64 - max plc func args = 10 - max plc consts = 64 - Construct func = @0xb5014c80 - Enter realtime func = @0xb5014c28 - Exit realtime func = @0xb5014c30 - Realtime func = @0xb5014c70 - Destruct func = @0xb5014c48 - dlhandle = @0x1b71d28 - Plc functions: - funcs[00]: - Name = "grbl_connect();" - Desc = double grbl_connect() : Connect to grbl interface (from config str). - Arg count = 0 - func = @0xb5014c38 - Plc constants: - -epicsEnvUnset(ECMC_PLUGIN_REPORT); -epicsEnvUnset(ECMC_PLUGIN_FILNAME) -epicsEnvUnset(ECMC_PLUGIN_CONFIG) -ecmcGrblAddCommand("G1X20Y20F20"); -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:416: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:420: Buffer size 1 -ecmcGrblAddCommand("G4P1"); -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:416: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:420: Buffer size 2 -ecmcGrblAddCommand("G2X0Y0R20"); -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:416: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:420: Buffer size 3 -ecmcGrblAddCommand("G0X10Y10"); -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:416: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:420: Buffer size 4 -ecmcGrblAddCommand("G4P1"); -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:416: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:420: Buffer size 5 -ecmcGrblAddCommand("G1X10Y0F10"); -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:416: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:420: Buffer size 6 -ecmcGrblAddCommand("G4P1"); -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:416: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:420: Buffer size 7 -ecmcGrblAddCommand("G1X50Y50F10"); -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:416: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:420: Buffer size 8 -ecmcGrblAddCommand("G4P1"); -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:416: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:420: Buffer size 9 -ecmcGrblAddCommand("G1X0Y0F10"); -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:416: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:420: Buffer size 10 -# -#ecmcGrblAddCommand("$"); -# -#ecmcGrblAddCommand("G0X10Y100"); -# -#ecmcGrblAddCommand("$G"); -# -#ecmcGrblAddCommand("G4P1"); -# -#ecmcGrblAddCommand("G1X20Y20F20"); -# -#ecmcGrblAddCommand("G4P1"); -# -#ecmcGrblAd2022/01/21 12:33:05.888 OK -2022/01/21 12:33:05.888 OK -2022/01/21 12:33:05.888 OK -2022/01/21 12:33:05.889 OK -2022/01/21 12:33:05.889 OK -2022/01/21 12:33:05.889 OK -2022/01/21 12:33:05.893 INFO: Locking memory -2022/01/21 12:33:05.993 ../devEcmcSup/motion/ecmcMonitor.cpp/checkLimits:501: ERROR_MON_BOTH_LIMIT_INTERLOCK (0x14c10). -2022/01/21 12:33:05.993 ../devEcmcSup/motion/ecmcAxisReal.cpp/execute:185: ERROR_AXIS_HARDWARE_STATUS_NOT_OK (0x14315). -2022/01/21 12:33:05.993 ../devEcmcSup/motion/ecmcMonitor.cpp/checkLimits:501: ERROR_MON_BOTH_LIMIT_INTERLOCK (0x14c10). -2022/01/21 12:33:05.993 ../devEcmcSup/motion/ecmcAxisReal.cpp/execute:185: ERROR_AXIS_HARDWARE_STATUS_NOT_OK (0x14315). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 0: Not operational (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 1: Not operational (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 2: Not operational (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 3: Not operational (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 4: Not operational (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 5: Not operational (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 6: Not operational (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 8: Not operational (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 9: Not operational (0x24011). -2022/01/21 12:33:05.994 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011). -2022/01/21 12:33:06.015 Starting up EtherCAT bus: 0 second(s). Max wait time 30 second(s). -2022/01/21 12:33:06.094 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000015 -2022/01/21 12:33:06.094 ecmcMotorRecord:: poll(1) bError=1 drvlocal.statusBinData.onChangeData.error=0x14315 -2022/01/21 12:33:06.094 ecmcMotorRecord:: sErrorMessage(1)="ERROR_AXIS_HARDWARE_STATUS_NOT_OK" -2022/01/21 12:33:06.094 ecmcMotorRecord:: poll(1) callParamCallbacksUpdateError Error=1 old=-1 ErrID=0x14315 old=0x0 Warn=0 nCmd=0 old=0 txt=E: ERROR_AXIS_HARDWARE_STATUS_NOT_OK (0x14315) -2022/01/21 12:33:06.095 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000012 -2022/01/21 12:33:06.095 ecmcMotorRecord:: poll(2) bError=1 drvlocal.statusBinData.onChangeData.error=0x14315 -2022/01/21 12:33:06.095 ecmcMotorRecord:: sErrorMessage(2)="ERROR_AXIS_HARDWARE_STATUS_NOT_OK" -2022/01/21 12:33:06.095 ecmcMotorRecord:: poll(2) callParamCallbacksUpdateError Error=1 old=-1 ErrID=0x14315 old=0x0 Warn=0 nCmd=0 old=0 txt=E: ERROR_AXIS_HARDWARE_STATUS_NOT_OK (0x14315) -2022/01/21 12:33:06.295 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000012 -2022/01/21 12:33:06.295 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000007 -2022/01/21 12:33:06.495 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000019 -2022/01/21 12:33:06.495 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000011 -2022/01/21 12:33:06.695 ecmcMotorRecord:: poll(1) LLS=0 -2022/01/21 12:33:06.695 ecmcMotorRecord:: poll(1) HLS=0 -2022/01/21 12:33:06.695 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=42.33 time=0.000105 -2022/01/21 12:33:06.695 ecmcMotorRecord:: poll(2) LLS=0 -2022/01/21 12:33:06.695 ecmcMotorRecord:: poll(2) HLS=0 -2022/01/21 12:33:06.695 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=6.12 time=0.000041 -2022/01/21 12:33:06.896 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=42.33 time=0.000013 -2022/01/21 12:33:06.896 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=6.12 time=0.000006 -2022/01/21 12:33:06.973 ../devEcmcSup/motion/ecmcDriveBase.cpp/readEntries:328: WARNING (axis 1): Drive hardware in warning state. -2022/01/21 12:33:07.015 Starting up EtherCAT bus: 1 second(s). Max wait time 30 second(s). -2022/01/21 12:33:07.096 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=42.33 time=0.000012 -2022/01/21 12:33:07.096 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=6.12 time=0.000005 -2022/01/21 12:33:07.204 ../devEcmcSup/motion/ecmcDriveBase.cpp/readEntries:328: WARNING (axis 2): Drive hardware in warning state. -2022/01/21 12:33:07.296 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=42.33 time=0.000013 -2022/01/21 12:33:07.296 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=6.12 time=0.000006 -2022/01/21 12:33:07.496 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=42.33 time=0.000012 -2022/01/21 12:33:07.496 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=6.12 time=0.000010 -2022/01/21 12:33:07.497 ../devEcmcSup/main/ecmcError.cpp/errorReset:103: NO_ERROR (0x0). -2022/01/21 12:33:07.497 ../devEcmcSup/main/ecmcError.cpp/errorReset:103: NO_ERROR (0x0). -2022/01/21 12:33:07.497 ../devEcmcSup/main/ecmcError.cpp/errorReset:103: NO_ERROR (0x0). -2022/01/21 12:33:07.497 ../devEcmcSup/main/ecmcError.cpp/errorReset:103: NO_ERROR (0x0). -2022/01/21 12:33:07.497 ../devEcmcSup/main/ecmcError.cpp/errorReset:103: NO_ERROR (0x0). -2022/01/21 12:33:07.696 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000014 -2022/01/21 12:33:07.696 ecmcMotorRecord:: poll(1) bError=0 drvlocal.statusBinData.onChangeData.error=0x0 -2022/01/21 12:33:07.696 ecmcMotorRecord:: poll(1) callParamCallbacksUpdateError Error=4 old=1 ErrID=0x0 old=0x14315 Warn=0 nCmd=0 old=0 txt=NULL -2022/01/21 12:33:07.697 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000008 -2022/01/21 12:33:07.697 ecmcMotorRecord:: poll(2) bError=0 drvlocal.statusBinData.onChangeData.error=0x0 -2022/01/21 12:33:07.697 ecmcMotorRecord:: poll(2) callParamCallbacksUpdateError Error=4 old=1 ErrID=0x0 old=0x14315 Warn=0 nCmd=0 old=0 txt=NULL -2022/01/21 12:33:07.897 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000011 -2022/01/21 12:33:07.897 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000006 -2022/01/21 12:33:08.097 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000018 -2022/01/21 12:33:08.097 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000009 -2022/01/21 12:33:08.297 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000143 -2022/01/21 12:33:08.298 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000011 -2022/01/21 12:33:08.498 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000020 -2022/01/21 12:33:08.498 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000009 -2022/01/21 12:33:08.698 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000019 -2022/01/21 12:33:08.698 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000011 -2022/01/21 12:33:08.898 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000012 -2022/01/21 12:33:08.898 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000007 -2022/01/21 12:33:09.015 EtherCAT bus started! -2022/01/21 12:33:09.015 OK -2022/01/21 12:33:09.015 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAtIocBuild (0). Allow callbacks: true. -Starting iocInit -2022/01/21 12:33:09.015 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAtBeginning (1). Allow callbacks: true. -2022/01/21 12:33:09.029 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterCallbackInit (2). Allow callbacks: true. -2022/01/21 12:33:09.035 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterCaLinkInit (3). Allow callbacks: true. -2022/01/21 12:33:09.035 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInitDrvSup (4). Allow callbacks: true. -2022/01/21 12:33:09.035 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInitRecSup (5). Allow callbacks: true. -2022/01/21 12:33:09.040 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInitDevSup (6). Allow callbacks: true. -2022/01/21 12:33:09.043 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.positionActual01 linked to record (asyn reason 1). -2022/01/21 12:33:09.044 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.encoderLatchPostion01 linked to record (asyn reason 2). -2022/01/21 12:33:09.044 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.encoderControl01 linked to record (asyn reason 3). -2022/01/21 12:33:09.045 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.encoderValue01 linked to record (asyn reason 4). -2022/01/21 12:33:09.045 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.positionActual01 linked to record (asyn reason 5). -2022/01/21 12:33:09.045 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.encoderLatchPostion01 linked to record (asyn reason 6). -2022/01/21 12:33:09.046 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.encoderControl01 linked to record (asyn reason 7). -2022/01/21 12:33:09.046 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.encoderValue01 linked to record (asyn reason 8). -2022/01/21 12:33:09.046 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.timestampLatchPositive01 linked to record (asyn reason 9). -2022/01/21 12:33:09.050 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.timestampLatchNegative01 linked to record (asyn reason 10). -2022/01/21 12:33:09.051 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.timestampLatchPositive02 linked to record (asyn reason 11). -2022/01/21 12:33:09.051 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.timestampLatchNegative02 linked to record (asyn reason 12). -2022/01/21 12:33:09.051 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.driveControl01 linked to record (asyn reason 13). -2022/01/21 12:33:09.051 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.velocitySetpoint01 linked to record (asyn reason 14). -2022/01/21 12:33:09.052 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.positionActual01 linked to record (asyn reason 15). -2022/01/21 12:33:09.052 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.encoderLatchPostion01 linked to record (asyn reason 16). -2022/01/21 12:33:09.053 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.encoderControl01 linked to record (asyn reason 17). -2022/01/21 12:33:09.053 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.encoderValue01 linked to record (asyn reason 18). -2022/01/21 12:33:09.054 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.driveControl01 linked to record (asyn reason 19). -2022/01/21 12:33:09.054 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.velocitySetpoint01 linked to record (asyn reason 20). -2022/01/21 12:33:09.054 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.positionActual01 linked to record (asyn reason 21). -2022/01/21 12:33:09.055 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.encoderLatchPostion01 linked to record (asyn reason 22). -2022/01/21 12:33:09.055 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.encoderControl01 linked to record (asyn reason 23). -2022/01/21 12:33:09.056 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.encoderValue01 linked to record (asyn reason 24). -2022/01/21 12:33:09.057 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.actpos linked to record (asyn reason 25). -2022/01/21 12:33:09.058 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.setpos linked to record (asyn reason 26). -2022/01/21 12:33:09.058 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.poserr linked to record (asyn reason 27). -2022/01/21 12:33:09.059 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax1.plc.error linked to record (asyn reason 28). -2022/01/21 12:33:09.060 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.actpos linked to record (asyn reason 29). -2022/01/21 12:33:09.060 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.setpos linked to record (asyn reason 30). -2022/01/21 12:33:09.061 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.poserr linked to record (asyn reason 31). -2022/01/21 12:33:09.062 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax2.plc.error linked to record (asyn reason 32). -2022/01/21 12:33:09.063 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.appmode linked to record (asyn reason 33). -2022/01/21 12:33:09.064 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.error.id linked to record (asyn reason 34). -2022/01/21 12:33:09.064 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.latency.min linked to record (asyn reason 35). -2022/01/21 12:33:09.069 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.latency.max linked to record (asyn reason 36). -2022/01/21 12:33:09.070 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.period.min linked to record (asyn reason 37). -2022/01/21 12:33:09.071 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.period.max linked to record (asyn reason 38). -2022/01/21 12:33:09.072 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.execute.min linked to record (asyn reason 39). -2022/01/21 12:33:09.073 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.execute.max linked to record (asyn reason 40). -2022/01/21 12:33:09.075 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.send.min linked to record (asyn reason 41). -2022/01/21 12:33:09.076 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.send.max linked to record (asyn reason 42). -2022/01/21 12:33:09.078 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput01 linked to record (asyn reason 43). -2022/01/21 12:33:09.079 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput02 linked to record (asyn reason 44). -2022/01/21 12:33:09.081 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput03 linked to record (asyn reason 45). -2022/01/21 12:33:09.083 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput04 linked to record (asyn reason 46). -2022/01/21 12:33:09.086 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput05 linked to record (asyn reason 47). -2022/01/21 12:33:09.088 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput06 linked to record (asyn reason 48). -2022/01/21 12:33:09.090 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput07 linked to record (asyn reason 49). -2022/01/21 12:33:09.092 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput08 linked to record (asyn reason 50). -2022/01/21 12:33:09.095 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput01 linked to record (asyn reason 51). -2022/01/21 12:33:09.096 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput02 linked to record (asyn reason 52). -2022/01/21 12:33:09.098 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput03 linked to record (asyn reason 53). -2022/01/21 12:33:09.099 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000047 -2022/01/21 12:33:09.099 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000012 -2022/01/21 12:33:09.100 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput04 linked to record (asyn reason 54). -2022/01/21 12:33:09.102 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput05 linked to record (asyn reason 55). -2022/01/21 12:33:09.105 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput06 linked to record (asyn reason 56). -2022/01/21 12:33:09.107 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput07 linked to record (asyn reason 57). -2022/01/21 12:33:09.109 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput08 linked to record (asyn reason 58). -2022/01/21 12:33:09.113 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s5.powerOk01 linked to record (asyn reason 59). -2022/01/21 12:33:09.115 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s5.overload01 linked to record (asyn reason 60). -2022/01/21 12:33:09.118 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.binaryInput01 linked to record (asyn reason 61). -2022/01/21 12:33:09.121 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.binaryInput02 linked to record (asyn reason 62). -2022/01/21 12:33:09.125 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax1.plc.enable linked to record (asyn reason 63). -2022/01/21 12:33:09.128 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax1.plc.firstscan linked to record (asyn reason 64). -2022/01/21 12:33:09.131 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax2.plc.enable linked to record (asyn reason 65). -2022/01/21 12:33:09.134 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax2.plc.firstscan linked to record (asyn reason 66). -2022/01/21 12:33:09.138 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.ok linked to record (asyn reason 67). -2022/01/21 12:33:09.141 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.diagnostic linked to record (asyn reason 68). -2022/01/21 12:33:09.142 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.plc.expression linked to record (asyn reason 69). -2022/01/21 12:33:09.144 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.diagnostic linked to record (asyn reason 70). -2022/01/21 12:33:09.145 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.plc.expression linked to record (asyn reason 71). -2022/01/21 12:33:09.147 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.error.msg linked to record (asyn reason 72). -2022/01/21 12:33:09.148 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.updated linked to record (asyn reason 73). -2022/01/21 12:33:09.149 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.command linked to record (asyn reason 74). -2022/01/21 12:33:09.153 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.command linked to record (asyn reason 75). -dCommand("G2X40Y40R20"); -# -#ecmcGrblAddCommand("$"); -############################################################################## -## PLC 0 -# $(SCRIPTEXEC) $(ecmccfg_DIR)loadPLCFile.cmd, "PLC_ID=0, SAMPLE_RATE_MS=1000,FILE=./plc/can.plc") -############################################################################## -############# Configure diagnostics: -ecmcConfigOrDie "Cfg.EcSetDiagnostics(1)" -ecmcConfigOrDie "Cfg.EcEnablePrintouts(0)" -ecmcConfigOrDie "Cfg.EcSetDomainFailedCyclesLimit(100)" -ecmcConfigOrDie "Cfg.SetDiagAxisIndex(1)" -ecmcConfigOrDie "Cfg.SetDiagAxisFreq(2)" -ecmcConfigOrDie "Cfg.SetDiagAxisEnable(0)" -iocshLoad (/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/setAppMode.cmd) -#============================================================================== -# setAppMode.cmd -ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/general.cmd",1) -iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/general.cmd -#============================================================================== -# general.cmd -ecmcFileExist("ecmcGeneral.db",1,1) -dbLoadRecords("ecmcGeneral.db","P=IOC_TEST:,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,T_SMP_MS=10,TSE=-2,ECMC_PROC_HOOK=") -# Examples of commands for info: -# ecmcReport or asynReport -# ecmcReport 3 -# ecmcGrepParam -# List all ecmc params for ethercat slave 2: -# ecmcGrepParam *s2* -# -ecmcEpicsEnvSetCalcTernary(ECMC_MASTER_CMD, "0>=0", "","#- ") - ecmcFileExist("ecmcEc.db",1,1) - dbLoadRecords("ecmcEc.db","P=IOC_TEST:,PORT=MC_CPU1,ADDR=0,TIMEOUT=1,MASTER_ID=0,T_SMP_MS=10,TSE=-2") -ecmcConfigOrDie "Cfg.SetAppMode(1)" -iocInit() -############################################################################ -## EPICS R7.0.5-E3-7.0.5-patch -## Rev. 2021-05-05T19:45+0200 -############################################################################ -ECATtimestamp aSubRecord: IOC_TEST:m0s006-BI01-TimeRiseTS -ECATtimestamp aSubRecord: IOC_TEST:m0s006-BI01-TimeFallTS -ECATtimestamp aSubRecord: IOC_TEST:m0s006-BI02-TimeRiseTS -ECATtimestamp aSubRecord: IOC_TEST:m0s006-BI02-TimeFallTS -2022/01/21 12:33:09.157 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s0.ONE linked to record (asyn reason 76). -2022/01/21 12:33:09.159 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s0.ZERO linked to record (asyn reason 77). -2022/01/21 12:33:09.162 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.ONE linked to record (asyn reason 78). -2022/01/21 12:33:09.165 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.ZERO linked to record (asyn reason 79). -2022/01/21 12:33:09.167 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.ONE linked to record (asyn reason 80). -2022/01/21 12:33:09.170 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.ZERO linked to record (asyn reason 81). -2022/01/21 12:33:09.172 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.ONE linked to record (asyn reason 82). -2022/01/21 12:33:09.176 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.ZERO linked to record (asyn reason 83). -2022/01/21 12:33:09.178 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.ONE linked to record (asyn reason 84). -2022/01/21 12:33:09.181 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.ZERO linked to record (asyn reason 85). -2022/01/21 12:33:09.184 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s5.ONE linked to record (asyn reason 86). -2022/01/21 12:33:09.187 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s5.ZERO linked to record (asyn reason 87). -2022/01/21 12:33:09.189 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.ONE linked to record (asyn reason 88). -2022/01/21 12:33:09.192 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.ZERO linked to record (asyn reason 89). -2022/01/21 12:33:09.195 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.ONE linked to record (asyn reason 90). -2022/01/21 12:33:09.197 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.ZERO linked to record (asyn reason 91). -2022/01/21 12:33:09.200 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.ONE linked to record (asyn reason 92). -2022/01/21 12:33:09.203 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.ZERO linked to record (asyn reason 93). -2022/01/21 12:33:09.206 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.cmddata linked to record (asyn reason 94). -2022/01/21 12:33:09.209 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.cmddata linked to record (asyn reason 95). -2022/01/21 12:33:09.212 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s0.slavestatus linked to record (asyn reason 96). -2022/01/21 12:33:09.215 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.slavestatus linked to record (asyn reason 97). -2022/01/21 12:33:09.218 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.slavestatus linked to record (asyn reason 98). -2022/01/21 12:33:09.220 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.slavestatus linked to record (asyn reason 99). -2022/01/21 12:33:09.222 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.slavestatus linked to record (asyn reason 100). -2022/01/21 12:33:09.225 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s5.slavestatus linked to record (asyn reason 101). -2022/01/21 12:33:09.228 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.slavestatus linked to record (asyn reason 102). -2022/01/21 12:33:09.231 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.slavestatus linked to record (asyn reason 103). -2022/01/21 12:33:09.234 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.slavestatus linked to record (asyn reason 104). -2022/01/21 12:33:09.237 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.status linked to record (asyn reason 105). -2022/01/21 12:33:09.239 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.errorid linked to record (asyn reason 106). -2022/01/21 12:33:09.243 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.status linked to record (asyn reason 107). -2022/01/21 12:33:09.246 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.errorid linked to record (asyn reason 108). -2022/01/21 12:33:09.248 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.masterstatus linked to record (asyn reason 109). -2022/01/21 12:33:09.251 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.slavecounter linked to record (asyn reason 110). -2022/01/21 12:33:09.254 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.memmapcounter linked to record (asyn reason 111). -2022/01/21 12:33:09.256 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.domainfailcountertotal linked to record (asyn reason 112). -2022/01/21 12:33:09.259 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.entrycounter linked to record (asyn reason 113). -2022/01/21 12:33:09.262 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.domainstatus linked to record (asyn reason 114). -2022/01/21 12:33:09.266 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.control linked to record (asyn reason 115). -2022/01/21 12:33:09.269 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.control linked to record (asyn reason 116). -2022/01/21 12:33:09.273 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.encoderStatus01 linked to record (asyn reason 117). -2022/01/21 12:33:09.276 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.encoderStatus01 linked to record (asyn reason 118). -2022/01/21 12:33:09.279 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.status01 linked to record (asyn reason 119). -2022/01/21 12:33:09.282 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.status02 linked to record (asyn reason 120). -2022/01/21 12:33:09.286 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.driveStatus01 linked to record (asyn reason 121). -2022/01/21 12:33:09.289 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.encoderStatus01 linked to record (asyn reason 122). -2022/01/21 12:33:09.292 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.driveStatus01 linked to record (asyn reason 123). -2022/01/21 12:33:09.295 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.encoderStatus01 linked to record (asyn reason 124). -2022/01/21 12:33:09.299 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000017 -2022/01/21 12:33:09.299 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000006 -2022/01/21 12:33:09.332 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.targpos linked to record (asyn reason 125). -2022/01/21 12:33:09.336 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.targvelo linked to record (asyn reason 126). -2022/01/21 12:33:09.341 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.targpos linked to record (asyn reason 127). -2022/01/21 12:33:09.345 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.targvelo linked to record (asyn reason 128). -2022/01/21 12:33:09.360 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.error.reset linked to record (asyn reason 129). -2022/01/21 12:33:09.365 ecmcMotorRecord:: setIntegerParam(1 motorUpdateStatus_)=0 -2022/01/21 12:33:09.365 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000010 -2022/01/21 12:33:09.365 ecmcMotorRecord:: setIntegerParam(2 motorUpdateStatus_)=0 -2022/01/21 12:33:09.365 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000008 -2022/01/21 12:33:09.410 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInitDatabase (7). Allow callbacks: true. -2022/01/21 12:33:09.410 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterFinishDevSup (8). Allow callbacks: true. -2022/01/21 12:33:09.499 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000013 -2022/01/21 12:33:09.499 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000008 -2022/01/21 12:33:09.699 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000139 -2022/01/21 12:33:09.700 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000009 -2022/01/21 12:33:09.900 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000015 -2022/01/21 12:33:09.900 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000013 -2022/01/21 12:33:09.944 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterScanInit (9). Allow callbacks: true. -2022/01/21 12:33:09.945 ecmcMotorRecord:: setIntegerParam(1 HomProc_)=3 motorNotHomedProblem=0 -2022/01/21 12:33:09.945 ecmcMotorRecord:: setIntegerParam(2 HomProc_)=3 motorNotHomedProblem=0 -2022/01/21 12:33:09.947 ecmcMotorRecord:: setDoubleParam(1 HomPos_)=0.000000 -2022/01/21 12:33:09.947 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInitialProcess (10). Allow callbacks: true. -2022/01/21 12:33:09.947 ecmcMotorRecord:: setDoubleParam(2 HomPos_)=0.000000 -2022/01/21 12:33:09.960 ecmcAsynPortDriver:getEpicsState: EPICS state: Unknown state (11). Allow callbacks: true. -2022/01/21 12:33:09.960 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterIocBuilt (12). Allow callbacks: true. -2022/01/21 12:33:10.027 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAtIocRun (13). Allow callbacks: true. -2022/01/21 12:33:10.028 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterDatabaseRunning (14). Allow callbacks: true. -2022/01/21 12:33:10.032 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInterruptAccept (28). Allow callbacks: true. -2022/01/21 12:33:10.032 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterCaServerRunning (15). Allow callbacks: true. -2022/01/21 12:33:10.033 ecmcAsynPortDriver:getEpicsState: EPICS state: Unknown state (29). Allow callbacks: true. -iocRun: All initialization complete -2022/01/21 12:33:10.083 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterIocRunning (16). Allow callbacks: true. -2022/01/21 12:33:10.087 ../devEcmcSup/motion/ecmcDriveBase.cpp/readEntries:336: INFO (axis 1): Drive hardware warning state cleared. -2022/01/21 12:33:10.087 ../devEcmcSup/motion/ecmcDriveBase.cpp/readEntries:336: INFO (axis 2): Drive hardware warning state cleared. -2022/01/21 12:33:10.100 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000015 -2022/01/21 12:33:10.100 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000006 -2022/01/21 12:33:09.365 [devMotorAsyn.c:439 IOC_TEST:Axis1] init_record IOC_TEST:Axis1 position=0.000000 encoderPos=0.000000 velocity=0.000000 MSTAstatus=0x0f00 flagsValue=0x3f flagsWritten=0x3f pmr->mflg=0x0 -2022/01/21 12:33:09.365 [devMotorAsyn.c:185 IOC_TEST:Axis1] init_controller IOC_TEST:Axis1 set encoder ratio=1.000000 status=0 -2022/01/21 12:33:09.365 [devMotorAsyn.c:266 IOC_TEST:Axis1] update_soft_limits IOC_TEST:Axis1 RawHLM_RO=130.000000 RawLLM_RO=-20.000000 valid=1 DHLM_RO=130.000000 DLLM_RO=-20.000000 -2022/01/21 12:33:09.365 [motorDevSup.c:327 IOC_TEST:Axis1] PositionRestoreNeeded IOC_TEST:Axis1 rstm=2 dval=0.000000 drbv=0.000000 pmr->rdbd=0.100000 rdbd=0.100000 pmr->mres=0.030000 pmr->mflg=0x3f dval_non_zero_pos_near_zero=0 ret=0 -2022/01/21 12:33:09.365 [motorRecord.cc:782 IOC_TEST:Axis1] init_re_init start neverPolled=0 stat=17 nsta=0 -2022/01/21 12:33:09.365 [motorRecord.cc:720 IOC_TEST:Axis1] enforceMinRetryDeadband spdb=0.100000 rdbd=0.100000 mres=0.030000 -2022/01/21 12:33:09.365 [motorRecord.cc:4484 IOC_TEST:Axis1] pmr->dhlm=130 softLimitRO=130 -2022/01/21 12:33:09.365 [motorRecord.cc:4545 IOC_TEST:Axis1] pmr->dllm=-20 softLimitRO=-20 -2022/01/21 12:33:09.365 [motorRecord.cc:833 IOC_TEST:Axis1] init_re_init end dval=0.000000 drbv=0.000000 rdbd=0.100000 spdb=0.100000 -2022/01/21 12:33:09.365 [motorRecord.cc:968 IOC_TEST:Axis1] init_record process_reason="callbackdata + soft limits" dval=0.000000 drbv=0.000000 rdbd=0.100000 spdb=0.100000 stat=0 msta=0xf00 neverPolled=0 -2022/01/21 12:33:09.365 [devMotorAsyn.c:439 IOC_TEST:Axis2] init_record IOC_TEST:Axis2 position=0.000000 encoderPos=0.000000 velocity=0.000000 MSTAstatus=0x0f00 flagsValue=0x3f flagsWritten=0x3f pmr->mflg=0x0 -2022/01/21 12:33:09.365 [devMotorAsyn.c:185 IOC_TEST:Axis2] init_controller IOC_TEST:Axis2 set encoder ratio=1.000000 status=0 -2022/01/21 12:33:09.365 [devMotorAsyn.c:266 IOC_TEST:Axis2] update_soft_limits IOC_TEST:Axis2 RawHLM_RO=20.000000 RawLLM_RO=-130.000000 valid=1 DHLM_RO=20.000000 DLLM_RO=-130.000000 -2022/01/21 12:33:09.365 [motorDevSup.c:327 IOC_TEST:Axis2] PositionRestoreNeeded IOC_TEST:Axis2 rstm=2 dval=0.000000 drbv=0.000000 pmr->rdbd=0.100000 rdbd=0.100000 pmr->mres=0.030000 pmr->mflg=0x3f dval_non_zero_pos_near_zero=0 ret=0 -2022/01/21 12:33:09.365 [motorRecord.cc:782 IOC_TEST:Axis2] init_re_init start neverPolled=0 stat=17 nsta=0 -2022/01/21 12:33:09.365 [motorRecord.cc:720 IOC_TEST:Axis2] enforceMinRetryDeadband spdb=0.100000 rdbd=0.100000 mres=0.030000 -2022/01/21 12:33:09.365 [motorRecord.cc:4484 IOC_TEST:Axis2] pmr->dhlm=20 softLimitRO=20 -2022/01/21 12:33:09.365 [motorRecord.cc:4545 IOC_TEST:Axis2] pmr->dllm=-130 softLimitRO=-130 -2022/01/21 12:33:09.365 [motorRecord.cc:833 IOC_TEST:Axis2] init_re_init end dval=0.000000 drbv=0.000000 rdbd=0.100000 spdb=0.100000 -2022/01/21 12:33:09.365 [motorRecord.cc:968 IOC_TEST:Axis2] init_record process_reason="callbackdata + soft limits" dval=0.000000 drbv=0.000000 rdbd=0.100000 spdb=0.100000 stat=0 msta=0xf00 neverPolled=0 -# Set the IOC Prompt String One -epicsEnvSet IOCSH_PS1 "raspberrypi-5240 > " -# -raspberrypi-5240 > 2022/01/21 12:33:10.300 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000018 -2022/01/21 12:33:10.300 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000152 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:237: Command in buffer!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:242: Command length 12!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:243: Available bytes 1024!!! -Adding G to buffer -Adding 1 to buffer G -Adding X to buffer G1 -Adding 2 to buffer G1X -Adding 0 to buffer G1X2 -Adding Y to buffer G1X20 -Adding 2 to buffer G1X20Y -Adding 0 to buffer G1X20Y2 -Adding F to buffer G1X20Y20 -Adding 2 to buffer G1X20Y20F -Adding 0 to buffer G1X20Y20F2 -Adding - to buffer G1X20Y20F20 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:249: Writing!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:237: Command in buffer!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:242: Command length 5!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:243: Available bytes 1012!!! -Adding G to buffer G1X20Y20F20 - -Adding 4 to buffer G1X20Y20F20 -G -Adding P to buffer G1X20Y20F20 -G4 -Adding 1 to buffer G1X20Y20F20 -G4P -Adding - to buffer G1X20Y20F20 -G4P1 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:249: Writing!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:237: Command in buffer!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:242: Command length 10!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:243: Available bytes 1007!!! -Adding G to buffer G1X20Y20F20 -G4P1 - -Adding 2 to buffer G1X20Y20F20 -G4P1 -G -Adding X to buffer G1X20Y20F20 -G4P1 -G2 -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X -Adding Y to buffer G1X20Y20F20 -G4P1 -G2X0 -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y -Adding R to buffer G1X20Y20F20 -G4P1 -G2X0Y0 -Adding 2 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R2 -Adding - to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:249: Writing!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:237: Command in buffer!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:242: Command length 9!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:243: Available bytes 997!!! -Adding G to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 - -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G -Adding X to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0 -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X1 -Adding Y to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10 -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y1 -Adding - to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:249: Writing!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:237: Command in buffer!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:242: Command length 5!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:243: Available bytes 988!!! -Adding G to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 - -Adding 4 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G -Adding P to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4 -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P -Adding - to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:249: Writing!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:237: Command in buffer!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:242: Command length 11!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:243: Available bytes 983!!! -Adding G to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 - -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G -Adding X to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1 -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X1 -Adding Y to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10 -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y -Adding F to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0 -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F1 -Adding - to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:249: Writing!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:237: Command in buffer!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:242: Command length 5!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:243: Available bytes 972!!! -Adding G to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 - -Adding 4 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G -Adding P to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4 -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P -Adding - to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:249: Writing!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:237: Command in buffer!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:242: Command length 12!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:243: Available bytes 967!!! -Adding G to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 - -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G -Adding X to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1 -Adding 5 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X5 -Adding Y to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50 -Adding 5 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y5 -Adding F to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50 -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F1 -Adding - to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:249: Writing!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:237: Command in buffer!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:242: Command length 5!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:243: Available bytes 955!!! -Adding G to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 - -Adding 4 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G -Adding P to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4 -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P -Adding - to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:249: Writing!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:237: Command in buffer!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:242: Command length 10!!! -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:243: Available bytes 950!!! -Adding G to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 - -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 -G -Adding X to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 -G1 -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 -G1X -Adding Y to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 -G1X0 -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 -G1X0Y -Adding F to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 -G1X0Y0 -Adding 1 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 -G1X0Y0F -Adding 0 to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 -G1X0Y0F1 -Adding - to buffer G1X20Y20F20 -G4P1 -G2X0Y0R20 -G0X10Y10 -G4P1 -G1X10Y0F10 -G4P1 -G1X50Y50F10 -G4P1 -G1X0Y0F10 -../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:249: Writing!! -../grbl/grbl_gcode.c:gc_execute_line:71:G1X20Y20F20 -1 -letter=G -value=1.000000 -int_value=1 -mantissa=0 -axis_command=2 -here!! -here 2!! -here 3!! -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=X -valu2022/01/21 12:33:10.501 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000011 -e=20.000000 -int_value=20 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=Y -value=20.000000 -int_value=20 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=F -value=20.000000 -int_value=20 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -../grbl/grbl_gcode.c:gc_execute_line:383:axis_words=3 -../grbl/grbl_gcode.c:gc_execute_line:384:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:389:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:395 -../grbl/grbl_gcode.c:gc_execute_line:410:gc_parser_flags=0 -../grbl/grbl_gcode.c:gc_execute_line:416:gc_block.modal.feed_rate=0 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_gcode.c:gc_execute_line:71:G4P1 -1 -letter=G -value=4.000000 -int_value=4 -mantissa=0 -here 2!! -here 3!! -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=P -value=1.000000 -int_value=1 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -../grbl/grbl_gcode.c:gc_execute_line:383:axis_words=0 -../grbl/grbl_gcode.c:gc_execute_line:384:axis_command=0 -../grbl/grbl_gcode.c:gc_execute_line:389:axis_command=0 -../grbl/grbl_gcode.c:gc_execute_line:395 -../grbl/grbl_gcode.c:gc_execute_line:410:gc_parser_flags=0 -../grbl/grbl_gcode.c:gc_execute_line:416:gc_block.modal.feed_rate=0 -../grbl/grbl_gcode.c:gc_execute_line:443:gc_state.feed_rate=20.000000 -../grbl/grbl_motion_control.c:mc_dwell:200 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_wake_up:266 -ok -2022/01/21 12:33:10.501 [motorRecord.cc:1522 IOC_TEST:Axis1] msta.Bits.EA_POSITION power on=1 -2022/01/21 12:33:10.501 [motorRecord.cc:1627 IOC_TEST:Axis1] mipSetBit EXTERNAL(Ex) old='' new=EXTERNAL(Ex) -2022/01/21 12:33:10.501 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000009 -2022/01/21 12:33:10.501 [motorRecord.cc:1522 IOC_TEST:Axis2] msta.Bits.EA_POSITION power on=1 -2022/01/21 12:33:10.501 [motorRecord.cc:1627 IOC_TEST:Axis2] mipSetBit EXTERNAL(Ex) old='' new=EXTERNAL(Ex) -2022/01/21 12:33:10.701 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64024 fPos=3 fActPosition=3 time=0.000011 -2022/01/21 12:33:10.701 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=305 fPos=3.016 fActPosition=3.03 time=0.000010 -2022/01/21 12:33:10.902 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63923 fPos=6.016 fActPosition=6.03 time=0.000011 -2022/01/21 12:33:10.902 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=405 fPos=6.016 fActPosition=6.03 time=0.000006 -2022/01/21 12:33:11.102 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63822 fPos=9.016 fActPosition=9.06 time=0.000011 -2022/01/21 12:33:11.102 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=505 fPos=9.016 fActPosition=9.03 time=0.000006 -2022/01/21 12:33:11.302 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63722 fPos=12.028 fActPosition=12.06 time=0.000115 -2022/01/21 12:33:11.303 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=606 fPos=12.028 fActPosition=12.06 time=0.000006 -2022/01/21 12:33:11.503 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63622 fPos=15.028 fActPosition=15.06 time=0.000011 -2022/01/21 12:33:11.503 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=706 fPos=15.028 fActPosition=15.06 time=0.000006 -2022/01/21 12:33:11.703 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63522 fPos=18.028 fActPosition=18.06 time=0.000010 -2022/01/21 12:33:11.703 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=806 fPos=18.028 fActPosition=18.06 time=0.000006 -2022/01/21 12:33:11.903 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63448 fPos=20 fActPosition=20.28 time=0.000011 -Segment buffer empty!!!!!!!!!!!!!!!!!!!!!../grbl/grbl_stepper.c:st_go_idle:297 -2022/01/21 12:33:11.904 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=880 fPos=20 fActPosition=20.28 time=0.000006 -2022/01/21 12:33:12.104 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63458 fPos=20 fActPosition=19.98 time=0.000011 -2022/01/21 12:33:12.104 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=870 fPos=20 fActPosition=19.98 time=0.000007 -2022/01/21 12:33:12.304 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63458 fPos=20 fActPosition=19.98 time=0.000014 -2022/01/21 12:33:12.304 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=870 fPos=20 fActPosition=19.98 time=0.000008 -2022/01/21 12:33:12.504 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63459 fPos=20 fActPosition=19.95 time=0.000019 -2022/01/21 12:33:12.505 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=870 fPos=20 fActPosition=19.98 time=0.000012 -2022/01/21 12:33:12.705 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63458 fPos=20 fActPosition=19.98 time=0.000020 -2022/01/21 12:33:12.705 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=870 fPos=20 fActPosition=19.98 time=0.000011 -2022/01/21 12:33:12.905 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63458 fPos=19.988 fActPosition=19.98 time=0.000096 -2022/01/21 12:33:12.906 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=851 fPos=19.312 fActPosition=19.41 time=0.000011 -../grbl/grbl_gcode.c:gc_execute_line:71:G2X0Y0R20 -1 -letter=G -value=2.000000 -int_value=2 -mantissa=0 -axis_command=2 -here!! -here 2!! -here 3!! -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=X -value=0.000000 -int_value=0 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=Y -value=0.000000 -int_value=0 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=R -value=20.000000 -int_value=20 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -../grbl/grbl_gcode.c:gc_execute_line:383:axis_words=3 -../grbl/grbl_gcode.c:gc_execute_line:384:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:389:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:395 -../grbl/grbl_gcode.c:gc_execute_line:410:gc_parser_flags=0 -../grbl/grbl_gcode.c:gc_execute_line:416:gc_block.modal.feed_rate=0 -../grbl/grbl_gcode.c:gc_execute_line:443:gc_state.feed_rate=20.000000 -../grbl/grbl_motion_control.c:mc_arc:91 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_update_plan_block_parameters:660 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_wake_up:266 -ok -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -2022/01/21 12:33:13.106 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63469 fPos=19.656 fActPosition=19.65 time=0.000011 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -2022/01/21 12:33:13.106 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=746 fPos=16.312 fActPosition=16.26 time=0.000006 -2022/01/21 12:33:13.306 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63496 fPos=18.848 fActPosition=18.84 time=0.000011 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -2022/01/21 12:33:13.306 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=646 fPos=13.296 fActPosition=13.26 time=0.000007 -2022/01/21 12:33:13.507 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63541 fPos=17.488 fActPosition=17.49 time=0.000010 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -2022/01/21 12:33:13.507 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=546 fPos=10.296 fActPosition=10.26 time=0.000006 -2022/01/21 12:33:13.707 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63610 fPos=15.448 fActPosition=15.42 time=0.000011 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -2022/01/21 12:33:13.707 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=446 fPos=7.296 fActPosition=7.26 time=0.000006 -2022/01/21 12:33:13.907 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63706 fPos=12.564 fActPosition=12.54 time=0.000048 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -2022/01/21 12:33:13.907 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=351 fPos=4.44 fActPosition=4.41 time=0.000006 -2022/01/21 12:33:14.108 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63806 fPos=9.564 fActPosition=9.54 time=0.000011 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -2022/01/21 12:33:14.108 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=284 fPos=2.436 fActPosition=2.4 time=0.000007 -2022/01/21 12:33:14.308 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63906 fPos=6.564 fActPosition=6.54 time=0.000011 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_gcode.c:gc_execute_line:71:G0X10Y10 -1 -letter=G -value=0.000000 -int_value=0 -mantissa=0 -axis_command=2 -here!! -here 2!! -here 3!! -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=X -value=10.000000 -int_value=10 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=Y -value=10.000000 -int_value=10 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -../grbl/grbl_gcode.c:gc_execute_line:383:axis_words=3 -../grbl/grbl_gcode.c:gc_execute_line:384:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:389:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:395 -../grbl/grbl_gcode.c:gc_execute_line:410:gc_parser_flags=0 -../grbl/grbl_gcode.c:gc_execute_line:416:gc_block.modal.feed_rate=0 -../grbl/grbl_gcode.c:gc_execute_line:443:gc_state.feed_rate=20.000000 -../grbl/grbl_motion_control.c:mc_line:33 -ok -../grbl/grbl_gcode.c:gc_execute_line:71:G4P1 -1 -letter=G -value=4.000000 -int_value=4 -mantissa=0 -here 2!! -here 3!! -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=P -value=1.000000 -int_value=1 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -../grbl/grbl_gcode.c:gc_execute_line:383:axis_words=0 -../grbl/grbl_gcode.c:gc_execute_line:384:axis_command=0 -../grbl/grbl_gcode.c:gc_execute_line:389:axis_command=0 -../grbl/grbl_gcode.c:gc_execute_line:395 -../grbl/grbl_gcode.c:gc_execute_line:410:gc_parser_flags=0 -../grbl/grbl_gcode.c:gc_execute_line:416:gc_block.modal.feed_rate=0 -../grbl/grbl_gcode.c:gc_execute_line:443:gc_state.feed_rate=20.000000 -../grbl/grbl_motion_control.c:mc_dwell:200 -ok -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -2022/01/21 12:33:14.308 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=240 fPos=1.112 fActPosition=1.08 time=0.000007 -2022/01/21 12:33:14.508 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64007 fPos=3.548 fActPosition=3.51 time=0.000043 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -2022/01/21 12:33:14.509 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=215 fPos=0.32 fActPosition=0.33 time=0.000006 -2022/01/21 12:33:14.709 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64106 fPos=0.548 fActPosition=0.54 time=0.000012 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_next_block_index:673 -2022/01/21 12:33:14.709 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=204 fPos=0.008 fActPosition=0 time=0.000007 -2022/01/21 12:33:14.909 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64043 fPos=2.452 fActPosition=2.43 time=0.000012 -../grbl/grbl_stepper.c:st_next_block_index:673 -2022/01/21 12:33:14.909 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=286 fPos=2.464 fActPosition=2.46 time=0.000106 -2022/01/21 12:33:15.110 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63875 fPos=7.292 fActPosition=7.47 time=0.000011 -2022/01/21 12:33:15.110 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=453 fPos=7.292 fActPosition=7.47 time=0.000006 -2022/01/21 12:33:15.314 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63790 fPos=9.98 fActPosition=10.02 time=0.003624 -Segment buffer empty!!!!!!!!!!!!!!!!!!!!!../grbl/grbl_stepper.c:st_go_idle:297 -2022/01/21 12:33:15.314 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=552 fPos=10 fActPosition=10.44 time=0.000046 -2022/01/21 12:33:15.514 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63791 fPos=10 fActPosition=9.99 time=0.000010 -2022/01/21 12:33:15.514 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=537 fPos=10 fActPosition=9.99 time=0.000007 -2022/01/21 12:33:15.714 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63792 fPos=10 fActPosition=9.96 time=0.000011 -2022/01/21 12:33:15.714 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=536 fPos=10 fActPosition=9.96 time=0.000007 -2022/01/21 12:33:15.915 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63791 fPos=10 fActPosition=9.99 time=0.000018 -2022/01/21 12:33:15.915 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=537 fPos=10 fActPosition=9.99 time=0.000011 -2022/01/21 12:33:16.115 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63791 fPos=10 fActPosition=9.99 time=0.000018 -2022/01/21 12:33:16.115 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=537 fPos=10 fActPosition=9.99 time=0.000080 -2022/01/21 12:33:16.316 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63791 fPos=10 fActPosition=9.99 time=0.000018 -2022/01/21 12:33:16.316 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=537 fPos=10 fActPosition=9.99 time=0.000012 -2022/01/21 12:33:16.516 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63791 fPos=10 fActPosition=9.99 time=0.000011 -2022/01/21 12:33:16.516 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=437 fPos=7 fActPosition=6.99 time=0.000006 -../grbl/grbl_gcode.c:gc_execute_line:71:G1X10Y0F10 -1 -letter=G -value=1.000000 -int_value=1 -mantissa=0 -axis_command=2 -here!! -here 2!! -here 3!! -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=X -value=10.000000 -int_value=10 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=Y -value=0.000000 -int_value=0 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=F -value=10.000000 -int_value=10 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -../grbl/grbl_gcode.c:gc_execute_line:383:axis_words=3 -../grbl/grbl_gcode.c:gc_execute_line:384:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:389:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:395 -../grbl/grbl_gcode.c:gc_execute_line:410:gc_parser_flags=0 -../grbl/grbl_gcode.c:gc_execute_line:416:gc_block.modal.feed_rate=0 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_gcode.c:gc_execute_line:71:G4P1 -1 -letter=G -value=4.000000 -int_value=4 -mantissa=0 -here 2!! -here 3!! -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=P -value=1.000000 -int_value=1 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -../grbl/grbl_gcode.c:gc_execute_line:383:axis_words=0 -../grbl/grbl_gcode.c:gc_execute_line:384:axis_command=0 -../grbl/grbl_gcode.c:gc_execute_line:389:axis_command=0 -../grbl/grbl_gcode.c:gc_execute_line:395 -../grbl/grbl_gcode.c:gc_execute_line:410:gc_parser_flags=0 -../grbl/grbl_gcode.c:gc_execute_line:416:gc_block.modal.feed_rate=0 -../grbl/grbl_gcode.c:gc_execute_line:443:gc_state.feed_rate=10.000000 -../grbl/grbl_motion_control.c:mc_dwell:200 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_wake_up:266 -ok -ok -2022/01/21 12:33:16.716 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63791 fPos=10 fActPosition=9.99 time=0.000009 -2022/01/21 12:33:16.716 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=336 fPos=3.984 fActPosition=3.96 time=0.000054 -2022/01/21 12:33:16.917 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63791 fPos=10 fActPosition=9.99 time=0.000010 -2022/01/21 12:33:16.917 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=236 fPos=0.984 fActPosition=0.96 time=0.000006 -2022/01/21 12:33:17.117 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63791 fPos=10 fActPosition=9.99 time=0.000010 -2022/01/21 12:33:17.117 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=201 fPos=0 fActPosition=-0.09 time=0.000006 -Segment buffer empty!!!!!!!!!!!!!!!!!!!!!../grbl/grbl_stepper.c:st_go_idle:297 -2022/01/21 12:33:17.317 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63791 fPos=10 fActPosition=9.99 time=0.000011 -2022/01/21 12:33:17.317 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=205 fPos=0 fActPosition=0.03 time=0.000006 -2022/01/21 12:33:17.517 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63790 fPos=10 fActPosition=10.02 time=0.000011 -2022/01/21 12:33:17.518 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=205 fPos=0 fActPosition=0.03 time=0.000006 -2022/01/21 12:33:17.718 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63790 fPos=10 fActPosition=10.02 time=0.000010 -2022/01/21 12:33:17.718 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=205 fPos=0 fActPosition=0.03 time=0.000007 -2022/01/21 12:33:17.918 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=63791 fPos=10 fActPosition=9.99 time=0.000014 -2022/01/21 12:33:17.918 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=205 fPos=0 fActPosition=0.03 time=0.000008 -2022/01/21 12:33:18.118 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63747 fPos=11.32 fActPosition=11.31 time=0.000011 -../grbl/grbl_gcode.c:gc_execute_line:71:G1X50Y50F10 -1 -letter=G -value=1.000000 -int_value=1 -mantissa=0 -axis_command=2 -here!! -here 2!! -here 3!! -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=X -value=50.000000 -int_value=50 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=Y -value=50.000000 -int_value=50 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=F -value=10.000000 -int_value=10 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -../grbl/grbl_gcode.c:gc_execute_line:383:axis_words=3 -../grbl/grbl_gcode.c:gc_execute_line:384:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:389:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:395 -../grbl/grbl_gcode.c:gc_execute_line:410:gc_parser_flags=0 -../grbl/grbl_gcode.c:gc_execute_line:416:gc_block.modal.feed_rate=0 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_gcode.c:gc_execute_line:71:G4P1 -1 -letter=G -value=4.000000 -int_value=4 -mantissa=0 -here 2!! -here 3!! -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=P -value=1.000000 -int_value=1 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -../grbl/grbl_gcode.c:gc_execute_line:383:axis_words=0 -../grbl/grbl_gcode.c:gc_execute_line:384:axis_command=0 -../grbl/grbl_gcode.c:gc_execute_line:389:axis_command=0 -../grbl/grbl_gcode.c:gc_execute_line:395 -../grbl/grbl_gcode.c:gc_execute_line:410:gc_parser_flags=0 -../grbl/grbl_gcode.c:gc_execute_line:416:gc_block.modal.feed_rate=0 -../grbl/grbl_gcode.c:gc_execute_line:443:gc_state.feed_rate=10.000000 -../grbl/grbl_motion_control.c:mc_dwell:200 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_wake_up:266 -ok -ok -2022/01/21 12:33:18.118 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=259 fPos=1.664 fActPosition=1.65 time=0.000083 -2022/01/21 12:33:18.319 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63666 fPos=13.732 fActPosition=13.74 time=0.000011 -2022/01/21 12:33:18.319 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=360 fPos=4.664 fActPosition=4.68 time=0.000006 -2022/01/21 12:33:18.519 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63586 fPos=16.132 fActPosition=16.14 time=0.000012 -2022/01/21 12:33:18.519 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=460 fPos=7.664 fActPosition=7.68 time=0.000006 -2022/01/21 12:33:18.719 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63505 fPos=18.544 fActPosition=18.57 time=0.000011 -2022/01/21 12:33:18.720 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=561 fPos=10.68 fActPosition=10.71 time=0.000006 -2022/01/21 12:33:18.920 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63425 fPos=20.944 fActPosition=20.97 time=0.000010 -2022/01/21 12:33:18.920 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=660 fPos=13.68 fActPosition=13.68 time=0.000006 -2022/01/21 12:33:19.120 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63346 fPos=23.344 fActPosition=23.34 time=0.000011 -2022/01/21 12:33:19.120 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=760 fPos=16.68 fActPosition=16.68 time=0.000006 -2022/01/21 12:33:19.320 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63265 fPos=25.756 fActPosition=25.77 time=0.000011 -2022/01/21 12:33:19.321 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=861 fPos=19.696 fActPosition=19.71 time=0.000006 -2022/01/21 12:33:19.521 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63185 fPos=28.156 fActPosition=28.17 time=0.000010 -2022/01/21 12:33:19.521 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=961 fPos=22.696 fActPosition=22.71 time=0.000006 -2022/01/21 12:33:19.721 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63105 fPos=30.556 fActPosition=30.57 time=0.000011 -2022/01/21 12:33:19.721 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1061 fPos=25.696 fActPosition=25.71 time=0.000007 -2022/01/21 12:33:19.921 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63025 fPos=32.968 fActPosition=32.97 time=0.000011 -2022/01/21 12:33:19.922 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1161 fPos=28.708 fActPosition=28.71 time=0.000006 -2022/01/21 12:33:20.122 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62945 fPos=35.368 fActPosition=35.37 time=0.000011 -2022/01/21 12:33:20.122 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1261 fPos=31.708 fActPosition=31.71 time=0.000006 -2022/01/21 12:33:20.322 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62865 fPos=37.768 fActPosition=37.77 time=0.000011 -2022/01/21 12:33:20.322 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1361 fPos=34.708 fActPosition=34.71 time=0.000006 -2022/01/21 12:33:20.522 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62784 fPos=40.18 fActPosition=40.2 time=0.000057 -2022/01/21 12:33:20.523 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1462 fPos=37.724 fActPosition=37.74 time=0.000007 -2022/01/21 12:33:20.723 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62704 fPos=42.58 fActPosition=42.6 time=0.000010 -2022/01/21 12:33:20.723 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1562 fPos=40.724 fActPosition=40.74 time=0.000006 -2022/01/21 12:33:20.923 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62625 fPos=44.98 fActPosition=44.97 time=0.000011 -2022/01/21 12:33:20.923 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1662 fPos=43.74 fActPosition=43.74 time=0.000110 -2022/01/21 12:33:21.124 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62544 fPos=47.392 fActPosition=47.4 time=0.000012 -2022/01/21 12:33:21.124 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1762 fPos=46.74 fActPosition=46.74 time=0.000007 -2022/01/21 12:33:21.324 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62464 fPos=49.792 fActPosition=49.8 time=0.000010 -2022/01/21 12:33:21.324 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1862 fPos=49.74 fActPosition=49.74 time=0.000007 -2022/01/21 12:33:21.524 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62457 fPos=50 fActPosition=50.01 time=0.000011 -Segment buffer empty!!!!!!!!!!!!!!!!!!!!!../grbl/grbl_stepper.c:st_go_idle:297 -2022/01/21 12:33:21.525 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1871 fPos=50 fActPosition=50.01 time=0.000007 -2022/01/21 12:33:21.725 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=62458 fPos=50 fActPosition=49.98 time=0.000011 -2022/01/21 12:33:21.725 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=1869 fPos=50 fActPosition=49.95 time=0.000006 -2022/01/21 12:33:21.925 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=62458 fPos=50 fActPosition=49.98 time=0.000010 -2022/01/21 12:33:21.925 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=1869 fPos=50 fActPosition=49.95 time=0.000006 -2022/01/21 12:33:22.125 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=62458 fPos=50 fActPosition=49.98 time=0.000024 -2022/01/21 12:33:22.125 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=1870 fPos=50 fActPosition=49.98 time=0.000006 -2022/01/21 12:33:22.326 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=62458 fPos=50 fActPosition=49.98 time=0.000018 -2022/01/21 12:33:22.326 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=1870 fPos=50 fActPosition=49.98 time=0.000009 -2022/01/21 12:33:22.526 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62537 fPos=47.616 fActPosition=47.61 time=0.000020 -../grbl/grbl_gcode.c:gc_execute_line:71:G1X0Y0F10 -1 -letter=G -value=1.000000 -int_value=1 -mantissa=0 -axis_command=2 -here!! -here 2!! -here 3!! -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=X -value=0.000000 -int_value=0 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=Y -value=0.000000 -int_value=0 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -1 -letter=F -value=10.000000 -int_value=10 -mantissa=0 -../grbl/grbl_gcode.c:gc_execute_line:348: -../grbl/grbl_gcode.c:gc_execute_line:383:axis_words=3 -../grbl/grbl_gcode.c:gc_execute_line:384:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:389:axis_command=2 -../grbl/grbl_gcode.c:gc_execute_line:395 -../grbl/grbl_gcode.c:gc_execute_line:410:gc_parser_flags=0 -../grbl/grbl_gcode.c:gc_execute_line:416:gc_block.modal.feed_rate=0 -../grbl/grbl_motion_control.c:mc_line:33 -../grbl/grbl_stepper.c:st_next_block_index:673 -../grbl/grbl_stepper.c:st_wake_up:266 -ok -ok -2022/01/21 12:33:22.527 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1790 fPos=47.6 fActPosition=47.58 time=0.000261 -2022/01/21 12:33:22.727 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62638 fPos=44.6 fActPosition=44.58 time=0.000019 -2022/01/21 12:33:22.727 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1689 fPos=44.6 fActPosition=44.55 time=0.000012 -2022/01/21 12:33:22.927 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62738 fPos=41.584 fActPosition=41.58 time=0.000039 -2022/01/21 12:33:22.928 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1589 fPos=41.584 fActPosition=41.55 time=0.000011 -2022/01/21 12:33:23.128 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62839 fPos=38.584 fActPosition=38.55 time=0.000018 -2022/01/21 12:33:23.129 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1489 fPos=38.572 fActPosition=38.55 time=0.000458 -2022/01/21 12:33:23.329 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=62939 fPos=35.572 fActPosition=35.55 time=0.000018 -2022/01/21 12:33:23.329 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1388 fPos=35.556 fActPosition=35.52 time=0.000088 -2022/01/21 12:33:23.530 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63039 fPos=32.556 fActPosition=32.55 time=0.000021 -2022/01/21 12:33:23.530 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1288 fPos=32.556 fActPosition=32.52 time=0.000010 -2022/01/21 12:33:23.730 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63140 fPos=29.54 fActPosition=29.52 time=0.000120 -2022/01/21 12:33:23.731 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1188 fPos=29.54 fActPosition=29.52 time=0.000010 -2022/01/21 12:33:23.931 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63240 fPos=26.54 fActPosition=26.52 time=0.000015 -2022/01/21 12:33:23.931 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=1088 fPos=26.54 fActPosition=26.52 time=0.000008 -2022/01/21 12:33:24.131 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63340 fPos=23.524 fActPosition=23.52 time=0.000012 -2022/01/21 12:33:24.132 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=987 fPos=23.524 fActPosition=23.49 time=0.000007 -2022/01/21 12:33:24.332 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63440 fPos=20.524 fActPosition=20.52 time=0.000012 -2022/01/21 12:33:24.332 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=888 fPos=20.524 fActPosition=20.52 time=0.000007 -2022/01/21 12:33:24.532 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63540 fPos=17.524 fActPosition=17.52 time=0.000011 -2022/01/21 12:33:24.532 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=787 fPos=17.512 fActPosition=17.49 time=0.000136 -2022/01/21 12:33:24.733 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63641 fPos=14.512 fActPosition=14.49 time=0.000012 -2022/01/21 12:33:24.733 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=687 fPos=14.512 fActPosition=14.49 time=0.000006 -2022/01/21 12:33:24.933 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63741 fPos=11.512 fActPosition=11.49 time=0.000018 -2022/01/21 12:33:24.933 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=587 fPos=11.496 fActPosition=11.49 time=0.000203 -2022/01/21 12:33:25.134 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63841 fPos=8.496 fActPosition=8.49 time=0.000020 -2022/01/21 12:33:25.134 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=487 fPos=8.496 fActPosition=8.49 time=0.000011 -2022/01/21 12:33:25.334 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=63942 fPos=5.48 fActPosition=5.46 time=0.000109 -2022/01/21 12:33:25.335 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=386 fPos=5.48 fActPosition=5.46 time=0.000011 -2022/01/21 12:33:25.535 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64042 fPos=2.48 fActPosition=2.46 time=0.000019 -2022/01/21 12:33:25.535 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=286 fPos=2.464 fActPosition=2.46 time=0.000199 -2022/01/21 12:33:25.736 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64138 fPos=0 fActPosition=-0.42 time=0.000019 -Segment buffer empty!!!!!!!!!!!!!!!!!!!!!../grbl/grbl_stepper.c:st_go_idle:297 -2022/01/21 12:33:25.736 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=190 fPos=0 fActPosition=-0.42 time=0.000013 -2022/01/21 12:33:25.936 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64123 fPos=0 fActPosition=0.03 time=0.000097 -2022/01/21 12:33:25.937 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=205 fPos=0 fActPosition=0.03 time=0.000010 -2022/01/21 12:33:26.137 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64123 fPos=0 fActPosition=0.03 time=0.000027 -2022/01/21 12:33:26.137 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=205 fPos=0 fActPosition=0.03 time=0.000013 -2022/01/21 12:33:26.337 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64123 fPos=0 fActPosition=0.03 time=0.000015 -2022/01/21 12:33:26.338 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=206 fPos=0 fActPosition=0.06 time=0.000010 -2022/01/21 12:33:26.538 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64123 fPos=0 fActPosition=0.03 time=0.000018 -2022/01/21 12:33:26.538 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=205 fPos=0 fActPosition=0.03 time=0.000012 -2022/01/21 12:33:26.739 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64123 fPos=0 fActPosition=0.03 time=0.000268 -2022/01/21 12:33:26.739 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=205 fPos=0 fActPosition=0.03 time=0.000012 -2022/01/21 12:33:26.939 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000021 -2022/01/21 12:33:26.939 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000012 -2022/01/21 12:33:27.139 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64123 fPos=0 fActPosition=0.03 time=0.000020 -2022/01/21 12:33:27.140 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000011 -2022/01/21 12:33:27.340 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000011 -2022/01/21 12:33:27.340 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000006 -2022/01/21 12:33:27.540 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000011 -2022/01/21 12:33:27.540 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000007 -2022/01/21 12:33:27.740 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000011 -2022/01/21 12:33:27.741 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000006 -2022/01/21 12:33:27.941 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000020 -2022/01/21 12:33:27.941 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000009 -2022/01/21 12:33:28.141 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000014 -2022/01/21 12:33:28.141 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000009 -2022/01/21 12:33:28.341 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000015 -2022/01/21 12:33:28.341 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000010 -2022/01/21 12:33:28.542 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64124 fPos=0 fActPosition=0 time=0.000017 -2022/01/21 12:33:28.542 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=204 fPos=0 fActPosition=0 time=0.000009 diff --git a/iocsh/test.script b/iocsh/test.script index 21fe826..748bbe3 100644 --- a/iocsh/test.script +++ b/iocsh/test.script @@ -63,16 +63,16 @@ ${SCRIPTEXEC} ${ecmccfg_DIR}loadPlugin.cmd, "PLUGIN_ID=0,FILE=${ECMC_PLUGIN_FILN epicsEnvUnset(ECMC_PLUGIN_FILNAME) epicsEnvUnset(ECMC_PLUGIN_CONFIG) -ecmcGrblAddCommand("G1X20Y20F20"); +ecmcGrblAddCommand("G1X20Y20F300"); ecmcGrblAddCommand("G4P1"); ecmcGrblAddCommand("G2X0Y0R20"); ecmcGrblAddCommand("G0X10Y10"); ecmcGrblAddCommand("G4P1"); -ecmcGrblAddCommand("G1X10Y0F10"); +ecmcGrblAddCommand("G1X10Y0F200"); ecmcGrblAddCommand("G4P1"); -ecmcGrblAddCommand("G1X50Y50F10"); +ecmcGrblAddCommand("G1X50Y50F300"); ecmcGrblAddCommand("G4P1"); -ecmcGrblAddCommand("G1X0Y0F10"); +ecmcGrblAddCommand("G1X0Y0F180"); # #ecmcGrblAddCommand("$"); #