Motion Programming with multi-axis Motion Controller

Technosoft Motion Controllers simplifies the programming of complex motion applications by providing in a single compact package both a state of art digital drive and a powerful motion controller. Technosoft Motion Controller can command up to 8 slave axes being able to control multi-axis or independent moves of the slaves.

Programming motion with a Technosoft Motion Controller means to create and download a TML (Technosoft Motion Language) program into the motion controller memory. From the motion controller application you can:

Set 2/3D coordinated profiles (Vector Mode, Linear Interpolation )
Set independent motion modes on each slave axes (profiles, PVT, PT, electronic gearing or camming, etc.)
Exeucte motion sequence imported from G-code  files
Change the motion modes and/or the motion parameters on slave axes
Execute homing sequences stored in the non-volatile memory of the slaves
Control the program flow through:
oCalls to TML functions stored on the slave axes
oProgram and wait for events occurrence on slave axes
Handle slave axes digital I/O
Perform data transfers between axes
Synchronize all the slaves from a network

The features implemented in Motion Controller allow the user to take full advantage of intelligence embeded in Technosoft drives/motors in complex multi-axis applications. Thus, instead of having a host computing the trajectory for each axis, you can program the Motion Controller using TML to execute complex tasks, like a 2D/3D path, and inform the host when these are done. With this approach the host task is reduced at: calling TML functions (with possibility to abort their execution if needed) and waiting for a message from motion controller, which confirms the execution. If needed, the functionality of complex applications can be further divided between the Motion Controller and intelligent drives/motors.

A TML program includes a main section, followed by the subroutines used: functions, interrupt service routines and homing procedures of the slave drive embeded in the Motion Controller.

When you select the Motion” part of an application, you access the main section of your application TML program.

You can select the other components of a TML program too. Each has 2 types of access views:

Definition and/or selection view, with the following purposes:
oHoming modes: select the homing procedure(s) to use from a list of already defined procedures.
oFunctions: create new TML functions (initially void) and manipulate those defined: delete, rename, change their order in the program
oInterrupts: choose the TML interrupt service routines you want to view/change their default implementation
Edit view – for editing the contents. There is one edit view for each homing procedure and cam table selected, for each function defined and each interrupt chosen for view/edit.

In order to help you create a TML program, EasyMotion Studio includes a Motion Wizard which is automatically activated when you select “M Motion” – the main section view or an edit view for a homing procedure, function or interrupt service routine. The Motion Wizard adds a set of toolbar buttons in the project window just below the title bar. Each button opens a programming dialogue. When a programming dialogue is closed, the associated TML instructions are automatically generated.  Note that, the TML instructions generated are not a simple text included in a file, but a motion object. Therefore with Motion Wizard you define your motion program as a collection of motion objects.

The major advantage of encapsulating programming instructions in motion objects is that you can very easily manipulate them. For example, you can:

Save and reuse a complete motion program or parts of it in other applications
Add, delete, move, copy, insert, enable or disable one or more motion objects
Group several motion objects and work with bigger objects that perform more complex functions

 

The Motion Wizard includes the following programming dialogues:

Motion Programming and control

Linear Interpolation

VectorMode

Trapezoidal Profiles

S-curve Profiles

External

Motor Commands

Homing

Test

 

Events Programming

Event Types

When the actual motion is complete

Function of motor or load position

Function of motor or load speed

After a wait time

Function of reference

Function of inputs status

When target is reached

Function of vector distance

Jumps and Function Calls

I/O Handling

Assignment & Data Transfer

16-bit Integer Data

32-bit Integer Data

Arithmetic Operations

Multiple Axis Data Transfer

Send to Host

Slave Management

Miscellaneous commands

Interrupt Settings

Free Text Editor

 

See also:

Axis Selection

Motion View

Homing Procedures View

Functions View

Interrupts View

Importing G-code files