Trio’s BASIC programming language is based on the widely used standard BASIC instruction set seen on many stand-alone computer boards since its inception in 1967.
Since the mid 1980’s, TrioBASIC has grown and developed into the powerful motion language that we have today. Programming structures and commands are available to fulfil almost any need within a motion control system. In addition, powerful specialised motion commands allow direct control of multiple axes using profiled, interpolated or linked moves.
One of the many strengths of TrioBASIC is that a program written for the entry level MC302X Motion Coordinator can be run, with only minimal modification on the highest performance Motion Coordinator, the MC464. This portability extends even to users requiring upgrades for older Motion Coordinators where the core functions of a program written in TrioBASIC over a decade ago will still run on the latest hardware platforms.
All standard program constructs are provided; variables, loops, input/output, maths and conditions. Extensions to this basic instruction set exists to permit a wide variety of motion control facilities, such as single axis moves, synchronised multi-axis moves and unsynchronised multi-axis moves as well as the control of the digital I/O.
All Trio controllers feature TrioBasic. Multiple programs can be constructed and run simultaneously to make programming of complex applications much easier.
An example of TrioBasic is MOVELINK which can be used ino synchronization of conveyors, flying shears, thread chasing and taping and coil winding.
In this example, aflying shear cuts a long sheet of paper into cards every 160 m whilst moving at the speed of the material.
The shear is able to travel up to 1.2 metres of which 1m is used in this example.
The paper distance is measured by an encoder, the unit conversion factor being set to give units of metres on both axes.
(Note that axis 7 is the link axis)
The program for this example is:
WHILE IN(2)=ON
MOVELINK(0,150,0,0,7) 'dwell (no movement) for 150m
MOVELINK(0.3,0.6,0.6,0,7) 'accelerate to paper speed
MOVELINK(0.7,1.0,0,0.6,7) 'track the paper then decelerate
WAIT LOADED 'wait until acceleration movelink is finished
OP(8,ON) 'activate cutter
MOVELINK(-1.0,8.4,0.5,0.5,7) 'retract cutter back to start
WAIT LOADED OP(8,OFF) 'deactivate cutter at end of outward stroke
WEND