A programmable logic controller, or PLC, is a software-based equivalent of a relay panel. A PLC is a general-purpose device. One model can be programmed to control a variety of machines, and programs can be changed easily for new jobs or changes in production routines.

PLCs were once primitive devices capable of providing only minimal feedback about machine operation and status. The situation has changed drastically, however, with the advent of more powerful computer chips and new standards that give a controller access to information throughout a manufacturing plant. Whereas the first controllers generally provided only limited information about the status of relay contacts, new monitoring capabilities let the user know exactly what is happening on the floor.

Computers have expanded PLC power through greater speed and programming flexibility. Today's PLCs almost always have a port that permits a user to tie into a computer. Three developments have helped bring about this integration of PLCs and computers: "smart" PLCs with their own microprocessors and memory, multitasking software, and local-area networks (LANs).

New software has enhanced the capability of computers, particularly personal computers to operate with PLCs. Until recently, small computers were limited to performing one task at a time. If a computer was being used to check the status of a controller, it could not perform data analysis or generate a report at the same time. However, with the development of concurrent DOS (disk operating system), the simultaneous juggling of two different tasks can be done.

More powerful microprocessors have resulted in controllers able to perform multiaxis control and able to link with sophisticated vision systems. One reason new PLCs are taking on such a wide range of duties is that they can be installed in modules, thus simplifying any needed customization and future expansion. Because each PLC contains its own internal communication highway or bus, additional memory or processing capability can be added by snapping in additional modules.

Various modules add RS-232 communication ports, multiaxis control and fault annunciation.

Software can be developed either on or off line; data-management and analysis programs are available. Many of the devices can be programmed from an IBM PC or compatible machine, and special industrially hardened programmers are also available when extreme temperature, dust, and vibration are problems. I/O stations can be located up to 2,000 ft from the CPU.

A controller is no more powerful than the software available for it. Two relatively recent developments, menu-driven software and concurrent operating systems, have simplified programming and made it more useful. Programs using menus allow an operator with only minimal training to monitor, analyze, and manage processes. Concurrent operating systems switch back and forth between two different programs so fast that both appear to be running at the same time.

Some PLCs are equipped to solve problems involving mathematical functions such as sine, cosine, tangent, xy, y root of x, e sub x , natural logarithms, and common logarithms. Such calculations are often required for energy management, process control, process modeling, real-time error correction, and many other applications.

And while ladder logic is still the standard industry programming language, the trend is toward state logic, sequential function charts, graphics, and versions that are programmable in Basic, C, or other high-level languages.

The ability to handle analog signals along with arithmetic and other complex calculations has made PLCs suitable for the control of processes as well as for the control of machines. Typical applications are mineral and chemical processing, water and waste treatment, and petroleum collection and distribution. In many of these applications a PLC can complement conventional analog control systems by handling sequence problems as well as a portion of the analog calculation and control. In support of those functions, some PLCs now have the ability to store recipes for batch processing, reducing the need for manual inputs.

In further support of their process-control capabilities, some PLCs can be equipped to solve complex equations such as proportional-integral-derivative equations required for the control of many processes. A sophisticated PLC is capable of performing these calculations on many different portions of a process simultaneously.

PLCs are also capable of producing analog outputs and of providing position control functions. PLCs can even provide control functions normally performed by numerical controls.

A modern PLC can also pass information back to the operator. It can print out its own ladder diagram for record, review, or change, or it can provide status or progress reports in English on a CRT or printer routinely or on request. A PLC can also display messages in English to summarize data or guide the operator.

Data-analysis programs are becoming increasingly common. A spreadsheet format is often used. Usually each PLC is assigned a tag or number. Parameters such as data type, coil, input, and addresses are tracked. The PLC initiates changes to data within the computer database, which initiate other control tasks. For example, if the PLC closes a valve, a software routine can be started that measures resulting flow through the valve and sounds an alarm if the flow is not within desired limits.

The programmable controller also can track down external faults. This capability is useful because the machine and externally mounted control elements such as limit switches, solenoids, sensors, transducers, remote pushbuttons and selector switches are usually much less reliable, and more often a cause of machine downtime than the PLC.

Other maintenance aids are available to help solve malfunctions. One feature intensifies on a CRT that portion of a circuit that is carrying current. Another feature lets an operator command specific inputs or outputs to be unconditionally turned on or off, thus helping a technician determine whether a problem is being caused by an internal or external failure.

PLC robot control: Programmable controllers are often equipped with special firmware (software programmed by PLC manufacturers) through which the controllers can perform many complex procedures according to simple instructions in user programs. Sequencer firmware provides the programming, storing, and accessing of data required for simulating electronic, or electromechanical sequencers and programmers. Sequencer data are stored in a data-table section of PLC memory, a section separate from that available for user programs. PLCs containing sequencer firmware are especially useful for controlling robots where the final position of each movement is determined by limit switches or other on-off, position-feedback devices.

Robot movements can be altered by using different masks for different robot tasks. One method of loading or programming sequencers is with a "teach" mode. This is a technique for loading or setting up the on-off contacts in a sequencer to correspond with the on-off status of I/O points. For this method, a robot is jogged into a desired position. Pressing a "teach" pushbutton energizes a sequencer load instruction that causes the on-off status of all pertinent inputs to be copied into a sequencer step. By jogging the robot through steps sequentially, in each case pressing the "teach" pushbutton, a PLC is "taught" a sequence of movements.

Robots having closed-loop systems are controlled by PLCs through digital-to-analog (d/a) I/O modules. These modules convert digital PC signals to analog outputs having ±10-V range. The outputs serve as speed references for the hydraulic or electrical servosystems that typically power each axis. Each axis is mechanically coupled to a potentiometer or encoder that feeds position and velocity data back to a PLC, closing a feedback control loop. Digital commands from a PLC to a converter initiates motion, sets acceleration rates, determines speeds, and initiates deceleration. Motion is halted when the feedback indicates the robot has reached the proper position.

Suitably equipped programmable controllers can generally control point-to-point or vectored motion. Point-to-point movement along each axis is initiated and halted independently of other axes. This type of motion is easily programmed, requires little memory, and is suitable for many robot applications.

Vectored motion, however, requires that the movements along two or more axes be interdependent. The PLC adjusts acceleration rates and speed for each axis so that all movement terminates simultaneously. By this means a robot arm moves from point to point along the shortest path. Vectored motion control usually reduces the time required for each move. To perform vectored control, PLCs must be equipped with arithmetic firmware that calculates speeds required for each axis. Although standardized algorithms are used for these calculations, vectored motion programs are somewhat more complex and require more memory than those for point-to-point motion.