I'm going to contact local support next week, but I want to know if any of you has encountered this behavior.
It's a NX100. I made a macro to do offsets and it works except when one coordinate of the offset position variable is set within a random range. If the coordinate is in this range, the fifth axis starts to move - even though its offset coordinate is 0,000.
Macro code
GETARG LD000 IARG#(1)
GETARG LD001 IARG#(2)
GETARG LD002 IARG#(3)
GETARG LD003 IARG#(4)
GETARG LD004 IARG#(5)
GETARG LD005 IARG#(6)
GETARG LI000 IARG#(7)
CNVRT LPX000 PX000 BF
SETE LP000 (1) LD000
SETE LP000 (2) LD001
SETE LP000 (3) LD002
SETE LP000 (4) LD003
SETE LP000 (5) LD004
SETE LP000 (6) LD005
IMOV LP000 V=LI000
Display More
Calling job code
If I set the Z around that mark the V axis starts to rotate halfway through the trajectory. I don't know how much it tries to move since the robot will collide if I continue, but it goes one degree up each second. The starting and ending position are safely inside the robot range though.
What's making me go crazy is that I can move the Z manually all the way down no problemo; the offset WORKS by testing INTERLOCK+FWD, the offset FAILS by INTERLOCK+TEST START, and the offset WORKS in both if the value is LESS or GREATER than -1700,000.
I thought maybe it had to do with the macro, so I put the code in the job - nothing. Maybe it's the variables, overflowing or something that's not giving an alarm, so I got rid of them and set a constant in the SETE command - nothing. I checked the local position variable being built - it's correct. What's going on here? How can it work in FWD and not TEST START? Is it a bug in the interpolator program?