Skip to content

Proof of concept of the Digital Twin for Water Distribution Systems

Compare
Choose a tag to compare
@afmurillo afmurillo released this 06 Nov 11:16
· 1222 commits to master since this release

This is still a beta version of the Digital Twin for Water Distribution Systems. This software uses Mininet, MiniCPS, and the EPANET WNTR simulator to emulate the behavior of different water distribution topologies. To our knowledge, this is the first digital twin that provides network information for such systems. This is because by using MiniCPS we are able to emulate a virtual network in which processes representing PLCs with their own virtual network interfaces exchange communication messages using a standard industrial protocol such as ENIP.
For each experiment two types of data are generated: i) physical data: the state of the system in time for the pland, ii) network data, each of the devices starts a tcpdump capture that creates a .pcap file with the messages sent/received during the experiment. In addition, In addition, attacks of the PLCs and communication between devices are performed generating network and physical results of such attacks.
This software is developed by the Singaporean National Satellite of Excellence Project "Learning from Network and Process data to secure Water Distribution Systems" from the SUTD Resilient Water Systems Group and iTrust.

This version introduces some changes from the August version:

  1. PLCs now extend from a class called basePLC. basePLC implements all the functions that are common among any PLC or SCADA device. In addition, basePLC uses a thread to send the PLC state (sensor or actuator data).
  2. This version starts using config .yaml files to start generalizing DHALSIM

These two changes are done in preparation for a fully automatic DHALSIM version that can parse an epanet INP file, automatically generate a DHALSIM topology, and run an experiment with such file

DISCLAIMER: This version requires an upgraded version of MiniCPS that still is pending merging with the main MiniCPS repository, this version can be found here: https://github.com/afmurillo/minicps This version extends the devices class to provide to new methods for the ENIP protocol: send_multiple and receive_multiple. These methods enable a PLC to send/receive multiple tags at the same time