top of page
/**
* @brief Get robot end-point record button state
* @param [out] state Button state, 0-pressed, 1-released
* @return Error code
*/
int GetAxlePointRecordBtnState(int[] state)
5.11. Get robot end DO output state
/**
* @brief Get robot end DO output state
* @param [out] do_state DO output state, do0~do1 corresponds to bit1~bit2, starting from bit0
* @return Error code
*/
int GetToolDO(int[] do_state)
5.12. Get robot controller DO output state
/**
* @brief Get robot controller DO output state
* @param [out] do_state_h DO output state, co0~co7 corresponds to bit0~bit7
* @param [out] do_state_l DO output state, do0~do7 corresponds to bit0~bit7
* @return Error code
*/
int GetDO(int[] do_state_h, int[] do_state_l)
5.13. Get robot DI/DO state example
public static int TestGetDIAI(Robot robot)
{
int status = 1;
int smooth = 0;
int block = 0;
int[] di =new int[]{0}, tool_di =new int[] {0};
double[] ai =new double[] {0}, tool_ai = new double[]{0};
double value = 0.0;
robot.GetDI(0, block, di);
System.out.println("di0:"+di[0]);
robot.GetToolDI(1, block, tool_di);
System.out.println("tool_di1:"+ tool_di[0]);
robot.GetAI(0, block, ai);
System.out.println("ai0:"+ ai[0]);
robot.GetToolAI(0, block, tool_ai);
System.out.println("tool_ai0:"+ tool_ai[0]);
int[] _button_state=new int[]{0};
robot.GetAxlePointRecordBtnState(_button_state);
System.out.println("_button_state is: "+ _button_state[0]);
int[] tool_do_state=new int[]{0};
robot.GetToolDO(tool_do_state);
System.out.println("tool DO state is: "+ tool_do_state[0]);
int[] do_state_h=new int[]{0};
int[] do_state_l=new int[]{0};
robot.GetDO(do_state_h, do_state_l);
System.out.println("DO state high is: "+do_state_h[0]+", DO state low is: "+ do_state_l[0]);
return 0;
}
5.14. Wait for control box digital input
/**
* @brief Wait for control box digital input
* @param [in] id IO number, range [0~15]
* @param [in] status 0-off, 1-on
* @param [in] max_time Maximum wait time in ms
* @param [in] opt Timeout strategy, 0-program stops and prompts timeout, 1-ignore timeout and continue, 2-wait indefinitely
* @return Error code
*/
int WaitDI(int id, int status, int max_time, int opt);
5.15. Wait for multiple control box digital inputs
/**
* @brief Wait for multiple control box digital inputs
* @param [in] mode 0-multi AND, 1-multi OR
* @param [in] id IO number, bit0~bit7 corresponds to DI0~DI7, bit8~bit15 corresponds to CI0~CI7
* @param [in] status 0-off, 1-on
* @param [in] max_time Maximum wait time in ms
* @param [in] opt Timeout strategy, 0-program stops and prompts timeout, 1-ignore timeout and continue, 2-wait indefinitely
* @return Error code
*/
int WaitMultiDI(int mode, int id, int status, int max_time, int opt);
5.16. Wait for tool digital input
/**
* @brief Wait for tool digital input
* @param [in] id IO number, range [0~1]
* @param [in] status 0-off, 1-on
* @param [in] max_time Maximum wait time in ms
* @param [in] opt Timeout strategy, 0-program stops and prompts timeout, 1-ignore timeout and continue, 2-wait indefinitely
* @return Error code
*/
int WaitToolDI(int id, int status, int max_time, int opt);
5.17. Wait for control box analog input
/**
* @brief Wait for control box analog input
* @param [in] id IO number, range [0~1]
* @param [in] sign 0-greater than, 1-less than
* @param [in] value Input current or voltage value percentage, range [0~100] corresponding to current [0~20mA] or voltage [0~10V]
* @param [in] max_time Maximum wait time in ms
* @param [in] opt Timeout strategy, 0-program stops and prompts timeout, 1-ignore timeout and continue, 2-wait indefinitely
* @return Error code
*/
int WaitAI(int id, int sign, double value, int max_time, int opt);
5.18. Wait for tool analog input
/**
* @brief Wait for tool analog input
* @param [in] id IO number, range [0]
* @param [in] sign 0-greater than, 1-less than
* @param [in] value Input current or voltage value percentage, range [0~100] corresponding to current [0~20mA] or voltage [0~10V]
* @param [in] max_time Maximum wait time in ms
* @param [in] opt Timeout strategy, 0-program stops and prompts timeout, 1-ignore timeout and continue, 2-wait indefinitely
* @return Error code
*/
int WaitToolAI(int id, int sign, double value, int max_time, int opt);
5.19. Wait for digital/analog input signal example
public static int TestWaitDIAI(Robot robot)
{
int rtn=-1;
int status = 1;
int smooth = 0;
int block = 0;
int di = 0, tool_di = 0;
double ai = 0.0, tool_ai = 0.0;
double value = 0.0;
rtn = robot.WaitDI(0, 1, 1000, 1);
System.out.println("WaitDI over; rtn is: "+ rtn);
robot.WaitMultiDI(1, 3, 3, 1000, 1);
System.out.println("WaitDI over; rtn is: "+ rtn);
robot.WaitToolDI(1, 1, 1000, 1);
System.out.println("WaitDI over; rtn is: " + rtn);
robot.WaitAI(0, 0, 50, 1000, 1);
System.out.println("WaitDI over; rtn is: " + rtn);
robot.WaitToolAI(0, 0, 50, 1000, 1);
System.out.println("WaitDI over; rtn is: " + rtn);
return 0;
}
5.20. Set Whether Control Box DO Output Resets After Stop/Pause
/**
* @brief Set whether control box DO output resets after stop/pause
* @param resetFlag 0-Do not reset; 1-Reset
* @param reloadFlag Whether to reload after pause resume, 0-Do not load; 1-Load
* @return Error code
*/
public int SetOutputResetCtlBoxDO(int resetFlag, int reloadFlag)
5.21. Set Whether Control Box AO Output Resets After Stop/Pause
/**
* @brief Set whether control box AO output resets after stop/pause
* @param resetFlag 0-Do not reset; 1-Reset
* @param reloadFlag Whether to reload after pause resume, 0-Do not load; 1-Load
* @return Error code
*/
public int SetOutputResetCtlBoxAO(int resetFlag, int reloadFlag)
5.22. Set Whether End Tool DO Output Resets After Stop/Pause
/**
* @brief Set whether end tool DO output resets after stop/pause
* @param resetFlag 0-Do not reset; 1-Reset
* @param reloadFlag Whether to reload after pause resume, 0-Do not load; 1-Load
* @return Error code
*/
public int SetOutputResetAxleDO(int resetFlag, int reloadFlag)
5.23. Set Whether End Tool AO Output Resets After Stop/Pause
/**
* @brief Set whether end tool AO output resets after stop/pause
* @param resetFlag 0-Do not reset; 1-Reset
* @param reloadFlag Whether to reload after pause resume, 0-Do not load; 1-Load
* @return Error code
*/
public int SetOutputResetAxleAO(int resetFlag, int reloadFlag)
5.24. Set Whether Extended DO Output Resets After Stop/Pause
/**
* @brief Set whether extended DO output resets after stop/pause
* @param resetFlag 0-Do not reset; 1-Reset
* @param reloadFlag Whether to reload after pause resume, 0-Do not load; 1-Load
* @return Error code
*/
public int SetOutputResetExtDO(int resetFlag, int reloadFlag)
5.25. Set Whether Extended AO Output Resets After Stop/Pause
/**
* @brief Set whether extended AO output resets after stop/pause
* @param resetFlag 0-Do not reset; 1-Reset
* @param reloadFlag Whether to reload after pause resume, 0-Do not load; 1-Load
* @return Error code
*/
public int SetOutputResetExtAO(int resetFlag, int reloadFlag)
5.26. Set Whether SmartTool Output Resets After Stop/Pause
/**
* @brief Set whether SmartTool output resets after stop/pause
* @param resetFlag 0-Do not reset; 1-Reset
* @param reloadFlag Whether to reload after pause resume, 0-Do not load; 1-Load
* @return Error code
*/
public int SetOutputResetSmartToolDO(int resetFlag, int reloadFlag)
5.27. Code Example for Setting Output Reset After Lua Program Stop/Pause
public static void TestDOReset(Robot robot)
{
for (int i = 0; i < 16; i++)
{
robot.SetDO(i, 1, 0, 0);
robot.Sleep(200);
}
int resetFlag = 1;
int resumeReloadFlag = 1;
int rtn = robot.SetOutputResetCtlBoxDO(resetFlag, resumeReloadFlag);
robot.SetOutputResetCtlBoxAO(resetFlag, resumeReloadFlag);
robot.SetOutputResetAxleDO(resetFlag, resumeReloadFlag);
robot.SetOutputResetAxleAO(resetFlag, resumeReloadFlag);
robot.SetOutputResetExtDO(resetFlag, resumeReloadFlag);
robot.SetOutputResetExtAO(resetFlag, resumeReloadFlag);
robot.SetOutputResetSmartToolDO(resetFlag, resumeReloadFlag);
robot.ProgramLoad("/fruser/test.lua");
robot.ProgramRun();
robot.Sleep(2000);
robot.PauseMotion();
robot.Sleep(2000);
robot.ResumeMotion();
robot.Sleep(2000);
robot.CloseRPC();
}
bottom of page