Exercise 3: a larger and more complete systemΒΆ

This exercises is more complicated than the previous two exercises, as you’ll need to create your own plants and requirements, for a non-trivial system. We assume that by now you have read the entire Toolchain section of the documentation, in its entirety, at least once. We also assume that you have read the general information regarding the workstations, including the page on the workstation that you’re using, and the page about sensors and actuators.

The system to consider is a pneumatic cylinder, which is controlled using a bi-stable valve. The cylinder starts at its initial position. After a button is pushed, the cylinder should start moving until it reaches the opposite position (you need to look at the end sensor). It should remain there for three seconds, after which it should automatically move back to the initial position. From there, if the button is (still) pushed, the cylinder should start moving again, etc.

The actuators and sensors to use, depend on the workstation you’re using:

Workstation Actuator and sensor labels
Input station TransportToGate, TransportToSlide, SenTransportAtGate, SenTransportAtSlide, PushButton1
Test station ElevatorDown, ElevatorUp, SenElevatorDown, SenElevatorUp, PushButton1
Process station DrillDown, DrillUp, SenDrillDown, SenDrillUp, PushButton1
Storage station CylinderIn, CylinderOut, SenCylinderIn, SenCylinderOut, PushButton1

The labels in the table above refer to actuators and sensors of the workstations. See the Sensors and actuators page for more information on how these labels are related to the events you should use for the sensors and actuators.

Click on the workstation names in the table above, for further information on the actuators and sensors of those systems. That information also includes a table that indicates the initial state of each of the actuators and sensors. Furthermore, it lists the events to use for each of the actuators and sensors (and their relations to the labels). Finally, the page lists the available timers and configuration settings.

For practical hints on modeling plants and requirements, see the specification phase of the toolchain. Normally, you’d use incremental development, by making a few plants and requirements, testing them, adding some more plants and requirements, testing them again, etc. This exercise however is so small, that we recommend first making the plants, and letting one of your teachers check them (if you follow the 4K420 course), before you move on to the requirements. This way, you won’t waste time modeling requirements based on wrong plant models.