Monitoring and visualization tool for SIMATIC S7-1500V (Virtual PLC) Cyclic Retentive Backup (CRB) performance statistics.
- S7-1500V Statistics & Visualization
The S7-1500V Statistics & Visualization application is designed to collect, store, and visualize Cyclic Retentive Backup (CRB) statistics from SIMATIC S7-1500V (Virtual PLC) installations. The system provides real-time monitoring capabilities through a modern web-based dashboard powered by Plutono (Grafana fork).
This application monitors the Cyclic Retentive Backup feature of S7-1500V virtual PLCs. The CRB feature periodically saves retentive data to persistent storage, ensuring data persistence across PLC restarts.
For detailed technical information about Cyclic Retentive Backup behavior, see the official Siemens documentation.
The Cycle Extension Duration measures the additional time added to the normal PLC cycle when a Cyclic Retentive Backup(CRB) operation occurs. This helps you understand the performance impact of backup operations on your PLC cycle time.
| Metric | Description |
|---|---|
| Cycle Extension Durations | Distribution of cycle extension durations across time buckets (1ms to >20ms) |
| Min Extension Duration | Minimum observed cycle extension duration |
| Max Extension Duration | Maximum observed cycle extension duration |
| Average Extension Duration | Average cycle extension duration |
The Data Write Duration measures how long it takes to write retentive data to persistent storage. This indicates storage subsystem performance and helps identify potential bottlenecks.
| Metric | Description |
|---|---|
| Data Write Durations | Distribution of write durations across time buckets (1ms to >20ms) |
| Min Write Duration | Minimum observed write duration |
| Max Write Duration | Maximum observed write duration |
| Average Write Duration | Average write duration |
| Metric | Description |
|---|---|
| Successfully Written Cycles | Percentage of successful backup cycles vs total cycles |
The application collects CRB statistics from S7-1500V installations via API calls and stores them in a Prometheus time-series database. The collected data can be visualized through pre-configured dashboards in a containerized Docker environment.
For detailed technical information about the application architecture and components, see Application Overview
- OS: Linux or Windows with WSL2
- Docker Engine >= 20.10
- Docker Compose >= 2.0
- Internet access for initial setup and image downloads
- Minimum 2GB RAM
- 10GB available disk space
- CPU: 2 cores recommended
- Network access to S7-1500V installations
- Port 3000 available for dashboard access
- Access to S7-1500V API endpoints
- HTTP/HTTPS connectivity for Docker image downloads
- Prometheus scraping capabilities (internal Docker network)
- Any development environment (e.g. Visual Studio Code, Eclipse, …)
- Docker Extension for your development environment
- Web browser for dashboard access
- JSON editor for configuration files
Before starting the application, ensure you have:
- S7-1500V Access: Valid credentials and network access to your S7-1500V installations
- Configuration File: Copy
cfg-data/secrets-example.jsontocfg-data/secrets.jsonand update with your S7-1500V connection details - Docker Environment: Docker and Docker Compose installed and running
- Network Connectivity: Ensure the collector service can reach your S7-1500V endpoints
The system expects S7-1500V installations to provide API endpoints for statistics gathering. Configure your S7-1500V instances to accept API connections from the collector service.
Note: The application will run successfully without real S7-1500V connections, but dashboards will show no data until valid S7-1500V endpoints are configured.
You can find detailed information about the following steps in the docs
- Clone and navigate to the project directory
- Configure S7-1500V credentials:
cp cfg-data/secrets-example.json cfg-data/secrets.json # Edit cfg-data/secrets.json with your S7-1500V details (optional for testing) - Start the services:
docker-compose up -d
- Access the dashboard: Open
http://localhost:3000in your browser (admin/admin)
After successful installation:
- Access Dashboard: Navigate to
http://localhost:3000in your web browser - Login: Use default credentials (admin/admin)
- Change Password: You will be prompted to change the default password
- Monitor Metrics: View real-time CRB statistics on the "Cyclic Retentive Backup" dashboard
- Select S7-1500V Instance: Use the dropdown menu in the upper left to select which S7-1500V to monitor
The preconfigured dashboard provides comprehensive monitoring of your S7-1500V installations with real-time updates and historical data visualization.
If your environment requires a proxy server for internet access, configure both Docker and the compose file accordingly.
Add the configuration to /etc/docker/daemon.json:
{
"proxies": {
"http-proxy": "http://proxy.server.com:3128",
"https-proxy": "http://proxy.server.com:3128"
}
}For further details, please refer to the Docker documentation
The collector service needs internet access during build time. Configure proxy settings in the build args:
build:
context: ./src/vplc_collector
args:
http_proxy: http://proxy.server.com:3128
https_proxy: http://proxy.server.com:3128You can find further documentation and help in the following links:
- Installation Guide
- Configuration Guide
- API Documentation
- Troubleshooting Guide
- Docker Documentation
- Prometheus Documentation
- Plutono Documentation
Thank you for your interest in contributing. Anybody is free to report bugs, unclear documentation, and other problems regarding this repository in the Issues section. Additionally everybody is free to propose any changes to this repository using Pull Requests.
If you haven't previously signed the Contributor License Agreement (CLA), the system will automatically prompt you to do so when you submit your Pull Request. This can be conveniently done through the CLA Assistant's online platform. Once the CLA is signed, your Pull Request will automatically be cleared and made ready for merging if all other test stages succeed.
Please read the Legal information.
IMPORTANT - PLEASE READ CAREFULLY:
This documentation describes how you can download and set up containers which consist of or contain third-party software. By following this documentation you agree that using such third-party software is done at your own discretion and risk. No advice or information, whether oral or written, obtained by you from us or from this documentation shall create any warranty for the third-party software. Additionally, by following these descriptions or using the contents of this documentation, you agree that you are responsible for complying with all third party licenses applicable to such third-party software. All product names, logos, and brands are property of their respective owners. All third-party company, product and service names used in this documentation are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.
