Primary interface (XML RPC)

Extensible Markup Language Remote Procedure Call, XML-RPC for short. This technology enables methods to be executed remotely, with data being transferred via http. The data to be transferred has XML formatting.

The data being transferred is formatted in XML. XML-RPC is language-independent, allowing for XML-RPC clients in various programming languages, making integration into existing projects straightforward. The commands are described independently of the programming language used. Additionally, example clients are provided to facilitate a smoother onboarding process.

This article explains how to perform the actions described below through the External Interface. To begin, a connection with the robot must be established, as detailed in the article "Python 3: Establishing Connection with the Robot."

horstFX Version: 2020.10 and newer

1. Switching Views

1.1 Command

HorstFX.Activity.switchActivity(id)

1.2 Parameters

The documentation on horstFX Views provides information on which view is assigned to which ID.

1.3 Return value

true Upon success.

2. Accessing current joint angles

2.1 Command

HorstFX.Robotcontrol.getCurrentRobotJoints()

2.2 Parameters

This function does not have any function arguments.

2.3 Return value

Returns a map upon success.

Joint angles are specified in degrees.

3. Accessing the Current Pose

3.1 Command

HorstFX.Robotcontrol.getCurrentRobotPose()

3.2 Parameters

This function does not have any function arguments.

3.3 Return value

Returns a map in case of success.

4. Turning Outputs On/Off

4.1 Command

HorstFX.Robotcontrol.setOutput(outputName, value)

4.2 Parameters

4.3 Return value

true upon successful completion

5. Confirming Operation Mode Change

5.1 Command

HorstFX.Safety.confirmChangeOperationMode()

5.2 Parameters

This function does not have any function arguments.

5.3 Return value

true when the operation mode change could be acknowledged.

 

6. Reading Boolean Registers

6.1 Command

HorstFX.Variable.getBoolRegister(registerIndex)

6.2 Parameters

6.3 Return value

Current value of the requested register (Bool value)

 

7. Writing to Boolean Registers

7.1 Command

HorstFX.Variable.setBoolRegister(registerIndex, value)

7.2 Parameters

 

7.3 Return value

true upon successful completion

 

8. Reading Inputs

8.1 Command

HorstFX.Robotcontrol.getInput(inputName)

8.2 Parameters

8.3 Return value

Current value of the requested input (Integer value)

 

9. Extended Move Command

9.1 Command

HorstFX.Robotcontrol.moveAdvanced(configMap)

9.2 Parameters

The map contains the same mandatory and optional parameters as the extended Move Command in textual programming. For a detailed description, refer to the article "Extended Move Command."

9.3 Return value

true upon successful completion

 

10. Confirming Acknowledgment of External Emergency Stop

Can only be acknowledged if the external emergency stop has been reset.

10.1 Command

HorstFX.Safety.confirmExternalEmergencyStop()

10.2 Parameters

This function does not have any function arguments.

10.3 Return value

true when the external emergency stop could be acknowledged.

 

11. Reading Float Registers

11.1 Command

HorstFX.Variable.getFloatRegister(registerIndex)

11.2 Parameters

11.3 Return value

Current value of the requested register (Float value)

 

12. Writing to Float Registers

12.1 Command

HorstFX.Variable.setFloatRegister(registerIndex, value)

12.2 Parameters

12.3 Return value

true upon successful completion

 

13. Reading Global Speed

13.1 Command

HorstFX.Program.getGlobalSpeed()

13.2 Parameters

This function does not have any function arguments.

13.3 Return value

Current global speed (Float value between 0 - 1, representing 0 - 100%)

14. Setting Global Speed

14.1 Command

HorstFX.Program.setGlobalSpeed(globalSpeed)

14.2 Parameters

14.3 Return value

true upon successful completion

 

15. Acknowledging Internal Errors

15.1 Command

HorstFX.Safety.confirmInternalError()

15.2 Parameters

This function does not have any function arguments.

15.3 Return value

true when the internal errors could be acknowledged.

 

16. Reading Integer Registers

16.1 Command

HorstFX.Variable.getIntRegister(registerIndex)

16.2 Parameters

16.3 Return value

Current value of the requested register (Integer value)

 

17. Writing to Integer Registers

17.1 Command

HorstFX.Variable.setIntRegister(registerIndex, value)

17.2 Parameters

17.3 Return value

true upon successful completion

 

18. Joint Movement

18.1 Command

HorstFX.Robotcontrol.moveJoint(x, y, z, q0, q1, q2, q3, speed)

18.2 Parameters

18.3 Return value

true upon successful completion

 

19. Lineare Bewegung

Depending on the robot's position, a linear path may not be feasible. This can occur, for instance, if the robot would collide with itself or if the movement cannot be executed linearly due to kinematic constraints.

19.1 Command

HorstFX.Robotcontrol.moveLinear(x, y, z, q0, q1, q2, q3, speed)

19.2 Parameters

19.3 Return value

true upon successful completion

 

20. Reading Next Joints

20.1 Command

HorstFX.Variable.getNextJoints(

20.2 Parameters

This function does not have any function arguments.

20.3 Return value

Returns a map upon successful completion.

21. Setting Next Joints

21.1 Command

HorstFX.Variable.nextJoints(j1, j2, j3, j4, j5, j6)

21.2 Parameters

21.3 Return value

true upon successful completion

 

22. Setting Next Pose

22.1 Command

HorstFX.Variable.nextPose(x, y, z, q0, q1, q2, q3, )

22.2 Parameters

22.3 Return value

true upon successful completion

 

23. Nothalt quittieren

Can only be acknowledged if the emergency stop on the PANEL has been released.

23.1 Command

HorstFX.Safety.confirmEmergencyStop()

23.2 Parameters

This function does not have any function arguments.


23.3 Return value

true when the emergency stop acknowledgment was successful.