Water Pump Simulation Server

An OPC UA server that implements a simple water pump machine simulation.

Water Pump Simulation Server is created using OPC UA for the Water Pump and Qt Quick Water Pump examples.

The Simulation

The OPC UA server runs a simulation of a machine containing two tanks, a water pump, and a valve. Water can be pumped from the first tank into the second tank and then be flushed from the second tank by opening the valve. Both operations have a user-configurable setpoint, allowing control over the amount of water pumped into or flushed from the second tank.

The following nodes exist on the server:

NodeIdFunction
ns=2;s=MachineThe folder containing the method and variable nodes for the machine
ns=2;s=Machine.StateThe state of the machine
ns=2;s=Machine.Tank1.PercentFilledThe current fill status of the first tank
ns=2;s=Machine.Tank2.PercentFilledThe current fill status of the second tank
ns=2;s=Machine.Tank2.TargetPercentThe setpoint for pumping and flushing
ns=2;s=Machine.Tank2.ValveStateThe state of the valve of the second tank
ns=2;s=Machine.DesignationA human readable designation of the machine for display purposes
ns=2;s=Machine.StartCall this method to start the pump
ns=2;s=Machine.StopCall this method to stop the pump
ns=2;s=Machine.FlushTank2Call this method to flush tank 2
ns=2;s=Machine.ResetCall this method to reset the simulation

All methods return Good in case of success and BadUserAccessDenied if the operation is illegal (for example, trying to start the pump if the first tank is empty).

Files:

See also Qt Quick Water Pump and Water Pump.