About ReadMotor instruction execute time

I suffer a strange problem, when i use the ReadMotor instruction to read the position of a motor, it need take 8-15 ms. Can anyone explain why it takes so long? And why the execute time is changing? In addiation, i test the follow four instruction GetJointData CJointT CRobT GetMotorTorque , also find the execute time is change from 1-5 ms. Has anyone encountered a similar problem?

RAPID code :

ClkReset clock_state;
ClkStart clock_state;
!Cartesian Coordinates
motor_position:= ReadMotor(1);
ClkStop clock_state;
time:=ClkRead(clock_state);
TPWrite "time is " \Num:=time;

Anyone has any ideas? THANKS.