📄 ampfile.cpp
字号:
case 0x05B:
err = StrToInt32( seg[segIndex], cfg.motor.loadEncRes );
break;
case 0x05C:
err = StrToInt16( seg[segIndex], i16 );
cfg.motor.loadEncReverse = (i16!=0);
break;
case 0x05D:
err = StrToInt16( seg[segIndex], cfg.motor.loadEncType );
break;
case 0x05f:
err = StrToFilter( seg[segIndex], cfg.vloopOutFltr );
break;
case 0x060:
if( !strcmp( seg[segIndex], "Incremental" ) ) cfg.motor.encType = 0;
else if( !strcmp( seg[segIndex], "None" ) ) cfg.motor.encType = 1;
else if( !strcmp( seg[segIndex], "Analog" ) ) cfg.motor.encType = 2;
else if( !strcmp( seg[segIndex], "Absolute") ) cfg.motor.encType = 3;
else
err = StrToInt16( seg[segIndex], cfg.motor.encType );
break;
case 0x061: err = StrToInt16( seg[segIndex], cfg.motor.encUnits ); break;
case 0x062: err = StrToInt32( seg[segIndex], cfg.motor.ctsPerRev ); break;
case 0x063: err = StrToInt16( seg[segIndex], cfg.motor.encRes ); break;
case 0x064: err = StrToInt32( seg[segIndex], cfg.motor.eleDist ); break;
case 0x065:
err = StrToInt16( seg[segIndex], i16 );
cfg.motor.encReverse = (i16!=0);
break;
case 0x066:
err = StrToInt32( seg[segIndex], cfg.motor.ndxDist );
break;
case 0x067:
err = StrToInt16( seg[segIndex], cfg.motor.encShift );
break;
case 0x06A:
err = StrToInt32( seg[segIndex], cfg.cLoop.slope );
break;
case 0x06B:
err = StrToFilter( seg[segIndex], cfg.vloopCmdFltr );
break;
case 0x06e:
err = StrToUInt16( seg[segIndex], cfg.motor.resolverCycles );
break;
case 0x06f:
err = StrToInt16( seg[segIndex], i16 );
cfg.pwmMode = (AMP_PWM_MODE)i16;
break;
case 0x070:
err = StrToOutCfg( seg[segIndex], cfg.io.outCfg[0], cfg.io.outMask[0], cfg.io.outMask1[0] );
break;
case 0x071:
err = StrToOutCfg( seg[segIndex], cfg.io.outCfg[1], cfg.io.outMask[1], cfg.io.outMask1[1] );
break;
case 0x072:
err = StrToOutCfg( seg[segIndex], cfg.io.outCfg[2], cfg.io.outMask[2], cfg.io.outMask1[2] );
break;
case 0x073:
err = StrToOutCfg( seg[segIndex], cfg.io.outCfg[3], cfg.io.outMask[3], cfg.io.outMask1[3] );
break;
case 0x078:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[ 0] = (INPUT_PIN_CONFIG)i16;
break;
case 0x079:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[ 1] = (INPUT_PIN_CONFIG)i16;
break;
case 0x07a:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[ 2] = (INPUT_PIN_CONFIG)i16;
break;
case 0x07b:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[ 3] = (INPUT_PIN_CONFIG)i16;
break;
case 0x07c:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[ 4] = (INPUT_PIN_CONFIG)i16;
break;
case 0x07d:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[ 5] = (INPUT_PIN_CONFIG)i16;
break;
case 0x07e:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[ 6] = (INPUT_PIN_CONFIG)i16;
break;
case 0x07f:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[ 7] = (INPUT_PIN_CONFIG)i16;
break;
// This group of parameters are in the ccx file
// for reference only. They describe read-only
// parameters of the amplifier.
case 0x80: case 0x81: case 0x82: case 0x83:
case 0x84: case 0x85: case 0x86: case 0x87:
case 0x88: case 0x89: case 0x8A: case 0x8B:
case 0x8C: case 0x8D: case 0x8E: case 0xAD:
break;
case 0x092:
strncpy( cfg.name, seg[segIndex], COPLEY_MAX_STRING );
break;
case 0x093:
err = StrToInt16( seg[segIndex], i16 );
cfg.CME_Config[0] = (char)(i16>>8);
cfg.CME_Config[1] = (char)(i16);
break;
case 0x098: err = StrToInt16( seg[segIndex], cfg.fgen.cfg ); break;
case 0x099: err = StrToInt16( seg[segIndex], cfg.fgen.freq ); break;
case 0x09a: err = StrToInt32( seg[segIndex], cfg.fgen.amp ); break;
case 0x09b: err = StrToInt16( seg[segIndex], cfg.fgen.duty ); break;
case 0x0A5: err = StrToUInt16( seg[segIndex], cfg.io.inPullUpCfg ); break;
case 0x0A7:
err = StrToInt32( seg[segIndex], i32 );
cfg.faultMask = (AMP_FAULT)i32;
break;
case 0x0A8: err = StrToInt16 ( seg[segIndex], cfg.pwmIn.cfg ); break;
case 0x0A9: err = StrToInt32 ( seg[segIndex], cfg.pwmIn.scale ); break;
case 0x0Ae: err = StrToInt16 ( seg[segIndex], cfg.cLoop.offset ); break;
case 0x0Af: err = StrToUInt32( seg[segIndex], cfg.options ); break;
case 0x0B1: err = StrToInt16 ( seg[segIndex], cfg.stepRate ); break;
case 0x0B2:
err = StrToInt16( seg[segIndex], i16 );
cfg.phaseMode = (AMP_PHASE_MODE)i16;
break;
case 0x0B6:
err = StrToInt16( seg[segIndex], cfg.pwmIn.freq );
break;
case 0x0B8:
StrToLoadPos( seg[segIndex], cfg.limit.pos );
break;
case 0x0B9:
StrToLoadPos( seg[segIndex], cfg.limit.neg );
break;
case 0x0BA:
StrToLoadPos( seg[segIndex], cfg.window.trackErr );
break;
case 0x0BB:
StrToLoadPos( seg[segIndex], cfg.window.trackWarn );
break;
case 0x0BC:
StrToLoadPos( seg[segIndex], cfg.window.settlingWin );
break;
case 0x0BD:
err = StrToUInt16( seg[segIndex], cfg.window.settlingTime );
break;
case 0x0BE:
StrToLoadAcc( seg[segIndex], cfg.limit.accel );
break;
case 0x0BF:
err = StrToInt16( seg[segIndex], cfg.home.delay );
break;
case 0x0C1:
err = StrToInt16( seg[segIndex], i16 );
cfg.can.FromAmpFormat( i16 );
break;
case 0x0C2:
err = StrToUInt16( seg[segIndex], u16 );
cfg.home.method = HomeMethodConvert( u16 );
break;
case 0x0C3:
StrToLoadVel( seg[segIndex], cfg.home.velFast );
break;
case 0x0C4:
StrToLoadVel( seg[segIndex], cfg.home.velSlow );
break;
case 0x0C5:
StrToLoadAcc( seg[segIndex], cfg.home.accel );
break;
case 0x0C6:
StrToLoadPos( seg[segIndex], cfg.home.offset );
break;
case 0x0C7:
err = StrToInt16( seg[segIndex], cfg.home.current );
break;
case 0x0C8:
// When setting the profile type over the CANopen interface
// we use an encoding that is consistent with DSP402. Convert
// this here:
err = StrToInt16( seg[segIndex], i16 );
if( err ) break;
switch( i16 & 7 )
{
case 0: cfg.profile.type = PROFILE_TRAP; break;
case 1: cfg.profile.type = PROFILE_SCURVE; break;
case 2: cfg.profile.type = PROFILE_VEL; break;
case 3: cfg.profile.type = PROFILE_TRAP; break;
default:
err = &AmpFileError::range;
break;
}
break;
case 0x0CA: StrToLoadPos( seg[segIndex], cfg.profile.pos ); break;
case 0x0CB: StrToLoadVel( seg[segIndex], cfg.profile.vel ); break;
case 0x0CC: StrToLoadAcc( seg[segIndex], cfg.profile.acc ); break;
case 0x0CD: StrToLoadAcc( seg[segIndex], cfg.profile.dec ); break;
case 0x0CE: StrToLoadJrk( seg[segIndex], cfg.profile.jrk ); break;
case 0x0CF: StrToLoadAcc( seg[segIndex], cfg.profile.abort ); break;
case 0x0D0:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[ 8] = (INPUT_PIN_CONFIG)i16;
break;
case 0x0D1:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[ 9] = (INPUT_PIN_CONFIG)i16;
break;
case 0x0D2:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[10] = (INPUT_PIN_CONFIG)i16;
break;
case 0x0D3:
err = StrToInt16( seg[segIndex], i16 );
cfg.io.inCfg[11] = (INPUT_PIN_CONFIG)i16;
break;
case 0x0D8:
err = StrToUInt16( seg[segIndex], cfg.regen.resistance );
break;
case 0x0D9:
err = StrToUInt16( seg[segIndex], cfg.regen.contPower );
break;
case 0x0DA:
err = StrToUInt16( seg[segIndex], cfg.regen.peakPower );
break;
case 0x0DB:
err = StrToUInt16( seg[segIndex], cfg.regen.peakTime );
break;
case 0x0E1:
strncpy( cfg.regen.model, seg[segIndex], COPLEY_MAX_STRING );
break;
case 0x0E3:
err = StrToInt16( seg[segIndex], cfg.pLoop.scale );
break;
case 0x0E8: err = StrToUInt16( seg[segIndex], cfg.cLoop.stepHoldCurrent ); break;
case 0x0E9: err = StrToUInt16( seg[segIndex], cfg.cLoop.stepRun2HoldTime ); break;
case 0x0ED: err = StrToUInt16( seg[segIndex], cfg.cLoop.stepVolControlDelayTime ); break;
case 0x0F0: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[ 0] ); break;
case 0x0F1: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[ 1] ); break;
case 0x0F2: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[ 2] ); break;
case 0x0F3: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[ 3] ); break;
case 0x0F4: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[ 4] ); break;
case 0x0F5: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[ 5] ); break;
case 0x0F6: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[ 6] ); break;
case 0x0F7: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[ 7] ); break;
case 0x0F8: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[ 8] ); break;
case 0x0F9: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[ 9] ); break;
case 0x0FA: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[10] ); break;
case 0x0FB: err = StrToInt16( seg[segIndex], cfg.io.inDebounce[11] ); break;
default:
cml.Debug( "Unknown paramaeter in CCX file: 0x%02x\n", param );
break;
}
}
fclose(fp);
if( err ) return err;
// The file was read in successfully. Now, upload the configuration
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -