The project is pretty much done, so here are some videos that show how the program works.
The video above shows the program running on a windows machine.
Above you can see a demonstration of the program running on the Raspberry Pi. The Valve is operated by a digital signal from the wire, on rising edge it will toggle the valve. Since the point of the simulation is to connect it to a PLC, the level of the tank is represented by an analog output through an MCP4725 I2C DAC. To show that the output works, the signal was feed back into an ADC to the Raspberry Pi and printed to the terminal on the left. You may also notice that the program window is too large for the screen. That is because I developed the program on my windows machine and did not consider the fact that different machines/screens have different resolution. So, I did not bother to make the window size adjustable. In principle this is easy to fix, however it was not addressed due to time constraint.
Below you can find the report, an example lab and the guide from Exera
ProjectReport Industrial_communication_labs 2001-Exera Hacking Contest-Constructeurs-Présentation