I have a problem on a BrickLV with firmware 2.3.2.5, managing 16 axes, 8 + 8 on a "slave" through macro communication.
Our application launches via gpasccii a series very small moves ("J=XXX" commands) , executing in parrallel, and once complete it launches a motion program with PVT moves on 5 motors, and cycling that again and again with the same commands and same moves.
Under above conditions I have a probability around 10% to never end the move during processing of the jog commands sent by gpascii. The main symptoms are: one motor among all (the problematic motor number is changing all the time), is blocked with InPos=false but DesVel=0. It often blocks at the begining of the move.
Hints:
- When I change default Sys.PreCalc to Sys.PreCalc=10 (and keep SegMoveTime=0), I can reduce the failure frequency by a factor of 10 to 50. But none of the parameter values can solve the problem completely.
- I can see in Task Manager that regularly I get Bsy/Err in RTI. I tried to change RtIntPeriod and to stop all my PLC, without any improvements.
- I tried to group "parallel" jogs in a single gpascii command, but the result is the same.
When this freeze happens, I dump the CS and motors status. Here is below one dump result example, where Motor[3] is OK (arrived) and Motor[4] is blocked forever.
Motor[3].Status[0] = f900;
Motor[3].Status[1] = 80000000;
Motor[3].DesPos = -44657.05590625014;
Motor[3].ActPos = -44656.50390625;
Motor[3].JogPos = -44657.05590625014;
Motor[3].DesVel = 0.0;
Motor[3].ActVel = -1.0;
Motor[3].JogSpeed = 121.2416;
Motor[3].InPos = 1;
Motor[3].AmpEna = 1;
Motor[4].Status[0] = f100;
Motor[4].Status[1] = 80000000;
Motor[4].DesPos = 5420.312093749992;
Motor[4].ActPos = 5420.49609375;
Motor[4].JogPos = -860.0027862499992;
Motor[4].DesVel = 0.0;
Motor[4].ActVel = 0.0;
Motor[4].JogSpeed = 6.0398998;
Motor[4].InPos = 0;
Motor[4].AmpEna = 1;
Coord[1].Status[0] = 1f000;
Coord[1].Status[1] = 80800001;
This non-reliability is critical, so I have been looking for a solution over a long period (before it took hours to get a failure but now I have the script to get it within 1 min).
Could you please tell me what might be going on. Is it normal that PreCalc has an such impact on parallel Jog moves ? What kind of solution/configuration could be used to get 100% of the moves finishing ?
Thanks,
Bernard Lavault