Variable Assembly Language

Last updated

Variable Assembly Language (VAL) is a computer-based control system and language designed specifically for use with Unimation Inc. industrial robots.

A computer is a device that can be instructed to carry out sequences of arithmetic or logical operations automatically via computer programming. Modern computers have the ability to follow generalized sets of operations, called programs. These programs enable computers to perform an extremely wide range of tasks. A "complete" computer including the hardware, the operating system, and peripheral equipment required and used for "full" operation can be referred to as a computer system. This term may as well be used for a group of computers that are connected and work together, in particular a computer network or computer cluster.

Control system system to control other devices using control loops

A control system manages, commands, directs, or regulates the behavior of other devices or systems using control loops. It can range from a single home heating controller using a thermostat controlling a domestic boiler to large Industrial control systems which are used for controlling processes or machines.

Unimation was the world's first robotics company. It was founded in 1962 by Joseph F. Engelberger and George Devol and was located in Danbury, Connecticut. Devol had already applied for a patent an industrial robotic arm in 1954; U.S. Patent 2,988,237 was issued in 1961.

Contents

The VAL robot language is permanently stored as a part of the VAL system. This includes the programming language used to direct the system for individual applications. The VAL language has an easy to understand syntax. It uses a clear, concise, and generally self-explanatory instruction set. All commands and communications with the robot consist of easy to understand word and number sequences. Control programs are written on the same computer that controls the robot. As a real-time system, VAL's continuous trajectory computation permits complex motions to be executed quickly, with efficient use of system memory and reduction in overall system complexity. The VAL system continuously generates robot control commands, and can simultaneously interact with a human operator, permitting on-line program generation and modification.

Robot mechanical or virtual artificial agent carrying out physical activities

A robot is a machine—especially one programmable by a computer— capable of carrying out a complex series of actions automatically. Robots can be guided by an external control device or the control may be embedded within. Robots may be constructed on the lines of human form, but most robots are machines designed to perform a task with no regard to how they look.

In computer science, real-time computing (RTC), or reactive computing describes hardware and software systems subject to a "real-time constraint", for example from event to system response. Real-time programs must guarantee response within specified time constraints, often referred to as "deadlines". The correctness of these types of systems depends on their temporal aspects as well as their functional aspects. Real-time responses are often understood to be in the order of milliseconds, and sometimes microseconds. A system not specified as operating in real time cannot usually guarantee a response within any timeframe, although typical or expected response times may be given.

Trajectory path of a moving object

A trajectory or flight path is the path that a object with mass in motion follows through space as a function of time. In classical mechanics, a trajectory is defined by Hamiltonian mechanics via canonical coordinates; hence, a complete trajectory is defined by position and momentum, simultaneously. Trajectory in quantum mechanics is not defined due to Heisenberg uncertainty principle that position and momentum can not be measured simultaneously.

A convenient feature or VAL is the ability to use libraries or manipulation routines. Thus, complex operations may be easily and quickly programmed by combining predefined subtasks.

The VAL language consists of monitor commands and program instructions. The monitor commands are used to prepare the system for execution of user-written programs. Program instructions provide the repertoire necessary to create VAL programs for controlling robot actions.

Terminology

The following terms are frequently used in VAL related operations.

Monitor

The VAL monitor is an administrative computer program that oversees operation of a system. It accepts user input and initiates the appropriate response; follows instructions from user-written programs to direct the robot; and performs the computations necessary to control the robot.

Editor

The VAL editor is an aid for entering information into a computer system, and modifying existing text. It is used to enter and modify robot control programs. It has a list of instructions telling a computer how to do something. VAL programs are written by system users to describe tasks the robot is to perform.

Location

Location is a position of an object in space, and the orientation of the object. Locations are used to define the positions and orientations the robot tool is to assume during program execution.

VAL programming

Several conventions apply to numerical values to be supplied to VAL commands and instructions. Preceding each monitor-command description are two symbols indicating when the command can be typed by the user. A dot (.) signifies the command can be performed when VAL is in its top-level monitor mode and no user program being executed (that is, when the system prompt is a dot). An asterisk (*) indicates the command can be performed at the same time VAL is executing the program (that is, when the system prompt is an asterisk). If both symbols are present the command can be executed in either case. Most monitor commands and program instructions can be abbreviated. When entering any monitor command or program instruction, the function name can be abbreviated to as many characters as are necessary to make the name unique.

For commands and instructions, angle brackets, < >, are used to enclose an item which describes the actual argument to appear. Thus the programmer can supply the appropriate item in that position when entering the command or instruction. Note that these brackets used here are for clarification, and are never to be included as part of a command or instruction.

Many VAL commands and instructions have optional arguments. For notations, optional arguments are enclosed in square brackets, [ ]. If there is a comma following such an argument, the comma must be retained if the argument is omitted, unless nothing follows. For example, the monitor BASE command has the form:

BASE [<dx>] , [<dy>] , [<dz>] , [<rotation>]

To specify only a 300-millimeter change in the Z direction, the command could be entered in any of the following ways:

Note that the commas preceding the number 300 must be present to correctly to relate the number with a Z-direction change. Like angle brackets, square brackets are never entered as part of a command or instruction.

Several types of numerical arguments can appear in commands and instructions. For each type there are restrictions on the values that are accepted by VAL. The following rules should be observed:

  1. Distances are entered to define locations to which the robot is to move. The unit of measure for distances is millimeter, although units are never explicitly entered for any value. Values entered for distances can be positive or negative, with their magnitudes limited by a number representative of the maximum reach of the robot (for example, 1024 mm and 700 mm for the PUMA 500 and PUMA 250 robots, respectively). Within the resultant range, distance values can be specified in increments of 0.01 mm. Note, however, that some values cannot be represented internally, and are stored as the nearest representable value.
  2. Angles in degrees are entered to define and modify orientations the robot is to assume at named locations, and to describe angular positions of robot joints. Angle values can be positive or negative, with their magnitudes limited by 1800 or 3600 depending on the usage. Within the range, angle values can be specified in increments of 0.01°. Values cannot be represented internally, however they are stored as

nearest representable value.

The VAL system

The function of VAL is to regulate and control a robot system by following user commands or instructions. In addition to being a compact stand-alone system, VAL has been designed to be highly interactive to minimize programing time, and to provide as many programming aids as possible.

External communication

The standard VAL system uses an operator's console terminal and manual control box to input commands and data from the user. The operator console serves as the primary communication device and can be either a direct play terminal or a printing terminal. Interaction with other devices in an automated cell is typically handled by monitoring input channels and switching outputs. By this means the robot can control a modest cell without the need for other programmable devices.

VAL Operating System

The controller has two levels or operation:

A programmable read-only memory (PROM) is a form of digital memory where the setting of each bit is locked by a fuse or antifuse. It is one type of ROM. The data in them is permanent and cannot be changed. PROMs are used in digital electronic devices to store permanent data, usually low level programs such as firmware or microcode. The key difference from a standard ROM is that the data is written into a ROM during manufacture, while with a PROM the data is programmed into them after manufacture. Thus, ROMs tend to be used only for large production runs with well-verified data, while PROMs are used to allow companies to test on a subset of the devices in an order before burning data into all of them.

PROM memory retains its contents finitely, and thus VAL is immediately available when the controller is switched on. The monitor is responsible for control of the robot, and its commands come from the manual control unit, the system terminal, or from programs. To increase its versatility and flexibility, the VAL monitor can perform of its commands even while a user program is being executed. Commands that can be processed in this way include those for controlling the status the system, defining robot locations, storing and retrieving information the floppy disk, and creating and editing robot control programs.

Related Research Articles

Applesoft BASIC is a dialect of Microsoft BASIC, developed by Marc McDonald and Ric Weiland, supplied with the Apple II series of computers. It supersedes Integer BASIC and is the BASIC in ROM in all Apple II series computers after the original Apple II model. It is also referred to as FP BASIC because of the Apple DOS command used to invoke it, instead of INT for Integer BASIC.

Computer program Instructions to be executed by a computer

A computer program is a collection of instructions that performs a specific task when executed by a computer. A computer requires programs to function.

Forth is an imperative stack-based computer programming language and environment originally designed by Charles "Chuck" Moore. Language features include structured programming, reflection, concatenative programming and extensibility. Although not an acronym, the language's name is sometimes spelled with all capital letters as FORTH, following the customary usage during its earlier years.

Macro (computer science) rule or pattern that specifies how a certain input sequence should be mapped to a replacement output sequence according to a defined procedure

A macro in computer science is a rule or pattern that specifies how a certain input sequence should be mapped to a replacement output sequence according to a defined procedure. The mapping process that instantiates (transforms) a macro use into a specific sequence is known as macro expansion. A facility for writing macros may be provided as part of a software application or as a part of a programming language. In the former case, macros are used to make tasks using the application less repetitive. In the latter case, they are a tool that allows a programmer to enable code reuse or even to design domain-specific languages.

A programmable logic controller (PLC) or programmable controller is an industrial digital computer which has been ruggedized and adapted for the control of manufacturing processes, such as assembly lines, or robotic devices, or any activity that requires high reliability control and ease of programming and process fault diagnosis.

In computer science, an interpreter is a computer program that directly executes, i.e. performs instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An interpreter generally uses one of the following strategies for program execution:

  1. parse the source code and perform its behavior directly;
  2. translate source code into some efficient intermediate representation and immediately execute this;
  3. explicitly execute stored precompiled code made by a compiler which is part of the interpreter system.

RT-11 is a discontinued small, single-user real-time operating system for the Digital Equipment Corporation PDP-11 family of 16-bit computers. RT-11 was first implemented in 1970 and was widely used for real-time systems, process control, and data acquisition across the full line of PDP-11 computers.

RSTS/E timesharing operating system for DEC PDP-11 minicomputers

RSTS is a multi-user time-sharing operating system, initially developed by Evans Griffiths & Hart of Boston, and acquired by Digital Equipment Corporation for the PDP-11 series of 16-bit minicomputers. The first version of RSTS was implemented in 1970 by DEC software engineers that developed the TSS-8 time-sharing operating system for the PDP-8. The last version of RSTS was released in September 1992. RSTS-11 and RSTS/E are usually referred to just as "RSTS" and this article will generally use the shorter form.

Dartmouth BASIC is the original version of the BASIC programming language. It was designed by two professors at Dartmouth College, John G. Kemény and Thomas E. Kurtz. It was developed as part of the Dartmouth Time Sharing System (DTSS) and was one of the first programming languages intended to be used interactively.

Power-system automation is the act of automatically controlling the power system via instrumentation and control devices. Substation automation refers to using data from Intelligent electronic devices (IED), control and automation capabilities within the substation, and control commands from remote users to control power-system devices.

An instruction set simulator (ISS) is a simulation model, usually coded in a high-level programming language, which mimics the behavior of a mainframe or microprocessor by "reading" instructions and maintaining internal variables which represent the processor's registers.

Robot software is the set of coded commands or instructions that tell a mechanical device and electronic system, known together as a robot, what tasks to perform. Robot software is used to perform autonomous tasks. Many software systems and frameworks have been proposed to make programming robots easier.

In computing, a resident monitor is a type of system software program that was used in many early computers from the 1950s to 1970s. It can be considered a precursor to the operating system. The name is derived from a program which is always present in the computer's memory thus being "resident". Because memory was very limited on these systems the resident monitor was often little more than a stub which would gain control at the end of a job and load a non-resident portion to perform required job cleanup and setup tasks.

Front panel

A front panel was used on early electronic computers to display and allow the alteration of the state of the machine's internal registers and memory. The front panel usually consisted of arrays of indicator lamps, toggle switches, and push buttons mounted on a sheet metal face plate. In early machines, CRTs might also be present. Prior to the development of CRT system consoles, many computers such as the IBM 1620 had console typewriters.

ORVYL is a timesharing monitor developed by Stanford University for IBM System/360 and System/370 computers in 1967–68. ORVYL was one of the first time-sharing systems to be made available for IBM computers. Wylbur is a text editor and word processor program designed to work either without ORVYL, or in conjunction with ORVYL.

VS/9 is a discontinued computer operating system available for the UNIVAC Series 90 mainframes during the late 1960s through 1980s. The 90/60 and 90/70 were repackaged Univac 9700 computers. After the RCA acquisition by Sperry, it was determined that the RCA TSOS operating system was far more advanced than the Univac counterpart, so the company opted to merge the Univac hardware with the RCA software and introduced the 90/70. The 90/60 was introduced shortly thereafter as a slower, less expensive 90/70. It was not until the introduction of the 90/80 that VS/9 finally had a hardware platform optimized to take full advantage of its capability to allow both interactive and batch operations on the same computer.

RoboLogix

RoboLogix is a robotics simulator which uses a physics engine to emulate robotics applications. The advantages of using robotics simulation tools such as RoboLogix are that they save time in the design of robotics applications and they can also increase the level of safety associated with robotic equipment since various "what if" scenarios can be tried and tested before the system is activated. RoboLogix provides a platform to teach, test, run, and debug programs that have been written using a five-axis industrial robot in a range of applications and functions. These applications include pick-and-place, palletizing, welding, and painting.

Command-line interface type of computer interface based on entering text commands and viewing text output

A command-line interface or command language interpreter (CLI), also known as command-line user interface, console user interface and character user interface (CUI), is a means of interacting with a computer program where the user issues commands to the program in the form of successive lines of text. A program which handles the interface is called a command language interpreter or shell (computing).

MikroSim

MikroSim is an educational software computer program for hardware-non-specific explanation of the general functioning and behaviour of a virtual processor, running on the Microsoft Windows operating system. Devices like miniaturized calculators, microcontroller, microprocessors, and computer can be explained on custom-developed instruction code on a register transfer level controlled by sequences of micro instructions (microcode). Based on this it is possible to develop an instruction set to control a virtual application board at higher level of abstraction.

In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed.

References