From c571142b03dc3c5fd6accad564ddaa88c804d526 Mon Sep 17 00:00:00 2001 From: Anders Sandstrom Date: Tue, 8 Feb 2022 12:36:01 +0100 Subject: [PATCH] Move auto enable to writer thread --- ecmc_plugin_grbl/ecmcGrbl.cpp | 188 ++--- ecmc_plugin_grbl/ecmcGrbl.h | 6 +- iocsh/log.log | 1352 +++++++++++++++------------------ 3 files changed, 694 insertions(+), 852 deletions(-) diff --git a/ecmc_plugin_grbl/ecmcGrbl.cpp b/ecmc_plugin_grbl/ecmcGrbl.cpp index 66009e5..e832e98 100644 --- a/ecmc_plugin_grbl/ecmcGrbl.cpp +++ b/ecmc_plugin_grbl/ecmcGrbl.cpp @@ -113,7 +113,6 @@ ecmcGrbl::ecmcGrbl(char* configStr, spindleAcceleration_ = 0; unrecoverableError_ = 0; cfgAutoEnableTimeOutSecs_ = ECMC_PLUGIN_AUTO_ENABLE_TIME_OUT_SEC; - autoEnableTimeOutCounter_ = 0; grblCommandBufferIndex_ = 0; grblCommandBuffer_.clear(); grblConfigBuffer_.clear(); @@ -238,7 +237,7 @@ void ecmcGrbl::parseConfigStr(char *configStr) { } } -// Write socket worker +// Main program for writing configs and g-code to grbl void ecmcGrbl::doWriteWorker() { // simulate serial connection here (need mutex) std::string reply = ""; @@ -271,11 +270,41 @@ void ecmcGrbl::doWriteWorker() { } delay_ms(2); + // Blocks until written if(cfgDbgMode_){ printf("GRBL: INFO: Configuration start\n"); + } + if(!applyConfigsSuccess()) { + return; // Something went wrong, kill thread } - // Apply configs + // Auto enable + if(cfgDbgMode_){ + printf("GRBL: INFO: Auto enable configured axes\n"); + } + + // All configs done above. + for(;;) { + // Execute auto enable + if(cfgDbgMode_){ + printf("GRBL: INFO: auto enable\n"); + } + + autoEnableAxesSuccess(); + + // GRBL ready, now we can send g-code comamnds + if(cfgDbgMode_){ + printf("GRBL: INFO: Start load g-code\n"); + } + if(!WriteGCodeSuccess()) { + return; // Something went wrong, kill thread + } + } + } +} + +bool ecmcGrbl::applyConfigsSuccess() { + // Apply configs int index = 0; while(index < grblConfigBuffer_.size()) { epicsMutexLock(grblConfigBufferMutex_); @@ -299,62 +328,78 @@ void ecmcGrbl::doWriteWorker() { printf("GRBL: ERROR: Restart of IOC needed.\n"); unrecoverableError_ = 1; setExecute(0); - return; //kill thread + return false; } index++; } - - if(cfgDbgMode_){ - printf("GRBL: INFO: Configuration ready\n"); - } + return true; +} - if(cfgDbgMode_){ - printf("GRBL: INFO: Start load g-code\n"); - } +bool ecmcGrbl::autoEnableAxesSuccess() { - // GRBL ready, now we can send g-code comamnds - for(;;) { - if( (grblCommandBuffer_.size() > grblCommandBufferIndex_) && - executeCmd_ && ecmcData_.allEnabled && grblInitDone_) { - epicsMutexLock(grblCommandBufferMutex_); - std::string commandRaw = grblCommandBuffer_[grblCommandBufferIndex_]; - epicsMutexUnlock(grblCommandBufferMutex_); - std::string command = commandRaw.substr(0, commandRaw.find(ECMC_CONFIG_FILE_COMMENT_CHAR)); - if(command.length() == 0) { - continue; - } - - //Write command (will block untill written) - grblWriteCommand(command); - - // will block untill answer - grblReplyType replyStat = grblReadReply(); - - if(replyStat != ECMC_GRBL_REPLY_OK) { - errorCode_ = ECMC_PLUGIN_GRBL_COMMAND_ERROR_CODE; - // stop motion - setExecute(0); - setReset(0); - setReset(1); - setReset(0); - grblCommandBufferIndex_ = 0; - break; // for loop - } - - grblCommandBufferIndex_++; - } - else { - if( (( grblCommandBufferIndex_ >= grblCommandBuffer_.size()) || !executeCmd_ ) && - grblInitDone_) { - writerBusy_ = 0; - } - - // Wait for right condition to start - delay_ms(5); - } - } + if(ecmcData_.allEnabled) { + return true; } + + if(!cfgAutoEnable_ && !errorCode_) { + setAllAxesEnable(1); + } + + int loopCounter=0; + while(!ecmcData_.allEnabled || loopCounter >= 100) { + delay_ms(cfgAutoEnableTimeOutSecs_*10); //*1000/100 + loopCounter++; + } + if(loopCounter >= 100 && !ecmcData_.allEnabled) { + errorCode_ = ECMC_PLUGIN_AUTO_ENABLE_TIMEOUT_ERROR_CODE; + } + return ecmcData_.allEnabled; +} + +bool ecmcGrbl::WriteGCodeSuccess() { + for(;;) { + + if( (grblCommandBuffer_.size() > grblCommandBufferIndex_) && + executeCmd_ && ecmcData_.allEnabled && grblInitDone_) { + epicsMutexLock(grblCommandBufferMutex_); + std::string commandRaw = grblCommandBuffer_[grblCommandBufferIndex_]; + epicsMutexUnlock(grblCommandBufferMutex_); + std::string command = commandRaw.substr(0, commandRaw.find(ECMC_CONFIG_FILE_COMMENT_CHAR)); + if(command.length() == 0) { + continue; + } + + //Write command (will block untill written) + grblWriteCommand(command); + + // will block untill answer + grblReplyType replyStat = grblReadReply(); + + if(replyStat != ECMC_GRBL_REPLY_OK) { + errorCode_ = ECMC_PLUGIN_GRBL_COMMAND_ERROR_CODE; + // stop motion + setExecute(0); + setReset(0); + setReset(1); + setReset(0); + grblCommandBufferIndex_ = 0; + return false; // for loop + } + + grblCommandBufferIndex_++; + } + else { + if( (( grblCommandBufferIndex_ >= grblCommandBuffer_.size()) || !executeCmd_ ) && + grblInitDone_) { + writerBusy_ = 0; + } + + // Wait for right condition to start + delay_ms(5); + } + } + return true; } void ecmcGrbl::grblWriteCommand(std::string command) { @@ -514,19 +559,6 @@ int ecmcGrbl::getAllAxesEnabled() { return ecmcData_.allEnabled; } -void ecmcGrbl::autoEnableAxis(ecmcAxisStatusData ecmcAxisData) { - - if(!cfgAutoEnable_ || getEcmcEpicsIOCState()!=16 || errorCode_ || ecmcAxisData.axisId < 0) { - return; - } - - if(ecmcAxisData.enabled) { - return; - } - - setAxisEnable(ecmcAxisData.axisId,1); -} - bool ecmcGrbl::getEcmcAxisLimitBwd(int ecmcAxisId) { int lim = 0; getAxisLimitSwitchBwd(ecmcAxisId,&lim); @@ -566,26 +598,6 @@ void ecmcGrbl::preExeAxes() { // Kill everything if limit switch violation giveControlToEcmcIfNeeded(); - - //spindle - autoEnableAxis(ecmcData_.spindleAxis); - - if(ecmcData_.allEnabled) { - autoEnableTimeOutCounter_ = 0; - } else { - if(cfgAutoEnable_ && !errorCode_) { - if(autoEnableTimeOutCounter_ >= cfgAutoEnableTimeOutSecs_/exeSampleTimeMs_*1000) { - errorCode_ = ECMC_PLUGIN_AUTO_ENABLE_TIMEOUT_ERROR_CODE; - if(errorCode_ != errorCodeOld_) { - printf("GRBL: ERROR: Auto enable timeout 0x%x\n",errorCode_); - } - setExecute(0); - setAllAxesEnable(0); - } else { - autoEnableTimeOutCounter_++; - } - } - } } void ecmcGrbl::preExeAxis(ecmcAxisStatusData ecmcAxisData, int grblAxisId) { @@ -593,8 +605,7 @@ void ecmcGrbl::preExeAxis(ecmcAxisStatusData ecmcAxisData, int grblAxisId) { return; } - syncAxisPosition(ecmcAxisData, grblAxisId); - autoEnableAxis(ecmcAxisData); + syncAxisPosition(ecmcAxisData, grblAxisId); } void ecmcGrbl::giveControlToEcmcIfNeeded() { @@ -833,9 +844,6 @@ void ecmcGrbl::postExeAxes() { // trigg start of g-code int ecmcGrbl::setExecute(int exe) { - if(!exe) { - autoEnableTimeOutCounter_ = 0; - } if(!executeCmd_ && exe) { grblCommandBufferIndex_ = 0; diff --git a/ecmc_plugin_grbl/ecmcGrbl.h b/ecmc_plugin_grbl/ecmcGrbl.h index 625f3eb..2204ab8 100644 --- a/ecmc_plugin_grbl/ecmcGrbl.h +++ b/ecmc_plugin_grbl/ecmcGrbl.h @@ -97,7 +97,6 @@ class ecmcGrbl : public asynPortDriver { void postExeAxes(); void preExeAxis(ecmcAxisStatusData ecmcAxisData, int grblAxisId); void postExeAxis(ecmcAxisStatusData ecmcAxisData, int grblAxisId); - void autoEnableAxis(ecmcAxisStatusData ecmcAxisData); void giveControlToEcmcIfNeeded(); void syncAxisPosition(ecmcAxisStatusData ecmcAxisData, int grblAxisId); bool getEcmcAxisEnabled(int ecmcAxisId); @@ -108,6 +107,10 @@ class ecmcGrbl : public asynPortDriver { static std::string to_string(int value); grblReplyType grblReadReply(); void grblWriteCommand(std::string command); + bool applyConfigsSuccess(); + bool WriteGCodeSuccess(); + bool autoEnableAxesSuccess(); + int cfgDbgMode_; int cfgXAxisId_; int cfgYAxisId_; @@ -135,7 +138,6 @@ class ecmcGrbl : public asynPortDriver { bool writerBusy_; double spindleAcceleration_; int cfgAutoEnableTimeOutSecs_; - int autoEnableTimeOutCounter_; int unrecoverableError_; ecmcStatusData ecmcData_; diff --git a/iocsh/log.log b/iocsh/log.log index dfa67d1..1c16411 100644 --- a/iocsh/log.log +++ b/iocsh/log.log @@ -1,9 +1,9 @@ registerChannelProviderLocal firstTime true # -# Start at "2022-W06-Feb08-1159-10-CET" +# Start at "2022-W06-Feb08-1233-26-CET" # # Version information: -# European Spallation Source ERIC : iocsh.bash (3.4.0-PID-19481) +# European Spallation Source ERIC : iocsh.bash (3.4.0-PID-20961) # # --->--> snip -->--> # Please Use Version and other environment variables @@ -31,10 +31,10 @@ registerChannelProviderLocal firstTime true # --->--> snip -->--> # # Set REQUIRE_IOC for its internal PVs -epicsEnvSet REQUIRE_IOC "REQMOD:raspberrypi-19481" +epicsEnvSet REQUIRE_IOC "REQMOD:raspberrypi-20961" # # Enable an exit subroutine for sotfioc -dbLoadRecords "/home/pi/epics/base-7.0.5/db/softIocExit.db" "IOC=REQMOD:raspberrypi-19481" +dbLoadRecords "/home/pi/epics/base-7.0.5/db/softIocExit.db" "IOC=REQMOD:raspberrypi-20961" # # 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" @@ -262,17 +262,17 @@ epicsEnvUnset(ECMC_TRAJ_VELO_FILT_ENABLE) epicsEnvUnset(ECMC_TRAJ_SOURCE) epicsEnvSet("ECMC_EGU", "mm") epicsEnvSet("ECMC_PREC", 3) -epicsEnvSet("ECMC_AXISFIELDINIT", "") # Extra field ini2022/02/08 11:59:11.152 +epicsEnvSet("ECMC_AXISFIELDINIT", "") # Extra field ini2022/02/08 12:33:26.605 ECMC Initializes............. -2022/02/08 11:59:11.153 ESS Open Source EtherCAT Motion Control Epics Module2022/02/08 11:59:11.153 +2022/02/08 12:33:26.605 ESS Open Source EtherCAT Motion Control Epics Module2022/02/08 12:33:26.605 Mode: Configuration -2022/02/08 11:59:11.153 OK -2022/02/08 11:59:11.153 OK -2022/02/08 11:59:11.154 OK -2022/02/08 11:59:11.156 OK -2022/02/08 11:59:11.177 OK -2022/02/08 11:59:11.177 OK -2022/02/08 11:59:11.177 OK +2022/02/08 12:33:26.606 OK +2022/02/08 12:33:26.606 OK +2022/02/08 12:33:26.607 OK +2022/02/08 12:33:26.609 OK +2022/02/08 12:33:26.629 OK +2022/02/08 12:33:26.630 OK +2022/02/08 12:33:26.630 OK t to motor record epicsEnvSet("ECMC_AXISCONFIG", "") # Extra parameters to driver ############################################################ @@ -346,12 +346,12 @@ 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/site2022/02/08 11:59:11.179 OK -2022/02/08 11:59:11.180 OK -2022/02/08 11:59:11.188 OK -2022/02/08 11:59:11.189 OK -2022/02/08 11:59:11.189 OK -2022/02/08 11:59:11.189 OK +iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/site2022/02/08 12:33:26.633 OK +2022/02/08 12:33:26.634 OK +2022/02/08 12:33:26.642 OK +2022/02/08 12:33:26.643 OK +2022/02/08 12:33:26.643 OK +2022/02/08 12:33:26.644 OK Mods/ecmccfg/ruckig/ecmcEK1100.cmd" "NELM=1" epicsEnvSet("ECMC_EC_HWTYPE" "EK1100") epicsEnvSet("ECMC_EC_VENDOR_ID" "0x2") @@ -416,18 +416,18 @@ iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEX 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,binaryIn2022/02/08 11:59:11.190 OK -2022/02/08 11:59:11.190 OK -2022/02/08 11:59:11.190 OK -2022/02/08 11:59:11.190 OK -2022/02/08 11:59:11.190 OK -2022/02/08 11:59:11.198 OK -2022/02/08 11:59:11.200 OK -2022/02/08 11:59:11.200 OK -2022/02/08 11:59:11.200 OK -2022/02/08 11:59:11.200 OK -2022/02/08 11:59:11.201 OK -2022/02/08 11:59:11.201 OK +ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a03,0x6030,0x1,B1,binaryIn2022/02/08 12:33:26.645 OK +2022/02/08 12:33:26.646 OK +2022/02/08 12:33:26.646 OK +2022/02/08 12:33:26.646 OK +2022/02/08 12:33:26.646 OK +2022/02/08 12:33:26.655 OK +2022/02/08 12:33:26.657 OK +2022/02/08 12:33:26.657 OK +2022/02/08 12:33:26.657 OK +2022/02/08 12:33:26.658 OK +2022/02/08 12:33:26.658 OK +2022/02/08 12:33:26.658 OK put04)" ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a04,0x6040,0x1,B1,binaryInput05)" ecmcConfigOrDie "Cfg.EcAddEntryDT(1,0x2,0x03fa3052,2,0,0x1a05,0x6050,0x1,B1,binaryInput06)" @@ -488,16 +488,16 @@ ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af83052,1,0,0x1602,0x7020,0x1,B1,bina 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,0x0af830522022/02/08 11:59:11.201 OK -2022/02/08 11:59:11.202 OK -2022/02/08 11:59:11.211 OK -2022/02/08 11:59:11.309 OK -2022/02/08 11:59:11.389 14385 -2022/02/08 11:59:11.390 OK -2022/02/08 11:59:11.390 OK -2022/02/08 11:59:11.390 OK -2022/02/08 11:59:11.390 OK -2022/02/08 11:59:11.391 OK +ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af830522022/02/08 12:33:26.660 OK +2022/02/08 12:33:26.660 OK +2022/02/08 12:33:26.671 OK +2022/02/08 12:33:26.749 OK +2022/02/08 12:33:26.829 14385 +2022/02/08 12:33:26.830 OK +2022/02/08 12:33:26.831 OK +2022/02/08 12:33:26.831 OK +2022/02/08 12:33:26.832 OK +2022/02/08 12:33:26.832 OK ,1,0,0x1606,0x7060,0x1,B1,binaryOutput07)" ecmcConfigOrDie "Cfg.EcAddEntryDT(2,0x2,0x0af83052,1,0,0x1607,0x7070,0x1,B1,binaryOutput08)" # deduce what the prefix should be @@ -561,14 +561,14 @@ ecmcConfigOrDie "Cfg.EcAddEntryComplete(3,0x2,0x13ed3052,2,3,0x1a03,0x6010,0x00, 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 -ecmcFil2022/02/08 11:59:11.398 OK -2022/02/08 11:59:11.469 OK -2022/02/08 11:59:11.569 14385 -2022/02/08 11:59:11.571 OK -2022/02/08 11:59:11.571 OK -2022/02/08 11:59:11.571 OK -2022/02/08 11:59:11.571 OK -2022/02/08 11:59:11.571 OK +ecmcFil2022/02/08 12:33:26.846 OK +2022/02/08 12:33:26.919 OK +2022/02/08 12:33:26.999 14385 +2022/02/08 12:33:27.000 OK +2022/02/08 12:33:27.000 OK +2022/02/08 12:33:27.001 OK +2022/02/08 12:33:27.001 OK +2022/02/08 12:33:27.001 OK eExist("/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=3,HWTYPE=EL5101" #============================================================================== @@ -629,9 +629,9 @@ ecmcConfigOrDie "Cfg.EcAddEntryComplete(4,0x2,0x13ed3052,2,3,0x1a03,0x6010,0x20, # 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/02/08 11:59:11.583 OK -2022/02/08 11:59:11.585 OK -2022/02/08 11:59:11.585 OK +#===================================2022/02/08 12:33:27.009 OK +2022/02/08 12:33:27.010 OK +2022/02/08 12:33:27.010 OK =========================================== # ecmcmXsXXX.cmd ecmcEpicsEnvSetCalc("sid", "4","%03d") @@ -697,15 +697,15 @@ iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/apply 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) -ecmcEpicsEnvSetCalcTe2022/02/08 11:59:11.596 OK -2022/02/08 11:59:11.598 OK -2022/02/08 11:59:11.599 OK -2022/02/08 11:59:11.599 OK -2022/02/08 11:59:11.599 OK -2022/02/08 11:59:11.599 OK -2022/02/08 11:59:11.600 OK -2022/02/08 11:59:11.600 OK -2022/02/08 11:59:11.600 OK +ecmcEpicsEnvSetCalcTe2022/02/08 12:33:27.020 OK +2022/02/08 12:33:27.021 OK +2022/02/08 12:33:27.021 OK +2022/02/08 12:33:27.022 OK +2022/02/08 12:33:27.022 OK +2022/02/08 12:33:27.022 OK +2022/02/08 12:33:27.022 OK +2022/02/08 12:33:27.022 OK +2022/02/08 12:33:27.022 OK rnary(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:m0s005-,ECMC_G=IOC_TEST:m0s005" #============================================================================== @@ -764,21 +764,21 @@ 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=2022/02/08 11:59:11.614 OK -2022/02/08 11:59:11.749 OK -2022/02/08 11:59:11.849 12848 -2022/02/08 11:59:11.850 OK -2022/02/08 11:59:11.850 OK -2022/02/08 11:59:11.850 OK -2022/02/08 11:59:11.851 OK -2022/02/08 11:59:11.851 OK -2022/02/08 11:59:11.851 OK -2022/02/08 11:59:11.851 OK -2022/02/08 11:59:11.851 OK -2022/02/08 11:59:11.851 OK -2022/02/08 11:59:11.852 OK -2022/02/08 11:59:11.852 OK -2022/02/08 11:59:11.852 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:m0s006-,ECMC_G=2022/02/08 12:33:27.034 OK +2022/02/08 12:33:27.139 OK +2022/02/08 12:33:27.219 12848 +2022/02/08 12:33:27.222 OK +2022/02/08 12:33:27.222 OK +2022/02/08 12:33:27.223 OK +2022/02/08 12:33:27.223 OK +2022/02/08 12:33:27.224 OK +2022/02/08 12:33:27.224 OK +2022/02/08 12:33:27.224 OK +2022/02/08 12:33:27.224 OK +2022/02/08 12:33:27.225 OK +2022/02/08 12:33:27.225 OK +2022/02/08 12:33:27.225 OK +2022/02/08 12:33:27.225 OK IOC_TEST:m0s006" #============================================================================== # applyTemplate.cmd @@ -842,12 +842,12 @@ iocshLoad "/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcm ecmcEpicsEnvSetCalc("sid", "8","%03d") ecmcEpicsEnvSetCalc("mid", "0","%01d") epicsEnvSet("ECMC_G", "IOC_TEST:m0s008") -epicsEnvSet("ECMC_P", 2022/02/08 11:59:11.860 OK -2022/02/08 11:59:11.861 OK -2022/02/08 11:59:11.861 OK -2022/02/08 11:59:11.861 OK -2022/02/08 11:59:11.861 OK -2022/02/08 11:59:11.861 OK +epicsEnvSet("ECMC_P", 2022/02/08 12:33:27.247 OK +2022/02/08 12:33:27.247 OK +2022/02/08 12:33:27.247 OK +2022/02/08 12:33:27.248 OK +2022/02/08 12:33:27.248 OK +2022/02/08 12:33:27.248 OK "IOC_TEST:m0s008-") epicsEnvUnset(sid) epicsEnvUnset(mid) @@ -910,21 +910,21 @@ 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/02/08 11:59:11.863 OK -2022/02/08 11:59:11.969 OK -2022/02/08 11:59:12.049 12848 -2022/02/08 11:59:12.050 OK -2022/02/08 11:59:12.050 OK -2022/02/08 11:59:12.051 OK -2022/02/08 11:59:12.051 OK -2022/02/08 11:59:12.051 OK -2022/02/08 11:59:12.051 OK -2022/02/08 11:59:12.051 OK -2022/02/08 11:59:12.051 OK -2022/02/08 11:59:12.051 OK -2022/02/08 11:59:12.052 OK -2022/02/08 11:59:12.052 OK -2022/02/08 11:59:12.052 OK +#==========================2022/02/08 12:33:27.253 OK +2022/02/08 12:33:27.379 OK +2022/02/08 12:33:27.459 12848 +2022/02/08 12:33:27.462 OK +2022/02/08 12:33:27.462 OK +2022/02/08 12:33:27.462 OK +2022/02/08 12:33:27.463 OK +2022/02/08 12:33:27.463 OK +2022/02/08 12:33:27.463 OK +2022/02/08 12:33:27.463 OK +2022/02/08 12:33:27.464 OK +2022/02/08 12:33:27.464 OK +2022/02/08 12:33:27.464 OK +2022/02/08 12:33:27.464 OK +2022/02/08 12:33:27.464 OK ==================================================== # addSlave.cmd epicsEnvSet("ECMC_EC_SLAVE_NUM", "9") @@ -987,22 +987,22 @@ dbLoadRecords("ecmcEcSlave.template", "ECMC_P=IOC_TEST:m0s009-,ECMC_G=IOC_TEST:m epicsEnvUnset(DEFAULT_SLAVE_PVS) # increment SLAVE_ID ecmcEpicsEnvSetCalc("SLAVE_ID", "9+1","%d") -# app2022/02/08 11:59:12.061 OK -2022/02/08 11:59:12.061 OK -2022/02/08 11:59:12.061 OK -2022/02/08 11:59:12.061 OK -2022/02/08 11:59:12.061 OK -2022/02/08 11:59:12.061 OK -2022/02/08 11:59:12.061 OK -2022/02/08 11:59:12.063 OK -2022/02/08 11:59:12.269 OK -2022/02/08 11:59:12.349 14385 -2022/02/08 11:59:12.449 OK -2022/02/08 11:59:12.539 OK -2022/02/08 11:59:12.619 OK -2022/02/08 11:59:12.699 OK -2022/02/08 11:59:12.779 OK -2022/02/08 11:59:12.781 OK +# app2022/02/08 12:33:27.486 OK +2022/02/08 12:33:27.486 OK +2022/02/08 12:33:27.486 OK +2022/02/08 12:33:27.486 OK +2022/02/08 12:33:27.487 OK +2022/02/08 12:33:27.487 OK +2022/02/08 12:33:27.487 OK +2022/02/08 12:33:27.491 OK +2022/02/08 12:33:27.679 OK +2022/02/08 12:33:27.759 14385 +2022/02/08 12:33:27.839 OK +2022/02/08 12:33:27.919 OK +2022/02/08 12:33:28.009 OK +2022/02/08 12:33:28.089 OK +2022/02/08 12:33:28.169 OK +2022/02/08 12:33:28.170 OK ly 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 "" @@ -1072,15 +1072,15 @@ ecmcConfigOrDie "Cfg.EcWriteSdo(11,0x8010,0x14,50,4)" ecmcConfigOrDie "Cfg.EcWriteSdo(11,0x8010,0x15,50,4)" iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/ecmcEX72XX_CSV.cmd ecmcConfigOrDie "Cfg.EcAddEntryDT(11,0x2,0x1c2b3052,1,2,0x1600,0x7010,0x01,U16,driveControl01)" -2022/02/08 11:59:12.781 OK -2022/02/08 11:59:12.782 OK -2022/02/08 11:59:12.782 OK -2022/02/08 11:59:12.782 OK -2022/02/08 11:59:12.786 OK -2022/02/08 11:59:12.786 OK -2022/02/08 11:59:12.788 OK -2022/02/08 11:59:12.789 OK -2022/02/08 11:59:12.789 OK +2022/02/08 12:33:28.170 OK +2022/02/08 12:33:28.170 OK +2022/02/08 12:33:28.171 OK +2022/02/08 12:33:28.171 OK +2022/02/08 12:33:28.173 OK +2022/02/08 12:33:28.173 OK +2022/02/08 12:33:28.175 OK +2022/02/08 12:33:28.175 OK +2022/02/08 12:33:28.175 OK ecmcConfigOrDie "Cfg.EcAddEntryDT(11,0x2,0x1c2b3052,1,2,0x1601,0x7010,0x06,S32,velocitySetpoint01)" ecmcConfigOrDie "Cfg.EcAddEntryDT(11,0x2,0x1c2b3052,2,3,0x1a00,0x6000,0x11,U32,positionActual01)" ecmcConfigOrDie "Cfg.EcAddEntryDT(11,0x2,0x1c2b3052,2,3,0x1a01,0x6010,0x01,U16,driveStatus01)" @@ -1136,29 +1136,29 @@ epicsEnvUnset(DEFAULT_SLAVE_PVS) ecmcEpicsEnvSetCalc("SLAVE_ID", "11+1","%d") # Apply local 24V config (local here) iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/applySlaveConfig.cmd, "LOCAL_CONFIG=./ecmcEL7211-0010-Motor-Beckhoff-AM8121-0F00-0000_24V.cmd" -#====================================================================2022/02/08 11:59:12.805 OK -2022/02/08 11:59:12.805 OK -2022/02/08 11:59:12.805 OK -2022/02/08 11:59:12.805 OK -2022/02/08 11:59:12.806 OK -2022/02/08 11:59:12.806 OK -2022/02/08 11:59:12.806 OK -2022/02/08 11:59:12.806 OK -2022/02/08 11:59:12.807 OK -2022/02/08 11:59:12.807 OK -2022/02/08 11:59:12.807 OK -2022/02/08 11:59:12.808 OK -2022/02/08 11:59:12.808 OK -2022/02/08 11:59:12.808 OK -2022/02/08 11:59:12.809 OK -2022/02/08 11:59:12.809 OK -2022/02/08 11:59:12.809 OK -2022/02/08 11:59:12.810 OK -2022/02/08 11:59:12.810 OK -2022/02/08 11:59:12.810 OK -2022/02/08 11:59:12.810 OK -2022/02/08 11:59:12.811 OK -2022/02/08 11:59:12.811 OK +#====================================================================2022/02/08 12:33:28.185 OK +2022/02/08 12:33:28.185 OK +2022/02/08 12:33:28.185 OK +2022/02/08 12:33:28.185 OK +2022/02/08 12:33:28.185 OK +2022/02/08 12:33:28.185 OK +2022/02/08 12:33:28.185 OK +2022/02/08 12:33:28.185 OK +2022/02/08 12:33:28.186 OK +2022/02/08 12:33:28.186 OK +2022/02/08 12:33:28.186 OK +2022/02/08 12:33:28.186 OK +2022/02/08 12:33:28.186 OK +2022/02/08 12:33:28.186 OK +2022/02/08 12:33:28.186 OK +2022/02/08 12:33:28.187 OK +2022/02/08 12:33:28.187 OK +2022/02/08 12:33:28.187 OK +2022/02/08 12:33:28.187 OK +2022/02/08 12:33:28.187 OK +2022/02/08 12:33:28.187 OK +2022/02/08 12:33:28.187 OK +2022/02/08 12:33:28.187 OK =========== # applySlaveConfig.cmd # Arguments: CONFIG _or_ LOCAL_CONFIG @@ -1342,47 +1342,47 @@ iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verify 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) -iocsh2022/02/08 11:59:12.830 OK -2022/02/08 11:59:12.831 OK -2022/02/08 11:59:12.831 OK -2022/02/08 11:59:12.831 OK -2022/02/08 11:59:12.837 OK -2022/02/08 11:59:12.837 OK -2022/02/08 11:59:12.837 OK -2022/02/08 11:59:12.838 OK -2022/02/08 11:59:12.838 OK -2022/02/08 11:59:12.838 OK -2022/02/08 11:59:12.839 OK -2022/02/08 11:59:12.839 OK -2022/02/08 11:59:12.840 OK -2022/02/08 11:59:12.840 OK -2022/02/08 11:59:12.840 OK -2022/02/08 11:59:12.841 OK -2022/02/08 11:59:12.841 OK -2022/02/08 11:59:12.842 OK -2022/02/08 11:59:12.842 OK -2022/02/08 11:59:12.842 OK -2022/02/08 11:59:12.843 OK -2022/02/08 11:59:12.843 OK -2022/02/08 11:59:12.843 OK -2022/02/08 11:59:12.844 OK -2022/02/08 11:59:12.844 OK -2022/02/08 11:59:12.844 OK -2022/02/08 11:59:12.844 OK -2022/02/08 11:59:12.845 OK -2022/02/08 11:59:12.845 OK -2022/02/08 11:59:12.845 OK -2022/02/08 11:59:12.845 OK -2022/02/08 11:59:12.846 OK -2022/02/08 11:59:12.846 OK -2022/02/08 11:59:12.846 OK -2022/02/08 11:59:12.847 OK -2022/02/08 11:59:12.847 OK -2022/02/08 11:59:12.847 OK -2022/02/08 11:59:12.847 OK -2022/02/08 11:59:12.848 OK -2022/02/08 11:59:12.848 OK -2022/02/08 11:59:12.848 OK +iocsh2022/02/08 12:33:28.202 OK +2022/02/08 12:33:28.202 OK +2022/02/08 12:33:28.202 OK +2022/02/08 12:33:28.202 OK +2022/02/08 12:33:28.205 OK +2022/02/08 12:33:28.205 OK +2022/02/08 12:33:28.206 OK +2022/02/08 12:33:28.206 OK +2022/02/08 12:33:28.206 OK +2022/02/08 12:33:28.206 OK +2022/02/08 12:33:28.206 OK +2022/02/08 12:33:28.206 OK +2022/02/08 12:33:28.206 OK +2022/02/08 12:33:28.206 OK +2022/02/08 12:33:28.206 OK +2022/02/08 12:33:28.207 OK +2022/02/08 12:33:28.207 OK +2022/02/08 12:33:28.207 OK +2022/02/08 12:33:28.207 OK +2022/02/08 12:33:28.207 OK +2022/02/08 12:33:28.207 OK +2022/02/08 12:33:28.207 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.208 OK +2022/02/08 12:33:28.209 OK +2022/02/08 12:33:28.209 OK +2022/02/08 12:33:28.209 OK +2022/02/08 12:33:28.209 OK +2022/02/08 12:33:28.209 OK +2022/02/08 12:33:28.209 OK +2022/02/08 12:33:28.209 OK +2022/02/08 12:33:28.209 OK Load /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 @@ -1444,42 +1444,42 @@ ecmcConfigOrDie "Cfg.LinkEcEntryToObject(,"ax1.drv.brake")" ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveControl01.2,"ax1.drv.reducetorque")" ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveControl01.1,"ax1.drv.reset")" ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s8.driveStatus01.3,"ax1.drv.alarm0")" -ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec2022/02/08 11:59:12.849 OK -2022/02/08 11:59:12.850 OK -2022/02/08 11:59:12.850 OK -2022/02/08 11:59:12.851 OK -2022/02/08 11:59:12.851 OK -2022/02/08 11:59:12.852 OK -2022/02/08 11:59:12.852 OK -2022/02/08 11:59:12.853 OK -2022/02/08 11:59:12.854 OK -2022/02/08 11:59:12.854 OK -2022/02/08 11:59:12.855 OK -2022/02/08 11:59:12.855 OK -2022/02/08 11:59:12.856 OK -2022/02/08 11:59:12.856 OK -2022/02/08 11:59:12.857 OK -2022/02/08 11:59:12.857 OK -2022/02/08 11:59:12.857 OK -2022/02/08 11:59:12.858 OK -2022/02/08 11:59:12.858 OK -2022/02/08 11:59:12.859 OK -2022/02/08 11:59:12.859 OK -2022/02/08 11:59:12.859 OK -2022/02/08 11:59:12.860 OK -2022/02/08 11:59:12.860 OK -2022/02/08 11:59:12.860 OK -2022/02/08 11:59:12.861 OK -2022/02/08 11:59:12.861 OK -2022/02/08 11:59:12.861 OK -2022/02/08 11:59:12.862 OK -2022/02/08 11:59:12.862 OK -2022/02/08 11:59:12.863 ecmcMotorRecord:: setIntegerParam(1 motorPowerAutoOnOff_)=2 -2022/02/08 11:59:12.864 ecmcMotorRecord:: setDoubleParam(1 motorPowerOnDelay_)=6 -2022/02/08 11:59:12.864 ecmcMotorRecord:: setDoubleParam(1 motorPowerOffDelay_=-1 -2022/02/08 11:59:12.865 ecmcMotorRecord:: udateMotorLimitsRO(1) enabledHighAndLow=1 valid=1 fValueHigh=130 fValueLow=-20 -2022/02/08 11:59:12.866 ecmcMotorRecord:: connected(1) -2022/02/08 11:59:12.866 ecmcMotorRecord:: initialPoll(1) status=0 +ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec2022/02/08 12:33:28.210 OK +2022/02/08 12:33:28.210 OK +2022/02/08 12:33:28.210 OK +2022/02/08 12:33:28.210 OK +2022/02/08 12:33:28.210 OK +2022/02/08 12:33:28.210 OK +2022/02/08 12:33:28.210 OK +2022/02/08 12:33:28.210 OK +2022/02/08 12:33:28.211 OK +2022/02/08 12:33:28.211 OK +2022/02/08 12:33:28.211 OK +2022/02/08 12:33:28.211 OK +2022/02/08 12:33:28.211 OK +2022/02/08 12:33:28.211 OK +2022/02/08 12:33:28.211 OK +2022/02/08 12:33:28.211 OK +2022/02/08 12:33:28.211 OK +2022/02/08 12:33:28.212 OK +2022/02/08 12:33:28.212 OK +2022/02/08 12:33:28.212 OK +2022/02/08 12:33:28.212 OK +2022/02/08 12:33:28.212 OK +2022/02/08 12:33:28.212 OK +2022/02/08 12:33:28.212 OK +2022/02/08 12:33:28.212 OK +2022/02/08 12:33:28.213 OK +2022/02/08 12:33:28.213 OK +2022/02/08 12:33:28.213 OK +2022/02/08 12:33:28.213 OK +2022/02/08 12:33:28.213 OK +2022/02/08 12:33:28.214 ecmcMotorRecord:: setIntegerParam(1 motorPowerAutoOnOff_)=2 +2022/02/08 12:33:28.214 ecmcMotorRecord:: setDoubleParam(1 motorPowerOnDelay_)=6 +2022/02/08 12:33:28.214 ecmcMotorRecord:: setDoubleParam(1 motorPowerOffDelay_=-1 +2022/02/08 12:33:28.214 ecmcMotorRecord:: udateMotorLimitsRO(1) enabledHighAndLow=1 valid=1 fValueHigh=130 fValueLow=-20 +2022/02/08 12:33:28.214 ecmcMotorRecord:: connected(1) +2022/02/08 12:33:28.214 ecmcMotorRecord:: initialPoll(1) status=0 0.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")" @@ -1651,24 +1651,24 @@ epicsEnvSet("ECMC_AXIS_EXPR_LINE_7", "") epicsEnvSet("ECMC_AXIS_EXPR_LINE_8", "") epicsEnvSet("ECMC_AXIS_EXPR_LINE_9", "") epicsEnvSet("ECMC_AXIS_EXPR_LINE_10", "") -ecmcFil2022/02/08 11:59:12.880 OK -2022/02/08 11:59:12.880 OK -2022/02/08 11:59:12.880 OK -2022/02/08 11:59:12.880 OK -2022/02/08 11:59:12.880 OK -2022/02/08 11:59:12.880 OK -2022/02/08 11:59:12.880 OK -2022/02/08 11:59:12.880 OK -2022/02/08 11:59:12.881 OK -2022/02/08 11:59:12.881 OK -2022/02/08 11:59:12.881 OK -2022/02/08 11:59:12.881 OK -2022/02/08 11:59:12.881 OK -2022/02/08 11:59:12.881 OK -2022/02/08 11:59:12.881 OK -2022/02/08 11:59:12.881 OK -2022/02/08 11:59:12.881 OK -2022/02/08 11:59:12.881 OK +ecmcFil2022/02/08 12:33:28.231 OK +2022/02/08 12:33:28.231 OK +2022/02/08 12:33:28.231 OK +2022/02/08 12:33:28.232 OK +2022/02/08 12:33:28.232 OK +2022/02/08 12:33:28.232 OK +2022/02/08 12:33:28.232 OK +2022/02/08 12:33:28.232 OK +2022/02/08 12:33:28.232 OK +2022/02/08 12:33:28.232 OK +2022/02/08 12:33:28.232 OK +2022/02/08 12:33:28.233 OK +2022/02/08 12:33:28.233 OK +2022/02/08 12:33:28.233 OK +2022/02/08 12:33:28.233 OK +2022/02/08 12:33:28.233 OK +2022/02/08 12:33:28.233 OK +2022/02/08 12:33:28.234 OK eExist("/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 #============================================================================== @@ -1847,57 +1847,57 @@ iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verify 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/issueWa2022/02/08 11:59:12.893 OK -2022/02/08 11:59:12.893 OK -2022/02/08 11:59:12.893 OK -2022/02/08 11:59:12.893 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.896 OK -2022/02/08 11:59:12.897 OK -2022/02/08 11:59:12.897 OK -2022/02/08 11:59:12.897 OK -2022/02/08 11:59:12.897 OK -2022/02/08 11:59:12.897 OK -2022/02/08 11:59:12.897 OK -2022/02/08 11:59:12.897 OK -2022/02/08 11:59:12.897 OK -2022/02/08 11:59:12.897 OK -2022/02/08 11:59:12.897 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.898 OK -2022/02/08 11:59:12.899 OK -2022/02/08 11:59:12.899 OK -2022/02/08 11:59:12.899 OK -2022/02/08 11:59:12.899 OK -2022/02/08 11:59:12.899 OK -2022/02/08 11:59:12.900 OK -2022/02/08 11:59:12.900 OK -2022/02/08 11:59:12.900 OK -2022/02/08 11:59:12.900 OK -2022/02/08 11:59:12.900 OK -2022/02/08 11:59:12.900 OK -2022/02/08 11:59:12.900 OK -2022/02/08 11:59:12.900 OK -2022/02/08 11:59:12.900 OK +ecmcFileExist("/home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/issueWa2022/02/08 12:33:28.253 OK +2022/02/08 12:33:28.253 OK +2022/02/08 12:33:28.253 OK +2022/02/08 12:33:28.253 OK +2022/02/08 12:33:28.256 OK +2022/02/08 12:33:28.256 OK +2022/02/08 12:33:28.256 OK +2022/02/08 12:33:28.256 OK +2022/02/08 12:33:28.256 OK +2022/02/08 12:33:28.256 OK +2022/02/08 12:33:28.256 OK +2022/02/08 12:33:28.256 OK +2022/02/08 12:33:28.256 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.257 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.258 OK +2022/02/08 12:33:28.259 OK +2022/02/08 12:33:28.259 OK +2022/02/08 12:33:28.259 OK +2022/02/08 12:33:28.259 OK +2022/02/08 12:33:28.259 OK +2022/02/08 12:33:28.259 OK +2022/02/08 12:33:28.259 OK +2022/02/08 12:33:28.259 OK +2022/02/08 12:33:28.259 OK +2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.260 OK rning.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).. '" #============================================================================== @@ -1963,32 +1963,32 @@ ecmcConfigOrDie "Cfg.SetAxisDrvBrakeCloseAheadTime(2,0)" ecmcConfigOrDie "Cfg.SetAxisSoftLimitPosBwd(2,-130)" ecmcConfigOrDie "Cfg.SetAxisEnableSoftLimitBwd(2,1)" ecmcConfigOrDie "Cfg.SetAxisSoftLimitPosFwd(2,20)" -ecmcConfigOrDie "Cfg.SetAxisEnableSoftLimitFwd(2022/02/08 11:59:12.900 OK -2022/02/08 11:59:12.900 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.901 OK -2022/02/08 11:59:12.902 OK -2022/02/08 11:59:12.902 OK -2022/02/08 11:59:12.902 OK -2022/02/08 11:59:12.902 OK -2022/02/08 11:59:12.902 OK -2022/02/08 11:59:12.902 OK -2022/02/08 11:59:12.902 ecmcMotorRecord:: setIntegerParam(2 motorPowerAutoOnOff_)=2 -2022/02/08 11:59:12.902 ecmcMotorRecord:: setDoubleParam(2 motorPowerOnDelay_)=6 -2022/02/08 11:59:12.902 ecmcMotorRecord:: setDoubleParam(2 motorPowerOffDelay_=-1 -2022/02/08 11:59:12.903 ecmcMotorRecord:: udateMotorLimitsRO(2) enabledHighAndLow=1 valid=1 fValueHigh=20 fValueLow=-130 -2022/02/08 11:59:12.903 ecmcMotorRecord:: connected(2) -2022/02/08 11:59:12.903 ecmcMotorRecord:: initialPoll(2) status=0 +ecmcConfigOrDie "Cfg.SetAxisEnableSoftLimitFwd(2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.260 OK +2022/02/08 12:33:28.261 OK +2022/02/08 12:33:28.261 OK +2022/02/08 12:33:28.261 OK +2022/02/08 12:33:28.261 OK +2022/02/08 12:33:28.261 OK +2022/02/08 12:33:28.261 OK +2022/02/08 12:33:28.261 OK +2022/02/08 12:33:28.261 OK +2022/02/08 12:33:28.261 OK +2022/02/08 12:33:28.261 OK +2022/02/08 12:33:28.262 OK +2022/02/08 12:33:28.262 OK +2022/02/08 12:33:28.262 ecmcMotorRecord:: setIntegerParam(2 motorPowerAutoOnOff_)=2 +2022/02/08 12:33:28.262 ecmcMotorRecord:: setDoubleParam(2 motorPowerOnDelay_)=6 +2022/02/08 12:33:28.262 ecmcMotorRecord:: setDoubleParam(2 motorPowerOffDelay_=-1 +2022/02/08 12:33:28.262 ecmcMotorRecord:: udateMotorLimitsRO(2) enabledHighAndLow=1 valid=1 fValueHigh=20 fValueLow=-130 +2022/02/08 12:33:28.263 ecmcMotorRecord:: connected(2) +2022/02/08 12:33:28.263 ecmcMotorRecord:: initialPoll(2) status=0 2,1)" ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s1.binaryInput06.0,"ax2.mon.lowlim")" ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s1.binaryInput05.0,"ax2.mon.highlim")" @@ -2071,13 +2071,13 @@ epicsEnvUnset(ECMC_EC_ENC_RESET) epicsEnvUnset(ECMC_EC_ENC_ALARM_0) epicsEnmacLib: 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/02/08 11:59:12.913 OK -2022/02/08 11:59:12.913 OK -2022/02/08 11:59:12.913 OK -2022/02/08 11:59:12.913 OK -2022/02/08 11:59:12.913 OK -2022/02/08 11:59:12.913 OK -2022/02/08 11:59:12.914 OK +2022/02/08 12:33:28.274 OK +2022/02/08 12:33:28.274 OK +2022/02/08 12:33:28.274 OK +2022/02/08 12:33:28.274 OK +2022/02/08 12:33:28.274 OK +2022/02/08 12:33:28.274 OK +2022/02/08 12:33:28.274 OK vUnset(ECMC_EC_ENC_ALARM_1) epicsEnvUnset(ECMC_EC_ENC_ALARM_2) epicsEnvUnset(ECMC_EC_ENC_WARNING) @@ -2168,17 +2168,17 @@ ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" -ecmcConfigOrDi2022/02/08 11:59:12.914 OK -2022/02/08 11:59:12.914 OK -2022/02/08 11:59:12.914 OK -2022/02/08 11:59:12.914 OK -2022/02/08 11:59:12.914 OK -2022/02/08 11:59:12.914 OK -2022/02/08 11:59:12.914 OK -2022/02/08 11:59:12.914 OK -2022/02/08 11:59:12.914 OK -2022/02/08 11:59:12.914 OK -2022/02/08 11:59:12.914 OK +ecmcConfigOrDi2022/02/08 12:33:28.274 OK +2022/02/08 12:33:28.274 OK +2022/02/08 12:33:28.274 OK +2022/02/08 12:33:28.275 OK +2022/02/08 12:33:28.275 OK +2022/02/08 12:33:28.275 OK +2022/02/08 12:33:28.275 OK +2022/02/08 12:33:28.275 OK +2022/02/08 12:33:28.275 OK +2022/02/08 12:33:28.275 OK +2022/02/08 12:33:28.275 OK e "Cfg.AppendAxisPLCExpr(2)=" ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" ecmcConfigOrDie "Cfg.AppendAxisPLCExpr(2)=" @@ -2345,56 +2345,56 @@ epicsEnvUnset(ECMC_EXE_CMD) iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/verifyOrDie.cmd "EXPR_STR='abs(2147483648)<>0',SUCCESS_STR='ECMC_DRV_SCALE_DENOM value OK == 2147483648...',ERROR_STR='ECMC_DRV_SCALE_DENOM == 0...'" #============================================================================== # verifyOrDie.cmd -ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"abs(2147483648)<>0","# ECMC_DRV_SCALE_DENOM value OK == 2147483648...",2022/02/08 11:59:12.924 OK -2022/02/08 11:59:12.924 OK -2022/02/08 11:59:12.924 OK -2022/02/08 11:59:12.924 OK -2022/02/08 11:59:12.926 OK -2022/02/08 11:59:12.926 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.927 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.928 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.929 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK +ecmcEpicsEnvSetCalcTernary(ECMC_EXE_CMD,"abs(2147483648)<>0","# ECMC_DRV_SCALE_DENOM value OK == 2147483648...",2022/02/08 12:33:28.286 OK +2022/02/08 12:33:28.286 OK +2022/02/08 12:33:28.286 OK +2022/02/08 12:33:28.286 OK +2022/02/08 12:33:28.289 OK +2022/02/08 12:33:28.289 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.290 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.291 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.292 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK "ecmcExit Error: ECMC_DRV_SCALE_DENOM == 0...") # ECMC_DRV_SCALE_DENOM value OK == 2147483648... epicsEnvUnset(ECMC_EXE_CMD) @@ -2462,32 +2462,32 @@ ecmcConfigOrDie "Cfg.SetAxisDrvBrakeOpenDelayTime(3,0)" ecmcConfigOrDie "Cfg.SetAxisDrvBrakeCloseAheadTime(3,0)" ecmcConfigOrDie "Cfg.SetAxisSoftLimitPosBwd(3,0)" ecmcConfigOrDie "Cfg.SetAxisEnableSoftLimitBwd(3,0)" -ecmcConfi2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.930 OK -2022/02/08 11:59:12.931 OK -2022/02/08 11:59:12.931 OK -2022/02/08 11:59:12.931 OK -2022/02/08 11:59:12.931 OK -2022/02/08 11:59:12.931 OK -2022/02/08 11:59:12.931 OK -2022/02/08 11:59:12.931 OK -2022/02/08 11:59:12.931 OK -2022/02/08 11:59:12.931 OK -2022/02/08 11:59:12.931 OK -2022/02/08 11:59:12.932 ecmcMotorRecord:: setIntegerParam(3 motorPowerAutoOnOff_)=2 -2022/02/08 11:59:12.932 ecmcMotorRecord:: setDoubleParam(3 motorPowerOnDelay_)=6 -2022/02/08 11:59:12.932 ecmcMotorRecord:: setDoubleParam(3 motorPowerOffDelay_=-1 -2022/02/08 11:59:12.932 ecmcMotorRecord:: connected(3) -2022/02/08 11:59:12.932 ecmcMotorRecord:: initialPoll(3) status=0 +ecmcConfi2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.293 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.294 OK +2022/02/08 12:33:28.295 ecmcMotorRecord:: setIntegerParam(3 motorPowerAutoOnOff_)=2 +2022/02/08 12:33:28.295 ecmcMotorRecord:: setDoubleParam(3 motorPowerOnDelay_)=6 +2022/02/08 12:33:28.295 ecmcMotorRecord:: setDoubleParam(3 motorPowerOffDelay_=-1 +2022/02/08 12:33:28.295 ecmcMotorRecord:: connected(3) +2022/02/08 12:33:28.295 ecmcMotorRecord:: initialPoll(3) status=0 gOrDie "Cfg.SetAxisSoftLimitPosFwd(3,0)" ecmcConfigOrDie "Cfg.SetAxisEnableSoftLimitFwd(3,0)" ecmcConfigOrDie "Cfg.LinkEcEntryToObject(ec0.s11.ONE.0,"ax3.mon.lowlim")" @@ -2643,10 +2643,10 @@ iocshLoad /home/pi/epics/base-7.0.5/require/3.4.0/siteMods/ecmccfg/ruckig/loadPl #============================================================================== # 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;SPINDLE_AXIS=3;AUTO_ENABLE=0;AUTO_START=0;)" -../ecmc_plugin_grbl/ecmcGrbl.cpp:doMainWorker:416 +../ecmc_plugin_grbl/ecmcGrbl.cpp:doMainWorker:459 ../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:246 +GRBL: INFO: Waiting for grbl init..../ecmc_plugin_grbl/ecmcGrbl.cpp:doWriteWorker:245 GRBL: INFO: Wait for startup ../grbl/grbl_settings.c:settings_restore:132 settings_restore complete!!!.. ../grbl/grbl_eeprom.c:memcpy_from_eeprom_with_checksum:215 EEPROM simulated by file.. @@ -2693,68 +2693,68 @@ Plugin info: max plc funcs = 64 max plc func args = 10 max plc consts = 64 - Construct func = @0xb5118f10 - Enter realtime func = @0xb5118e08 - Exit realtime func = @0xb5118dd4 - Realtime func = @0xb5118e04 - Destruct func = @0xb5118ddc - dlhandle = @0xfdb178 + Construct func = @0xb4f1ef40 + Enter realtime func = @0xb4f1ee38 + Exit realtime func = @0xb4f1ee04 + Realtime func = @0xb4f1ee34 + Destruct func = @0xb4f1ee0c + dlhandle = @0xc29e28 Plc functions: funcs[00]: Name = "grbl_set_execute(arg0);" Desc = double grbl_set_execute() : Trigg execution of loaded g-code at positive edge of Arg count = 1 - func = @0xb5118e0c + func = @0xb4f1ee3c funcs[01]: Name = "grbl_mc_halt(arg0);" Desc = double grbl_mc_halt() : Halt grbl motion at positive edge of Arg count = 1 - func = @0xb5118e28 + func = @0xb4f1ee58 funcs[02]: Name = "grbl_mc_resume(arg0);" Desc = double grbl_mc_resume() : Resume halted grbl motion at positive edge of Arg count = 1 - func = @0xb5118e44 + func = @0xb4f1ee74 funcs[03]: Name = "grbl_mc_reset(arg0);" Desc = double grbl_mc_reset() : Reset grbl at positive edge of Arg count = 1 - func = @0xb5118e60 + func = @0xb4f1ee90 funcs[04]: Name = "grbl_get_busy();" Desc = double grbl_get_busy() : Get grbl system busy (still executing motion code) Arg count = 0 - func = @0xb5118e7c + func = @0xb4f1eeac funcs[05]: Name = "grbl_get_parser_busy();" Desc = double grbl_get_parser_busy() : Get g-code parser busy. Arg count = 0 - func = @0xb5118e90 + func = @0xb4f1eec0 funcs[06]: Name = "grbl_get_code_row_num();" Desc = double grbl_get_code_row_num() : Get g-code row number currently preparing for exe. Arg count = 0 - func = @0xb5118ea4 + func = @0xb4f1eed4 funcs[07]: Name = "grbl_get_error();" Desc = double grbl_get_error() : Get error code. Arg count = 0 - func = @0xb5118ecc + func = @0xb4f1eefc funcs[08]: Name = "grbl_reset_error();" Desc = double grbl_reset_error() : Reset error. Arg count = 0 - func = @0xb5118eb8 + func = @0xb4f1eee8 funcs[09]: Name = "grbl_get_all_enabled();" Desc = double grbl_get_all_enabled() : Get all configured axes enabled. Arg count = 0 - func = @0xb5118ee0 + func = @0xb4f1ef10 funcs[10]: Name = "grbl_set_all_enable(arg0);" Desc = double grbl_set_all_enable(enable) : Set enable on all configured axes. Arg count = 1 - func = @0xb5118ef4 + func = @0xb4f1ef24 Plc constants: epicsEnvUnset(ECMC_PLUGIN_REPORT); @@ -2769,47 +2769,47 @@ epicsEnvUnset(ECMC_PLUGIN_CONFIG) # $110, $111 and $112 – [X,Y,Z] Max rate, mm/min\n # $120, $121, $122 – [X,Y,Z] Acceleration, mm/sec^2\n ecmcGrblLoadConfigFile("./cfg/grbl.cfg") -../ecmc_plugin_grbl/ecmcGrbl.cpp:loadConfigFile:985: file ./cfg/grbl.cfg, append 0 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # Configuration file for grbl -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # Supported variables: -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # $11 - Junction deviation, mm -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # $12 – Arc tolerance, mm -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # $30 - Max spindle speed, RPM -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # $31 - Min spindle speed, RPM -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # $100, $101 and $102 – [X,Y,Z] steps/mm -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # $110, $111 and $112 – [X,Y,Z] Max rate, mm/min -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # $120, $121, $122 – [X,Y,Z] Acceleration, mm/sec^2 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # Example: Set Max spindle speed to 1000rpm -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # $30=1000 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # More info can be found (only the above commands/variables are supported): -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # https://github.com/gnea/grbl/blob/master/doc/markdown/settings.md -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command # -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command $120=1234 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:978: GRBL: INFO: Buffer size 1 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command $121=1234 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:978: GRBL: INFO: Buffer size 2 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:951:command $122=1234 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:978: GRBL: INFO: Buffer size 3 +../ecmc_plugin_grbl/ecmcGrbl.cpp:loadConfigFile:991: file ./cfg/grbl.cfg, append 0 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # Configuration file for grbl +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # Supported variables: +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # $11 - Junction deviation, mm +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # $12 – Arc tolerance, mm +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # $30 - Max spindle speed, RPM +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # $31 - Min spindle speed, RPM +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # $100, $101 and $102 – [X,Y,Z] steps/mm +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # $110, $111 and $112 – [X,Y,Z] Max rate, mm/min +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # $120, $121, $122 – [X,Y,Z] Acceleration, mm/sec^2 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # Example: Set Max spindle speed to 1000rpm +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # $30=1000 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # More info can be found (only the above commands/variables are supported): +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # https://github.com/gnea/grbl/blob/master/doc/markdown/settings.md +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command # +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command $120=1234 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:984: GRBL: INFO: Buffer size 1 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command $121=1234 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:984: GRBL: INFO: Buffer size 2 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:957:command $122=1234 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addConfig:984: GRBL: INFO: Buffer size 3 #ecmcGrblAddConfig("$120=1234"); #ecmcGrblAddConfig("$121=1234"); #ecmcGrblAddConfig("$122=1234"); # Load g-code ecmcGrblLoadGCodeFile("./plc/gcode.nc",0) -../ecmc_plugin_grbl/ecmcGrbl.cpp:loadGCodeFile:916: file ./plc/gcode.nc, append 0 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G1X20Y20F360 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 1 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command S1000 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 2 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command M03 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 3 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G4P2 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 4 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G2X0Y0R20 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 5 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G4P2 +../ecmc_plugin_grbl/ecmcGrbl.cpp:loadGCodeFile:922: file ./plc/gcode.nc, append 0 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G1X20Y20F360 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 1 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command S1000 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 2 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command M03 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 3 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G4P2 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 4 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G2X0Y0R20 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 5 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G4P2 ../ecmc_plug# # Test of GRBL plugin for g-code parsing # @@ -2859,23 +2859,23 @@ if(static.state == 1) { # #grbl_set_execute(0); # #grbl_set_execute(1); #}; -in_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 6 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G0X10Y10 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 7 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G2X10Y-10R10 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 8 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command M05 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 9 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G4P2 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 10 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G1X0Y0 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 11 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G1X20Y20F360 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 12 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G4P2 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 13 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:903:command G2X0Y0R20 -../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:910: GRBL: INFO: Buffer size 14 +in_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 6 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G0X10Y10 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 7 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G2X10Y-10R10 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 8 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command M05 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 9 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G4P2 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 10 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G1X0Y0 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 11 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G1X20Y20F360 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 12 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G4P2 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 13 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:909:command G2X0Y0R20 +../ecmc_plugin_grbl/ecmcGrbl.cpp:addCommand:916: GRBL: INFO: Buffer size 14 #ecmcGrblAddCommand("G1X20Y20F360"); #ecmcGrblAddCommand("G4P2"); #ecmcGrblAddCommand("G2X0Y0R20"); @@ -2964,47 +2964,47 @@ 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/02/08 11:59:20.814 [devMotorAsyn.c:439 IOC_TEST:Axis1] init_record IOC_TEST:Axis1 position=-121.350000 encoderPos=-121.350000 velocity=0.000000 MSTAstatus=0x4d00 flagsValue=0x3f flagsWritten=0x3f pmr->mflg=0x0 -2022/02/08 11:59:20.814 [devMotorAsyn.c:185 IOC_TEST:Axis1] init_controller IOC_TEST:Axis1 set encoder ratio=1.000000 status=0 -2022/02/08 11:59:20.814 [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/02/08 11:59:20.814 [motorDevSup.c:327 IOC_TEST:Axis1] PositionRestoreNeeded IOC_TEST:Axis1 rstm=2 dval=0.000000 drbv=-121.350000 pmr->rdbd=0.100000 rdbd=0.100000 pmr->mres=0.030000 pmr->mflg=0x3f dval_non_zero_pos_near_zero=0 ret=0 -2022/02/08 11:59:20.814 [motorRecord.cc:782 IOC_TEST:Axis1] init_re_init start neverPolled=0 stat=17 nsta=0 -2022/02/08 11:59:20.814 [motorRecord.cc:720 IOC_TEST:Axis1] enforceMinRetryDeadband spdb=0.100000 rdbd=0.100000 mres=0.030000 -2022/02/08 11:59:20.814 [motorRecord.cc:4484 IOC_TEST:Axis1] pmr->dhlm=130 softLimitRO=130 -2022/02/08 11:59:20.814 [motorRecord.cc:4545 IOC_TEST:Axis1] pmr->dllm=-20 softLimitRO=-20 -2022/02/08 11:59:20.814 [motorRecord.cc:833 IOC_TEST:Axis1] init_re_init end dval=-121.350000 drbv=-121.350000 rdbd=0.100000 spdb=0.100000 -2022/02/08 11:59:20.815 [motorRecord.cc:968 IOC_TEST:Axis1] init_record process_reason="callbackdata + soft limits" dval=-121.350000 drbv=-121.350000 rdbd=0.100000 spdb=0.100000 stat=0 msta=0x4d00 neverPolled=0 -2022/02/08 11:59:20.815 [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/02/08 11:59:20.815 [devMotorAsyn.c:185 IOC_TEST:Axis2] init_controller IOC_TEST:Axis2 set encoder ratio=1.000000 status=0 -2022/02/08 11:59:20.815 [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/02/08 11:59:20.815 [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/02/08 11:59:20.815 [motorRecord.cc:782 IOC_TEST:Axis2] init_re_init start neverPolled=0 stat=17 nsta=0 -2022/02/08 11:59:20.815 [motorRecord.cc:720 IOC_TEST:Axis2] enforceMinRetryDeadband spdb=0.100000 rdbd=0.100000 mres=0.030000 -2022/02/08 11:59:20.815 [motorRecord.cc:4484 IOC_TEST:Axis2] pmr->dhlm=20 softLimitRO=20 -2022/02/08 11:59:20.815 [motorRecord.cc:4545 IOC_TEST:Axis2] pmr->dllm=-130 softLimitRO=-130 -2022/02/08 11:59:20.815 [motorRecord.cc:833 IOC_TEST:Axis2] init_re_init end dval=0.000000 drbv=0.000000 rdbd=0.100000 spdb=0.100000 -2022/02/08 11:59:20.815 [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 -2022/02/08 11:59:20.815 [devMotorAsyn.c:439 IOC_TEST:Axis3] init_record IOC_TEST:Axis3 position=359.998627 encoderPos=359.998627 velocity=0.000000 MSTAstatus=0x0b0a flagsValue=0x3f flagsWritten=0x3f pmr->mflg=0x0 -2022/02/08 11:59:20.815 [devMotorAsyn.c:185 IOC_TEST:Axis3] init_controller IOC_TEST:Axis3 set encoder ratio=1.000000 status=0 -2022/02/08 11:59:20.815 [devMotorAsyn.c:266 IOC_TEST:Axis3] update_soft_limits IOC_TEST:Axis3 RawHLM_RO=0.000000 RawLLM_RO=0.000000 valid=0 DHLM_RO=0.000000 DLLM_RO=0.000000 -2022/02/08 11:59:20.815 [motorDevSup.c:327 IOC_TEST:Axis3] PositionRestoreNeeded IOC_TEST:Axis3 rstm=2 dval=0.000000 drbv=359.998627 pmr->rdbd=0.300000 rdbd=0.300000 pmr->mres=0.000343 pmr->mflg=0x3f dval_non_zero_pos_near_zero=0 ret=0 -2022/02/08 11:59:20.815 [motorRecord.cc:782 IOC_TEST:Axis3] init_re_init start neverPolled=0 stat=17 nsta=0 -2022/02/08 11:59:20.815 [motorRecord.cc:720 IOC_TEST:Axis3] enforceMinRetryDeadband spdb=0.300000 rdbd=0.300000 mres=0.000343 -2022/02/08 11:59:20.815 [motorRecord.cc:833 IOC_TEST:Axis3] init_re_init end dval=359.998627 drbv=359.998627 rdbd=0.300000 spdb=0.300000 -2022/02/08 11:59:20.816 [motorRecord.cc:968 IOC_TEST:Axis3] init_record process_reason="callbackdata + soft limits" dval=359.998627 drbv=359.998627 rdbd=0.300000 spdb=0.300000 stat=0 msta=0xb0a neverPolled=0 +2022/02/08 12:33:33.176 [devMotorAsyn.c:439 IOC_TEST:Axis1] init_record IOC_TEST:Axis1 position=-32.040000 encoderPos=-32.040000 velocity=0.000000 MSTAstatus=0x4d00 flagsValue=0x3f flagsWritten=0x3f pmr->mflg=0x0 +2022/02/08 12:33:33.176 [devMotorAsyn.c:185 IOC_TEST:Axis1] init_controller IOC_TEST:Axis1 set encoder ratio=1.000000 status=0 +2022/02/08 12:33:33.176 [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/02/08 12:33:33.176 [motorDevSup.c:327 IOC_TEST:Axis1] PositionRestoreNeeded IOC_TEST:Axis1 rstm=2 dval=0.000000 drbv=-32.040000 pmr->rdbd=0.100000 rdbd=0.100000 pmr->mres=0.030000 pmr->mflg=0x3f dval_non_zero_pos_near_zero=0 ret=0 +2022/02/08 12:33:33.176 [motorRecord.cc:782 IOC_TEST:Axis1] init_re_init start neverPolled=0 stat=17 nsta=0 +2022/02/08 12:33:33.176 [motorRecord.cc:720 IOC_TEST:Axis1] enforceMinRetryDeadband spdb=0.100000 rdbd=0.100000 mres=0.030000 +2022/02/08 12:33:33.176 [motorRecord.cc:4484 IOC_TEST:Axis1] pmr->dhlm=130 softLimitRO=130 +2022/02/08 12:33:33.176 [motorRecord.cc:4545 IOC_TEST:Axis1] pmr->dllm=-20 softLimitRO=-20 +2022/02/08 12:33:33.176 [motorRecord.cc:833 IOC_TEST:Axis1] init_re_init end dval=-32.040000 drbv=-32.040000 rdbd=0.100000 spdb=0.100000 +2022/02/08 12:33:33.176 [motorRecord.cc:968 IOC_TEST:Axis1] init_record process_reason="callbackdata + soft limits" dval=-32.040000 drbv=-32.040000 rdbd=0.100000 spdb=0.100000 stat=0 msta=0x4d00 neverPolled=0 +2022/02/08 12:33:33.176 [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/02/08 12:33:33.176 [devMotorAsyn.c:185 IOC_TEST:Axis2] init_controller IOC_TEST:Axis2 set encoder ratio=1.000000 status=0 +2022/02/08 12:33:33.176 [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/02/08 12:33:33.176 [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/02/08 12:33:33.176 [motorRecord.cc:782 IOC_TEST:Axis2] init_re_init start neverPolled=0 stat=17 nsta=0 +2022/02/08 12:33:33.176 [motorRecord.cc:720 IOC_TEST:Axis2] enforceMinRetryDeadband spdb=0.100000 rdbd=0.100000 mres=0.030000 +2022/02/08 12:33:33.176 [motorRecord.cc:4484 IOC_TEST:Axis2] pmr->dhlm=20 softLimitRO=20 +2022/02/08 12:33:33.176 [motorRecord.cc:4545 IOC_TEST:Axis2] pmr->dllm=-130 softLimitRO=-130 +2022/02/08 12:33:33.176 [motorRecord.cc:833 IOC_TEST:Axis2] init_re_init end dval=0.000000 drbv=0.000000 rdbd=0.100000 spdb=0.100000 +2022/02/08 12:33:33.176 [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 +2022/02/08 12:33:33.176 [devMotorAsyn.c:439 IOC_TEST:Axis3] init_record IOC_TEST:Axis3 position=359.997253 encoderPos=359.997253 velocity=0.000000 MSTAstatus=0x0b0a flagsValue=0x3f flagsWritten=0x3f pmr->mflg=0x0 +2022/02/08 12:33:33.177 [devMotorAsyn.c:185 IOC_TEST:Axis3] init_controller IOC_TEST:Axis3 set encoder ratio=1.000000 status=0 +2022/02/08 12:33:33.177 [devMotorAsyn.c:266 IOC_TEST:Axis3] update_soft_limits IOC_TEST:Axis3 RawHLM_RO=0.000000 RawLLM_RO=0.000000 valid=0 DHLM_RO=0.000000 DLLM_RO=0.000000 +2022/02/08 12:33:33.177 [motorDevSup.c:327 IOC_TEST:Axis3] PositionRestoreNeeded IOC_TEST:Axis3 rstm=2 dval=0.000000 drbv=359.997253 pmr->rdbd=0.300000 rdbd=0.300000 pmr->mres=0.000343 pmr->mflg=0x3f dval_non_zero_pos_near_zero=0 ret=0 +2022/02/08 12:33:33.177 [motorRecord.cc:782 IOC_TEST:Axis3] init_re_init start neverPolled=0 stat=17 nsta=0 +2022/02/08 12:33:33.177 [motorRecord.cc:720 IOC_TEST:Axis3] enforceMinRetryDeadband spdb=0.300000 rdbd=0.300000 mres=0.000343 +2022/02/08 12:33:33.177 [motorRecord.cc:833 IOC_TEST:Axis3] iniocRun: All initialization complete +it_re_init end dval=359.997253 drbv=359.997253 rdbd=0.300000 spdb=0.300000 +2022/02/08 12:33:33.177 [motorRecord.cc:968 IOC_TEST:Axis3] init_record process_reason="callbackdata + soft limits" dval=359.997253 drbv=359.997253 rdbd=0.300000 spdb=0.300000 stat=0 msta=0xb0a neverPolled=0 GRBL busy : 1.00000 Parser busy : 1.00000 Error : 0.00000 Row : 0.00000 Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -iocRun: All initialization complete 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-19481 > " +epicsEnvSet IOCSH_PS1 "raspberrypi-20961 > " # GRBL: INFO: Configuration start GRBL: INFO: Write command (command[0] = $120=1234) @@ -3034,278 +3034,110 @@ system_execute_line switch line[1]=1 2 parameter 122.000000 3 GRBL: INFO: Reply OK -GRBL: INFO: Configuration ready -GRBL: INFO: Start load g-code -raspberrypi-19481 > -raspberrypi-19481 > GRBL busy : 0.00000 +GRBL: INFO: Auto enable configured axes +GRBL: INFO: auto enable +raspberrypi-20961 > GRBL busy : 0.00000 Parser busy : 0.00000 Error : 0.00000 Row : 0.00000 Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -2022/02/08 11:59:22.359 [motorRecord.cc:1510 IOC_TEST:Axis3] msta.Bits.RA_MOVING=1 -2022/02/08 11:59:22.359 [motorRecord.cc:1522 IOC_TEST:Axis3] msta.Bits.EA_POSITION power on=1 -2022/02/08 11:59:22.359 [motorRecord.cc:1530 IOC_TEST:Axis3] msta.Bits.RA_DONE=0 -2022/02/08 11:59:22.359 [motorRecord.cc:1627 IOC_TEST:Axis3] mipSetBit EXTERNAL(Ex) old='' new=EXTERNAL(Ex) -2022/02/08 11:59:22.560 [motorRecord.cc:1510 IOC_TEST:Axis3] msta.Bits.RA_MOVING=0 -2022/02/08 11:59:22.560 [motorRecord.cc:1530 IOC_TEST:Axis3] msta.Bits.RA_DONE=1 -2022/02/08 11:59:22.560 [motorRecord.cc:1696 IOC_TEST:Axis3] motor is stopped dval=359.998627 drbv=359.989014 pp=1 udf=0 stat=7 stop=0 pmr->spmg=GO mip=0x8000(EXTERNAL(Ex)) msta=0xb2a -2022/02/08 11:59:22.560 [motorRecord.cc:1212 IOC_TEST:Axis3] mipClrBit STOP(St) old=EXTERNAL(Ex) new=EXTERNAL(Ex) -2022/02/08 11:59:22.560 [motorRecord.cc:1854 IOC_TEST:Axis3] mipSetVal old=EXTERNAL(Ex) new='' -2022/02/08 11:59:22.760 [motorRecord.cc:1212 IOC_TEST:Axis3] mipClrBit STOP(St) old='' new='' GRBL busy : 0.00000 Parser busy : 0.00000 Error : 0.00000 Row : 0.00000 Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -Retrigger g-code. Counter: 1.00000 -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: INFO: Reply OK -GRBL: INFO: Write command (command[1] = S1000) -Added: S1000../grbl/grbl_stepper.c:st_next_block_index:656: -../grbl/grbl_stepper.c:st_wake_up:228: -../grbl/grbl_gcode.c:gc_execute_line:71: -GRBL: INFO: Reply OK -GRBL: INFO: Write command (command[2] = M03) -Added: M03../grbl/grbl_gcode.c:gc_execute_line:71: -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 0.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.00000 0.00000 -All Enabled : 1.00000 -GRBL: ERROR: ecmc 0x14655, plugin 0x0 -../grbl/grbl_stepper.c:st_update_plan_block_parameters:643: -2022/02/08 11:59:47.226 [motorRecord.cc:1522 IOC_TEST:Axis3] msta.Bits.EA_POSITION power on=0 -GRBL: ERROR: ecmc 0x14655, plugin 0x104 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 + +raspberrypi-20961 > GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 -Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 +Error : 0.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.00000 0.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 +GRBL: ERROR: ecmc 0x14652, plugin 0x0 +GRBL: ERROR: ecmc 0x14652, plugin 0x104 +GRBL busy : 0.00000 +Parser busy : 0.00000 Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.0000083538.00000 All Enabled : 0.00000 -GRBL busy : 1.00000 -Parser busy : 1.00000 +GRBL busy : 0.00000 +Parser busy : 0.00000 Error : 260.00000 -Row : 2.00000 -Ecmc error : 0.00000 0.0000083541.00000 +Row : 0.00000 +Ecmc error : 0.00000 0.0000083538.00000 All Enabled : 0.00000