Top Qs
Timeline
Chat
Perspective

A Manufacturing Language

General-purpose programming language From Wikipedia, the free encyclopedia

A Manufacturing Language
Remove ads

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]

Quick facts AML, Paradigm ...

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]

Thumb
Two IBM 7535 SCARA industrial robots bracketing the Mayor of Amsterdam, Burgemeester Ed van Thijn, at a 1985 computer exhibition in the Netherlands
Remove ads

Source code example

Summarize
Perspective

The following example shows code for a peg-in-hole program.[9]

PICKUP: SUBR (PART__DATA, TRIES);
   MOVE(GRIPPER, DIAMETER(PART__DATA)+0.2);
   MOVE(<1,2,3>, XYZ__POSITION(PART__DATA)+<0,0,1>);
   TRY__PICKUP(PART__DATA, TRIES);
   END;

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+<O,O,.25>);
   DMOVE(3, -1.0, FMONS);
   IF QMONITOR(FMONS) = 1
      THEN RETURN('NO HOLE');
   MOVE(3, HOLE(3) + PART__LENGTH(PART__DATA));
   END;

PART__IN__HOLE: SUBR(PART__DATA, HOLE);
   (PICKUP PART__DATA 2.);
   (INSERT PART__DATA HOLE);
   END;
Remove ads

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads