Input station

../../_images/photo_input_station1.jpg ../../_images/photo_input_station2.jpg

The first workstation is the input station. At the bottom of the storage tube, a pneumatic cylinder is placed which is used to separate one single semi-finished product from the rest of the products in the storage tube. The product is pushed forward to the location where a pneumatic manipulator with a suction disk can pick it up and move it to a slide. This suction disk does not have a vacuum sensor. At the slide, the product is released. As the slide is placed at a downward angle, the product slides downwards over the slide, to the location where an electrically controlled manipulator can pick it up, and move it to the input location of the test station.

The electrically controlled manipulator can move in two linear (X, Z) and one rotational (R) direction. A DC motor is used to move each of the slides along the path of its corresponding spindle. The discrete positions in the working area of the electrically controlled manipulator are detected with sensors and limit switches. The X and Z axes each have four sensors:


Two limit switches (ls0 and ls1) are used to detect the opposite edges of the working area, and two intermediate sensors (s0 and s1) detect positions that are within the working area. The limit switches act as a safety measure to protect the system: activation of a limit switch will result in making the electromotor powerless. After this happens, it will only be possible to move away from the activated limit switch, by activating the electromotor. Only once the limit switch is deactivated, will it again become possible to move towards that limit switch. The following figure shows the workspace of the manipulator in the X-Z plane:


The left and lower edges of the figure show the sensors that are involved: four sensors along the X axis, and four sensors along the Z axis. Under normal circumstances, the manipulator will move within the working area cornered by A, B, C, and D, constrained by the position sensors. The area cornered by 1, 2, 3, and 4 is the maximum allowable area, constrained by the limit switches.

The rotation similarly uses two limit switches, and two sensors to detect the pick up position and the drop off position.

Sensors and actuators

This following table lists all the sensors of the workstation:

Index Label Type Initial state Event names Remark
0 SenPushBarIn Digital on PushBarSensors.u_in_on, PushBarSensors.u_in_off  
1 SenPushBarOut Digital off PushBarSensors.u_out_on, PushBarSensors.u_out_off  
2 SenTransportAtGate Digital off TransportSensors.u_at_gate_on, TransportSensors.u_at_gate_off  
3 SenTransportAtSlide Digital on TransportSensors.u_at_slide_on, TransportSensors.u_at_slide_off  
4 SenProdInGate Digital off ProductInGateSensor.u_on, ProductInGateSensor.u_off  
5 PushButton1 Digital off (released) Button1.u_pushed, Button1.u_released  
6 PushButton2 Digital off (released) Button2.u_pushed, Button2.u_released  
7 PushButton3 Digital off (released) Button3.u_pushed, Button3.u_released  
8 SenXSlideOut Digital off XSlideSensors.u_out_on, XSlideSensors.u_out_off  
9 SenXSlideIn Digital on XSlideSensors.u_in_on, XSlideSensors.u_in_off  
10 SenZSlideUp Digital on ZSlideSensors.u_up_on, ZSlideSensors.u_up_off  
11 SenZSlideDown Digital off ZSlideSensors.u_down_on, ZSlideSensors.u_down_off  
12 SenAtPickPos Digital on RotateSensors.u_at_pick_on, RotateSensors.u_at_pick_off  
13 SenAtDropPos Digital off RotateSensors.u_at_drop_on, RotateSensors.u_at_drop_off  
16 SenRAtMaxPos Digital off n/a Limit switch
17 SenRAtMinPos Digital off n/a Limit switch
18 SenProdAtPickUp Digital off ProductAtPickUpSensor.u_on, ProductAtPickUpSensor.u_off  
19 Switch Digital off Switch.u_on, Switch.u_off Bi-stable
20 PushButton4 Digital off Button4.u_pushed, Button4.u_released  
21 PushButton5 Digital off Button5.u_pushed, Button5.u_released  
22 PushButton6 Digital off Button6.u_pushed, Button6.u_released  
23 EmergencyStop Digital on n/a NC contact
24 SenRobotVacuum Digital off RobotVacuumSensor.u_on, RobotVacuumSensor.u_off  
25 SenXAtMaxPos Digital off n/a Limit switch
26 SenXAtMinPos Digital off n/a Limit switch
27 SenZAtMaxPos Digital off n/a Limit switch
28 SenZAtMinPos Digital off n/a Limit switch

This following table lists all the actuators of the workstation:

Index Label Type Initial state Event names
0 PushBar Digital off PushBar.c_on, PushBar.c_off
1 TransportToSlide Digital on Transport.c_to_slide_on, Transport.c_to_slide_off
2 TransportToGate Digital off Transport.c_to_gate_on, Transport.c_to_gate_off
3 VacuumTransport Digital off TransportVacuum.c_on, TransportVacuum.c_off
4 Lamp1 Digital off Lamp1.c_on, Lamp1.c_off
5 Lamp2 Digital off Lamp2.c_on, Lamp2.c_off
8 XSlide Digital off XSlide.c_on, XSlide.c_off
9 XDirection Digital to in XSlide.c_to_in, XSlide.c_to_out
10 ZSlide Digital off ZSlide.c_on, ZSlide.c_off
11 ZDirection Digital to up ZSlide.c_to_down, ZSlide.c_to_up
12 Rotate Digital off Rotate.c_on, Rotate.c_off
13 RotateDirection Digital to pick Rotate.c_to_pick, Rotate.c_to_drop
14 VacuumRobot Digital off RobotVacuum.c_on, RobotVacuum.c_off
15 Lamp3 Digital off Lamp3.c_on, Lamp3.c_off

Furthermore, multiple timers are available, as software implementations (virtual hardware):

Name Event names (mandatory) Event names (optional)
Timer1 Timer1.c_start, Timer1.u_timeout Timer1.c_cancel, Timer1.c_pause, Timer1.c_resume
Timer2 Timer2.c_start, Timer2.u_timeout Timer2.c_cancel, Timer2.c_pause, Timer2.c_resume
Timer3 Timer3.c_start, Timer3.u_timeout Timer3.c_cancel, Timer3.c_pause, Timer3.c_resume

For more information on timers, their mandatory and optional events, and how to model them, see the Timers page.

Simulation and visualization

The following is a screenshot of the visualization provided for this workstation, as part of the 4K420 course files:


The current simulation time is shown in the upper left corner. On the right, you’ll find the user interface. The buttons, lamps, and switch are all present. The vacuum actuators and sensors are also shown here. The buttons and switch can be turned on or off by clicking on them. Clicking once pushes the button or turns on the switch. Clicking once more releases the button or turns off the switch. Clicking on the product, also on the right side, will add a new product to the system.

The main part of the visualization shows the actual system. There are two views: a frontal view at the top, and a top view at the bottom. Various sensors are visualized, as are the actuators (visualized as arrows).

Three timers are provided. There status is shown using rectangles. For more information on the visualization of timers, see the Timers page.

Products added by clicking on the product at the right side, fall into the storage tube. If the product stopper is inserted, products won’t fall to the bottom. Once the product stopper is removed, they’ll fall all the way down. The push bar is visualized as a dark-gray rectangle.

Products can be added/removed to/from the bottom of the slide, at the pick position of the electrically controlled manipulator. Just click on the pick position (in either of the two views), or on a product at that position. By allowing the manual removal of products, the first part of the system can be tested, without having a controller for the second part of the system. Similarly, by allowing the manual addition of products, the second part of the system can be tested, without having a controller for the first part of the system.

The bucket in which the products are to be dropped by the electrically controlled manipulator is indicated by a rectangle with a dashed border. The final drop position is indicated by a smaller such rectangle.


The durations of the three timers that are provided, can be configured. That is, you can decide the durations of the each of the timers. To change the durations, open the config.cif file, and change the values of the appropriate constants. Make sure the read the comments that explain the allowed values. For more information on timers, see the Timers page.

If you change the configuration, the changes will automatically be applied to subsequent simulations, as well as for the next PLC code generation.