|
MotionBASIC
Programming Language
MotionBASIC®
provides both language enhancements and elegant development tools for
machine developers ready to incorporate servomotor technology in their
next design project.
MotionBASIC® Language Features
-
Motion
generation statements that provide a full featured programming
interface to the ServoWire Axis Modules and Drives --- along with
associated high-speed, on-board hardware
- Multi-tasking operating system and
multi-threaded user program execution with priority event thread
processing and error reporting
- I/O control statements for processing
discrete points, analog conversions, serial line data control, PC-card
file access, and TCP/IP sockets
- Language extensions for connectivity to
popular factory networks provide consistent register mapping methods
to link MotionBASIC® information to numbered PLC registers on the
network
Motion Statements
MOVE, GEAR, BLEND, CAM and, PROFILE
motion statements allow the user to create custom motion profiles ranging
from simple trapezoidal to complex trajectories. One of the central
features of MotionBASIC® statements is the ability to express servo
controlled motion profiles in plain English, with the motion definition
based on either time, speed, or distance traveled by either a pacer axis
or the axis under control.
MotionBASIC® statements are sent to the
appropriate axes through a FIFO queue in each Axis Module’s dual-port
RAM. They can be executed unconditionally or conditionally based on the
state of a DSP sensor input. They can also be repeated indefinitely by
prefixing the motion statement with the REPEAT keyword. In fact, by using
the REPEAT prefix on a sequence of motion statements multiple statements
can be executed in a loop without intervention by the main processor.
MOVE statements create common
trapezoidal motion profiles, and can be based on time, speed or distance.
GEAR statements synchronize motion
to an electronic lineshaft. Gearing can be done at a constant ratio or
engaged over a distance traveled of the lineshaft or other axis under
control. Gearing can also be engaged for a programmable distance, with a
variety of ways to express acceleration requirements. Gearing is ideal for
creating motion sequences needed in traverse wind, reciprocating and
rotary flying shear applications, and for phase adjustments on continuous
web applications.
BLEND statements dynamically extend
a motor’s target position --- allowing speed and acceleration to change
on a motion in progress. This capability is useful for creating Cartesian
path trajectories in X-Y-Z system designs or for changing speed to utilize
the STOP condition when searching for a registration mark.
CAM
motion statements produce follower axis motion in response to pacer
movement based on a table of follower distances. The table’s data can be
indexed with regular motion increments from the pacer axis or be expanded
to use pairs of pacer and follower distances for irregularly defined cam
profiles. CAM tables can be defined as either opened or closed. And if
closed, pacer movement beyond the ends of the table results in follower
motion defined by wrapping around the table, like a mechanical cam.
PROFILE statements
are similar to CAM statements, except that the axis follower’s
incremental distance is defined as a function of time.
Superimposed Motion
When gearing a servo to an
electronic lineshaft at a constant ratio, motions defined by both MOVE FOR
and GEAR FOR can be superimposed onto that constant ratio for phase
adjustments.
Program Access to Drive I/O
MotionBASIC® coordinates the high
speed interaction between the logic state of the inputs and servo motor
actions needed to complete the tough application requirements encountered
in today’s factory automation. MotionBASIC® provides the programmer
access into the Axis Module’s servo functions and tightly coupled, high
speed ServoWire drive I/O hardware.
Inputs for High Speed Sensors
ServoWire drive sensor inputs are
used by any of the MOVE, GEAR, CAM, COUNT and BLEND statements to start,
continue, and/or stop motion commands loaded in the DSP command queue in
the ServoWire Axis Module. Commands in the command queue will respond to
sensor inputs within one position update cycle (125 to 333 microseconds).
Sensor inputs are individually programmable to can react to the rising or
falling edge of their change in state.
Position Capture Registers
High speed shaft position
measurements are made with 32 bit position capture registers that are
linked directly to the sensor inputs on the ServoWire Drive insuring
microsecond response. MotionBASIC® variables provide direct access to the
capture status and captured data allowing sophisticated software solutions
to applications such as registration control.
Programmable Limit Switches
Independent optically isolated
electronic programmable limit switches (PLS) are accessible from the front
panel of the ServoWire drive. Each switch is programmed by using
MotionBASIC® variables to set the ‘turn-on’ and ‘turn-off’ points
at defined positions using user units. Each PLS is configured with its own
driving source, and cycle distance.
With internal connections built into sensor
logic on the ServoWire drive, a PLS can also be configured to control how
sensor inputs are used during certain portions of the machine cycle.
Position Delay Counters
A ServoWire drive provides optional
dual high-speed counter circuits that are driven by encoder feedback and
can be programmed by the user to:
- detect the presence of a sensor within a
specified encoder count. Counter can be set to down-count and the
input sensor can re-trigger the counter.
- measure distance between two sensors.
Sensor inputs can start, stop, or reload the counter register.
- link counter’s output signal to
trigger a motion statement loaded into the ServoWire axis module
command queue delaying action until some distance has passed.
Axis Module Performance
The Axis Module DSP firmware
included with MotionBASIC® provides selectable servo loop update rates,
feedforward gain adjustments for both velocity and acceleration, access to
all servo loop parameters, plus automatic parameter adjustments based on
load inertia. These performance features provide tighter servo loop
position control resulting in higher accuracy and fast response time.
Client/Server Sockets using TCP/IP
Serial PPP or Ethernet LAN
connections to the ORION® are established in MotionBASIC® using OPEN
SOCKET statements for client and/or server port communications that
utilize internet TCP/IP protocols. A PPP connection uses either a direct
cable or a remote modem dial-up link through the development port. An
Ethernet link to the ORION® and MotionBASIC® is provided by either a
PC-card installed into the second slot of the system module or a ISA based
board installed in the ORION® backplane.
Project Management Structure
The MotionBASIC® system card
contains all files relevant to your motion control project. All source
modules, support files, and ORION® system software, which includes the
operating and Axis Module DSP firmware, are on one convenient Flash memory
PC-card format.
Integrated Development Tools
MotionDesk is an integrated
development and maintenance environment which is interfaced to the ORION®
using a TCP/IP connection to each window providing:
- software project navigation,
- source file editing,
- source module debugging,
- real-time program execution capture with
trace mode,
- direct execution of statements from the
Direct Mode window,
- system software update wizard providing
on-line access for all software enhancements.
MotionBASIC® multi-threaded programming
statements provide concurrency
MotionBASIC® offers concurrent
programming which allows the user to create modern multi-threaded
software modules where,
- multiple processes run simultaneously as
separate threads of execution.
- thread priority can be modified by the
executing program.
- event and/or error threads interrupt
process threads to respond to critical machine operations.
- several axes can be defined as a machine
group and allocated their own E-stop circuit. Up to four different
machine groups can be handled by each ORION® controller.
Using the modern technique of
multi-threaded processing, the software designer has better control over
all sections of the motion control program. Dynamic control over the
priority of each process allows re-tuning for performance when real-time
situations demand a temporary change in the process’ primary emphasis.
Any process can be independently started, stopped, and continued. Process
synchronization is available when multiple processes are accessing a
global resource such as a memory area or external device.
Click here to
view/print/download an Acrobat PDF of this document (111k).
|