Im using ultraware 5000 drive w/ MPL-A4540C-M servo motor. I cannot pinpoint the cause of the problem.
I built an program break.exe which stops the servo using Jogstop command when a sensor turns on but the servo did not stop. When sensor is off,it follows the speed of conveyor. I tried velocity regulator gains P=240, I=10, FF=1 it to lessen error sum (around 4000 counts/sec). just posted keypoints of the code.
#define SYNCSPEED_CH 1
#define OVEN_SENSOR 2
Move_Acc=600;
Move_Dec=3600;
Jog_Acc=600;
Jog_Dec=6000;
if (InputGetState(OVEN_SENSOR) == ON){
JogStop();
AxisDefinePos(0);
MoveSetAcc(Move_Acc);
MoveSetDec(Move_Dec);
MoveSetVel(Move_Speed);
MoveIncremental(Move_Distance);
while (InputGetState(OVEN_SENSOR) == ON);
}
if ((InputGetState(OVEN_SENSOR) == OFF)){
MoveAbort();
JogSetVel(Jog_Speed);
JogSetAcc(Jog_Acc);
JogSetDec(Jog_Dec);
JogForward();
}
I built an program break.exe which stops the servo using Jogstop command when a sensor turns on but the servo did not stop. When sensor is off,it follows the speed of conveyor. I tried velocity regulator gains P=240, I=10, FF=1 it to lessen error sum (around 4000 counts/sec). just posted keypoints of the code.
#define SYNCSPEED_CH 1
#define OVEN_SENSOR 2
Move_Acc=600;
Move_Dec=3600;
Jog_Acc=600;
Jog_Dec=6000;
if (InputGetState(OVEN_SENSOR) == ON){
JogStop();
AxisDefinePos(0);
MoveSetAcc(Move_Acc);
MoveSetDec(Move_Dec);
MoveSetVel(Move_Speed);
MoveIncremental(Move_Distance);
while (InputGetState(OVEN_SENSOR) == ON);
}
if ((InputGetState(OVEN_SENSOR) == OFF)){
MoveAbort();
JogSetVel(Jog_Speed);
JogSetAcc(Jog_Acc);
JogSetDec(Jog_Dec);
JogForward();
}