Files
ecmc_plugin_grbl/iocsh/log.log
2022-01-28 10:05:48 +01:00

3494 lines
255 KiB
Plaintext

registerChannelProviderLocal firstTime true
#
# Start at "2022-W04-Jan28-1004-19-CET"
#
# Version information:
# European Spallation Source ERIC : iocsh.bash (3.4.0-PID-11532)
#
# --->--> 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-11532"
#
# Enable an exit subroutine for sotfioc
dbLoadRecords "/home/pi/epics/base-7.0.5/db/softIocExit.db" "IOC=REQMOD:raspberrypi-11532"
#
# 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 grbl g-code plugin
## https://github.com/anderssandstrom/ecmc_plugin_grbl
## https://github.com/anderssandstrom/e3-ecmc_plugin_grbl
##
## 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 ini2022/01/28 10:04:20.199
ECMC Initializes.............
2022/01/28 10:04:20.199 ESS Open Source EtherCAT Motion Control Epics Module2022/01/28 10:04:20.199
Mode: Configuration
2022/01/28 10:04:20.200 OK
2022/01/28 10:04:20.200 OK
2022/01/28 10:04:20.201 OK
2022/01/28 10:04:20.203 OK
2022/01/28 10:04:20.223 OK
2022/01/28 10:04:20.223 OK
2022/01/28 10:04:20.223 OK
t to motor record
epicsEnvSet("ECMC_AXISCONFIG", "") # 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" 2022/01/28 10:04:20.225 OK
2022/01/28 10:04:20.226 OK
2022/01/28 10:04:20.233 OK
2022/01/28 10:04:20.235 OK
2022/01/28 10:04:20.235 OK
2022/01/28 10:04:20.235 OK
2022/01/28 10:04:20.235 OK
"NELM=1"
epicsEnvSet("ECMC_EC_HWTYPE" "EK1100")
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.EcAddEn2022/01/28 10:04:20.235 OK
2022/01/28 10:04:20.235 OK
2022/01/28 10:04:20.236 OK
2022/01/28 10:04:20.236 OK
2022/01/28 10:04:20.244 OK
2022/01/28 10:04:20.245 OK
2022/01/28 10:04:20.245 OK
2022/01/28 10:04:20.246 OK
2022/01/28 10:04:20.246 OK
2022/01/28 10:04:20.246 OK
2022/01/28 10:04:20.246 OK
tryDT(1,0x2,0x03fa3052,2,0,0x1a04,0x6040,0x1,B1,binaryInput05)"
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,binaryOutp2022/01/28 10:04:20.246 OK
2022/01/28 10:04:20.246 OK
2022/01/28 10:04:20.256 OK
2022/01/28 10:04:20.352 OK
2022/01/28 10:04:20.432 14385
2022/01/28 10:04:20.433 OK
2022/01/28 10:04:20.433 OK
2022/01/28 10:04:20.433 OK
2022/01/28 10:04:20.433 OK
2022/01/28 10:04:20.433 OK
ut07)"
ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af83052,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/re2022/01/28 10:04:20.441 OK
2022/01/28 10:04:20.532 OK
2022/01/28 10:04:20.612 14385
2022/01/28 10:04:20.613 OK
2022/01/28 10:04:20.613 OK
2022/01/28 10:04:20.613 OK
2022/01/28 10:04:20.613 OK
2022/01/28 10:04:20.613 OK
quire/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=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"
#=======================================================================2022/01/28 10:04:20.623 OK
2022/01/28 10:04:20.624 OK
2022/01/28 10:04:20.625 OK
=======
# ecmcmXsXXX.cmd
ecmcEpicsEnvSetCalc("sid", "4","%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", "",2022/01/28 10:04:20.635 OK
2022/01/28 10:04:20.637 OK
2022/01/28 10:04:20.638 OK
2022/01/28 10:04:20.638 OK
2022/01/28 10:04:20.638 OK
2022/01/28 10:04:20.638 OK
2022/01/28 10:04:20.638 OK
2022/01/28 10:04:20.639 OK
2022/01/28 10:04:20.639 OK
"#- ")
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: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/28 10:04:20.655 OK
2022/01/28 10:04:20.782 OK
2022/01/28 10:04:20.862 12848
2022/01/28 10:04:20.863 OK
2022/01/28 10:04:20.863 OK
2022/01/28 10:04:20.863 OK
2022/01/28 10:04:20.864 OK
2022/01/28 10:04:20.864 OK
2022/01/28 10:04:20.864 OK
2022/01/28 10:04:20.864 OK
2022/01/28 10:04:20.864 OK
2022/01/28 10:04:20.864 OK
2022/01/28 10:04:20.864 OK
2022/01/28 10:04:20.864 OK
2022/01/28 10:04:20.864 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-")
epicsE2022/01/28 10:04:20.874 OK
2022/01/28 10:04:20.874 OK
2022/01/28 10:04:20.874 OK
2022/01/28 10:04:20.874 OK
2022/01/28 10:04:20.874 OK
2022/01/28 10:04:20.874 OK
nvUnset(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: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"
#==============================================================2022/01/28 10:04:20.877 OK
2022/01/28 10:04:20.992 OK
2022/01/28 10:04:21.072 12848
2022/01/28 10:04:21.073 OK
2022/01/28 10:04:21.073 OK
2022/01/28 10:04:21.073 OK
2022/01/28 10:04:21.074 OK
2022/01/28 10:04:21.074 OK
2022/01/28 10:04:21.074 OK
2022/01/28 10:04:21.074 OK
2022/01/28 10:04:21.074 OK
2022/01/28 10:04:21.074 OK
2022/01/28 10:04:21.074 OK
2022/01/28 10:04:21.074 OK
2022/01/28 10:04:21.074 OK
================
# addSlave.cmd
epicsEnvSet("ECMC_EC_SLAVE_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}
e2022/01/28 10:04:21.084 OK
2022/01/28 10:04:21.084 OK
2022/01/28 10:04:21.084 OK
2022/01/28 10:04:21.084 OK
2022/01/28 10:04:21.084 OK
2022/01/28 10:04:21.084 OK
2022/01/28 10:04:21.085 OK
2022/01/28 10:04:21.085 OK
2022/01/28 10:04:21.085 OK
2022/01/28 10:04:21.085 OK
2022/01/28 10:04:21.085 OK
2022/01/28 10:04:21.085 OK
2022/01/28 10:04:21.085 OK
2022/01/28 10:04:21.085 OK
2022/01/28 10:04:21.085 OK
cmcFileExist("/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(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" "1") # 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
ecmcEpicsEnvSetCalcTe2022/01/28 10:04:21.095 OK
2022/01/28 10:04:21.096 OK
2022/01/28 10:04:21.096 OK
2022/01/28 10:04:21.096 OK
2022/01/28 10:04:21.098 OK
2022/01/28 10:04:21.098 OK
2022/01/28 10:04:21.098 OK
2022/01/28 10:04:21.098 OK
2022/01/28 10:04:21.098 OK
2022/01/28 10:04:21.098 OK
2022/01/28 10:04:21.098 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.099 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.100 OK
2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.101 OK
rnary(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_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,1)"
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")"
ecmcConf2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.101 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.102 OK
2022/01/28 10:04:21.103 OK
2022/01/28 10:04:21.103 OK
2022/01/28 10:04:21.103 OK
2022/01/28 10:04:21.103 OK
2022/01/28 10:04:21.103 OK
2022/01/28 10:04:21.103 OK
2022/01/28 10:04:21.103 OK
2022/01/28 10:04:21.103 OK
2022/01/28 10:04:21.103 OK
2022/01/28 10:04:21.103 OK
2022/01/28 10:04:21.104 OK
2022/01/28 10:04:21.104 OK
2022/01/28 10:04:21.104 ecmcMotorRecord:: setIntegerParam(1 motorPowerAutoOnOff_)=2
2022/01/28 10:04:21.104 ecmcMotorRecord:: setDoubleParam(1 motorPowerOnDelay_)=6
2022/01/28 10:04:21.104 ecmcMotorRecord:: setDoubleParam(1 motorPowerOffDelay_=-1
2022/01/28 10:04:21.105 ecmcMotorRecord:: udateMotorLimitsRO(1) enabledHighAndLow=1 valid=1 fValueHigh=130 fValueLow=-20
2022/01/28 10:04:21.105 ecmcMotorRecord:: connected(1)
2022/01/28 10:04:21.105 ecmcMotorRecord:: initialPoll(1) status=0
igOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveControl01.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)macLib: 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})
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)
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", 2022/01/28 10:04:21.115 OK
2022/01/28 10:04:21.115 OK
2022/01/28 10:04:21.115 OK
2022/01/28 10:04:21.115 OK
2022/01/28 10:04:21.115 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.116 OK
2022/01/28 10:04:21.117 OK
"")
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(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 value2022/01/28 10:04:21.127 OK
2022/01/28 10:04:21.127 OK
2022/01/28 10:04:21.128 OK
2022/01/28 10:04:21.128 OK
2022/01/28 10:04:21.130 OK
2022/01/28 10:04:21.130 OK
2022/01/28 10:04:21.130 OK
2022/01/28 10:04:21.130 OK
2022/01/28 10:04:21.130 OK
2022/01/28 10:04:21.130 OK
2022/01/28 10:04:21.130 OK
2022/01/28 10:04:21.130 OK
2022/01/28 10:04:21.130 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.131 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.132 OK
2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.133 OK
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(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.SetAxisDrvBr2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.133 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.134 OK
2022/01/28 10:04:21.135 OK
2022/01/28 10:04:21.135 OK
2022/01/28 10:04:21.135 OK
2022/01/28 10:04:21.135 OK
2022/01/28 10:04:21.135 OK
2022/01/28 10:04:21.135 OK
2022/01/28 10:04:21.135 OK
2022/01/28 10:04:21.135 OK
2022/01/28 10:04:21.135 OK
2022/01/28 10:04:21.136 ecmcMotorRecord:: setIntegerParam(2 motorPowerAutoOnOff_)=2
2022/01/28 10:04:21.136 ecmcMotorRecord:: setDoubleParam(2 motorPowerOnDelay_)=6
2022/01/28 10:04:21.136 ecmcMotorRecord:: setDoubleParam(2 motorPowerOffDelay_=-1
2022/01/28 10:04:21.136 ecmcMotorRecord:: udateMotorLimitsRO(2) enabledHighAndLow=1 valid=1 fValueHigh=20 fValueLow=-130
2022/01/28 10:04:21.136 ecmcMotorRecord:: connected(2)
2022/01/28 10:04:21.136 ecmcMotorRecord:: initialPoll(2) status=0
akeCloseAheadTime(2,0)"
ecmcConfigOrDie "Cfg.SetAxisSoftLimitPosBwd(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)
epicmacLib: 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/28 10:04:21.148 OK
2022/01/28 10:04:21.148 OK
sEnvUnset(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_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)"
e2022/01/28 10:04:21.148 OK
2022/01/28 10:04:21.148 OK
2022/01/28 10:04:21.148 OK
2022/01/28 10:04:21.148 OK
2022/01/28 10:04:21.148 OK
2022/01/28 10:04:21.148 OK
2022/01/28 10:04:21.148 OK
2022/01/28 10:04:21.149 OK
2022/01/28 10:04:21.149 OK
2022/01/28 10:04:21.149 OK
2022/01/28 10:04:21.149 OK
2022/01/28 10:04:21.149 OK
2022/01/28 10:04:21.149 OK
2022/01/28 10:04:21.149 OK
2022/01/28 10:04:21.149 OK
2022/01/28 10:04:21.149 OK
epicsMutex pthread_mutex_unlock epicsMutexOsdUnlock failed: error Operation not permitted
epicsMutex pthread_mutex_unlock epicsMutexOsdUnlock failed: error Operation not permitted
cmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=var a:=1|"
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.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;AUTO_START=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;AUTO_START=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;AUTO_START=1;)"
../ecmc_plugin_grbl/ecmcGrbl.cpp:doMainWorker:389
../grbl/grbl_serial.c:serial_init:108:
../grbl/grbl_eeprom.c:ecmc_init_file:53
GRBL: INFO: Waiting for grbl init..../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:274
../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:605:
../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_spin2022/01/28 10:04:21.355 OK
2022/01/28 10:04:21.356 OK
dle_control.c:spindle_init:31 Not supported yet..
../grbl/grbl_coolant_control.c:coolant_init:25 Not supported yet..
../grbl/grbl_limits.c:limits_init:44 Not supported yet..
../grbl/grbl_probe.c:probe_init:31 Not supported yet..
../grbl/grbl_stepper.c:st_reset:572:
../grbl/grbl_stepper.c:st_go_idle:259:
../grbl/grbl_stepper.c:st_generate_step_dir_invert_masks:550:
../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: INFO: Ready for commands:
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=<axis id>: Ecmc Axis id for use as grbl X axis, default = disabled (=-1).
Y_AXIS=<axis id>: Ecmc Axis id for use as grbl Y axis, default = disabled (=-1).
Z_AXIS=<axis id>: Ecmc Axis id for use as grbl Z axis, default = disabled (=-1).
SPINDLE_AXIS=<axis id>: 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).
AUTO_START=<1/0>: Auto start g-code at ecmc 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;AUTO_START=1;
Version = 2
Interface version = 65536 (ecmc = 65536)
max plc funcs = 64
max plc func args = 10
max plc consts = 64
Construct func = @0xb4e5daa4
Enter realtime func = @0xb4e5da1c
Exit realtime func = @0xb4e5d9e8
Realtime func = @0xb4e5da18
Destruct func = @0xb4e5d9f0
dlhandle = @0x1fd8b10
Plc functions:
funcs[00]:
Name = "grbl_set_execute(arg0);"
Desc = double grbl_set_execute(<exe>) : Trigg execution of loaded g-code at positive edge of <exe>
Arg count = 1
func = @0xb4e5da20
funcs[01]:
Name = "grbl_mc_halt(arg0);"
Desc = double grbl_mc_halt(<halt>) : Halt grbl motion at positive edge of <halt>
Arg count = 1
func = @0xb4e5da3c
funcs[02]:
Name = "grbl_mc_resume(arg0);"
Desc = double grbl_mc_resume(<resume>) : Resume halted grbl motion at positive edge of <resume>
Arg count = 1
func = @0xb4e5da58
funcs[03]:
Name = "grbl_mc_reset(arg0);"
Desc = double grbl_mc_reset(<reset>) : Reset grbl at positive edge of <reset>
Arg count = 1
func = @0xb4e5da74
funcs[04]:
Name = "grbl_get_busy();"
Desc = double grbl_get_busy() : Get grbl system busy
Arg count = 0
func = @0xb4e5da90
Plc constants:
epicsEnvUnset(ECMC_PLUGIN_REPORT);
epicsEnvUnset(ECMC_PLUGIN_FILNAME)
epicsEnvUnset(ECMC_PLUGIN_CONFIG)
ecmcGrblAddCommand("G1X20Y20F360");
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:737:
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:744:GRBL: INFO: Buffer size 1
ecmcGrblAddCommand("G4P2");
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:737:
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:744:GRBL: INFO: Buffer size 2
ecmcGrblAddCommand("G2X0Y0R20");
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:737:
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:744:GRBL: INFO: Buffer size 3
ecmcGrblAddCommand("G4P2");
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:737:
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:744:GRBL: INFO: Buffer size 4
ecmcGrblAddCommand("G0X10Y10");
../ecmc_plugin_grbl/ecmcGrbl.cpp:ad
#
# Test of GRBL plugin for g-code parsing
#
println('GRBL busy:', grbl_get_busy());
if(not(grbl_get_busy())) {
println('Retrigger g-code!!');
grbl_set_execute(0);
grbl_set_execute(1);
};
2022/01/28 10:04:21.386 OK
2022/01/28 10:04:21.386 OK
2022/01/28 10:04:21.398 OK
2022/01/28 10:04:21.398 OK
2022/01/28 10:04:21.398 OK
2022/01/28 10:04:21.398 OK
2022/01/28 10:04:21.398 OK
2022/01/28 10:04:21.398 OK
2022/01/28 10:04:21.403 INFO: Locking memory
2022/01/28 10:04:21.504 ../devEcmcSup/motion/ecmcMonitor.cpp/checkLimits:501: ERROR_MON_BOTH_LIMIT_INTERLOCK (0x14c10).
2022/01/28 10:04:21.504 ../devEcmcSup/motion/ecmcAxisReal.cpp/execute:185: ERROR_AXIS_HARDWARE_STATUS_NOT_OK (0x14315).
2022/01/28 10:04:21.504 ../devEcmcSup/motion/ecmcMonitor.cpp/checkLimits:501: ERROR_MON_BOTH_LIMIT_INTERLOCK (0x14c10).
2022/01/28 10:04:21.504 ../devEcmcSup/motion/ecmcAxisReal.cpp/execute:185: ERROR_AXIS_HARDWARE_STATUS_NOT_OK (0x14315).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 0: Not operational (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 1: Not operational (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 2: Not operational (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 3: Not operational (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 4: Not operational (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 5: Not operational (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 6: Not operational (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011).
2022/01/28 10:04:21.504 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 8: Not operational (0x24011).
2022/01/28 10:04:21.505 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011).
2022/01/28 10:04:21.505 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:374: ERROR: Slave 9: Not operational (0x24011).
2022/01/28 10:04:21.505 ../devEcmcSup/ethercat/ecmcEcSlave.cpp/checkConfigState:379: ERROR_EC_SLAVE_NOT_OPERATIONAL (0x24011).
2022/01/28 10:04:21.593 Starting up EtherCAT bus: 0 second(s). Max wait time 30 second(s).
2022/01/28 10:04:21.599 ecmcMotorRecord:: poll(1) homed=1
2022/01/28 10:04:21.599 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000071
2022/01/28 10:04:21.600 ecmcMotorRecord:: poll(1) bError=1 drvlocal.statusBinData.onChangeData.error=0x14315
2022/01/28 10:04:21.600 ecmcMotorRecord:: sErrorMessage(1)="ERROR_AXIS_HARDWARE_STATUS_NOT_OK"
2022/01/28 10:04:21.600 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/28 10:04:21.600 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000014
2022/01/28 10:04:21.600 ecmcMotorRecord:: poll(2) bError=1 drvlocal.statusBinData.onChangeData.error=0x14315
2022/01/28 10:04:21.600 ecmcMotorRecord:: sErrorMessage(2)="ERROR_AXIS_HARDWARE_STATUS_NOT_OK"
2022/01/28 10:04:21.600 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/28 10:04:21.800 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000009
2022/01/28 10:04:21.800 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000005
2022/01/28 10:04:22.000 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/28 10:04:22.001 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=0 fPos=0 fActPosition=0 time=0.000021
2022/01/28 10:04:22.201 ecmcMotorRecord:: poll(1) LLS=0
2022/01/28 10:04:22.201 ecmcMotorRecord:: poll(1) HLS=0
2022/01/28 10:04:22.201 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000084
2022/01/28 10:04:22.201 ecmcMotorRecord:: poll(2) LLS=0
2022/01/28 10:04:22.201 ecmcMotorRecord:: poll(2) HLS=0
2022/01/28 10:04:22.201 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=6.84 time=0.000042
2022/01/28 10:04:22.401 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000012
2022/01/28 10:04:22.401 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=6.84 time=0.000006
2022/01/28 10:04:22.413 ../devEcmcSup/motion/ecmcDriveBase.cpp/readEntries:328: WARNING (axis 1): Drive hardware in warning state.
2022/01/28 10:04:22.593 Starting up EtherCAT bus: 1 second(s). Max wait time 30 second(s).
2022/01/28 10:04:22.601 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000012
2022/01/28 10:04:22.601 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=6.84 time=0.000007
2022/01/28 10:04:22.644 ../devEcmcSup/motion/ecmcDriveBase.cpp/readEntries:328: WARNING (axis 2): Drive hardware in warning state.
2022/01/28 10:04:22.801 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000011
2022/01/28 10:04:22.801 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=6.84 time=0.000006
2022/01/28 10:04:23.002 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000087
2022/01/28 10:04:23.002 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=6.84 time=0.000006
2022/01/28 10:04:23.008 ../devEcmcSup/main/ecmcError.cpp/errorReset:103: NO_ERROR (0x0).
2022/01/28 10:04:23.008 ../devEcmcSup/main/ecmcError.cpp/errorReset:103: NO_ERROR (0x0).
2022/01/28 10:04:23.008 ../devEcmcSup/main/ecmcError.cpp/errorReset:103: NO_ERROR (0x0).
2022/01/28 10:04:23.008 ../devEcmcSup/main/ecmcError.cpp/errorReset:103: NO_ERROR (0x0).
2022/01/28 10:04:23.008 ../devEcmcSup/main/ecmcError.cpp/errorReset:103: NO_ERROR (0x0).
2022/01/28 10:04:23.202 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000014
2022/01/28 10:04:23.202 ecmcMotorRecord:: poll(1) bError=0 drvlocal.statusBinData.onChangeData.error=0x0
2022/01/28 10:04:23.202 ecmcMotorRecord:: poll(1) callParamCallbacksUpdateError Error=0 old=1 ErrID=0x0 old=0x14315 Warn=0 nCmd=0 old=0 txt=NULL
2022/01/28 10:04:23.202 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000010
2022/01/28 10:04:23.202 ecmcMotorRecord:: poll(2) bError=0 drvlocal.statusBinData.onChangeData.error=0x0
2022/01/28 10:04:23.202 ecmcMotorRecord:: poll(2) callParamCallbacksUpdateError Error=4 old=1 ErrID=0x0 old=0x14315 Warn=0 nCmd=0 old=0 txt=NULL
2022/01/28 10:04:23.402 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000015
2022/01/28 10:04:23.402 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000008
2022/01/28 10:04:23.603 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000015
2022/01/28 10:04:23.603 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000008
2022/01/28 10:04:23.803 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000014
2022/01/28 10:04:23.803 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000007
2022/01/28 10:04:24.003 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000013
2022/01/28 10:04:24.003 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:04:24.203 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000013
2022/01/28 10:04:24.203 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:24.404 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000012
2022/01/28 10:04:24.404 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000007
2022/01/28 10:04:24.593 EtherCAT bus started!
2022/01/28 10:04:24.593 OK
2022/01/28 10:04:24.594 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAtIocBuild (0). Allow callbacks: true.
Starting iocInit
2022/01/28 10:04:24.594 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAtBeginning (1). Allow callbacks: true.
2022/01/28 10:04:24.604 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000015
2022/01/28 10:04:24.604 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000010
2022/01/28 10:04:24.616 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterCallbackInit (2). Allow callbacks: true.
2022/01/28 10:04:24.626 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterCaLinkInit (3). Allow callbacks: true.
2022/01/28 10:04:24.626 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInitDrvSup (4). Allow callbacks: true.
2022/01/28 10:04:24.627 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInitRecSup (5). Allow callbacks: true.
2022/01/28 10:04:24.634 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInitDevSup (6). Allow callbacks: true.
2022/01/28 10:04:24.642 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.positionActual01 linked to record (asyn reason 1).
2022/01/28 10:04:24.642 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.encoderLatchPostion01 linked to record (asyn reason 2).
2022/01/28 10:04:24.643 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.encoderControl01 linked to record (asyn reason 3).
2022/01/28 10:04:24.643 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.encoderValue01 linked to record (asyn reason 4).
2022/01/28 10:04:24.644 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.positionActual01 linked to record (asyn reason 5).
2022/01/28 10:04:24.644 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.encoderLatchPostion01 linked to record (asyn reason 6).
2022/01/28 10:04:24.645 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.encoderControl01 linked to record (asyn reason 7).
2022/01/28 10:04:24.646 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.encoderValue01 linked to record (asyn reason 8).
2022/01/28 10:04:24.646 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.timestampLatchPositive01 linked to record (asyn reason 9).
2022/01/28 10:04:24.646 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.timestampLatchNegative01 linked to record (asyn reason 10).
2022/01/28 10:04:24.647 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.timestampLatchPositive02 linked to record (asyn reason 11).
2022/01/28 10:04:24.648 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.timestampLatchNegative02 linked to record (asyn reason 12).
2022/01/28 10:04:24.648 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.driveControl01 linked to record (asyn reason 13).
2022/01/28 10:04:24.649 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.velocitySetpoint01 linked to record (asyn reason 14).
2022/01/28 10:04:24.650 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.positionActual01 linked to record (asyn reason 15).
2022/01/28 10:04:24.650 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.encoderLatchPostion01 linked to record (asyn reason 16).
2022/01/28 10:04:24.651 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.encoderControl01 linked to record (asyn reason 17).
2022/01/28 10:04:24.651 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.encoderValue01 linked to record (asyn reason 18).
2022/01/28 10:04:24.652 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.driveControl01 linked to record (asyn reason 19).
2022/01/28 10:04:24.652 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.velocitySetpoint01 linked to record (asyn reason 20).
2022/01/28 10:04:24.653 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.positionActual01 linked to record (asyn reason 21).
2022/01/28 10:04:24.653 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.encoderLatchPostion01 linked to record (asyn reason 22).
2022/01/28 10:04:24.654 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.encoderControl01 linked to record (asyn reason 23).
2022/01/28 10:04:24.654 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.encoderValue01 linked to record (asyn reason 24).
2022/01/28 10:04:24.656 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.actpos linked to record (asyn reason 25).
2022/01/28 10:04:24.657 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.setpos linked to record (asyn reason 26).
2022/01/28 10:04:24.657 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.poserr linked to record (asyn reason 27).
2022/01/28 10:04:24.658 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax1.plc.error linked to record (asyn reason 28).
2022/01/28 10:04:24.660 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.actpos linked to record (asyn reason 29).
2022/01/28 10:04:24.660 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.setpos linked to record (asyn reason 30).
2022/01/28 10:04:24.661 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.poserr linked to record (asyn reason 31).
2022/01/28 10:04:24.662 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax2.plc.error linked to record (asyn reason 32).
2022/01/28 10:04:24.663 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.plc0.scantime linked to record (asyn reason 33).
2022/01/28 10:04:24.664 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.plc0.error linked to record (asyn reason 34).
2022/01/28 10:04:24.666 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.appmode linked to record (asyn reason 35).
2022/01/28 10:04:24.667 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.error.id linked to record (asyn reason 36).
2022/01/28 10:04:24.668 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.latency.min linked to record (asyn reason 37).
2022/01/28 10:04:24.670 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.latency.max linked to record (asyn reason 38).
2022/01/28 10:04:24.672 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.period.min linked to record (asyn reason 39).
2022/01/28 10:04:24.674 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.period.max linked to record (asyn reason 40).
2022/01/28 10:04:24.676 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.execute.min linked to record (asyn reason 41).
2022/01/28 10:04:24.678 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.execute.max linked to record (asyn reason 42).
2022/01/28 10:04:24.679 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.send.min linked to record (asyn reason 43).
2022/01/28 10:04:24.681 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.thread.send.max linked to record (asyn reason 44).
2022/01/28 10:04:24.683 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput01 linked to record (asyn reason 45).
2022/01/28 10:04:24.684 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput02 linked to record (asyn reason 46).
2022/01/28 10:04:24.686 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput03 linked to record (asyn reason 47).
2022/01/28 10:04:24.688 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput04 linked to record (asyn reason 48).
2022/01/28 10:04:24.690 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput05 linked to record (asyn reason 49).
2022/01/28 10:04:24.692 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput06 linked to record (asyn reason 50).
2022/01/28 10:04:24.694 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput07 linked to record (asyn reason 51).
2022/01/28 10:04:24.695 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.binaryInput08 linked to record (asyn reason 52).
2022/01/28 10:04:24.697 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput01 linked to record (asyn reason 53).
2022/01/28 10:04:24.699 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput02 linked to record (asyn reason 54).
2022/01/28 10:04:24.703 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput03 linked to record (asyn reason 55).
2022/01/28 10:04:24.706 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput04 linked to record (asyn reason 56).
2022/01/28 10:04:24.708 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput05 linked to record (asyn reason 57).
2022/01/28 10:04:24.709 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput06 linked to record (asyn reason 58).
2022/01/28 10:04:24.711 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput07 linked to record (asyn reason 59).
2022/01/28 10:04:24.713 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.binaryOutput08 linked to record (asyn reason 60).
2022/01/28 10:04:24.715 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s5.powerOk01 linked to record (asyn reason 61).
2022/01/28 10:04:24.718 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s5.overload01 linked to record (asyn reason 62).
2022/01/28 10:04:24.720 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.binaryInput01 linked to record (asyn reason 63).
2022/01/28 10:04:24.722 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.binaryInput02 linked to record (asyn reason 64).
2022/01/28 10:04:24.725 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax1.plc.enable linked to record (asyn reason 65).
2022/01/28 10:04:24.728 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax1.plc.firstscan linked to record (asyn reason 66).
2022/01/28 10:04:24.731 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax2.plc.enable linked to record (asyn reason 67).
2022/01/28 10:04:24.734 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.ax2.plc.firstscan linked to record (asyn reason 68).
2022/01/28 10:04:24.738 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.ok linked to record (asyn reason 69).
2022/01/28 10:04:24.742 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.diagnostic linked to record (asyn reason 70).
2022/01/28 10:04:24.744 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.plc.expression linked to record (asyn reason 71).
2022/01/28 10:04:24.746 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.diagnostic linked to record (asyn reason 72).
2022/01/28 10:04:24.747 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.plc.expression linked to record (asyn reason 73).
2022/01/28 10:04:24.749 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.error.msg linked to record (asyn reason 74).
2022/01/28 10:04:24.751 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.updated linked to record (asyn reason 75).
2022/01/28 10:04:24.753 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.command linked to record (asyn reason 76).
2022/01/28 10:04:24.757 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.command linked to record (asyn reason 77).
dCommand:737:
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:744:GRBL: INFO: Buffer size 5
ecmcGrblAddCommand("G4P2");
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:737:
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:744:GRBL: INFO: Buffer size 6
ecmcGrblAddCommand("G1X0Y0");
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:737:
../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:744:GRBL: INFO: Buffer size 7
#ecmcGrblAddCommand("G2X0adadsdY0R20");
#ecmcGrblAddCommand("G1X0Y20");
#ecmcGrblAddCommand("G1X10Y0F360");
#ecmcGrblAddCommand("G4P1");
#ecmcGrblAddCommand("G1X50Y50F180");
#ecmcGrblAddCommand("G1X0Y0");
##############################################################################
## PLC 0
iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/loadPLCFile.cmd, "PLC_ID=0, SAMPLE_RATE_MS=1000,FILE=./plc/grbl.plc")
#==============================================================================
# loadPLCFile.cmd
epicsEnvSet("ECMC_PLC_ID", "0")
ecmcEpicsEnvSetCalc(ECMC_PLC_RATE_, "1000/1000", "%f")
epicsEnvSet("ECMC_PLC_SAMPLE_RATE_MS", "1000")
ecmcEpicsEnvSetCalcTernary(ECMC_PLC_SAMPLE_RATE_MS, "1000>0", "1000","1.000000")
epicsEnvUnset(ECMC_PLC_RATE_) # clean up, temp variable
epicsEnvSet("ECMC_TMP_FILE", "/tmp/PLC0.plc")
ecmcFileExist("./plc/grbl.plc",1)
system "msi -V -M 'EMPTY' -o /tmp/PLC0.plc ./plc/grbl.plc"
ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD, 1=1,"", "#-" )
########### Parsed PLC file:
system "cat /tmp/PLC0.plc"
############ PLC file end
#
epicsEnvUnset(ECMC_EXE_CMD)
ecmcFileExist("/tmp/PLC0.plc",1)
ecmcConfigOrDie "Cfg.CreatePLC(0,1000)"
ecmcConfigOrDie "Cfg.LoadPLCFile(0,/tmp/PLC0.plc)"
system "rm -f /tmp/PLC0.plc"
ecmcFileExist(ecmcPlc.substitutions,1,1)
ecmcEpicsEnvSetCalc(ECMC_PLC_ID_2_CHARS, "0", "%02d")
dbLoadTemplate(ecmcPlc.substitutions, "PORT=MC_CPU1,A=0,Index=0,Name=IOC_TEST:,Index2Char=00,T_SMP_MS=10")
epicsEnvUnset(ECMC_PLC_ID_2_CHARS)
##############################################################################
############# 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 <level> or asynReport <level>
# ecmcReport 3
# ecmcGrepParam <pattern>
# 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)"
GRBL busy: 1.00000
GRBL busy: 1.00000
#asynSetTraceMask(MC_CPU1, -1, 0x41)
# Note need to test 0x21 later..
#asynSetTraceMask(MC_CPU1, -1, 0x21)
asynSetTraceMask(MC_CPU1, -1, 0x41)
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/28 10:04:24.760 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s0.ONE linked to record (asyn reason 78).
2022/01/28 10:04:24.763 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s0.ZERO linked to record (asyn reason 79).
2022/01/28 10:04:24.766 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.ONE linked to record (asyn reason 80).
2022/01/28 10:04:24.769 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.ZERO linked to record (asyn reason 81).
2022/01/28 10:04:24.773 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.ONE linked to record (asyn reason 82).
2022/01/28 10:04:24.776 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.ZERO linked to record (asyn reason 83).
2022/01/28 10:04:24.779 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.ONE linked to record (asyn reason 84).
2022/01/28 10:04:24.781 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.ZERO linked to record (asyn reason 85).
2022/01/28 10:04:24.784 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.ONE linked to record (asyn reason 86).
2022/01/28 10:04:24.787 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.ZERO linked to record (asyn reason 87).
2022/01/28 10:04:24.790 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s5.ONE linked to record (asyn reason 88).
2022/01/28 10:04:24.793 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s5.ZERO linked to record (asyn reason 89).
2022/01/28 10:04:24.796 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.ONE linked to record (asyn reason 90).
2022/01/28 10:04:24.799 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.ZERO linked to record (asyn reason 91).
2022/01/28 10:04:24.802 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.ONE linked to record (asyn reason 92).
2022/01/28 10:04:24.804 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000014
2022/01/28 10:04:24.804 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000008
2022/01/28 10:04:24.805 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.ZERO linked to record (asyn reason 93).
2022/01/28 10:04:24.808 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.ONE linked to record (asyn reason 94).
2022/01/28 10:04:24.812 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.ZERO linked to record (asyn reason 95).
2022/01/28 10:04:24.816 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.cmddata linked to record (asyn reason 96).
2022/01/28 10:04:24.819 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.cmddata linked to record (asyn reason 97).
2022/01/28 10:04:24.822 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s0.slavestatus linked to record (asyn reason 98).
2022/01/28 10:04:24.824 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s1.slavestatus linked to record (asyn reason 99).
2022/01/28 10:04:24.827 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s2.slavestatus linked to record (asyn reason 100).
2022/01/28 10:04:24.830 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.slavestatus linked to record (asyn reason 101).
2022/01/28 10:04:24.833 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.slavestatus linked to record (asyn reason 102).
2022/01/28 10:04:24.835 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s5.slavestatus linked to record (asyn reason 103).
2022/01/28 10:04:24.838 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.slavestatus linked to record (asyn reason 104).
2022/01/28 10:04:24.841 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.slavestatus linked to record (asyn reason 105).
2022/01/28 10:04:24.844 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.slavestatus linked to record (asyn reason 106).
2022/01/28 10:04:24.847 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.status linked to record (asyn reason 107).
2022/01/28 10:04:24.849 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.errorid linked to record (asyn reason 108).
2022/01/28 10:04:24.853 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.status linked to record (asyn reason 109).
2022/01/28 10:04:24.855 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.errorid linked to record (asyn reason 110).
2022/01/28 10:04:24.858 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.masterstatus linked to record (asyn reason 111).
2022/01/28 10:04:24.861 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.slavecounter linked to record (asyn reason 112).
2022/01/28 10:04:24.863 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.memmapcounter linked to record (asyn reason 113).
2022/01/28 10:04:24.867 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.domainfailcountertotal linked to record (asyn reason 114).
2022/01/28 10:04:24.869 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.entrycounter linked to record (asyn reason 115).
2022/01/28 10:04:24.872 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.domainstatus linked to record (asyn reason 116).
2022/01/28 10:04:24.876 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.control linked to record (asyn reason 117).
2022/01/28 10:04:24.879 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.control linked to record (asyn reason 118).
2022/01/28 10:04:24.884 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s3.encoderStatus01 linked to record (asyn reason 119).
2022/01/28 10:04:24.888 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s4.encoderStatus01 linked to record (asyn reason 120).
2022/01/28 10:04:24.892 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.status01 linked to record (asyn reason 121).
2022/01/28 10:04:24.896 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s6.status02 linked to record (asyn reason 122).
2022/01/28 10:04:24.900 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.driveStatus01 linked to record (asyn reason 123).
2022/01/28 10:04:24.903 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s8.encoderStatus01 linked to record (asyn reason 124).
2022/01/28 10:04:24.907 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.driveStatus01 linked to record (asyn reason 125).
2022/01/28 10:04:24.911 ecmcAsynPortDriver:drvUserCreate: Parameter ec0.s9.encoderStatus01 linked to record (asyn reason 126).
2022/01/28 10:04:24.958 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.targpos linked to record (asyn reason 127).
2022/01/28 10:04:24.963 ecmcAsynPortDriver:drvUserCreate: Parameter ax1.targvelo linked to record (asyn reason 128).
2022/01/28 10:04:24.970 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.targpos linked to record (asyn reason 129).
2022/01/28 10:04:24.975 ecmcAsynPortDriver:drvUserCreate: Parameter ax2.targvelo linked to record (asyn reason 130).
2022/01/28 10:04:24.993 ecmcAsynPortDriver:drvUserCreate: Parameter plcs.plc0.enable linked to record (asyn reason 131).
2022/01/28 10:04:24.999 ecmcAsynPortDriver:drvUserCreate: Parameter ecmc.error.reset linked to record (asyn reason 132).
2022/01/28 10:04:25.004 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000009
2022/01/28 10:04:25.004 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:04:25.005 ecmcMotorRecord:: setIntegerParam(1 motorUpdateStatus_)=0
2022/01/28 10:04:25.005 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000006
2022/01/28 10:04:25.005 ecmcMotorRecord:: setIntegerParam(2 motorUpdateStatus_)=0
2022/01/28 10:04:25.005 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000007
2022/01/28 10:04:25.054 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInitDatabase (7). Allow callbacks: true.
2022/01/28 10:04:25.055 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterFinishDevSup (8). Allow callbacks: true.
2022/01/28 10:04:25.204 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000010
2022/01/28 10:04:25.205 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000081
2022/01/28 10:04:25.405 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000010
2022/01/28 10:04:25.405 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:04:25.591 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterScanInit (9). Allow callbacks: true.
2022/01/28 10:04:25.592 ecmcMotorRecord:: setIntegerParam(1 HomProc_)=3 motorNotHomedProblem=0
2022/01/28 10:04:25.592 ecmcMotorRecord:: setIntegerParam(2 HomProc_)=3 motorNotHomedProblem=0
2022/01/28 10:04:25.593 ecmcMotorRecord:: setDoubleParam(1 HomPos_)=0.000000
2022/01/28 10:04:25.593 ecmcMotorRecord:: setDoubleParam(2 HomPos_)=0.000000
2022/01/28 10:04:25.593 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInitialProcess (10). Allow callbacks: true.
2022/01/28 10:04:25.599 ecmcAsynPortDriver:getEpicsState: EPICS state: Unknown state (11). Allow callbacks: true.
2022/01/28 10:04:25.600 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterIocBuilt (12). Allow callbacks: true.
2022/01/28 10:04:25.605 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000011
2022/01/28 10:04:25.605 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:25.632 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAtIocRun (13). Allow callbacks: true.
2022/01/28 10:04:25.632 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterDatabaseRunning (14). Allow callbacks: true.
2022/01/28 10:04:25.632 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterInterruptAccept (28). Allow callbacks: true.
2022/01/28 10:04:25.632 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterCaServerRunning (15). Allow callbacks: true.
2022/01/28 10:04:25.634 ecmcAsynPortDriver:getEpicsState: EPICS state: Unknown state (29). Allow callbacks: true.
iocRun: All initialization complete
2022/01/28 10:04:25.678 ecmcAsynPortDriver:getEpicsState: EPICS state: initHookAfterIocRunning (16). Allow callbacks: true.
2022/01/28 10:04:25.682 ../devEcmcSup/motion/ecmcDriveBase.cpp/readEntries:336: INFO (axis 1): Drive hardware warning state cleared.
2022/01/28 10:04:25.682 ../devEcmcSup/motion/ecmcDriveBase.cpp/readEntries:336: INFO (axis 2): Drive hardware warning state cleared.
2022/01/28 10:04:25.805 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65535 fPos=0.03 fActPosition=0 time=0.000009
2022/01/28 10:04:25.805 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:04:25.004 [devMotorAsyn.c:439 IOC_TEST:Axis1] init_record IOC_TEST:Axis1 position=0.030000 encoderPos=0.030000 velocity=0.000000 MSTAstatus=0x4d00 flagsValue=0x3f flagsWritten=0x3f pmr->mflg=0x0
2022/01/28 10:04:25.005 [devMotorAsyn.c:185 IOC_TEST:Axis1] init_controller IOC_TEST:Axis1 set encoder ratio=1.000000 status=0
2022/01/28 10:04:25.005 [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/28 10:04:25.005 [motorDevSup.c:327 IOC_TEST:Axis1] PositionRestoreNeeded IOC_TEST:Axis1 rstm=2 dval=0.000000 drbv=0.030000 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/28 10:04:25.005 [motorRecord.cc:782 IOC_TEST:Axis1] init_re_init start neverPolled=0 stat=17 nsta=0
2022/01/28 10:04:25.005 [motorRecord.cc:720 IOC_TEST:Axis1] enforceMinRetryDeadband spdb=0.100000 rdbd=0.100000 mres=0.030000
2022/01/28 10:04:25.005 [motorRecord.cc:4484 IOC_TEST:Axis1] pmr->dhlm=130 softLimitRO=130
2022/01/28 10:04:25.005 [motorRecord.cc:4545 IOC_TEST:Axis1] pmr->dllm=-20 softLimitRO=-20
2022/01/28 10:04:25.005 [motorRecord.cc:833 IOC_TEST:Axis1] init_re_init end dval=0.030000 drbv=0.030000 rdbd=0.100000 spdb=0.100000
2022/01/28 10:04:25.005 [motorRecord.cc:968 IOC_TEST:Axis1] init_record process_reason="callbackdata + soft limits" dval=0.030000 drbv=0.030000 rdbd=0.100000 spdb=0.100000 stat=0 msta=0x4d00 neverPolled=0
2022/01/28 10:04:25.005 [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/28 10:04:25.005 [devMotorAsyn.c:185 IOC_TEST:Axis2] init_controller IOC_TEST:Axis2 set encoder ratio=1.000000 status=0
2022/01/28 10:04:25.005 [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/28 10:04:25.005 [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/28 10:04:25.005 [motorRecord.cc:782 IOC_TEST:Axis2] init_re_init start neverPolled=0 stat=17 nsta=0
2022/01/28 10:04:25.005 [motorRecord.cc:720 IOC_TEST:Axis2] enforceMinRetryDeadband spdb=0.100000 rdbd=0.100000 mres=0.030000
2022/01/28 10:04:25.005 [motorRecord.cc:4484 IOC_TEST:Axis2] pmr->dhlm=20 softLimitRO=20
2022/01/28 10:04:25.005 [motorRecord.cc:4545 IOC_TEST:Axis2] pmr->dllm=-130 softLimitRO=-130
2022/01/28 10:04:25.005 [motorRecord.cc:833 IOC_TEST:Axis2] init_re_init end dval=0.000000 drbv=0.000000 rdbd=0.100000 spdb=0.100000
2022/01/28 10:04:25.005 [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
GRBL busy: 1.00000
dbpf IOC_TEST:Axis1.SPAM 0
DBF_SHORT: 0 = 0x0
dbpf IOC_TEST:Axis2.SPAM 0
DBF_SHORT: 0 = 0x0
# Set the IOC Prompt String One
epicsEnvSet IOCSH_PS1 "raspberrypi-11532 > "
#
raspberrypi-11532 > 2022/01/28 10:04:26.005 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=65535 fPos=0.03 fActPosition=0 time=0.000010
2022/01/28 10:04:26.006 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=0 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000050
2022/01/28 10:04:26.206 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65534 fPos=0.064 fActPosition=0.03 time=0.000020
2022/01/28 10:04:26.206 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=229 fPos=0.064 fActPosition=0.03 time=0.000012
2022/01/28 10:04:26.406 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65519 fPos=0.464 fActPosition=0.48 time=0.000019
2022/01/28 10:04:26.407 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=244 fPos=0.468 fActPosition=0.48 time=0.000143
2022/01/28 10:04:26.607 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65494 fPos=1.204 fActPosition=1.23 time=0.000016
2022/01/28 10:04:26.608 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=268 fPos=1.208 fActPosition=1.2 time=0.000178
2022/01/28 10:04:26.808 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65468 fPos=2.008 fActPosition=2.01 time=0.000018
2022/01/28 10:04:26.809 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=296 fPos=2.012 fActPosition=2.04 time=0.000018
2022/01/28 10:04:27.009 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65441 fPos=2.812 fActPosition=2.82 time=0.000010
2022/01/28 10:04:27.009 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=322 fPos=2.812 fActPosition=2.82 time=0.000007
2022/01/28 10:04:27.210 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65414 fPos=3.616 fActPosition=3.63 time=0.000010
2022/01/28 10:04:27.210 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=349 fPos=3.616 fActPosition=3.63 time=0.000007
2022/01/28 10:04:27.410 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65388 fPos=4.416 fActPosition=4.41 time=0.000011
2022/01/28 10:04:27.410 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=376 fPos=4.416 fActPosition=4.44 time=0.000006
2022/01/28 10:04:27.610 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65361 fPos=5.216 fActPosition=5.22 time=0.000016
2022/01/28 10:04:27.611 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=402 fPos=5.22 fActPosition=5.22 time=0.000016
2022/01/28 10:04:27.811 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65334 fPos=6.02 fActPosition=6.03 time=0.000019
2022/01/28 10:04:27.812 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=429 fPos=6.02 fActPosition=6.03 time=0.000014
2022/01/28 10:04:28.012 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65308 fPos=6.824 fActPosition=6.81 time=0.000020
2022/01/28 10:04:28.012 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=456 fPos=6.824 fActPosition=6.84 time=0.000015
2022/01/28 10:04:28.213 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65280 fPos=7.628 fActPosition=7.65 time=0.000335
2022/01/28 10:04:28.213 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=483 fPos=7.628 fActPosition=7.65 time=0.000013
2022/01/28 10:04:28.414 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65254 fPos=8.432 fActPosition=8.43 time=0.000021
2022/01/28 10:04:28.414 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=509 fPos=8.432 fActPosition=8.43 time=0.000014
2022/01/28 10:04:28.614 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65227 fPos=9.236 fActPosition=9.24 time=0.000012
2022/01/28 10:04:28.614 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=536 fPos=9.236 fActPosition=9.24 time=0.000007
2022/01/28 10:04:28.815 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65200 fPos=10.04 fActPosition=10.05 time=0.000085
2022/01/28 10:04:28.815 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=563 fPos=10.04 fActPosition=10.05 time=0.000008
2022/01/28 10:04:29.015 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65174 fPos=10.836 fActPosition=10.83 time=0.000012
2022/01/28 10:04:29.015 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=589 fPos=10.836 fActPosition=10.83 time=0.000008
2022/01/28 10:04:29.215 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65147 fPos=11.636 fActPosition=11.64 time=0.000018
2022/01/28 10:04:29.216 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=616 fPos=11.64 fActPosition=11.64 time=0.000063
2022/01/28 10:04:29.416 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65120 fPos=12.44 fActPosition=12.45 time=0.000019
2022/01/28 10:04:29.416 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=643 fPos=12.44 fActPosition=12.45 time=0.000012
2022/01/28 10:04:29.617 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65093 fPos=13.244 fActPosition=13.26 time=0.000205
2022/01/28 10:04:29.617 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=669 fPos=13.244 fActPosition=13.23 time=0.000013
2022/01/28 10:04:29.817 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65067 fPos=14.044 fActPosition=14.04 time=0.000021
2022/01/28 10:04:29.818 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=697 fPos=14.048 fActPosition=14.07 time=0.000014
2022/01/28 10:04:30.018 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65040 fPos=14.848 fActPosition=14.85 time=0.000011
2022/01/28 10:04:30.018 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=723 fPos=14.848 fActPosition=14.85 time=0.000008
2022/01/28 10:04:30.218 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65013 fPos=15.648 fActPosition=15.66 time=0.000009
2022/01/28 10:04:30.219 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=750 fPos=15.652 fActPosition=15.66 time=0.000115
2022/01/28 10:04:30.419 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64987 fPos=16.452 fActPosition=16.44 time=0.000011
2022/01/28 10:04:30.419 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=777 fPos=16.452 fActPosition=16.47 time=0.000006
2022/01/28 10:04:30.619 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64960 fPos=17.256 fActPosition=17.25 time=0.000009
2022/01/28 10:04:30.619 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=803 fPos=17.256 fActPosition=17.25 time=0.000006
2022/01/28 10:04:30.820 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64933 fPos=18.06 fActPosition=18.06 time=0.000143
2022/01/28 10:04:30.820 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=830 fPos=18.06 fActPosition=18.06 time=0.000011
2022/01/28 10:04:31.020 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64906 fPos=18.856 fActPosition=18.87 time=0.000018
2022/01/28 10:04:31.021 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=857 fPos=18.856 fActPosition=18.87 time=0.000012
2022/01/28 10:04:31.221 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64882 fPos=19.58 fActPosition=19.59 time=0.000019
2022/01/28 10:04:31.221 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=881 fPos=19.58 fActPosition=19.59 time=0.000012
2022/01/28 10:04:31.421 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64870 fPos=19.952 fActPosition=19.95 time=0.000013
2022/01/28 10:04:31.422 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=893 fPos=19.952 fActPosition=19.95 time=0.000009
2022/01/28 10:04:31.622 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000017
2022/01/28 10:04:31.622 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000009
2022/01/28 10:04:31.822 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000010
2022/01/28 10:04:31.822 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000007
2022/01/28 10:04:32.023 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000099
2022/01/28 10:04:32.023 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=894 fPos=20 fActPosition=19.98 time=0.000006
2022/01/28 10:04:32.223 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000011
2022/01/28 10:04:32.223 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=894 fPos=20 fActPosition=19.98 time=0.000005
2022/01/28 10:04:32.423 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000016
2022/01/28 10:04:32.423 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000010
2022/01/28 10:04:32.624 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000102
2022/01/28 10:04:32.624 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000011
2022/01/28 10:04:32.824 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000017
2022/01/28 10:04:32.824 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000010
2022/01/28 10:04:33.024 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000020
2022/01/28 10:04:33.025 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=894 fPos=20 fActPosition=19.98 time=0.000013
2022/01/28 10:04:33.225 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000010
2022/01/28 10:04:33.225 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000006
2022/01/28 10:04:33.425 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000012
2022/01/28 10:04:33.425 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000006
2022/01/28 10:04:33.625 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000011
2022/01/28 10:04:33.626 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=894 fPos=19.964 fActPosition=19.98 time=0.000007
2022/01/28 10:04:33.826 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64869 fPos=19.996 fActPosition=19.98 time=0.000017
2022/01/28 10:04:33.826 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=881 fPos=19.596 fActPosition=19.59 time=0.000012
2022/01/28 10:04:34.026 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64869 fPos=19.968 fActPosition=19.98 time=0.000011
2022/01/28 10:04:34.026 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=857 fPos=18.872 fActPosition=18.87 time=0.000007
2022/01/28 10:04:34.227 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64872 fPos=19.872 fActPosition=19.89 time=0.000074
2022/01/28 10:04:34.227 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=821 fPos=17.776 fActPosition=17.79 time=0.000006
2022/01/28 10:04:34.427 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64878 fPos=19.716 fActPosition=19.71 time=0.000010
2022/01/28 10:04:34.427 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=782 fPos=16.632 fActPosition=16.62 time=0.000007
2022/01/28 10:04:34.627 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64886 fPos=19.492 fActPosition=19.47 time=0.000011
2022/01/28 10:04:34.628 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=746 fPos=15.536 fActPosition=15.54 time=0.000006
2022/01/28 10:04:34.828 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64895 fPos=19.204 fActPosition=19.2 time=0.000012
2022/01/28 10:04:34.828 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=708 fPos=14.428 fActPosition=14.4 time=0.000006
2022/01/28 10:04:35.028 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64907 fPos=18.848 fActPosition=18.84 time=0.000012
2022/01/28 10:04:35.028 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=671 fPos=13.316 fActPosition=13.29 time=0.000006
2022/01/28 10:04:35.228 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64921 fPos=18.42 fActPosition=18.42 time=0.000011
2022/01/28 10:04:35.229 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=634 fPos=12.2 fActPosition=12.18 time=0.000135
2022/01/28 10:04:35.429 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64937 fPos=17.948 fActPosition=17.94 time=0.000011
2022/01/28 10:04:35.429 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=600 fPos=11.176 fActPosition=11.16 time=0.000007
2022/01/28 10:04:35.629 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64955 fPos=17.404 fActPosition=17.4 time=0.000011
2022/01/28 10:04:35.629 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=566 fPos=10.144 fActPosition=10.14 time=0.000007
2022/01/28 10:04:35.830 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64975 fPos=16.8 fActPosition=16.8 time=0.000066
2022/01/28 10:04:35.830 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=533 fPos=9.152 fActPosition=9.15 time=0.000007
2022/01/28 10:04:36.030 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64997 fPos=16.148 fActPosition=16.14 time=0.000012
2022/01/28 10:04:36.030 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=502 fPos=8.2 fActPosition=8.22 time=0.000006
GRBL: INFO: Write command (command[0] = G1X20Y20F360)
Added: G1X20Y20F360../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_wake_up:228:
GRBL: INFO: Reply OK (command[0] = G1X20Y20F360)
GRBL: INFO: Write command (command[1] = G4P2)
Added: G4P2../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_dwell:200:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_go_idle:259:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL: INFO: Reply OK (command[1] = G4P2)
GRBL: INFO: Write command (command[2] = G2X0Y0R20)
Added: G2X0Y0R20../grbl/grbl_gcode.c:gc_execute_line:71:
../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:639:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_update_plan_block_parameters:639:
../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:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_wake_up:228:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../g2022/01/28 10:04:36.230 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65020 fPos=15.44 fActPosition=15.45 time=0.000018
2022/01/28 10:04:36.231 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=470 fPos=7.284 fActPosition=7.26 time=0.000209
2022/01/28 10:04:36.431 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65046 fPos=14.676 fActPosition=14.67 time=0.000011
2022/01/28 10:04:36.431 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=442 fPos=6.416 fActPosition=6.42 time=0.000006
2022/01/28 10:04:36.631 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65073 fPos=13.864 fActPosition=13.86 time=0.000012
2022/01/28 10:04:36.632 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=414 fPos=5.58 fActPosition=5.58 time=0.000109
2022/01/28 10:04:36.832 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65103 fPos=12.984 fActPosition=12.96 time=0.000012
2022/01/28 10:04:36.832 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=387 fPos=4.792 fActPosition=4.77 time=0.000006
2022/01/28 10:04:37.032 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65132 fPos=12.1 fActPosition=12.09 time=0.000011
2022/01/28 10:04:37.032 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=364 fPos=4.076 fActPosition=4.08 time=0.000006
2022/01/28 10:04:37.233 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65164 fPos=11.14 fActPosition=11.13 time=0.000188
2022/01/28 10:04:37.233 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=341 fPos=3.392 fActPosition=3.39 time=0.000007
2022/01/28 10:04:37.433 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65195 fPos=10.18 fActPosition=10.2 time=0.000012
2022/01/28 10:04:37.433 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=321 fPos=2.784 fActPosition=2.79 time=0.000007
2022/01/28 10:04:37.633 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65230 fPos=9.144 fActPosition=9.15 time=0.000014
2022/01/28 10:04:37.634 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=302 fPos=2.212 fActPosition=2.22 time=0.000120
2022/01/28 10:04:37.834 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65265 fPos=8.116 fActPosition=8.1 time=0.000011
2022/01/28 10:04:37.834 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=286 fPos=1.724 fActPosition=1.74 time=0.000006
2022/01/28 10:04:38.034 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65301 fPos=7.032 fActPosition=7.02 time=0.000011
2022/01/28 10:04:38.034 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=270 fPos=1.28 fActPosition=1.26 time=0.000006
2022/01/28 10:04:38.235 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65338 fPos=5.912 fActPosition=5.91 time=0.000086
2022/01/28 10:04:38.235 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=258 fPos=0.896 fActPosition=0.9 time=0.000012
2022/01/28 10:04:38.435 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65375 fPos=4.804 fActPosition=4.8 time=0.000020
2022/01/28 10:04:38.436 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=247 fPos=0.588 fActPosition=0.57 time=0.000183
2022/01/28 10:04:38.636 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65412 fPos=3.7 fActPosition=3.69 time=0.000019
2022/01/28 10:04:38.636 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=239 fPos=0.348 fActPosition=0.33 time=0.000010
2022/01/28 10:04:38.837 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65449 fPos=2.584 fActPosition=2.58 time=0.000198
2022/01/28 10:04:38.837 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=234 fPos=0.172 fActPosition=0.18 time=0.000011
2022/01/28 10:04:39.037 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65488 fPos=1.432 fActPosition=1.41 time=0.000018
2022/01/28 10:04:39.038 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=230 fPos=0.052 fActPosition=0.06 time=0.000078
2022/01/28 10:04:39.238 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65516 fPos=0.584 fActPosition=0.57 time=0.000012
2022/01/28 10:04:39.238 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=228 fPos=0.008 fActPosition=0 time=0.000007
2022/01/28 10:04:39.438 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65531 fPos=0.112 fActPosition=0.12 time=0.000011
2022/01/28 10:04:39.439 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000007
2022/01/28 10:04:39.639 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000012
2022/01/28 10:04:39.639 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000007
2022/01/28 10:04:39.839 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:39.839 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:04:40.039 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000019
2022/01/28 10:04:40.039 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:40.240 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000111
2022/01/28 10:04:40.240 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:40.440 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000021
2022/01/28 10:04:40.440 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:40.640 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000020
2022/01/28 10:04:40.640 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000031
2022/01/28 10:04:40.841 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:40.841 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:04:41.041 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:41.041 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:04:41.241 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:41.241 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:04:41.441 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65534 fPos=0 fActPosition=0.03 time=0.000019
2022/01/28 10:04:41.442 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000209
2022/01/28 10:04:41.642 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65535 fPos=0.008 fActPosition=0 time=0.000019
2022/01/28 10:04:41.642 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=228 fPos=0.008 fActPosition=0 time=0.000011
2022/01/28 10:04:41.842 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65526 fPos=0.272 fActPosition=0.27 time=0.000018
2022/01/28 10:04:41.843 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=237 fPos=0.272 fActPosition=0.27 time=0.000214
2022/01/28 10:04:42.043 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65505 fPos=0.912 fActPosition=0.9 time=0.000018
2022/01/28 10:04:42.044 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=259 fPos=0.92 fActPosition=0.93 time=0.000260
2022/01/28 10:04:42.244 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65471 fPos=1.916 fActPosition=1.92 time=0.000020
2022/01/28 10:04:42.244 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=292 fPos=1.916 fActPosition=1.92 time=0.000014
2022/01/28 10:04:42.445 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65426 fPos=3.28 fActPosition=3.27 time=0.000011
2022/01/28 10:04:42.445 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=338 fPos=3.28 fActPosition=3.3 time=0.000006
2022/01/28 10:04:42.645 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65370 fPos=4.936 fActPosition=4.95 time=0.000010
2022/01/28 10:04:42.645 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=393 fPos=4.936 fActPosition=4.95 time=0.000006
2022/01/28 10:04:42.845 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65314 fPos=6.6 fActPosition=6.63 time=0.000010
2022/01/28 10:04:42.846 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=448 fPos=6.608 fActPosition=6.6 time=0.000007
2022/01/28 10:04:43.046 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65268 fPos=8.012 fActPosition=8.01 time=0.000018
2022/01/28 10:04:43.046 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=496 fPos=8.012 fActPosition=8.04 time=0.000012
2022/01/28 10:04:43.246 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65233 fPos=9.044 fActPosition=9.06 time=0.000018
2022/01/28 10:04:43.247 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=530 fPos=9.048 fActPosition=9.06 time=0.000091
2022/01/28 10:04:43.447 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65211 fPos=9.704 fActPosition=9.72 time=0.000020
2022/01/28 10:04:43.448 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=552 fPos=9.704 fActPosition=9.72 time=0.000012
2022/01/28 10:04:43.648 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65202 fPos=9.988 fActPosition=9.99 time=0.000021
2022/01/28 10:04:43.648 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=561 fPos=9.988 fActPosition=9.99 time=0.000010
2022/01/28 10:04:43.848 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000016
2022/01/28 10:04:43.849 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000283
2022/01/28 10:04:44.049 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000011
2022/01/28 10:04:44.049 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000007
2022/01/28 10:04:44.249 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000011
2022/01/28 10:04:44.249 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000007
2022/01/28 10:04:44.449 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65201 fPos=10 fActPosition=10.02 time=0.000012
2022/01/28 10:04:44.450 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000070
2022/01/28 10:04:44.650 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000021
2022/01/28 10:04:44.650 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000011
2022/01/28 10:04:44.850 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000024
2022/01/28 10:04:44.850 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000012
2022/01/28 10:04:45.051 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65201 fPos=10 fActPosition=10.02 time=0.000140
2022/01/28 10:04:45.051 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=562 fPos=10 fActPosition=10.02 time=0.000011
2022/01/28 10:04:45.251 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000018
2022/01/28 10:04:45.252 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000130
2022/01/28 10:04:45.452 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000014
2022/01/28 10:04:45.452 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000007
2022/01/28 10:04:45.652 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000011
2022/01/28 10:04:45.652 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=562 fPos=10 fActPosition=10.02 time=0.000007
2022/01/28 10:04:45.853 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65204 fPos=9.9 fActPosition=9.93 time=0.000156
2022/01/28 10:04:45.853 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=559 fPos=9.9 fActPosition=9.93 time=0.000006
2022/01/28 10:04:46.053 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65221 fPos=9.436 fActPosition=9.42 time=0.000011
2022/01/28 10:04:46.053 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=543 fPos=9.436 fActPosition=9.45 time=0.000006
2022/01/28 10:04:46.253 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65247 fPos=8.664 fActPosition=8.64 time=0.000019
2022/01/28 10:04:46.254 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=516 fPos=8.656 fActPosition=8.64 time=0.000013
2022/01/28 10:04:46.454 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65273 fPos=7.86 fActPosition=7.86 time=0.000022
2022/01/28 10:04:46.454 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=489 fPos=7.86 fActPosition=7.83 time=0.000011
2022/01/28 10:04:46.655 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65300 fPos=7.056 fActPosition=7.05 time=0.000019
2022/01/28 10:04:46.655 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=463 fPos=7.056 fActPosition=7.05 time=0.000010
2022/01/28 10:04:46.855 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65327 fPos=6.256 fActPosition=6.24 time=0.000021
2022/01/28 10:04:46.856 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=436 fPos=6.252 fActPosition=6.24 time=0.000185
2022/01/28 10:04:47.056 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65353 fPos=5.452 fActPosition=5.46 time=0.000011
2022/01/28 10:04:47.056 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=409 fPos=5.452 fActPosition=5.43 time=0.000006
2022/01/28 10:04:47.256 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65380 fPos=4.652 fActPosition=4.65 time=0.000012
2022/01/28 10:04:47.257 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=383 fPos=4.648 fActPosition=4.65 time=0.000021
2022/01/28 10:04:47.457 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65407 fPos=3.848 fActPosition=3.84 time=0.000011
2022/01/28 10:04:47.457 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=356 fPos=3.848 fActPosition=3.84 time=0.000006
2022/01/28 10:04:47.657 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65433 fPos=3.048 fActPosition=3.06 time=0.000018
2022/01/28 10:04:47.658 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=329 fPos=3.044 fActPosition=3.03 time=0.000232
2022/01/28 10:04:47.858 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65460 fPos=2.244 fActPosition=2.25 time=0.000020
2022/01/28 10:04:47.858 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=303 fPos=2.244 fActPosition=2.25 time=0.000010
2022/01/28 10:04:48.059 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65487 fPos=1.44 fActPosition=1.44 time=0.000019
2022/01/28 10:04:48.059 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=276 fPos=1.44 fActPosition=1.44 time=0.000011
2022/01/28 10:04:48.259 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65513 fPos=0.652 fActPosition=0.66 time=0.000018
2022/01/28 10:04:48.260 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=249 fPos=0.648 fActPosition=0.63 time=0.000215
2022/01/28 10:04:48.460 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65531 fPos=0.132 fActPosition=0.12 time=0.000014
2022/01/28 10:04:48.460 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=232 fPos=0.132 fActPosition=0.12 time=0.000008
2022/01/28 10:04:48.660 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:48.661 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000007
2022/01/28 10:04:48.861 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:48.861 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:04:49.061 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:49.061 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:04:49.261 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000019
2022/01/28 10:04:49.261 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000009
2022/01/28 10:04:49.462 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000164
2022/01/28 10:04:49.462 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:04:49.662 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65532 fPos=0.12 fActPosition=0.09 time=0.000019
2022/01/28 10:04:49.662 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=231 fPos=0.12 fActPosition=0.09 time=0.000012
2022/01/28 10:04:49.863 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65515 fPos=0.6 fActPosition=0.6 time=0.000341
2022/01/28 10:04:49.863 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=248 fPos=0.6 fActPosition=0.6 time=0.000011
2022/01/28 10:04:50.063 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65489 fPos=1.376 fActPosition=1.38 time=0.000013
2022/01/28 10:04:50.064 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=274 fPos=1.38 fActPosition=1.38 time=0.000008
2022/01/28 10:04:50.264 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65462 fPos=2.18 fActPosition=2.19 time=0.000011
2022/01/28 10:04:50.264 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=301 fPos=2.18 fActPosition=2.19 time=0.000007
2022/01/28 10:04:50.464 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65435 fPos=2.98 fActPosition=3 time=0.000012
2022/01/28 10:04:50.464 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=327 fPos=2.98 fActPosition=2.97 time=0.000006
2022/01/28 10:04:50.665 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65409 fPos=3.784 fActPosition=3.78 time=0.000090
2022/01/28 10:04:50.665 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=354 fPos=3.784 fActPosition=3.78 time=0.000006
2022/01/28 10:04:50.865 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65382 fPos=4.584 fActPosition=4.59 time=0.000020
2022/01/28 10:04:50.865 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=381 fPos=4.584 fActPosition=4.59 time=0.000012
2022/01/28 10:04:51.066 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65355 fPos=5.388 fActPosition=5.4 time=0.000144
2022/01/28 10:04:51.066 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=408 fPos=5.388 fActPosition=5.4 time=0.000011
2022/01/28 10:04:51.266 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65329 fPos=6.188 fActPosition=6.18 time=0.000021
2022/01/28 10:04:51.267 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=435 fPos=6.192 fActPosition=6.21 time=0.000327
2022/01/28 10:04:51.467 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65302 fPos=6.992 fActPosition=6.99 time=0.000020
2022/01/28 10:04:51.467 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=461 fPos=6.992 fActPosition=6.99 time=0.000010
2022/01/28 10:04:51.668 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65275 fPos=7.796 fActPosition=7.8 time=0.000016
2022/01/28 10:04:51.668 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=488 fPos=7.796 fActPosition=7.8 time=0.000007
2022/01/28 10:04:51.868 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65249 fPos=8.6 fActPosition=8.58 time=0.000010
2022/01/28 10:04:51.868 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=515 fPos=8.6 fActPosition=8.61 time=0.000006
2022/01/28 10:04:52.068 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65222 fPos=9.396 fActPosition=9.39 time=0.000010
2022/01/28 10:04:52.069 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=542 fPos=9.404 fActPosition=9.42 time=0.000007
2022/01/28 10:04:52.269 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65195 fPos=10.2 fActPosition=10.2 time=0.000011
2022/01/28 10:04:52.269 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=568 fPos=10.2 fActPosition=10.2 time=0.000006
2022/01/28 10:04:52.469 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65168 fPos=11 fActPosition=11.01 time=0.000018
2022/01/28 10:04:52.470 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=595 fPos=11 fActPosition=11.01 time=0.000012
2022/01/28 10:04:52.670 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65141 fPos=11.804 fActPosition=11.82 time=0.000014
2022/01/28 10:04:52.670 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=622 fPos=11.804 fActPosition=11.82 time=0.000008
2022/01/28 10:04:52.870 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65115 fPos=12.604 fActPosition=12.6 time=0.000021
2022/01/28 10:04:52.871 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=648 fPos=12.608 fActPosition=12.6 time=0.000185
2022/01/28 10:04:53.071 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65088 fPos=13.408 fActPosition=13.41 time=0.000019
2022/01/28 10:04:53.071 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=675 fPos=13.408 fActPosition=13.41 time=0.000011
2022/01/28 10:04:53.272 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65061 fPos=14.212 fActPosition=14.22 time=0.000010
2022/01/28 10:04:53.272 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=702 fPos=14.212 fActPosition=14.22 time=0.000008
2022/01/28 10:04:53.472 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65034 fPos=15.012 fActPosition=15.03 time=0.000009
2022/01/28 10:04:53.472 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=728 fPos=15.012 fActPosition=15 time=0.000006
2022/01/28 10:04:53.672 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65008 fPos=15.812 fActPosition=15.81 time=0.000010
2022/01/28 10:04:53.672 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=755 fPos=15.812 fActPosition=15.81 time=0.000013
2022/01/28 10:04:53.873 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64981 fPos=16.62 fActPosition=16.62 time=0.000275
2022/01/28 10:04:53.873 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=782 fPos=16.62 fActPosition=16.62 time=0.000011
2022/01/28 10:04:54.073 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64954 fPos=17.416 fActPosition=17.43 time=0.000017
2022/01/28 10:04:54.074 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=809 fPos=17.424 fActPosition=17.43 time=0.000013
2022/01/28 10:04:54.274 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64928 fPos=18.22 fActPosition=18.21 time=0.000017
2022/01/28 10:04:54.274 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=836 fPos=18.22 fActPosition=18.24 time=0.000011
2022/01/28 10:04:54.475 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64901 fPos=19.024 fActPosition=19.02 time=0.000057
2022/01/28 10:04:54.475 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=862 fPos=19.024 fActPosition=19.02 time=0.000010
2022/01/28 10:04:54.675 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64878 fPos=19.688 fActPosition=19.71 time=0.000023
2022/01/28 10:04:54.676 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=885 fPos=19.688 fActPosition=19.71 time=0.000293
2022/01/28 10:04:54.876 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64869 fPos=19.984 fActPosition=19.98 time=0.000011
2022/01/28 10:04:54.876 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=895 fPos=19.984 fActPosition=20.01 time=0.000007
2022/01/28 10:04:55.077 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64869 fPos=20 fActPosition=19.98 time=0.000267
2022/01/28 10:04:55.077 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000006
2022/01/28 10:04:55.277 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64869 fPos=20 fActPosition=19.98 time=0.000010
2022/01/28 10:04:55.277 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000007
2022/01/28 10:04:55.477 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64869 fPos=20 fActPosition=19.98 time=0.000020
2022/01/28 10:04:55.477 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=894 fPos=20 fActPosition=19.98 time=0.000011
2022/01/28 10:04:55.678 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64869 fPos=20 fActPosition=19.98 time=0.000019
2022/01/28 10:04:55.678 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=894 fPos=20 fActPosition=19.98 time=0.000012
2022/01/28 10:04:55.878 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64869 fPos=20 fActPosition=19.98 time=0.000017
2022/01/28 10:04:55.878 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000012
2022/01/28 10:04:56.079 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64869 fPos=20 fActPosition=19.98 time=0.000016
2022/01/28 10:04:56.079 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000011
2022/01/28 10:04:56.279 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64869 fPos=20 fActPosition=19.98 time=0.000010
2022/01/28 10:04:56.279 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000005
2022/01/28 10:04:56.479 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64869 fPos=20 fActPosition=19.98 time=0.000011
2022/01/28 10:04:56.479 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=894 fPos=20 fActPosition=19.98 time=0.000005
2022/01/28 10:04:56.679 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64869 fPos=20 fActPosition=19.98 time=0.000010
2022/01/28 10:04:56.679 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000007
2022/01/28 10:04:56.880 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000011
2022/01/28 10:04:56.880 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000006
rbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL: INFO: Reply OK (command[2] = G2X0Y0R20)
GRBL: INFO: Write command (command[3] = G4P2)
Added: G4P2../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_dwell:200:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_go_idle:259:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL: INFO: Reply OK (command[3] = G4P2)
GRBL: INFO: Write command (command[4] = G0X10Y10)
Added: G0X10Y10../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_wake_up:228:
GRBL: INFO: Reply OK (command[4] = G0X10Y10)
GRBL: INFO: Write command (command[5] = G4P2)
Added: G4P2../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_dwell:200:
GRBL busy: 1.00000
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_go_idle:259:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL: INFO: Reply OK (command[5] = G4P2)
GRBL: INFO: Write command (command[6] = G1X0Y0)
Added: G1X0Y0../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_wake_up:228:
GRBL: INFO: Reply OK (command[6] = G1X0Y0)
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_go_idle:259:
GRBL busy: 0.00000
Retrigger g-code!!
GRBL: INFO: Write command (command[0] = G1X20Y20F360)
Added: G1X20Y20F360../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_wake_up:228:
GRBL: INFO: Reply OK (command[0] = G1X20Y20F360)
GRBL: INFO: Write command (command[1] = G4P2)
Added: G4P2../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_dwell:200:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_go_idle:259:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL: INFO: Reply OK (command[1] = G4P2)
GRBL: INFO: Write command (command[2] = G2X0Y0R20)
Added: G2X0Y0R20../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_arc:91:
../g2022/01/28 10:04:57.080 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000011
2022/01/28 10:04:57.080 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=893 fPos=19.92 fActPosition=19.95 time=0.000006
2022/01/28 10:04:57.280 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64869 fPos=19.992 fActPosition=19.98 time=0.000011
2022/01/28 10:04:57.280 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=877 fPos=19.48 fActPosition=19.47 time=0.000006
2022/01/28 10:04:57.481 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64869 fPos=19.956 fActPosition=19.98 time=0.000012
2022/01/28 10:04:57.481 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=850 fPos=18.668 fActPosition=18.66 time=0.000006
2022/01/28 10:04:57.681 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64873 fPos=19.844 fActPosition=19.86 time=0.000013
2022/01/28 10:04:57.681 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=812 fPos=17.54 fActPosition=17.52 time=0.000008
2022/01/28 10:04:57.881 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64879 fPos=19.676 fActPosition=19.68 time=0.000011
2022/01/28 10:04:57.882 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=774 fPos=16.412 fActPosition=16.38 time=0.000026
2022/01/28 10:04:58.082 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64887 fPos=19.44 fActPosition=19.44 time=0.000011
2022/01/28 10:04:58.082 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=738 fPos=15.304 fActPosition=15.3 time=0.000007
2022/01/28 10:04:58.282 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64897 fPos=19.136 fActPosition=19.14 time=0.000011
2022/01/28 10:04:58.282 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=701 fPos=14.2 fActPosition=14.19 time=0.000006
2022/01/28 10:04:58.482 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64910 fPos=18.764 fActPosition=18.75 time=0.000012
2022/01/28 10:04:58.483 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=664 fPos=13.084 fActPosition=13.08 time=0.000210
2022/01/28 10:04:58.683 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64925 fPos=18.324 fActPosition=18.3 time=0.000012
2022/01/28 10:04:58.683 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=627 fPos=11.988 fActPosition=11.97 time=0.000006
2022/01/28 10:04:58.883 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64941 fPos=17.84 fActPosition=17.82 time=0.000011
2022/01/28 10:04:58.883 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=593 fPos=10.964 fActPosition=10.95 time=0.000006
2022/01/28 10:04:59.084 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64959 fPos=17.28 fActPosition=17.28 time=0.000011
2022/01/28 10:04:59.084 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=559 fPos=9.928 fActPosition=9.93 time=0.000007
2022/01/28 10:04:59.284 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64979 fPos=16.672 fActPosition=16.68 time=0.000011
2022/01/28 10:04:59.284 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=526 fPos=8.956 fActPosition=8.94 time=0.000007
2022/01/28 10:04:59.484 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65002 fPos=16 fActPosition=15.99 time=0.000012
2022/01/28 10:04:59.485 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=494 fPos=8 fActPosition=7.98 time=0.000008
2022/01/28 10:04:59.685 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65026 fPos=15.284 fActPosition=15.27 time=0.000014
2022/01/28 10:04:59.685 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=465 fPos=7.104 fActPosition=7.11 time=0.000007
2022/01/28 10:04:59.885 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65051 fPos=14.508 fActPosition=14.52 time=0.000012
2022/01/28 10:04:59.885 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=436 fPos=6.232 fActPosition=6.24 time=0.000007
2022/01/28 10:05:00.086 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65079 fPos=13.68 fActPosition=13.68 time=0.000052
2022/01/28 10:05:00.086 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=408 fPos=5.412 fActPosition=5.4 time=0.000006
2022/01/28 10:05:00.286 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65108 fPos=12.804 fActPosition=12.81 time=0.000011
2022/01/28 10:05:00.286 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=383 fPos=4.64 fActPosition=4.65 time=0.000007
2022/01/28 10:05:00.486 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65138 fPos=11.904 fActPosition=11.91 time=0.000012
2022/01/28 10:05:00.486 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=359 fPos=3.932 fActPosition=3.93 time=0.000006
rbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_update_plan_block_parameters:639:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_update_plan_block_parameters:639:
../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:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_wake_up:228:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL bus2022/01/28 10:05:00.687 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65170 fPos=10.94 fActPosition=10.95 time=0.000010
2022/01/28 10:05:00.687 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=337 fPos=3.26 fActPosition=3.27 time=0.000007
2022/01/28 10:05:00.887 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65203 fPos=9.968 fActPosition=9.96 time=0.000011
2022/01/28 10:05:00.887 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=317 fPos=2.66 fActPosition=2.67 time=0.000008
2022/01/28 10:05:01.087 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65237 fPos=8.932 fActPosition=8.94 time=0.000010
2022/01/28 10:05:01.088 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=298 fPos=2.104 fActPosition=2.1 time=0.000009
2022/01/28 10:05:01.288 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65271 fPos=7.908 fActPosition=7.92 time=0.000010
2022/01/28 10:05:01.288 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=283 fPos=1.632 fActPosition=1.65 time=0.000005
2022/01/28 10:05:01.488 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65309 fPos=6.804 fActPosition=6.78 time=0.000009
2022/01/28 10:05:01.488 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=268 fPos=1.196 fActPosition=1.2 time=0.000005
2022/01/28 10:05:01.689 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65346 fPos=5.688 fActPosition=5.67 time=0.000011
2022/01/28 10:05:01.689 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=255 fPos=0.828 fActPosition=0.81 time=0.000007
2022/01/28 10:05:01.889 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65383 fPos=4.58 fActPosition=4.56 time=0.000011
2022/01/28 10:05:01.889 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=246 fPos=0.532 fActPosition=0.54 time=0.000006
2022/01/28 10:05:02.089 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65419 fPos=3.48 fActPosition=3.48 time=0.000020
2022/01/28 10:05:02.090 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=238 fPos=0.304 fActPosition=0.3 time=0.000013
2022/01/28 10:05:02.290 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65457 fPos=2.344 fActPosition=2.34 time=0.000021
2022/01/28 10:05:02.290 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=233 fPos=0.14 fActPosition=0.15 time=0.000013
2022/01/28 10:05:02.490 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65494 fPos=1.228 fActPosition=1.23 time=0.000010
2022/01/28 10:05:02.491 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=229 fPos=0.04 fActPosition=0.03 time=0.000013
2022/01/28 10:05:02.691 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65520 fPos=0.46 fActPosition=0.45 time=0.000009
2022/01/28 10:05:02.691 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=228 fPos=0.008 fActPosition=0 time=0.000006
2022/01/28 10:05:02.891 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65533 fPos=0.06 fActPosition=0.06 time=0.000010
2022/01/28 10:05:02.891 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000007
2022/01/28 10:05:03.092 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000144
2022/01/28 10:05:03.092 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000010
2022/01/28 10:05:03.292 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000018
2022/01/28 10:05:03.292 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000010
2022/01/28 10:05:03.492 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000019
2022/01/28 10:05:03.493 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000257
2022/01/28 10:05:03.693 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000015
2022/01/28 10:05:03.693 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000009
2022/01/28 10:05:03.893 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000014
2022/01/28 10:05:03.893 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000007
2022/01/28 10:05:04.094 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000087
2022/01/28 10:05:04.094 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:05:04.294 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:05:04.294 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:05:04.494 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:05:04.494 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000005
2022/01/28 10:05:04.694 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000018
2022/01/28 10:05:04.694 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:05:04.894 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000018
2022/01/28 10:05:04.895 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000079
2022/01/28 10:05:05.095 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65534 fPos=0.028 fActPosition=0.03 time=0.000021
2022/01/28 10:05:05.095 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=228 fPos=0.028 fActPosition=0 time=0.000010
2022/01/28 10:05:05.295 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65523 fPos=0.368 fActPosition=0.36 time=0.000021
2022/01/28 10:05:05.296 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=240 fPos=0.368 fActPosition=0.36 time=0.000013
2022/01/28 10:05:05.496 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65499 fPos=1.084 fActPosition=1.08 time=0.000013
2022/01/28 10:05:05.496 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=264 fPos=1.084 fActPosition=1.08 time=0.000008
2022/01/28 10:05:05.696 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65463 fPos=2.152 fActPosition=2.16 time=0.000012
2022/01/28 10:05:05.697 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=300 fPos=2.156 fActPosition=2.16 time=0.000067
2022/01/28 10:05:05.897 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65415 fPos=3.592 fActPosition=3.6 time=0.000017
2022/01/28 10:05:05.897 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=348 fPos=3.592 fActPosition=3.6 time=0.000006
2022/01/28 10:05:06.097 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65359 fPos=5.26 fActPosition=5.28 time=0.000010
2022/01/28 10:05:06.097 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=404 fPos=5.26 fActPosition=5.28 time=0.000007
2022/01/28 10:05:06.298 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65304 fPos=6.908 fActPosition=6.93 time=0.000107
2022/01/28 10:05:06.298 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=459 fPos=6.908 fActPosition=6.93 time=0.000012
2022/01/28 10:05:06.498 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65260 fPos=8.24 fActPosition=8.25 time=0.000016
2022/01/28 10:05:06.499 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=503 fPos=8.248 fActPosition=8.25 time=0.000151
2022/01/28 10:05:06.699 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65228 fPos=9.204 fActPosition=9.21 time=0.000019
2022/01/28 10:05:06.699 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=535 fPos=9.204 fActPosition=9.21 time=0.000010
2022/01/28 10:05:06.900 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65208 fPos=9.792 fActPosition=9.81 time=0.000115
2022/01/28 10:05:06.900 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=555 fPos=9.792 fActPosition=9.81 time=0.000014
2022/01/28 10:05:07.100 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65201 fPos=10 fActPosition=10.02 time=0.000012
2022/01/28 10:05:07.126 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=562 fPos=10 fActPosition=10.02 time=0.025198
2022/01/28 10:05:07.326 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000010
2022/01/28 10:05:07.326 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000006
2022/01/28 10:05:07.526 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000009
2022/01/28 10:05:07.526 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000006
2022/01/28 10:05:07.727 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000237
2022/01/28 10:05:07.727 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000012
2022/01/28 10:05:07.927 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000018
2022/01/28 10:05:07.927 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=562 fPos=10 fActPosition=10.02 time=0.000010
2022/01/28 10:05:08.128 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65201 fPos=10 fActPosition=10.02 time=0.000113
2022/01/28 10:05:08.128 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000012
2022/01/28 10:05:08.328 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000017
2022/01/28 10:05:08.329 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000166
2022/01/28 10:05:08.529 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000017
2022/01/28 10:05:08.529 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000011
2022/01/28 10:05:08.729 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000010
2022/01/28 10:05:08.729 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=562 fPos=10 fActPosition=10.02 time=0.000006
2022/01/28 10:05:08.930 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65201 fPos=10 fActPosition=10.02 time=0.000072
2022/01/28 10:05:08.930 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000006
2022/01/28 10:05:09.130 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65202 fPos=10 fActPosition=9.99 time=0.000010
2022/01/28 10:05:09.130 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=561 fPos=10 fActPosition=9.99 time=0.000005
2022/01/28 10:05:09.330 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65208 fPos=9.792 fActPosition=9.81 time=0.000017
2022/01/28 10:05:09.331 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=555 fPos=9.792 fActPosition=9.81 time=0.000010
2022/01/28 10:05:09.531 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65228 fPos=9.208 fActPosition=9.21 time=0.000019
2022/01/28 10:05:09.531 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=535 fPos=9.208 fActPosition=9.21 time=0.000010
2022/01/28 10:05:09.731 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65255 fPos=8.408 fActPosition=8.4 time=0.000020
2022/01/28 10:05:09.732 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=508 fPos=8.4 fActPosition=8.4 time=0.000012
2022/01/28 10:05:09.932 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65282 fPos=7.604 fActPosition=7.59 time=0.000020
2022/01/28 10:05:09.932 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=481 fPos=7.604 fActPosition=7.59 time=0.000012
2022/01/28 10:05:10.133 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65309 fPos=6.8 fActPosition=6.78 time=0.000237
2022/01/28 10:05:10.133 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=454 fPos=6.8 fActPosition=6.78 time=0.000007
2022/01/28 10:05:10.333 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65335 fPos=6 fActPosition=6 time=0.000012
2022/01/28 10:05:10.333 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=428 fPos=6 fActPosition=6 time=0.000007
2022/01/28 10:05:10.534 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65362 fPos=5.196 fActPosition=5.19 time=0.000012
2022/01/28 10:05:10.534 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=401 fPos=5.196 fActPosition=5.19 time=0.000006
2022/01/28 10:05:10.734 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65389 fPos=4.396 fActPosition=4.38 time=0.000011
2022/01/28 10:05:10.734 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=374 fPos=4.396 fActPosition=4.38 time=0.000006
2022/01/28 10:05:10.934 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65415 fPos=3.596 fActPosition=3.6 time=0.000021
2022/01/28 10:05:10.935 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=347 fPos=3.592 fActPosition=3.57 time=0.000014
2022/01/28 10:05:11.135 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65442 fPos=2.792 fActPosition=2.79 time=0.000020
2022/01/28 10:05:11.135 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=321 fPos=2.792 fActPosition=2.79 time=0.000011
2022/01/28 10:05:11.336 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65469 fPos=1.988 fActPosition=1.98 time=0.000108
2022/01/28 10:05:11.336 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=294 fPos=1.988 fActPosition=1.98 time=0.000012
2022/01/28 10:05:11.536 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65495 fPos=1.188 fActPosition=1.2 time=0.000019
2022/01/28 10:05:11.537 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=267 fPos=1.184 fActPosition=1.17 time=0.000393
2022/01/28 10:05:11.737 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65520 fPos=0.448 fActPosition=0.45 time=0.000011
2022/01/28 10:05:11.737 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=243 fPos=0.448 fActPosition=0.45 time=0.000006
2022/01/28 10:05:11.938 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65533 fPos=0.052 fActPosition=0.06 time=0.000011
2022/01/28 10:05:11.938 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=229 fPos=0.052 fActPosition=0.03 time=0.000006
2022/01/28 10:05:12.138 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:05:12.138 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000006
2022/01/28 10:05:12.338 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=65535 fPos=0 fActPosition=0 time=0.000011
2022/01/28 10:05:12.338 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=228 fPos=0 fActPosition=0 time=0.000005
2022/01/28 10:05:12.538 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65535 fPos=0.004 fActPosition=0 time=0.000015
2022/01/28 10:05:12.539 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=228 fPos=0.008 fActPosition=0 time=0.000009
2022/01/28 10:05:12.739 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65526 fPos=0.264 fActPosition=0.27 time=0.000016
2022/01/28 10:05:12.739 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=237 fPos=0.264 fActPosition=0.27 time=0.000008
2022/01/28 10:05:12.939 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65505 fPos=0.888 fActPosition=0.9 time=0.000020
2022/01/28 10:05:12.940 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=258 fPos=0.892 fActPosition=0.9 time=0.000164
2022/01/28 10:05:13.140 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65478 fPos=1.692 fActPosition=1.71 time=0.000023
2022/01/28 10:05:13.140 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=285 fPos=1.692 fActPosition=1.71 time=0.000013
2022/01/28 10:05:13.341 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65452 fPos=2.496 fActPosition=2.49 time=0.000011
2022/01/28 10:05:13.341 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=311 fPos=2.496 fActPosition=2.49 time=0.000006
2022/01/28 10:05:13.541 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65425 fPos=3.3 fActPosition=3.3 time=0.000012
2022/01/28 10:05:13.541 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=339 fPos=3.3 fActPosition=3.33 time=0.000007
2022/01/28 10:05:13.741 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65398 fPos=4.1 fActPosition=4.11 time=0.000012
2022/01/28 10:05:13.742 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=365 fPos=4.104 fActPosition=4.11 time=0.000008
2022/01/28 10:05:13.942 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65372 fPos=4.9 fActPosition=4.89 time=0.000020
2022/01/28 10:05:13.942 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=391 fPos=4.9 fActPosition=4.89 time=0.000012
2022/01/28 10:05:14.142 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65345 fPos=5.7 fActPosition=5.7 time=0.000019
2022/01/28 10:05:14.143 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=419 fPos=5.704 fActPosition=5.73 time=0.000131
2022/01/28 10:05:14.343 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65318 fPos=6.504 fActPosition=6.51 time=0.000020
2022/01/28 10:05:14.344 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=445 fPos=6.508 fActPosition=6.51 time=0.000014
2022/01/28 10:05:14.544 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65291 fPos=7.308 fActPosition=7.32 time=0.000020
2022/01/28 10:05:14.544 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=472 fPos=7.308 fActPosition=7.32 time=0.000012
2022/01/28 10:05:14.745 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65265 fPos=8.112 fActPosition=8.1 time=0.000012
2022/01/28 10:05:14.745 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=499 fPos=8.112 fActPosition=8.13 time=0.000007
2022/01/28 10:05:14.945 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65237 fPos=8.912 fActPosition=8.94 time=0.000011
2022/01/28 10:05:14.945 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=525 fPos=8.912 fActPosition=8.91 time=0.000006
2022/01/28 10:05:15.145 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65211 fPos=9.712 fActPosition=9.72 time=0.000011
2022/01/28 10:05:15.145 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=552 fPos=9.712 fActPosition=9.72 time=0.000007
2022/01/28 10:05:15.346 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65184 fPos=10.516 fActPosition=10.53 time=0.000011
2022/01/28 10:05:15.346 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=579 fPos=10.516 fActPosition=10.53 time=0.000008
2022/01/28 10:05:15.546 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65157 fPos=11.316 fActPosition=11.34 time=0.000030
2022/01/28 10:05:15.546 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=605 fPos=11.316 fActPosition=11.31 time=0.000012
2022/01/28 10:05:15.747 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65131 fPos=12.124 fActPosition=12.12 time=0.000253
2022/01/28 10:05:15.747 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=632 fPos=12.124 fActPosition=12.12 time=0.000013
2022/01/28 10:05:15.947 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65104 fPos=12.92 fActPosition=12.93 time=0.000018
2022/01/28 10:05:15.948 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=659 fPos=12.928 fActPosition=12.93 time=0.000013
2022/01/28 10:05:16.148 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65077 fPos=13.724 fActPosition=13.74 time=0.000019
2022/01/28 10:05:16.148 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=686 fPos=13.724 fActPosition=13.74 time=0.000011
2022/01/28 10:05:16.349 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65051 fPos=14.528 fActPosition=14.52 time=0.000049
2022/01/28 10:05:16.349 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=712 fPos=14.528 fActPosition=14.52 time=0.000007
2022/01/28 10:05:16.549 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=65024 fPos=15.328 fActPosition=15.33 time=0.000010
2022/01/28 10:05:16.549 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=739 fPos=15.328 fActPosition=15.33 time=0.000006
2022/01/28 10:05:16.749 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64997 fPos=16.128 fActPosition=16.14 time=0.000010
2022/01/28 10:05:16.749 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=766 fPos=16.128 fActPosition=16.14 time=0.000006
2022/01/28 10:05:16.950 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64971 fPos=16.932 fActPosition=16.92 time=0.000010
2022/01/28 10:05:16.950 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=793 fPos=16.932 fActPosition=16.95 time=0.000006
2022/01/28 10:05:17.150 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64944 fPos=17.732 fActPosition=17.73 time=0.000018
2022/01/28 10:05:17.150 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=819 fPos=17.732 fActPosition=17.73 time=0.000010
2022/01/28 10:05:17.351 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64917 fPos=18.536 fActPosition=18.54 time=0.000154
2022/01/28 10:05:17.351 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=846 fPos=18.536 fActPosition=18.54 time=0.000011
2022/01/28 10:05:17.551 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64891 fPos=19.324 fActPosition=19.32 time=0.000013
2022/01/28 10:05:17.551 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=872 fPos=19.324 fActPosition=19.32 time=0.000008
2022/01/28 10:05:17.752 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64873 fPos=19.848 fActPosition=19.86 time=0.000125
2022/01/28 10:05:17.752 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=890 fPos=19.848 fActPosition=19.86 time=0.000015
2022/01/28 10:05:17.952 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000011
2022/01/28 10:05:17.953 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000008
2022/01/28 10:05:18.153 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000009
2022/01/28 10:05:18.153 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=894 fPos=20 fActPosition=19.98 time=0.000007
2022/01/28 10:05:18.353 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000010
2022/01/28 10:05:18.353 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000007
2022/01/28 10:05:18.554 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000016
2022/01/28 10:05:18.554 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000014
2022/01/28 10:05:18.754 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000013
2022/01/28 10:05:18.754 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000008
2022/01/28 10:05:18.954 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000016
2022/01/28 10:05:18.954 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=894 fPos=20 fActPosition=19.98 time=0.000011
2022/01/28 10:05:19.155 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000074
2022/01/28 10:05:19.155 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000010
2022/01/28 10:05:19.355 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000017
2022/01/28 10:05:19.355 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000009
2022/01/28 10:05:19.555 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000010
2022/01/28 10:05:19.555 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000006
2022/01/28 10:05:19.756 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000011
2022/01/28 10:05:19.756 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=894 fPos=20 fActPosition=19.98 time=0.000006
y: 1.00000
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL: INFO: Reply OK (command[2] = G2X0Y0R20)
GRBL: INFO: Write command (command[3] = G4P2)
Added: G4P2../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_dwell:200:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_next_block_index:652:
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_go_idle:259:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL: INFO: Reply OK (command[3] = G4P2)
GRBL: INFO: Write command (command[4] = G0X10Y10)
Added: G0X10Y10../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_wake_up:228:
GRBL: INFO: Reply OK (command[4] = G0X10Y10)
GRBL: INFO: Write command (command[5] = G4P2)
Added: G4P2../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_dwell:200:
GRBL busy: 1.00000
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_go_idle:259:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL: INFO: Reply OK (command[5] = G4P2)
GRBL: INFO: Write command (command[6] = G1X0Y0)
Added: G1X0Y0../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_line:33:
GRBL: INFO: Reply OK (command[6] = G1X0Y0)
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_wake_up:228:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_go_idle:259:
GRBL busy: 0.00000
Retrigger g-code!!
GRBL: INFO: Write command (command[0] = G1X20Y20F360)
Added: G1X20Y20F360../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_next_block_index:652:
../grbl/grbl_stepper.c:st_wake_up:228:
GRBL: INFO: Reply OK (command[0] = G1X20Y20F360)
GRBL: INFO: Write command (command[1] = G4P2)
Added: G4P2../grbl/grbl_gcode.c:gc_execute_line:71:
../grbl/grbl_motion_control.c:mc_dwell:200:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL busy: 1.00000
../grbl/grbl_stepper.c:st_go_idle:259:
GRBL busy: 1.00000
GRBL busy: 1.00000
GRBL: INFO: Reply OK (command[1] = G4P2)
GRBL: INFO: Write command (command[2] = G2X0Y0R20)
Added: G2X0Y0R20../grbl/grbl_gcode.c:gc_execute_line:71:
../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:639:
../grbl/grbl_motion_control.c:mc_line:33:
../grbl/grbl_stepper.c:st_update_plan_block_parameters:639:
../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:652:2022/01/28 10:05:19.956 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=64868 fPos=20 fActPosition=20.01 time=0.000012
2022/01/28 10:05:19.956 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=1 wf=0 ENC=895 fPos=20 fActPosition=20.01 time=0.000006
2022/01/28 10:05:20.156 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64868 fPos=19.996 fActPosition=20.01 time=0.000028
2022/01/28 10:05:20.156 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=888 fPos=19.788 fActPosition=19.8 time=0.000011
2022/01/28 10:05:20.357 ecmcMotorRecord:: poll(1) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=64869 fPos=19.984 fActPosition=19.98 time=0.000011
2022/01/28 10:05:20.357 ecmcMotorRecord:: poll(2) mvnNRdy=1 bBusy=1 bExecute=0 bEnabled=1 atTarget=0 wf=0 ENC=868 fPos=19.208 fActPosition=19.2 time=0.000006