Machine designers are under increasing pressure to ensure that their new products are flexible and easy to upgrade. Machines must be able to switch between manufacturing a number of product types on-line, and changeovers must not incur significant downtime, or require specialist intervention. New machines must also provide as much information as possible on the operating conditions of the machine at any given time.
What is more, monitoring of the performance of the machine is vital, as is the ability to tweak certain machine parameters to improve performance – not through direct interaction with the control program, but rather via intuitive processes.
While existing machines may have been built around discrete functions all hardwired to a single control panel, when additional functionality is added to such a machine, or more software controlled electronic systems are incorporated, such an approach requires a huge wiring loom. Installation time reflects the complexity of the wiring, and the potential for easy modifications or upgrades is all but eliminated. Any new I/O requires a whole new set of wires and fault finding is extremely time consuming.
The alternative is to adopt a distributed I/O system based on a device level network. These allow the machine builder to add sophistication without adding complexity, dramatically reducing the wiring to actuators, sensors and other components.
In older designs, it may have sufficed to simply use a discrete temperature controller to facilitate a heat seal on a polystyrene wrap at the end of a line. But because newer machines must be adaptable to a range of product sizes that might require different thicknesses of polystyrene wrap, multiple temperature set-ups are required.
Although this could be performed with a discrete controller, it would not provide an automated way of performing multiple settings, without the intervention of a temperature control specialist. The alternative is a heat/cool temperature I/O module clipped to a PLC rack.
A similar argument applies to motion control subsystems. Servo modules on a PLC rack can simplify the setting of parameters, providing a single, centralised location for making changes to accommodate different products.
With such modern bus-based PLC controlled machines, the advantages of a man machine Interface (MMI) become apparent. Putting control modules onto the PLC rack allows a single MMI to provide the link to the outside world. The MMI can communicate with any of the cards on the rack. It also becomes simpler to change the set-up of the machine to meet the a variety of production requirements.
Graphics displays are extremely relevant on today’s machine designs. Touch screen systems can eliminate discrete switches that operators would have been expected to learn and use, instead providing menu-driven screens which lead the operator through the correct decision process.
A key advantage of the graphics approach is that it is non-language sensitive. Translating text does enable a machine to be exported anywhere in the world, but can be time consuming and costly. A picture, however, will be recognised the world over. That familiarity can be a key advantage as companies rise to meet the challenges of global markets.
With more and more of a machine’s I/O requirements such as cam position, temperature control, and NC positioning, provided through modules on a PLC rack, the MMI provides simple, direct access through a graphics display. The setting of a cam position, or the turn of a motor shaft, can be represented on the MMI just by a circular display.
With MMIs that are more capable, even more functionality can be designed in – altering the values of timers, changing the distances in position moves, setting temperature control parameters – in ways that the operator will actually be able to use. Rather than offering a window into the control program, graphics MMIs provide a window into the operation of the machine itself.
Implementing an MMI does not mean that the PLC control program needs to be changed. The latest Windows based products, for example, encourage structured programming by allowing blocks of code to be written for each element of a machine, with each block broken down into subsections of code to as many levels as is necessary to conceptualise the workings of the system.
These blocks of code can be defined and stored as real names such as `Label Detection’, or `Infeed Start’. This same philosophy is also extended to I/O points, enabling inputs and outputs to be labelled with meaningful descriptions such as `Guard Switch’ or `Brake on’. If a designer has adopted good software practise, then identifying all the various I/O to be controlled and monitored via the MMI is simply a matter of reading the comments associated with PLC function blocks. And with the communications protocols inherent in the PLC and MMI designs, putting these I/O conditions on screen is as easy as telling the MMI where to look for the data.
If, for example, a particular limit switch is required to trigger a lamp, the system developer simply needs to draw a lamp on screen, tell the MMI which register in the PLC program contains that value – which with a good program will have been documented as `End of Line Limit Switch’ – and when that bit switches, the lamp will light up.
Similarly, motor speeds or temperatures would be represented in the PLC program as analogue variables. This could be displayed on screen as a real time bar graph by just drawing the bar graph and pointing it to the location of the analogue value, which, again, should be fully documented in the program.
With the machine shown in Figure 1, manufactured components are checked at various points during the process to ensure that they are of the correct height. An example is a laser displacement height sensor on the infeed section which checks that the components are within a certain tolerance, and rejects those that are not.
The PLC program to execute this function is illustrated in ladder logic in Figure 4. This piece of code uses a compare function to compare the actual value – an analogue input from the laser displacement sensor – with preset upper and lower limits. The upper and lower limits are held in data memory locations DM0100 and DM0101. The actual values are fed simultaneously to data memory locations DM0500 and DM0501, and the compare function implemented. The illustration shows a lower limit fault being detected.
This output would be used to drive the MMI screen. It is important to note that no extra code has been written to make this possible. That output already exists in the PLC program, because it is required to drive a solenoid to reject the faulty component.
Implementing this via the MMI development software is also straightforward. Having designed a screen, which might simply be text that displays the message: `Component rejected – lower limit fault’, then the development software asks what PLC output is required to trigger this message. The developer assigns it to `Bit 100.00′, and the MMI then continually monitors this Bit and looks for it turning on.
For the machine to work with a range of different products, new upper and lower limits would have to be fed into the PLC for each one. This again does not affect the PLC code: it is simply looking at the contents of a data memory location. Figure 5 shows a typical MMI screen for setting tolerance values for a particular product. These could be defined for a number of different products, and then for any product selected, the MMI loads those parameters straight into the required data memory locations.
A more complicated function might be the final packing operation of products at the end of the line, with a servo system transferring products to precise locations in a box which will then be palletised and shipped out. On the machine, this function is controlled via a special I/O card on the PLC rack. Acting as a co-processor to the main PLC CPU, the motion control card performs its own functions without any processing burden on the PLC CPU.
In the Omron motion control I/O module, the servo program for the motion control operation will typically be written in G-code. A section of the code to perform the XY movement is given in Figure 6.
Line three of the code: N002 G26 XY returns the `grabber’ to its origin, ie the location from which it will pick up the finished products. If the machine was only dealing with one size of product, then the position each one should be placed in to fill the box would be the same. But if the machine is design to work with a variety of different sized products, those X and Y co-ordinates will be variables. The variables themselves can be stored in registers in the PLC.
Figure 7 shows the XY co-ordinates, and the speed the servo should run at, for a particular product type. Line six of the G-code: N005 G01 XA0000 YA0001 FA0100 tells the servo to move the first product on the conveyor to the XY position held in registers A0000 and A0001, and at a speed (F) held in register A0100. In these locations, from Figure 7, it would find the values 10.000mm for the X direction, 10.000mm for the Y direction, at a speed of 25.00mm/s.
Having performed its function, the servo returns to its origin: N006 G26 XY where the second of the seven products has now been conveyed. It picks up this product, and moves it to the XY co-ordinates held in registers A0002 and A0003, at a speed value held in A0100: N008 G01 XA0002 YA0003 FA0100. In these locations, it finds the XY move values of 13.333mm and 10.000mm, and a speed of 25.00mm/s. This sequence repeats until the box has been packed.
Each special I/O card that is added to the PLC rack has an allotted area of memory for data. When the MC card was clipped to the PLC rack, its data memory area included the registers A0000 onwards. In Figure 7, when this particular screen for the MMI is drawn in the development software, the program asks the user where all the parameters that are input should be downloaded. The reply, in this case would be the registers A0000, A0001, A0002… up to A0100.
The obvious next step is to define the XY parameters for each of the different products the machine is required to pack. This can be achieved by selecting the particular product on the MMI, perhaps simply by touching the image of that product on the screen, and all its parameters will be downloaded into the registers automatically.
PC based drawing packages make defining these functions and images on screen easy. With the best designs, there is no programming, just an intuitive sketching process. Images can be drawn on a computer then downloaded onto the MMI, with scaling of values and parameters performed automatically. Simple line and curve drawing and shading capabilities are combined with predefined lamps, switches, bar graphs, trend graphs and other functions.
The software asks what function should be defined as an image, and which value in the PLC it should be linked to. Libraries of standard functions are available, with templates for instruments such as temperature controllers. With more templates being added all the time, it will soon be feasible to represent almost every aspect of a machine’s functionality without the need for the software development engineer to actually draw anything.
The PC package can also offer libraries of standard symbols, enabling the designer to produce high functionality, highly flexible machines with controls which will be inherently familiar to anyone, anywhere in the world. In addition, modern MMI designs also provide the capability to import bitmap images and CAD drawings of the machine, or even actual photographs, which can then be animated.
Installed at the customer’s factory, the machine’s key advantages from use of MMIs quickly become apparent. For the machine builder’s commissioning engineer, on site to get the machine up and running, the MMI allows all the settings and checks to be progressed in a much simpler manner. The requirements for commissioning can be addressed at the design stage in the PLC program and MMI program to give the commissioning engineer real assistance. Specific pages on the MMI can provide a standard commissioning tutorial, guiding the engineer through various operations, providing bandwidths for servo settings, and so on. It is also much simpler to add new product settings at any stage in the machine’s lifespan.
For the operators who will have to use the machine, there is more opportunity to interact with the process to optimise production, providing them with the control they need to make the most of the knowledge and experience of the machine, but in an intuitive fashion.
Figure 1: Generic machine design based around PLC control with distributed I/O and MMI feedback
Figure 2: The MMI enables easy set-up of the machine
Figure 3: A laser displacement sensor checks the components being fed into the machine are within tolerance limits
Figure 4: This section of code is a quality check for the height of products before they are entered into the machine’s process. The user can set allowable upper and lower limits from the MMI, and these are directly loaded into the user program
Figure 5: Setting the tolerance limits for the various parts the machine will have to work with
Figure 6. G-code servo XY function to perform the final packing operation
Figure 7: XY co-ordinates for the packing of a product type