Festo hardware manual
Introduction
The assignments that are part of the course focus on the model based design of supervisory controllers for the Festo Modular Production System (MPS), which can be seen in the CST laboratory in Gem-Z 0.08, which is reachable via Gem-Z 0.07. This document provides you the information you need to design and implement your models. Before you get to the point where you flip the ‘BigSwitch’ to see if your efforts show the desired results, you will have had an interesting and sometimes difficult journey in the world of design, requirements, modeling, simulation, visualization, hardware, testing, implementation, debugging, etc.
You will feel the need for global and conceptual information, as well as very specific detail information. This will all come together in the solution you find for the assignment given to you.
To improve the material of this course we appreciate your feedback. Please email your remarks and/or suggestions the the author or lecturer.
About this document
Most of the information in this document deals with the hardware of the system in the lab. The current chapter and the Festo MPS Description chapter will give you a global impression of the complete Festo MPS system and present you with some thoughts and ideas of what you should be aware of when you begin with the design and implementation of your own controller(s).
The subsequent chapters will provide more detailed information about each specific workstation in the MPS. Each workstation has its own chapter which deals with sensors and actuators and the way they (may) influence each other. From this information you can deduce one or more possible working cycles that satisfy the specific requirements given in the assignment.
By no means is this a substitute for your visit to the laboratory where you can see and touch the workstations. You can see how actuators and sensors interact, how actuators influence each other, and you will be able to gather the timing information that you will need to build a life-like simulation model.
Things to think about
Festo MPS Description
Although it is not a real ‘production’ system, the Festo MPS is built with industrial components. It comprises six workstations, each of which performs one step in the production of an industrial product. No real hardware processing steps like drilling, grinding etc. take place, those will all be simulated in time. So it is more about transporting, positioning, measuring, testing, sorting, and everything that has to be done to make it happen: (supervisory) control, because that is the missing link between the sensors and the actuators of the system.
The production steps
Each product, except the rejected ones, is supposed to visit the six individual workstations. The task of each workstation is shown in the table below. Detailed information is in the respective chapter of this document.
Function |
Info |
Task |
---|---|---|
Distributing |
How to get products into the system? |
|
Handling |
How to transport a product to the next station? |
|
Testing |
Accept this one, or reject it and remove it? |
|
Buffering |
Smoothing workflow; use a buffer? |
|
Processing |
Give the product more shape. |
|
Sorting |
Diversify; handle more than one kind of product. |
Table: The six production steps
The principles of supervisory control synthesis are put into practice when the students design, implement and test the controllers for a number of workstations that together form a simple flow shop system. The system comprises six workstations, each with a specific task. It is situated in the laboratory in GEM-Z 0.08.
An overview of the complete system is shown below. In this schematic one PC with a soft PLC controls the complete flowshop. However, in the normal course setup one PC will control just one or two of the workstations.
If you are attending the course you will usually use your own notebook to develop and test the controllers you design in a simulated environment (simulation+visualization). When you (and we(!)) are satisfied with the result, you will be allowed to test the solution on the real hardware. Transfer of the required files and data between your notebook and the control PC is done using a generated XML-file.
The products
The system is designed to process three variants of the same basic product (see Figure The products (housings) for the Festo system): the housing for a small instrument like a clock, a hygrometer or a thermometer. It is produced in three different materials: aluminium and two colors (red and black) of synthetic material. The height and depth of the housings is checked in one of the stations, so there will be accepted and (to be) rejected products in the system.
The User interface
Each station has the same user interface, located in the front, under the aluminium mounting plate. It is shown in the figure below. The buttons and LEDs allow the user to interact with the system. If needed, additional user definable digital inputs and outputs are available on the left and right side of the interface panel. They may be used to receive/send information from/to an upstream or downstream station. Although the names on the user interface hardware may suggest certain functions, none of the interface signals is hard-wired; their function is completely defined in the user control program. (Yes, you can use the STOP button to start the system……)
The functionality of the buttons can be extended by making a distinction between short and long pressing of a button. As an example you could interpret a short pressing of the Reset button as a pause request, while a longer pressing could be interpreted as the actual reset request.
The labels on sensors and actuators
If you take a look at the actual hardware of the stations you will notice that each sensor and actuator is labeled. The label is an identifier and serves as a reference to find more information about the particular element. To avoid lengthy names on the labels a simple naming convention is used consisting of two letters followed by two digits. Sensor labels are placed as close as possible to the origin of its signal; an actuator label is placed as close as possible to the place of action. The coding can be interpreted as follows:
1st letter: indicates the workstation D, H, T, B, P, or S (Distributing, Handling, Testing, Buffering, Processing and Sorting)
2nd letter: indicates sensor (S) or actuator (A)
1st digit (0..9): part of the indexnumber
2nd digit (0..9): part of the indexnumber
So, the item with label DS08 indicates sensor number eight in the distributing station. Additional information about a sensor or actuator, like what it is and what its function is, can be found in the I/O table description that is given in each of the workstation’s chapters.
The tables also give the CIF names that must be used in the CIF models. It is important to use these names exactly (!) as shown, because they are the link from your model to both the visualization software as well as to the specific hardware IO points on the physical station. A typo is easily made, be careful!!
It is important to realize that a binary sensor will always output a signal: TRUE or FALSE (levels).
Unless otherwise stated you may assume positive logic. This means that an actuator is activated when it is on (``true``), and deactivated when off (``false``). Likewise, a sensor indicates detection when it is on (``true``) while off (``false``) indicates no detection. Activation/detection is defined as a transition from false to true, while deactivation/no detection is defined as a transition from true to false.
Warning
The STOP button on the user interface console is an exception to this rule.
This is a normally closed contact (associated sensor value true
) that
opens upon pressing it (sensor value false
). So, the s_stopbutton.off
state indicates that the button is pushed. This is a safety measure: if the
wiring of the STOP function becomes broken in any way (=false) it will act as
if the user pressed the STOP button.
Sensors and actuators
The table below gives the general CIF names that must be used in the CIF models. Depending on the workstation the questionmark (?) has to be replaced with a capital D, H, T, B, P or S because a distinction between them has to be made if you are controlling more than one workstation. So, the resetbutton on the Teststation has the CIF name ‘s_Tresetbutton’.
It is important to use these names exactly (!) as shown, because they are the link from your control program to both the visualization software as well as to the specific hardware IO points on the physical station. A typo is easily made, so be careful!!
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
Start |
D |
released, off |
s_?startbutton |
normally open |
Stop |
D |
released, on |
s_?stopbutton |
normally closed |
Auto/Man |
D |
vertical, off |
s_?autoswitch |
Bi-stable. Key vertical = Manual. Key horizontal = Automatic. |
Reset |
D |
released, off |
s_?resetbutton |
normally open |
I4,I5,I6,I7 |
D |
off |
s_?inX (X in 4,5,6,7) |
4 user definable inputs |
Start LED |
D |
off |
a_?startled |
located under Start button |
Reset LED |
D |
off |
a_?resetled |
located under Reset button |
Indicator Q1 |
D |
off |
a_?ledQ1 |
user definable LED |
Indicator Q2 |
D |
off |
a_?ledQ2 |
user definable LED |
Q4,Q5,Q6,Q7 |
D |
off |
a_?outX (X in 4,5,6,7) |
4 user definable outputs |
Table: I/O points of the user interface. (? in [D,H,T,B,P,S]
Upstream and Downstream communication
Each workstation in the line, except the first (Distributing) and the last (Sorting) is equipped with both a sensor and an actuator that enables the control program to read the status of the next (=downstream) workstation, and signal its own status to the previous (=upstream) station. The station signals its ready status to the upstream station by activating its actuator. The busy status is reflected by deactivating the actuator. Because the sensor in the receiving station is of the inverting kind, we define the ‘not-ready-to-receive-a-product’ or ‘busy’ status to be ON, and the ‘ready-to-receive-a-product’ or ‘ready’ status as OFF.
The Distributing station only has a sensor, while the Sorting station only has an actuator for communication with the nearby workstation.
The Distributing Station
The distributing station is where the route through the flow shop starts. A user places a number of (different kinds of) products in one or more of the storage tubes (or stacks) and the production may then start. Depending on the chosen control algorithm products are pushed out of the storage tubes one by one, waiting to be picked up by the manipulator of the handling station.
The product stacks
Products enter the system in the distributing workstation. Because there are three different kinds of products it has three similar storage tubes; one for each kind of product. Products in a stack are processed one by one in a FiFo (First in First out) fashion. The product is moved forward, out of the stack, towards the pickup point. It remains there until the manipulator of the Handling station picks it up and transports it. The presence of products in the stack is detected by an optical through beam sensor. Its light beam is interrupted when a product is present, but also when the product slider pushes the product to the pickup point. This outputs TRUE from the optical sensor. FALSE indicates no beam interruption and therefore an empty stack. The figure below shows this in detail.
The linear movement
The linear movement out of the stack is performed by a double acting pneumatic cylinder that is controlled by a monostable signal. The extremes of the piston movement (fully retracted, fully extended) are detected by two inductive limit sensors which output TRUE while activated by the piston.
The pickup point
A product at the pickup point is detected by a diffuse optical sensor, which outputs TRUE while a product is detected. Notice that the sensors at the pickup positions (DS04, DS08 and DS12) are shared by the Distributing stations and the Handling station (HS01, HS02 and HS03).
Sensors and actuators
The tables show the CIF names that must be used in the CIF control programs. It is important to use these names exactly (!) as shown, because they are the link from your control program to both the visualization software as well as to the specific hardware IO points on the physical station. The s_ prefix denotes a sensor signal, while the a_ prefix denotes an actuator signal.
The table lists all the sensors of the distributing station.
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
DS01 |
D |
on |
s_pusher1_in |
on: Slide moved towards pickup point |
DS02 |
D |
off |
s_pusher1_out |
on: Slide moved back; stack drops down |
DS03 |
D |
on |
s_stack1filled |
on: Slide or product interrupts beam |
DS04 |
D |
off |
s_product1 |
on: A product is at pickup position |
DS05 |
D |
on |
s_pusher2_in |
|
DS06 |
D |
off |
s_pusher2_out |
|
DS07 |
D |
on |
s_stack2filled |
|
DS08 |
D |
off |
s_product2 |
|
DS09 |
D |
on |
s_pusher3_in |
|
DS10 |
D |
off |
s_pusher3_out |
|
DS11 |
D |
on |
s_stack3filled |
|
DS12 |
D |
off |
s_product3 |
|
DS13 |
D |
on |
s_handlingbusy |
Status info from Handling
on: busy, off: ready
|
D |
off |
s_Dinitialized |
Internal variable. Indicates that the initialization sequence finished. |
Table: Sensors of the distributing station
Table below lists all the actuators of the distributing station.
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
DA01 |
D |
off |
a_pusher1 |
on: Move slide backwards; stack drops
off: Move slide forwards; block stack
|
DA02 |
D |
off |
a_pusher2 |
|
DA03 |
D |
off |
a_pusher3 |
Table: Actuators of the distributing station
Simulation and Visualization
This is left to the user……
The Handling Station
The main function of the handling station is to transport singular products to the testing station. An overview is shown in the figure below. The manipulator takes care of the transport from the distributing station to an intermediate 1-place buffer. Then, the transfer cylinder picks up the product and places it in the testing station. Movement of the transfer cylinder has to be done in a secure and safe manner; the arm is able to move in both the working area of the manipulator (Handling) and the elevator (Testing). So there is a danger of colliding, and collisions must be avoided.
The manipulator
The manipulator is built with pneumatic actuators: a linear drive, a flat cylinder, and a gripper. It uses the double acting linear drive to move the gripper assembly left/right from point to point within the working area (X-axis). The X-movement is controlled with two separate but related signals; each signal controls the pressure/airflow on one side of the piston of the linear drive. The gripper assembly (fitted to the linear drive) consists of a double acting flat cylinder to lift the product up/down (Z-axis), controlled by a single signal. Finally, a double acting parallel gripper (attached to the flat cylinder) is used to grip/release the product.
The gripper
The gripper, as shown in the figure below, on the manipulator contains a diffuse optical sensor with which products in the gripper can be detected and/or classified. Depending on the sensitivity setting of the sensor a distinction between black and non-black products can be made, or the presence of all kinds of product can be detected (no classification). Opening and closing the gripper is done with a single control signal.
The transfer cylinder
Placing a product from the handling station into the testing station is done by means of a pneumatic double acting semi-rotary drive that has a suction cup attached to it to grab/release the product. The figure below shows the arm and cup attached to the rotary drive. Rotation is controlled by two separate but related signals, each of which controls the pressure/airflow to one side of the piston in the drive. To grab a product vacuum is applied to the suction cup; releasing is done by switching off the vacuum and possibly giving a short ejection pulse (burst of air). The orientation of the product is not influenced by the rotation of the transfer cylinder.
When you examine the hardware a bit closer, you will notice that the physical behavior (in terms of movement speed) of the linear drive (X-axis) of the manipulator and the rotary drive of the transfer cylinder in reaction to the combination of their respective control signals is different.
Sensors and actuators
The extremes of the stroke of the linear drive are set by mechanical dampers. All the points in between where the gripper assembly should stop (the pickup points) are marked with a digital reed contact sensor. Checking these sensors provides information about the position of the gripper assembly. Beware of the fact that sensors usually have some hysteresis. The gripper assembly’s extremes (Z-axis retracted/extended) are also detected with reed contact sensors.
The tables show the CIF names that must be used in the CIF control programs. It is important to use these names exactly (!) as shown, because they are the link from your control program to both the visualization software as well as to the specific hardware IO points on the physical station.
Notice that the sensors at the pickup positions (DS04, DS08 and DS12) are shared by the Distributing stations and the Handling station (HS01, HS02 and HS03).
All relevant sensor information is in the following table.
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
HS01 |
D |
no product, off |
s_product1 |
Product info from Distributing station (=DS04) |
HS02 |
D |
no product, off |
s_product2 |
Product info from Distributing station (=DS08) |
HS03 |
D |
no product, off |
s_product3 |
Product info from Distributing station (=DS12) |
HS04 |
D |
off |
s_xpos_at1 |
on: Above Product1 position |
HS05 |
D |
off |
s_xpos_at2 |
on: Above Product2 position |
HS06 |
D |
off |
s_xpos_at3 |
on: Above Product3 position |
HS07 |
D |
on |
s_xpos_atdrop |
on: Above drop position at Transfer |
HS08 |
D |
on |
s_zpos_atup |
on: Z-axis in upper position |
HS09 |
D |
off |
s_zpos_atdown |
on: Z-axis in lower position |
HS10 |
D |
no product, off |
s_gripper |
Product detection/classification in gripper |
HS11 |
D |
off |
s_transfer_atpickup |
on: Transfer rotated towards pickup position |
HS12 |
D |
off |
s_transfer_atdrop |
on: Transfer rotated towards drop position in Testing station |
HS13 |
D |
on |
s_transfer_athalfway |
on: Transfer at safe intermediate point between pickup and drop |
HS14 |
D |
off |
s_vacuum |
on: Holds the product by suction |
HS15 |
D |
no product, off |
s_product4 |
on: Product detection at exchange between manipulator and transfer |
HS16 |
D |
on |
s_testingbusy |
Status info from Testing
on: busy, off: ready
|
D |
off |
s_Hinitialized |
internal variable. Indicates that the initialization sequence finished. |
Table: Sensors of the handling station
All relevant actuator information is in the table.
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
HA01 |
D |
on |
a_x2distributing |
on: Move towards Distributing station |
HA02 |
D |
on |
a_x2testing |
on: Move towards Testing station (DANGER of collision!) |
HA03 |
D |
off |
a_zdown |
on: Move to lower position
off: Move to upper position
|
HA04 |
D |
off |
a_gripperclose |
on/off: Close/Open gripper |
HA05 |
D |
off |
a_transfer2pickpos |
on: Move transfer to pickup pos in Handling station (DANGER) |
HA06 |
D |
off |
a_transfer2droppos |
on: Move transfer to drop pos in Testing station (DANGER) |
HA07 |
D |
off |
a_vacuum |
on/off: Turn suction on/off |
HA08 |
D |
off |
a_ejectpulse |
on: Blow air through suction cup to release the product |
HA09 |
D |
off |
a_handlingready |
Status info
on: ready, off: busy
|
Table: Actuators of the handling station
Simulation and visualization
This is left to the user……
The Testing Station
Before products go on their way towards the buffering station they are classified and tested in the testing station, shown in the figure below. Accepted products leave the testing station via a pneumatic slide; rejected products remain in a local buffer that can hold a maximum of five products.
Product classification
After the transfer cylinder of the handling station has placed the product on the elevator plateau of the testing station, a classification of the product can be done. By examining the output of some sensors (optical, capacitive) it can be determined if the product is black or not. (So there is no distinction between red and metal products.) The optical sensor moves up and down along with the product. This part of the testing station is shown in the figure below.
The elevator
The product on the plateau is moved up/down by means of a double acting linear drive (rodless). It utilises magnetic force to couple the inner piston with the plateau. Extreme positions (up/down) are detected by hall effect sensors that emit TRUE when activated by the piston of the elevator. The figure below shows the elevator in the lower position (sensor activated).
Height measurement
To check the height of the product on the plateau, the product touches a linear displacement encoder when the elevator is in the upper position. The analogue signal of the encoder is fed to an adjustable comparator (see figure). The comparator compares the measured height with an adjustable lower and upper bound, and outputs a digital signal accordingly: TRUE when the product height is correct (between the bounds) and FALSE when the product height is out of bounds.
To check the operation of the testing workstation, products are available in three heights: small, correct (normal) and large height. These heights are referred to using the variables \(s\), \(n\) and \(l\), respectively. The corresponding products are referred to as small, normal and large products, respectively.
The potentiometers LEVEL 1 and LEVEL 2, shown in the comparator unit figure below, are used to adjust the respective lower and upper bounds of the comparator. These bounds are referred to using the variables \(lower\) and \(upper\), respectively. They should be adjusted such that:
\(s < lower < n < upper < l\)
The pusher cylinder
Removing a product from the plateau is done with a monostable double acting pneumatic cylinder. It pushes the product off the plateau. Only the extended position of the piston is detected with a reed contact sensor. The pusher is (partly) visible in the left part of the figure showing the classification parts.
The pneumatic slide
All accepted products can leave the testing station when they are pushed towards the air slide. Air slide activation creates an air cushion between product and slide. This air cushion eliminates the friction and allows the otherwise stationary product to slide downwards influenced by gravity. The air slide, as well as the rejection slide, has no sensors. Both air slide and rejection slide are visible in the figure below.
Sensors and actuators
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
TS01 |
D |
off |
s_elevator_up |
on: Elevator in upper position |
TS02 |
D |
on |
s_elevator_down |
on: Elevator in lower position |
TS03 |
D |
off |
s_pusher |
on: Pusher fully extended |
TS04 |
D |
off |
s_optical |
on: Detects metal or red |
TS05 |
D |
off |
s_capacitive |
on: Detects a product |
TS06 |
D |
off |
s_reflective |
on: DANGER in work area |
TS07 |
D |
off |
s_productheight |
on: Product accepted, off: Product rejected |
TS08 |
D |
on |
s_bufferingbusy |
Status info from Buffering: on: busy, off: ready |
D |
off |
s_Tinitialized |
internal variable. Indicates that the initialization sequence finished. |
Table: Sensors of the testing station
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
TA01 |
D |
off |
a_elevator_up |
on: Move up, if a_elevator_down is off |
TA02 |
D |
on |
a_elevator_down |
on: Move down, if a_elevator_up is off |
TA03 |
D |
off |
a_pusher |
on: Extend the pusher off: Retract the pusher |
TA04 |
D |
off |
a_airslide |
on: Enable products sliding off: Prevent products sliding |
TA05 |
D |
off |
a_testingready |
Status info: on: ready off: busy |
Table: Actuators of the testing station
Simulation and visualization
This is left to the user……
The Buffering Station
One way to overcome the problem of (allowable) production speed misalignment between systems is the use of a buffer. It acts as an intermediate storage to receive and hold products when the next station is not ready to receive, or it provides and releases products to the next station when the previous station is not ready to send. Deviations in cycle times and small interruptions may be smoothed out by a buffer. In this case, a buffer is placed between the testing station and the processing station. A picture is given below.
The buffer
The buffering station has a maximum capacity of five products in a row in front of the separator. The separator separates one product from the buffer row and passes it on when the station following the buffer is ready to receive it. A moving belt, driven by a DC motor, transports the products, or may slide under them when products are stopped by the separator. Products entering the buffer are detected by a diffuse optical sensor positioned at the entrance (left side) of the buffer.
The separator
Products on the belt are detected again just before and after the separator unit by means of a through beam sensor. The mechanical construction of the separator is such that it can hold only one product. When this product is being released to the next station all other products in front of the separator are blocked until the separator changes its state and allows a product to move in again. It should be noted that although a functioning buffer controller can be realized with a continuously moving belt, this is not the preferred way; the DC motor driving the belt should be an active part of the control strategy.
Sensors and actuators
The state of the separator is detected by means of two reed contact sensors. Details of the available sensors and actuators are in the tables below. The tables show the CIF event names that must be used in the CIF control programs. It is important to use these event names exactly (!) as shown, because they are the link from your control program to both the visualization software as well as to the specific hardware IO points on the physical station.
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
BS01 |
D |
off |
s_product |
on: Product at entry point |
BS02 |
D |
off |
s_atseparator |
on: Product just before separator |
BS03 |
D |
off |
s_atexit |
on: Product left the separator |
BS04 |
D |
off |
s_separator_opened |
on: Let a new product enter the separator space |
BS05 |
D |
on |
s_separator_closed |
on: Release product in separator, hold back the queue |
BS06 |
D |
on |
s_processingbusy |
Status info from Processing: on: busy, off: ready |
D |
off |
s_Binitialized |
internal variable. Indicates that the initialization sequence finished. |
Table: Sensors of the buffering station
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
BA01 |
D |
off |
a_separator |
on: Receive one new product off: Release the current product |
BA02 |
D |
off |
a_conveyer |
on: Transport toward Processing |
BA03 |
D |
off |
a_bufferingready |
Status info: on: ready, off: busy |
Table: Actuators of the buffering station
Simulation and visualization
This is left to the user……
The Processing Station
The (virtual) processing step of each product is performed on the processing station. The overview is shown earlier. A turntable is used to transport the products from one production spot to the next, until it is ready to leave the station at the exit point. The turntable has six discrete positions: an entry location, a testing location, a processing location, an exit location, and two spare locations. Once a product has entered the turntable it can only leave the station at the exit position. All but one of the six discrete positions surrounding the turntable have a capacitive sensor mounted under it to be able to detect the presence of a product in that position.
The turntable
The turntable is driven by a DC motor. It can only rotate in the clockwise direction. Some additional electronic components allow the turntable to advance to the next position and stop there after a short (but not too short) start signal has been given. A discrete stable position is detected by an inductive sensor mounted under the table.
To avoid crashes and damage:
Note1: ONLY turn the turntable when the surrounding actuators are ALL in a safe position!!
Note2: ONLY activate the surrounding actuators when the turntable is stopped in a safe position!!
Product test
Prior to processing the product, its orientation is checked. No processing should take place if the product has the wrong (upside down) orientation. The test is performed by a solenoid probe in combination with an inductive sensor. (See Figure below.) Activation of the probe sensor indicates a correctly positioned product (or no product at all).
Product machining
The (virtual) machining could be a drilling or grinding operation. The drilling machine is attached to a vertically mounted linear axis driven by a DC motor, as shown below. The machine tool may be switched on and the slide lowered in the direction of the product. Reaching the lower limit of the linear axis stroke is detected by a microswitch which then automatically (hard-wired) stops the downward movement. The same holds for the upward movement. The upper limit of the stroke is detected with a microswitch which stops the upward movement. The microswitch signals can be passed on to the controller. So, in this case the hardware prevents the slide from moving too far down/up! Power to the DC motor is automatically interrupted upon activation of the microswitch involved. The limit detection by the microswitch only produces a TRUE signal when the respective a_drilldown or a_drillup actuatorsignal is present. This behavior is hard-wired.
Product clamping
Before machining takes place, the product has to be clamped so it remains in a fixed position during machining. This is realized with the electrical clamping cylinder. The figure below shows the clamping cylinder in the opened state, no clamping. Only the active clamping position is detected by means of an inductive sensor.
Product ejection
Products may leave the processing station at the exit point. A rotary solenoid is applied to move the product onto the entrance of the conveyer belt of the sorting station. The next figure shows a product about to be ejected by the solenoid.
Spare positions
Between the exit and entry point there are two spare positions. They have no special function. Only the first one after the exit point has a product sensor. This particular spare position may be used to manually correct the orientation of upside-down products detected in the test position. So, these products may remain on the turntable for more than one revolution.
Sensors and actuators
The complete lists of sensors and actuators are shown in the tables below. They show the CIF names that must be used in the CIF control programs. It is important to use these names exactly (!) as shown, because they are the link from your control program to both the visualization software as well as to the specific hardware IO points on the physical station.
Remember to keep the movement of the turntable and the surrounding stations mutually exclusive!!
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
PS01 |
D |
off |
s_atinput |
on: See description below the table |
PS02 |
D |
off |
s_attest |
on: See description below the table |
PS03 |
D |
off |
s_atdrill |
on: See description below the table |
PS04 |
D |
off |
s_atexit |
on: See description below the table |
PS05 |
D |
off |
s_atspare |
on: See description below the table |
PS06 |
D |
off |
s_clamp |
on: Product is clamped |
PS07 |
D |
off |
s_test_ok |
on: Hole is deep enough or no product available |
PS08 |
D |
on |
s_drill_up |
on: Drill in upper position, detected only if a_drillup = on |
PS09 |
D |
off |
s_drill_down |
on: Drill in lower position, detected only if a_drilldown = on |
PS10 |
D |
on |
s_turntable |
on: Table in a valid position |
PS11 |
D |
on |
s_sortingbusy |
Status info from Sorting: on: busy, off: ready |
D |
off |
s_Pinitialized |
internal variable. Indicates that the initialization sequence finished. |
The sensors s_atinput, s_attest … s_atspare detect presence of a correctly oriented product. Upside-down products are not deteced. The sensors are also on when parts of the table are positioned above the sensors while the table is moving. The best way to see when the sensors are on is by opening the digital twin for the processing station. You do not need TwinCAT or a controller for this, see Digital twins.
Table: Sensors of the processing station
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
PA01 |
D |
off |
a_drill |
on: Turn drillmotor on |
PA02 |
D |
off |
a_turntable |
on: Short on makes turntable turn and stop at next position |
PA03 |
D |
off |
a_drilldown |
on: Make drill go down off: Stop motion |
PA04 |
D |
on |
a_drillup |
on: Make drill go up off: Stop motion |
PA05 |
D |
off |
a_clamp |
on: Clamp product on turntable off: Release the product |
PA06 |
D |
off |
a_tester |
Tests orientation of product on: move down, off: move up |
PA07 |
D |
off |
a_eject |
on: Eject product from turntable to sorting conveyer |
PA08 |
D |
off |
a_processingready |
Status info: on: ready, off: busy |
Table: Actuators of the processing station
Simulation and visualization
This is left to the user……
The Sorting Station
The sorting station, as shown in the figure below, is the final stage in the production line. Its purpose is to sort the products according to their color, and move/store them in a separate buffer slide. Three kinds of products means three separate buffers. Products arrive at the beginning of the conveyer where they are classified based on their color. The color determines their destination: slide one, slide two or slide three. Two pneumatic gates influence the route of the product in the sorting system. The conveyer belt is controlled by a DC motor and can only stop or move in the forward direction.
Product entry and classification
Before the product is allowed to continue in the sorting system it has to be classified. That is why the pneumatic stopper is supposed to block all products at the entry point, as can be seen in the figure below. Once a product is blocked it is forced in such a position that a few sensors (diffuse optical and inductive) can determine the kind of product (red, black, metal).
Product gates
To divert a product from the main route (the conveyer) to a destination (the buffer slide), product gates are used. Each product gate is controlled by a monostable signal that controls a double acting short stroke pneumatic cylinder. These are labeled SA02 and SA03. The piston of this cylinder creates the rotary movement of the gate. The gate is normally opened; it lets products pass. Which gate has to be activated is determined during the classification at the entry point of the sorting station. If no gate is activated the product will end up in slide three, at the end of the conveyer belt. The status of each gate (opened/closed/moving) is detected by two reed contact sensors.
Storage capacity
Products are detected with a retro reflective sensor (label SS04 in the picture) upon entry of one of the slides. So there is one sensor for three slides. This sensor signal should also be used to detect a full slide. A full slide should be emptied before any new products are allowed into the sorting system.
Sensors and actuators
Additional information about the sensors and actuators is given the two tables below. They show the CIF names that must be used in the CIF control programs. It is important to use these names exactly (!) as shown, because they are the link from your control program to both the visualization software as well as to the specific hardware IO points on the physical station.
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
SS01 |
D |
off |
s_product |
on: Product at entrance |
SS02 |
D |
off |
s_inductive |
on: Detects metal product |
SS03 |
D |
off |
s_optical |
on: Detects red and metal, or all (depends on sensitivity setting) |
SS04 |
D |
off |
s_slidefull |
Pulse on: passing product Continuous on: slide full |
SS05 |
D |
on |
s_gate1_opened |
on: Allow new product into gate area |
SS06 |
D |
off |
s_gate1_closed |
on: Release product from gate area and block the queue |
SS07 |
D |
on |
s_gate2_opened |
|
SS08 |
D |
off |
s_gate2_closed |
|
D |
off |
s_Sinitialized |
internal variable. Indicates that the initialization sequence finished. |
Table: Sensors of the sorting station
Label |
Type |
Initial |
CIF name |
Remark |
---|---|---|---|---|
SA01 |
D |
off |
a_conveyer |
on: Move conveyer |
SA02 |
D |
off |
a_gate1 |
on: Close gate to redirect product |
SA03 |
D |
off |
a_gate2 |
on: Close gate to redirect product |
SA04 |
D |
off |
a_stopperretract |
on: Retract stopper to allow passing |
SA05 |
D |
off |
a_sortingready |
Status info: on: ready off: busy |
Table: Actuators of the sorting station
Simulation and visualization
This is left to the user……
Appendix initialization errors
Before the normal control sequence (your controller(s)) can start the system has to be initialized. This means that the both the hardware and the software must be in the same state, and your controller has a clearly defined starting point. This is defined by the status of the sensors and actuators at the end of an initialization sequence.
Initialization
To save you some time, we have preprogrammed the initialization sequence for each workstation. This sequence is performed before your controller is allowed to start, and must bring the station in a predefined state. Actuators are brought to their initial state, and sensors are checked to see if all went well.
Each of the station’s sensor list has an added signal (s_?initialized), that changes to TRUE when the initialization sequence finished correctly. You must test this variable, and only start your own controller(s) if its state is TRUE. Otherwise something went wrong. It could be that a product is left on the workstation, or the key switch is in the wrong position, etc.
To see which of the sensors did not reach the desired state you can lookup the error number in the Input Initialization Index of the respective workstation given below. To the left of the number you will find the name of the sensor that is in the wrong state after initialization. To the right the required state is shown.
Distributing and Handling
DISTRIBUTING |
HANDLING |
||||
sensor |
idx |
state |
sensor |
idx |
state |
s_Dstartbutton |
0 |
released |
s_Hstartbutton |
22 |
released |
s_Dstopbutton |
1 |
released |
s_Hstopbutton |
23 |
released |
s_Dautoswitch |
2 |
vertical |
s_Hautoswitch |
24 |
vertical |
s_Dresetbutton |
3 |
released |
s_Hresetbutton |
25 |
released |
s_Din4 |
4 |
off |
s_Hin4 |
26 |
off |
s_Din5 |
5 |
off |
s_Hin5 |
27 |
off |
s_Din6 |
6 |
off |
s_Hin6 |
28 |
off |
s_Din7 |
7 |
off |
s_Hin7 |
29 |
off |
s_pusher1_in |
8 |
on |
s_product1 |
30 |
off |
s_pusher1_out |
9 |
off |
s_product2 |
31 |
off |
s_stack1filled |
0 |
on |
s_product3 |
32 |
off |
s_product1 |
11 |
off |
s_xpos_at1 |
33 |
off |
s_pusher2_in |
12 |
on |
s_xpos_at2 |
34 |
off |
s_pusher2_out |
13 |
off |
s_xpos_at3 |
35 |
off |
s_stack2filled |
14 |
on |
s_xpos_atdrop |
36 |
on |
s_product2 |
15 |
off |
s_zpos_atup |
37 |
on |
s_pusher3_in |
16 |
on |
s_zpos_atdown |
38 |
off |
s_pusher3_out |
17 |
off |
s_gripper |
39 |
off |
s_stack3filled |
18 |
on |
s_transfer_atpickup |
40 |
off |
s_product3 |
19 |
off |
s_transfer_atdrop |
41 |
off |
s_handlingbusy |
20 |
D |
s_transfer_athalfway |
42 |
on |
s_Dinitialized |
21 |
off |
s_vacuum |
43 |
off |
s_product4 |
44 |
off |
|||
s_testingbusy |
45 |
D |
|||
s_Hinitialized |
46 |
off |
Table: Initialization error table of the Distributing and Handling station
Testing and Buffering
TESTING |
BUFFERING |
||||
sensor |
idx |
state |
sensor |
idx |
state |
s_Tstartbutton |
0 |
released |
s_Bstartbutton |
17 |
released |
s_Tstopbutton |
1 |
released |
s_Bstopbutton |
18 |
released |
s_Tautoswitch |
2 |
vertical |
s_Bautoswitch |
19 |
vertical |
s_Tresetbutton |
3 |
released |
s_Bresetbutton |
20 |
released |
s_Tin4 |
4 |
off |
s_Bin4 |
21 |
off |
s_Tin5 |
5 |
off |
s_Bin5 |
22 |
off |
s_Tin6 |
6 |
off |
s_Bin6 |
23 |
off |
s_Tin7 |
7 |
off |
s_Bin7 |
24 |
off |
s_elevator_up |
8 |
off |
s_product |
25 |
off |
s_elevator_down |
9 |
on |
s_atseparator |
26 |
off |
s_pusher |
10 |
off |
s_atexit |
27 |
off |
s_optical |
11 |
off |
s_separator_opened |
28 |
off |
s_capacitive |
12 |
off |
s_separator_closed |
29 |
on |
s_reflective |
13 |
off |
s_processingbusy |
30 |
D |
s_productheight |
14 |
off |
s_Binitialized |
31 |
off |
s_bufferingbusy |
15 |
D |
|||
s_Tinitialized |
16 |
off |
Table: Initialization error table of the Testing and Buffering station
Processing
PROCESSING |
||
sensor |
idx |
state |
s_Pstartbutton |
0 |
released |
s_Pstopbutton |
1 |
released |
s_Pautoswitch |
2 |
vertical |
s_Presetbutton |
3 |
released |
s_Pin4 |
4 |
off |
s_Pin5 |
5 |
off |
s_Pin6 |
6 |
off |
s_Pin7 |
7 |
off |
s_atinput |
8 |
off |
s_attest |
9 |
off |
s_atdrill |
10 |
off |
s_atexit |
11 |
off |
s_atspare |
12 |
off |
s_clamp |
13 |
off |
s_test_ok |
14 |
off |
s_drill_up |
15 |
on |
s_drill_down |
16 |
off |
s_turntable |
17 |
on |
s_sortingbusy |
18 |
D |
s_Pinitialized |
19 |
off |
Table: Initialization error table of the Processing station
Sorting
SORTING |
||
sensor |
idx |
state |
s_Sstartbutton |
0 |
released |
s_Sstopbutton |
1 |
released |
s_Sautoswitch |
2 |
vertical |
s_Sresetbutton |
3 |
released |
s_Sin4 |
4 |
off |
s_Sin5 |
5 |
off |
s_Sin6 |
6 |
off |
s_Sin7 |
7 |
off |
s_product |
8 |
off |
s_inductive |
9 |
off |
s_optical |
10 |
off |
s_slidefull |
11 |
off |
s_gate1_opened |
12 |
on |
s_gate1_closed |
13 |
off |
s_gate2_opened |
14 |
on |
s_gate2_closed |
15 |
off |
s_Sinitialized |
16 |
off |
Table: Initialization error table of the Sorting station