AML | |
Paradigm: | Imperative (procedural) |
Designer: | Russell H. Taylor |
First Release: | 1978 |
Implementations: | AML, AML/2, AML/E, AML/V, AML/X |
Influenced By: | ALGOL 68, SAIL, AL[1] [2] |
A Manufacturing Language (AML) is a robot programming language created by IBM in the 1970s and 80s, for its RS 1 robot and other robots in its Robot Manufacturing System product line.[3] [4] The systems were used in factory automation by customers such as Plessey and Northern Telecom.[5] They are no longer listed as available from IBM, but robots and parts can occasionally be found in used condition on auction sites, and are refurbished by hobbyists.[6]
AML/2, AML/E, AML/V, and AML/X are versions and derivatives of AML.[7]
AML programs can call subroutines written in AML, C, or FORTRAN. Programs are coded off-line, and can be tested with an off-line simulator. Prior to execution on the robot, they are uploaded to RAM residing in the robot's control unit.[8]
The following example shows code for a peg-in-hole program.[9]
TRY__PICKUP: SUBR(PART__DATA, TRIES); IF TRIES LT 1 THEN RETURN('NO PART'); DMOVE(3,-1.0); IF GRASP(DIAMETER(PART__DATA)) = 'NO PART' THEN TRY__PICKUP(PART__DATA, TRIES - 1); END;
GRASP: SUBR(DIAMETER, F); FMONS: NEW APPLY($ MONITOR, PINCH__FORCE(F)); MOVE(GRIPPER, 0, FMONS); RETURN(IF QPOSITION(GRIPPER) LE DIAMETER/2 THEN 'NO PART' ELSE 'PART'); END;
INSERT: SUBR(PART__DATA, HOLE); FMONS: NEW APPLY($ MONITOR, TIP__FORCE(LANDING__FORCE)); MOVE(<1,2,3>, HOLE+
PART__IN__HOLE: SUBR(PART__DATA, HOLE); (PICKUP PART__DATA 2.); (INSERT PART__DATA HOLE); END;