A programming system for an automatic apparatus, bearing a tool, the system comprising a control unit, operative to control movements of the apparatus according to multiple axes, and a portable programming terminal operatively connected to the control unit, where the terminal comprises
- selection means, able to be operated manually to select a desired co-ordinate system among a plurality of co-ordinate systems (“Base, “Tool”,“Joints”) stored in the control;
- first motion control means whose operation depends on a selection made through the selection means, the first motion control means comprising a plurality of motion keys able to be operated manually to provide the control unit, with a respective command signal for the apparatus, the command signal being aimed at causing the tool to execute a rotation or a translation motion about or along an axis corresponding to the operated motion key, in the co-ordinate system (“Base, “Tool”, “Joints”) selected using the selection means,
- position teaching means, able to be operated manually to store a position reached by a predefined point (TCP) of the tool as a result of a motion of the apparatus,
- wherein the terminal further comprises additional motion control means able to be operated manually instead of the first motion control means, to provide the control unit with a respective signal for controlling the apparatus aimed at causing a displacement of the predefined point (TCP) of the tool relative to a previously set reference point, where
- the position of the reference point is capable of being modified,
- the terminal comprises means for modifying the position of the reference point,
- the signal for controlling the apparatus generated as a result of the operation of the additional motion control means, is independent from the co-ordinate system (“Base, “Tool”, “Joints”) selected through the selection means.