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.