Categories

Category cover

Automation
155 posts

Category cover

Learning paths
119 posts

Category cover

CISO
22 posts

Category cover

Security
20 posts

Category cover

Notes
19 posts

Category cover

Personal Security
18 posts

Category cover

Infrastructure
12 posts

Category cover

OT/ICS
5 posts

Category cover

Books
3 posts

Category cover

UNetLab
3 posts

Category cover

Write-up
3 posts

Category cover

OSInt
2 posts

Category cover

My life
1 posts

Installing the GRFICSv2 Chemical plant

Andrea Dainese
April 16, 2025
Post cover

As we have seen, the GRFICSv2 simulator consists of four main components: HMI, PLC, Simulator, and EWS.

In a real-world ICS environment, the HMI, PLC, and Simulator are connected to the field network, where a gateway facilitates communication between the OT network and the field devices. The EWS (Engineering Workstation), on the other hand, is located within the OT network and communicates with the HMI and PLC through the router/gateway.

We can organize these components in a way that best suits our needs. The following instructions describe how to configure all components within the same OT network, similar to what we previously did with VirtuaPlant.

The communication between HMI, PLC, and the simulator uses the Modbus protocol. Unlike real-world systems, the HMI is implemented as a web-based interface. The EWS system, which is typically Windows-based, is represented here by a Linux system equipped with the OpenPLC SDK.

The complete scenario consists of four distinct VMs, although it is possible to run all components on the same Docker host.

Installing the Chemical Plant Container

Before setting up the environment, ensure you have two Linux systems with Docker installed. I used the latest Ubuntu LTS version and followed the official Docker installation guide.

Once the systems are ready, install the PLC simulation container on the first machine using:

docker run --name simulation --rm -d -p 80:80 -p 5020:5020 -p 5021:5021 -p 5022:5022 -p 5023:5023 -p 5024:5024 -p 5025:5025 dainok/grficsv2-simulation:latest

This command:

  • Downloads and runs the latest Chemical Plant simulation container.
  • Automatically removes the container when stopped (–rm).
  • Exposes ports: 80 (for the web interface), 502X (for Modbus communication with the PLC).

After a few moments, you can access the simulator web interface by entering the host system’s IP address in a web browser using port 80.

Installing the PLC Container

The PLC is implemented using OpenPLCv2. While a newer version of OpenPLC exists, the differences were too significant, so the only way to ensure compatibility was to retain this outdated version.

Continue reading the post on Patreon .