User Manual
Version 1.3.0
Last updated: September 24, 2026
MaConSim GmbH
Table of Contents
- Introduction
- System Requirements
- Installation
- 3.1 Windows
- 3.2 macOS
- 3.3 Linux
- 3.4 Docker
- 3.5 First Launch
- License Activation
- Login and User Management
- 5.1 Logging In
- 5.2 Logging Out
- 5.3 Creating User Accounts
- 5.4 Deleting User Accounts
- Plant Management
- 6.1 Creating a Plant
- 6.2 Selecting a Plant
- 6.3 Editing and Deleting a Plant
- 6.4 Exporting a Plant
- 6.5 Importing a Plant
- Create Resources
- 7.1 Machines
- 7.1.1 Creating a Machine
- 7.1.2 Machine Status
- 7.1.3 Editing and Deleting a Machine
- 7.2 Simulation Scenarios
- 7.2.1 Creating a Scenario
- 7.2.2 Understanding Takt Time
- 7.2.3 Editing and Deleting a Scenario
- 7.3 Materials
- 7.4 Orders and Shop Floor Control (SFC)
- 7.4.1 Understanding Orders and SFCs
- 7.4.2 Orders
- 7.4.3 Shop Floor Control (SFC)
- 7.5 Nonconformance Codes (NC Codes)
- 7.6 Tools
- 7.7 Alerts
- 7.8 Data Collections
- Create References
- Advanced Database Features
- 9.1 Database Triggers
- 9.2 Custom Variables
- Production Operator Dashboard
- 10.1 Overview
- 10.2 Running Orders Table
- 10.3 Order Queue Table
- 10.4 Filtering
- 10.5 Starting Production
- 10.6 Stopping Production
- 10.7 Deleting an Order Process
- 10.8 Expanding an Order
- 10.9 Recently Completed Orders
- Event Logs
- 11.1 Order History
- 11.2 Alert History
- 11.3 NC Code Occurrences
- 11.4 Tool Usage Log
- Connectivity
- 12.1 OPC UA
- 12.1.1 Creating an OPC UA Tree
- 12.1.2 OPC UA Tree Management
- 12.1.3 NodeSet2 Import and Export
- 12.1.4 Certificate Management
- 12.1.5 OPC UA Node Management
- 12.1.5.1 Adding Nodes
- 12.1.5.2 Data Source Configuration
- 12.1.5.3 Method Configuration
- 12.1.5.4 Node References
- 12.1.5.5 Live Value Display and Monitoring
- 12.1.5.6 Editing and Deleting Nodes
- 12.1.5.7 Typical Use Cases
- 12.2 MQTT
- 12.2.1 Creating a Broker Tree
- 12.2.2 Starting and Stopping a Broker Tree
- 12.2.3 Topic Tree and Add Topic Configuration
- 12.2.3.1 Live Value Monitoring
- 12.2.4 Data Source Configuration
- Data Source Configuration
- 13.1 Overview
- 13.2 Data Source Types
- 13.3 Database Reference Configuration
- 13.3.1 Table and Column Selection (UI Position 1)
- 13.3.2 JOIN Configuration (UI Position 2)
- 13.3.3 Preview Rows of Tables (UI Position 3)
- 13.3.4 Filter Conditions (UI Position 4)
- 13.3.5 Sorting, Limit & Aggregation (UI Position 5)
- 13.3.6 Formatting Options (UI Position 6)
- 13.3.7 Live Preview (UI Position 7)
- License Plan Feature Matrix
- REST API
- 15.1 Accessing the API
- 15.2 Usage Notes
- Updating MaConSim
- Troubleshooting
- Help and Support
1. Introduction
MaConSim (Machine Connectivity Simulator) is a desktop application for manufacturing plants. It lets you model your production environment, configure realistic machine simulations, manage production orders, and connect to external automation systems — all from a single interface.
Whether you are evaluating a new production line before it goes live, training operators on industrial automation workflows, or demonstrating factory automation to stakeholders, MaConSim lets you build a complete simulation without touching your real production systems.
1.1 What You Can Do with MaConSim
- Model your plant structure: Define plants, machines, and all associated resources to mirror your real factory layout.
- Simulate machine behavior: Configure production speed (takt time), scrap rates, alert frequencies, maintenance events, and tool consumption per machine.
- Manage production orders: Create orders with target quantities, break them into individual Shop Floor Control (SFC) units, and queue them to machines.
- Monitor production live: The Production Operator Dashboard shows real-time progress, machine status, active SFCs, and recent events for all running orders.
- Log events automatically: Alert occurrences, nonconformance codes, and order state transitions are recorded and available in the Event Logs.
- Connect to real systems: Expose simulation data to SCADA/DCS software via the built-in OPC UA server, or publish it to IoT platforms via MQTT.
- Integrate programmatically: Access all MaConSim functionality via REST API for test automation, CI/CD pipelines, or custom integrations with MES, SCADA, or other IoT systems.
- Back up and transfer configurations: Export a complete plant — including all machines, scenarios, orders, and connectivity settings — as a single portable YAML file.
1.2 Key Concepts
If you are new to industrial automation and control systems (e.g., MES, SCADA, DCS), the following table explains the core terms used throughout this manual:
| Concept | Description |
|---|---|
| Plant | The top-level container representing a factory or site. All resources and settings belong to a specific plant. |
| Machine | A physical production asset within a plant (e.g. a CNC machine, press, or assembly station). |
| Scenario | A named set of simulation parameters — takt time, scrap rate, alert rate, etc. — that defines a machine’s simulated behavior. A machine can have multiple scenarios assigned; you select which one is active at runtime. |
| Order | A production order with a target quantity and unit of measure. |
| SFC | A Shop Floor Control unit — an individual work item within an order, representing a specific lot or serial unit that travels through a machine. |
| NC Code | A nonconformance code identifying a specific type of quality deviation (e.g. "Dimension out of tolerance"). Logged automatically during simulation based on the configured NC rate. |
| Tool | A physical tool used by a machine during production (e.g. a drill bit or cutting insert). Tool usage is tracked per takt when enabled. |
| Alert | A named machine event type triggered during simulation (e.g. "Overtemperature"). Fired automatically based on the configured alert rate. |
| Data Collection | A named measurement channel (e.g. temperature, pressure, cycle time) associated with a machine, published via OPC UA or MQTT. |
| OPC UA Tree | A virtual OPC UA server instance that exposes simulation data to external OPC UA clients. |
| MQTT Broker | A connection to an MQTT broker through which machine data is published as structured messages. |
1.3 Typical Workflow
A typical MaConSim setup follows this sequence:
- Activate your license (first launch only) — Chapter 4
- Create a plant — Section 6.1
- Add machines to the plant — Section 7.1
- Create simulation scenarios — Section 7.2
- Connect scenarios to machines — Section 8.1
- Create orders and SFCs — Section 7.4
- Queue SFCs — Section 8.2
- Start production on the dashboard — Chapter 10
Optionally, enrich the simulation by adding alerts, NC codes, tools, and data collections (Sections 7.5–7.8) and connecting them to machines (Sections 8.3–8.6).
Data is stored locally. MaConSim runs entirely offline. All plant data is stored in a local database on your computer. An internet connection is only required at startup for license validation.
2. System Requirements
| Component | Requirement |
|---|---|
| Operating System | Windows 10 (64-bit) or newer; macOS 11.0 (Big Sur) or newer (Apple Silicon / ARM64 only); Ubuntu 22.04 or newer (64-bit); Docker (any host OS supporting Docker 24+) |
| RAM | 4 GB minimum, 8 GB recommended |
| Disk space | 50 MB for the application; additional disk space required for plant data (database grows with usage — allow at least 100 MB free) |
| Display resolution | 800 × 600 minimum |
| Internet connection | Required at startup for license validation |
| Network ports | Outbound HTTPS (443) for license validation; REST API: 8080; OPC UA: 4840; MQTT: 1883 (plain) / 8883 (TLS) — all default, configurable |
Firewall: If you plan to use the OPC UA server or connect to an external MQTT broker, ensure the relevant ports are allowed through your operating system firewall and any corporate network firewall. See Section 17 (Troubleshooting) for guidance.
Anti-virus / Security software: Some security tools may flag or block MaConSim on first launch. If the application does not start, check whether it has been quarantined and add an exception for the MaConSim installation folder.
Data storage locations:
The database file is created automatically on first launch at the following path for your operating system:
| OS | Path |
|---|---|
| Windows | C:\Users\{username}\AppData\Roaming\com.maconsim.app\MaConSim.db |
| macOS | ~/Library/Application Support/com.maconsim.app/MaConSim.db |
| Linux | ~/.local/share/com.maconsim.app/MaConSim.db |
| Docker | Data stored in the maconsim-pg-data PostgreSQL volume — no local file. |
Backup: The database file (desktop) or Docker volume (server) contains all your plant data. Back it up regularly by copying it to a safe location. You can also use the Plant Export feature (Section 6.4) to export individual plants as portable YAML files.
3. Installation
3.1 Windows
- Download the installer:
maconsim_0.1.0_x64-setup.exe - Double-click the installer to run it.
Windows SmartScreen: Windows may show a "Windows protected your PC" message for newly published software. Click More info → Run anyway to proceed.
- Follow the installation wizard and accept the license agreement.
- Choose an installation folder (default:
C:\Users\{username}\AppData\Local\MaConSim) and click Install. - Once complete, launch MaConSim from the Start Menu or the desktop shortcut.
Administrator rights: The Windows installer does not require administrator rights. MaConSim installs per-user into
C:\Users\{username}\AppData\Local\MaConSim.
3.2 macOS
- Download the disk image:
maconsim_0.1.0_aarch64.dmgApple Silicon only: The macOS build runs on Apple Silicon (M1 / M2 / M3 and later) only. Intel-based Macs are not supported.
- Double-click the
.dmgfile to mount it. - Drag the MaConSim icon into your Applications folder.
- On first launch, macOS Gatekeeper may show a warning that the app is unverified. To open it:
- Right-click (or Control-click) the MaConSim icon in Applications.
- Select Open from the context menu.
- Click Open in the security dialog.
- Launch MaConSim from Launchpad or the Applications folder.
No administrator rights required. Dragging the app to the Applications folder does not require elevated privileges. The app runs entirely from that location without any system-level installation.
3.3 Linux
- Download the package for your distribution:
- Debian/Ubuntu:
maconsim_0.1.0_amd64.deb - Other distributions:
maconsim_0.1.0_amd64.AppImage
- Debian/Ubuntu:
- Debian/Ubuntu — install the package:
sudo dpkg -i maconsim_0.1.0_amd64.deb - AppImage — make it executable and run it:
chmod +x maconsim_0.1.0_amd64.AppImage ./maconsim_0.1.0_amd64.AppImage - Launch MaConSim from your application menu or run
maconsimin a terminal.
Administrator rights: Installing the
.debpackage requiressudo. The.AppImagevariant does not — it runs directly from any location you have execute permissions on, with no system-wide installation.
3.4 Docker
MaConSim is also available as a Docker-based server deployment. This mode runs the backend and frontend as containers, using a PostgreSQL database. It is suited for headless or server environments, demos, and integration testing — no desktop installation required.
Distribution archive contents:
After downloading, you receive a compressed archive named maconsim-docker.zip.
Inside this archive, you will find one or more versioned Docker bundles (for example docker_v1.0.0.zip).
After extracting the latest versioned bundle, you should have a folder like:
docker_v1.0.0/
├── docker-compose.yml # Orchestrates all services
├── maconsim-backend.tar # Pre-built backend image (Rust REST API)
├── maconsim-frontend.tar # Pre-built frontend image (nginx + React SPA)
└── THIRD_PARTY_LICENSE.txt
Prerequisites:
| Tool | Minimum version | Install |
|---|---|---|
| Docker | 24+ | docs.docker.com |
| Docker Compose | v2 (plugin) | bundled with Docker Desktop |
Docker Desktop on macOS / Windows already ships with Compose v2. On Linux, install the
docker-compose-pluginpackage via your package manager.
Services:
The stack starts three containers:
| Service | Container Name | Image | Host Port | Purpose |
|---|---|---|---|---|
db |
maconsim-postgres |
postgres:17-alpine |
5432 |
PostgreSQL — persistent application database |
backend |
maconsim-backend |
ghcr.io/maconsim-gmbh/maconsim-backend:vx.x.x |
8080 |
Rust REST API — runs DB migrations on first boot |
frontend |
maconsim-frontend |
ghcr.io/maconsim-gmbh/maconsim-frontend:vx.x.x |
1420 |
nginx serving the React web UI |
External Client Access Ports
MaConSim exposes the following ports for external system integration:
| Port | Protocol | Purpose |
|---|---|---|
| 8080 | HTTP | REST API |
| 4840 | OPC UA | OPC UA Server |
| 1883 | MQTT | MQTT Broker (plain) |
| 8883 | MQTT/TLS | MQTT Broker (TLS) |
Custom ports: To change these ports, edit the
portsmapping indocker-compose.yml. Update both host and container port numbers.
Steps:
-
Extract the downloaded archive
maconsim-docker.zip. -
Open the extracted
maconsim-dockerfolder and extract the latest versioned Docker bundle (for exampledocker_v1.0.0.zip). -
Change the database password in
.env: Open.envin a text editor and change thePOSTGRES_PASSWORDvalue to a secure password of your choice:POSTGRES_PASSWORD=your_secure_passwordRequired: The bundled
.envfile contains a placeholder value (changeme). You must replace it with a strong, unique password for security reasons. The application will refuse to start without a validPOSTGRES_PASSWORD. -
Start MaConSim using the provided script for your operating system:
- Windows: Double-click
start.bator run it from Command Prompt/PowerShell - macOS/Linux: Run
./start.sh(ensure it is executable:chmod +x start.sh)
These scripts automatically load the pre-built Docker images (
maconsim-backend.tarandmaconsim-frontend.tar) and start all services in detached mode. - Windows: Double-click
-
Open the application in your browser:
| URL | What you see |
|---|---|
http://localhost:1420 |
MaConSim Web UI |
Alternative: Manual Startup If you prefer to run the commands manually instead of using the start scripts:
-
Open a terminal and navigate to the extracted version folder (example path on Windows):
cd C:\Users\jasmi\Downloads\maconsim-docker\docker_v1.0.0 -
Load the pre-built Docker images:
docker load -i maconsim-backend.tar docker load -i maconsim-frontend.tar -
Start all services:
docker compose up -d -
Stop the application:
# Stop containers — all data is preserved in volumes docker compose down # Stop AND delete all data (full reset) docker compose down -v
Useful commands:
# Follow live logs from all services
docker compose logs -f
# Follow logs from a specific service
docker compose logs -f backend
docker compose logs -f frontend
# Open an interactive psql shell in the database
docker compose exec db psql -U maconsim -d maconsim-db
# Check container status
docker compose ps
# Restart a single service
docker compose restart backend
Environment variables:
Backend (backend service):
| Variable | Default | Description |
|---|---|---|
RUST_LOG |
info |
Log verbosity (trace / debug / info / warn / error) |
DATABASE_URL |
set by Compose | PostgreSQL connection string (do not change unless using an external DB) |
PKI_PATH |
/data/pki |
Directory for OPC UA / MQTT certificates (persisted in a volume) |
Frontend (frontend service):
| Variable | Baked-in default | Description |
|---|---|---|
VITE_REST_API_URL |
http://localhost:8080 |
Backend URL as seen from the browser |
The frontend image has the backend URL baked in at build time. If you need to point it at a different host or port, contact support for a custom build.
Data persistence:
Your application data is stored in named Docker volumes and survives container restarts:
| Volume | What it stores | Removed by down -v? |
|---|---|---|
maconsim-pg-data |
All database data (schema + rows) | ✅ Yes |
maconsim-pki-data |
OPC UA / MQTT certificates | ✅ Yes |
Use docker compose down -v only when you want a completely clean reset. Use the Plant Export feature (Section 6.4) to create portable YAML backups that survive a volume reset.
License validation: The backend container requires an internet connection (outbound HTTPS on port 443) for license validation at every startup, the same as the desktop application.
Docker permissions: On Linux, Docker commands typically require either
sudoor membership in thedockergroup. Add your user to the group withsudo usermod -aG docker $USERand log out/in for the change to take effect. Docker Desktop on macOS and Windows handles permissions automatically.
3.5 First Launch
On first launch you will be prompted to activate your license before you can use the application. See Chapter 4 for the activation steps.
4. License Activation
4.1 Activating a License
On first launch, MaConSim displays the License Activation screen. You must activate a valid license before the application can be used.
Steps:
- Enter your license key in the input field. Your key is provided by MaConSim GmbH after purchase or free trial registration. It is typically a long alphanumeric string.
- Click Activate License.
- MaConSim contacts the license server (
https://api.maconsim.com) to validate the key. This requires an active internet connection. - On success, the application proceeds to the login screen. Your license is now stored locally.
Subsequent launches: After successful activation, the license key is stored locally. On every subsequent launch, MaConSim validates it automatically in the background. You will only see the activation screen again if the license expires or becomes invalid.
Important: MaConSim revalidates your license every 24 hours. An active internet connection is required at least once every 24 hours to continue using the application. If you cannot connect to the license server within this period, the application will stop functioning until a connection is restored. There is no offline mode beyond this 24-hour window.
If activation fails: An error message is displayed with the reason. Common causes and solutions:
| Error | Solution |
|---|---|
| No internet connection | Check your network connection and try again. |
| License key invalid | Verify you copied the key correctly. Whitespace and line breaks are stripped automatically when pasting. |
| License expired | Contact MaConSim GmbH to renew your subscription. |
| License already in use | Contact MaConSim GmbH to release or transfer the license to this machine. |
| Machine limit exceeded | Your license has reached its maximum number of activated machines. Deactivate an unused machine or upgrade your plan. |
Re-activating: If your license was renewed or transferred, click Retry or Enter a Different License Key on the error screen and enter your updated key. For detailed server error messages, click Show details on the error screen.
4.2 Changing the License Key
If you need to replace your current license — for example because you upgraded to a new plan, transferred the license to a different account, or received a replacement key — you can do so directly from within the application without reinstalling.
Steps:
- Log in and open the License Info panel by clicking the License Info button in the top navigation bar.
- Click the Key button next to the active license status badge. An input field appears inline.
- Enter your new license key.
- Press Enter or click Activate.
- MaConSim contacts the license server to validate the new key. This requires an active internet connection.
- On success, the new license replaces the previous one. The panel updates immediately to show the new plan, expiry date, and license ID.
Note: Changing the license key fully replaces the previous key. The old key is removed from local storage and only the new key is retained.
If the activation fails: An error message is shown below the input field. Correct the key and try again, or click the X button to cancel and keep the existing license.
License ID: Your Keygen license UUID is displayed in the License Info panel and can be copied to the clipboard for support requests.
4.3 Upgrading or Downgrading Your Subscription
MaConSim does not offer an automated direct plan switch. To move to a different subscription tier (e.g. Basic → Premium or Premium → Basic), follow these steps:
- Purchase the new subscription tier at maconsim.com/licenses-pricing/ — the same page where your current subscription was bought.
- After purchase, you will receive a new license key by email.
- Enter the new key in MaConSim using the Change License Key feature — see Section 4.2.
- Cancel your old subscription via the Paddle customer portal.
Important billing notes:
- No cancellation deadline: You can cancel your existing subscription at any time, even on the last day of the current billing period. Cancellation takes effect at the end of that period.
- Immediate billing start: Your new subscription’s billing period begins immediately upon purchase, regardless of when you enter the license key or start using the application.
- Parallel subscriptions: Between the date of your new purchase and the expiry of your old subscription, both are active and billed in parallel. You decide when to cancel the old one and when to buy the new one — MaConSim cannot merge, credit, or pro-rate the two billing periods.
4.4 License Maintenance
Machine Binding
MaConSim uses machine fingerprinting to tie your license to a specific computer:
- Desktop installations: The license is bound to your machine’s hardware fingerprint. You can free the machine slot by using the Deactivate this machine button in the License Info panel.
- Docker/container deployments: Use a fixed "server" fingerprint and do not consume a per-machine slot from your license.
Note: If your license has a machine limit and you see the "Machine limit exceeded" error, you must deactivate an unused machine or upgrade to a plan with more machine slots.
Deactivating a Machine
To free a machine slot and move your license to a different computer:
- Open the License Info panel (top navigation bar → License Info button)
- Click the Deactivate this machine button
- A confirmation dialog appears explaining that the license will be removed from this machine and the activation slot will be freed
- Click Confirm Deactivation to proceed
- The application will reload and return to the activation screen
- You can now activate the license on a different machine
Note: This feature is only available for desktop installations (Windows, macOS, Linux).
Monitoring Your License
Open the License Info panel (top navigation bar → License Info button) to view:
- Status badge: Visual indicator showing Active (green), Expiring Soon (amber, when <7 days remaining), or Expired (red)
- Plan name: Your subscription tier (e.g., Free Trial, Basic, Premium) as defined in your license metadata
- License ID: Your unique Keygen license UUID — click the copy button to copy it to the clipboard for support requests
- Expiration date: When your license expires (displayed as "Never" for non-expiring licenses)
- Days remaining: Countdown to expiration
When your license is expiring soon (<7 days), an amber warning banner appears in the License Info panel with a link to renew your subscription. When expired, a red alert banner appears.
Error Details
If license validation fails, the error screen displays a user-friendly message. For technical troubleshooting, click Show details to reveal the raw server response message.
Firewall configuration: Ensure outbound HTTPS connections to
api.maconsim.comon port 443 are allowed through your firewall for license validation to work.
5. Login and User Management
5.1 Logging In
- On the login screen, you first see a list of all existing users with their username and email address.
- Click on a user to select them.
- Enter your Password on the next screen.
- Click Login.
If your password is incorrect, an error message is displayed. Passwords are case-sensitive. If you are unable to log in, verify you are selecting the correct user account and entering the right password.
5.2 Logging Out
To log out of MaConSim:
- Click the Logout button in the top navigation bar.
- You will be returned to the login screen.
5.3 Creating User Accounts
User accounts can be created directly from the login screen:
- On the login screen, click Create New Account.
- Fill in the fields:
| Field | Requirement |
|---|---|
| Username | Unique name used to log in (required) |
| Email Address | Valid email address for the account (required) |
| Password | Minimum 6 characters (required) |
| Confirm Password | Must match the password (required) |
- Click Create Account.
- The new user can immediately log in with their credentials.
5.4 Deleting User Accounts
User accounts can also be deleted from the login screen:
- On the login screen, select a user.
- Click Delete Account.
- Confirm the deletion in the dialog that appears.
Important: Deleting a user also deletes the plant data they created. This action cannot be undone.
License limit: The maximum number of user accounts is determined by your license plan (see Chapter 14). User creation is blocked when the limit is reached. Feature entitlements are determined by your license plan, not by individual user accounts.
6. Plant Management
A Plant represents a physical production site — a factory, a workshop, or a manufacturing cell. All resources in MaConSim (machines, orders, scenarios, connectivity settings, etc.) belong to a specific plant. You can create multiple plants to model separate sites or independent test environments.
Navigate to Plant Management from the main navigation bar.
6.1 Creating a Plant
- Click Add Plant.
- Fill in the fields:
| Field | Description |
|---|---|
| Name | A unique display name for the plant (required) |
| Info | A short subtitle or identifier, e.g. "Main Assembly Hall" |
| Description | A longer description of the plant, its purpose, or production type |
| Location | The physical address or site name |
- Click Create Plant.
The new plant appears as a card on the Plant Management screen.
License limit: The maximum number of plants is determined by your license plan (see Chapter 14).
6.2 Selecting a Plant
Click on a plant card to open it. You are taken into the plant view, where all tabs and sections — machines, orders, connectivity, event logs, and the Production Operator Dashboard — relate exclusively to that plant. The currently selected plant name is displayed in the header section for easy reference.
Use the main navigation bar to return to Plant Management and switch between plants.
6.3 Editing and Deleting a Plant
- Click the Edit button on a plant card to edit its name, info, description, or location.
- Click the Delete button to delete a plant.
Warning: Deleting a plant permanently removes all resources associated with it — machines, scenarios, orders, SFCs, NC codes, tools, alerts, data collections, OPC UA trees, and MQTT brokers. This action cannot be undone.
6.4 Exporting a Plant
The plant export feature allows complete plant configurations to be transferred between installations or used as backups.
- On the Plant Management screen, click the Download button on a plant card.
- A file will be downloaded to your browser’s default download folder, named
plant-{plant-name}-export.filetype.
The export includes:
- Plant details (name, info, description, location)
- All machines
- All simulation scenarios (machine sims)
- Machine-scenario connections
- Nonconformance codes (NC codes) and machine assignments
- Tools and machine assignments
- Alerts and machine assignments
- Alert-NC code connections
- Data collections and machine assignments
- Orders
- SFCs (Shop Floor Collections)
- Materials
- OPC UA server configurations
- MQTT broker configurations and topics
- Trigger metadata (global triggers for the user)
- Custom variables
Security note: MQTT broker passwords are omitted from the export for security reasons and must be re-entered after import.
Note: OPC UA nodes and references can be exported and imported separately via NodeSet2 XML format (see Section 12.1.3).
6.5 Importing a Plant
License requirement: The
importPlantentitlement must be enabled. Contact MaConSim GmbH if the button is greyed out.
- On the Plant Management screen, click Import Plant (top right of Plant Management).
- A file chooser opens — select a export file.
- The plant and all its resources are created in the database.
- The plant list refreshes automatically.
The imported plant is added as a new entry — it does not overwrite existing plants.
License limit: The maximum number of plants is determined by your license plan (see Chapter 14).
7. Create Resources
Navigate to a plant → Create Resources to manage all production resources within that plant.
7.1 Machines
Machines represent the physical production assets within your plant — CNC machines, presses, assembly stations, welding robots, or any other piece of equipment you want to model or simulate.
Navigate to a plant → Create Resources → Machines.
7.1.1 Creating a Machine
- Click Add Machine.
- Fill in the fields:
| Field | Description |
|---|---|
| Name | Display name shown throughout the application (required) |
| Description | Detailed free-text description of the machine |
| Model | The machine model designation, e.g. "DMG DMU 50" |
| Manufacturer | The manufacturer’s name, e.g. "DMG Mori" |
| Serial Number | The physical serial number of the machine |
| Asset ID | Your internal asset management identifier (for reference only — not processed by MaConSim) |
| Device Class | Classification of the device type, e.g. "CNC Milling", "Robot Arm" |
| Device Revision | Hardware revision or generation identifier |
| Status | The initial operating status assigned when the machine is created |
- Click Create Machine.
Asset ID, Device Class, and Device Revision are free-text fields intended for integration with your asset management or ERP system. MaConSim stores these values for reference but does not process them.
7.1.2 Machine Status
Every machine displays a live status badge reflecting its current state based on ISA-95/PackML standards:
| Status | Meaning |
|---|---|
| IDLE | Machine is ready and waiting for an order |
| STOPPED | Machine powered on but not ready |
| EXECUTE | Machine is actively producing parts |
Note: Additional ISA-95/PackML states (STARTING, COMPLETING, COMPLETE, HELD, SUSPENDED, ABORTED, ABORTING, CLEARING) will be available in future releases.
The status changes automatically during simulation based on the active scenario’s parameters. It is also set initially when creating a machine.
7.1.3 Editing, Copying, and Deleting a Machine
- Click the Edit button on a machine entry to edit any of its fields.
- Click the Copy button on a machine entry to duplicate it with a new name.
- Click the Delete button to delete a machine.
Warning: Deleting a machine removes all its associated connections (scenarios, alerts, NC codes, tools, data collections) and any event history recorded for it. Orders and SFCs that were queued to this machine are not deleted but will lose their machine assignment.
License limit: The maximum number of production machines is determined by your license plan (see Chapter 14).
7.2 Simulation Scenarios
A Scenario defines the simulated behavior of a machine during production. It specifies how fast the machine produces parts, how often defects occur, how frequently alerts are raised, and more. One scenario can be connected to multiple machines, but one machine can only have one scenario.
Navigate to a plant → Create Resources → Scenarios.
7.2.1 Creating a Scenario
- Click Add Scenario.
- Configure the simulation parameters:
| Field | Description | Default |
|---|---|---|
| Name | Scenario name (required) | — |
| Info | Short subtitle or identifier for the scenario | — |
| Description | Detailed free-text description of the scenario | — |
| Scrap Rate | Probability (0.0–1.0) of producing at least one defective part per takt. A value of 0.05 means a 5% chance of scrap per cycle. |
0 |
| Alert Rate | Probability (0.0–1.0) of a machine alert being fired per takt. The specific alert is chosen randomly from those connected to the machine. | 0 |
| Maintenance Probability | Probability (0.0–1.0) of the machine entering maintenance state per takt. (Beta) | 0 |
| NC Rate | Probability (0.0–1.0) of a nonconformance code being logged per takt. The specific NC code is chosen randomly from those connected to the machine. | 0 |
| Tool Logging | When enabled, one tool usage event is recorded per takt for all selected tools connected to the machine. Requires at least one tool to be connected. | Off |
| Takt Time (ms) | The nominal duration of one production cycle in milliseconds. 60,000 ms = 1 minute per cycle. | 60,000 |
| Takt Time Variance (ms) | A random variation (±) applied to each takt. For example, a takt time of 60,000 ms with a variance of 5,000 ms means each cycle takes between 55,000 and 65,000 ms. | 0 |
| Parts per Takt | Number of parts produced in each cycle. Increase this for machines that produce multiple units per cycle (e.g. an injection mould with 4 cavities → set to 4). | 1 |
| Mixed Yield/Scrap Possible | When enabled, a single takt can produce both good and scrap parts simultaneously. When disabled, a takt is either entirely good or entirely scrap. | Off |
| Scrap Handling Mode | Continue: Scrap counts as processed. An SFC with 10 planned that produces 7 good + 3 scrap is considered done. Overproduction: A new replacement SFC is automatically created for the scrapped quantity (e.g., SFC-001 produces 7 good + 3 scrap → new SFC-001-R1 with planned qty 3 is added). |
Continue |
- Click Create Scenario.
7.2.2 Understanding Takt Time
Takt time is the heartbeat of the simulation. It controls how often the machine completes one production cycle. After each takt, the simulator evaluates all configured probabilities (scrap, alert, NC code) and increments the produced-parts counter by the Parts per Takt value.
Example: Takt time of 30,000 ms (30 s), 2 parts per takt, scrap rate 0.10:
- The machine produces 2 parts every 30 seconds.
- Roughly 10% of takts will generate a scrap event.
- At this rate, 100 parts are produced in approximately 25 minutes.
Set the takt time to match the real cycle time of the machine you are modeling.
7.2.3 Editing, Copying, and Deleting a Scenario
- Click the Edit button on a scenario entry to edit its parameters. Changes take effect from the next takt.
- Click the Copy button on a scenario entry to duplicate it with a new name.
- Click the Delete button to delete a scenario. All machine connections to this scenario are also removed.
License limit: The maximum number of scenarios is determined by your license plan (see Chapter 14).
7.3 Materials
Materials define the raw materials, components, or products that flow through your production process. They serve as master data that can be referenced by orders and Shop Floor Control (SFC) units, enabling consistent material tracking across your plant.
Navigate to a plant → Create Resources → Materials.
Creating a Material:
- Click Add Material.
- Fill in the fields:
| Field | Description | Required |
|---|---|---|
| Material Number | A unique identifier for this material, e.g. "MAT-1000" or "STEEL-001" | Yes |
| Name | Display name for the material, e.g. "Steel Bracket" or "Aluminum Profile" | Yes |
| Description | Additional details about the material, its properties, or intended use | No |
| Unit of Measure | The unit in which this material is measured, e.g. PC, KG, M, L |
No |
| Material Type | Classification of the material type, e.g. RAW, FINISHED, SEMI_FINISHED |
No |
- Click Create Material.
The new material appears in the list, sorted alphabetically by material number.
Editing and Deleting Materials:
- Click the Edit button on a material entry to modify any of its fields.
- Click the Delete button to delete a material.
Warning: A material cannot be deleted if it is referenced by an existing order or SFC. You must first remove all references to the material before deletion.
License limit: The maximum number of materials is determined by your license plan (see Chapter 14).
7.4 Orders and Shop Floor Control (SFC)
7.4.1 Understanding Orders and SFCs
An Order is a production job with a defined target quantity — it answers the question: "How many pieces of this product do we need to make?"
An SFC (Shop Floor Control unit) is an individual work item within an order — a specific production lot, a serial unit, or a batch that physically travels through a machine. Think of SFCs as the individual "tickets" that accompany material on the shop floor.
- One order can contain many SFCs.
- Each SFC has its own planned quantity, lifecycle status, and history.
- When production runs on the dashboard, SFCs from the queue are processed in sequence.
7.4.2 Orders
Navigate to a plant → Create Resources → Orders. Click the View button on an order to navigate directly to its SFCs.
Creating an Order:
- Click Add Order.
- Fill in:
| Field | Description | Default |
|---|---|---|
| Order Name | A unique identifier for this order, e.g. "ORD-2026-001" (required) | — |
| Info | Additional information about the order. If left empty, it will be automatically filled with the Order Name. | — |
| Unit of Measure | The unit in which parts are counted, e.g. pcs, kg, m |
pcs |
| Target Quantity | The total number of units this order requires | 100 |
- Click Create Order.
Editing and Deleting Orders:
- Click the Edit button to edit an order’s name, info, unit, or target quantity.
- Click the Delete button to delete an order. All SFCs belonging to this order are also deleted.
Copying Orders:
- Click the Copy button to duplicate an order. The new order will have the same parameters as the original, with "(Copy)" appended to the Order Name and Info field.
License limit: The maximum number of orders is determined by your license plan (see Chapter 14).
7.4.3 Shop Floor Control (SFC)
Navigate to a plant → Create Resources → SFCs (or click the View button on an order to go directly to that order’s SFCs).
The SFC table displays the following columns: SFC Number (with Serial Number), Order, Material, Status, Step progress, Quantity (Planned / Yield / Scrap), Priority, and Created date.
Filtering SFCs:
- Use the Order dropdown to filter SFCs by a specific order
- View allocation information showing how many units are allocated vs. remaining for each order
Creating an SFC:
- Click Add SFC.
- Fill in:
| Field | Description | Required |
|---|---|---|
| Order | The parent order this SFC belongs to | Yes |
| SFC Number | A unique identifier for this production unit, e.g. "SFC-001" | Yes |
| Info | Short info label for the SFC. If left empty, it will be automatically filled with the SFC Number. | No |
| Material | The material being processed (inherited from order if blank) | No |
| Serial Number | Optional serial number for traceability | No |
| Unit of Measure | Unit for quantity measurement, e.g. pcs, kg |
No |
| Planned Quantity | The number of parts this specific SFC is planned to produce | Yes |
| Priority | Processing priority (numeric value) | No |
| Notes | Additional notes or instructions | No |
- Click Create SFC.
Auto-Generate SFCs: For efficient creation of multiple SFCs:
- Click Auto-Generate SFCs button
- Select the order for which to generate SFCs
- Specify the number of SFCs to create
- Optionally customize the SFC number prefix
- The system automatically:
- Calculates the remaining capacity for the selected order
- Distributes the remaining quantity evenly across the specified number of SFCs
- Shows warnings if the quantity doesn’t divide evenly
- Prevents generation if the order is fully allocated
Capacity Validation: When creating SFCs manually or through auto-generation, the system validates that the planned quantity does not exceed the remaining capacity of the parent order. If an order is fully allocated, no new SFCs can be created for it.
SFC Status Lifecycle:
SFCs move through the following statuses during their lifecycle:
| Status | Description |
|---|---|
| NEW | Initial state when first created — not yet queued or started |
| IN_PROCESS | Currently being processed by a machine |
| PAUSED | Production halted because the machine itself was stopped — the SFC remains on the machine and can be resumed when the machine restarts |
| COMPLETE | Successfully finished — all planned parts produced |
| SCRAPPED | Rejected due to defects and will not be completed |
| HOLD | Temporarily paused for quality or organizational reasons, e.g. awaiting material or inspection |
Managing SFC Status:
Use the action buttons to manually change an SFC’s status:
| Action | Resulting Status | When to use |
|---|---|---|
| Complete | COMPLETE | Manually mark the SFC as finished |
| Scrap | SCRAPPED | Reject the SFC as a defective unit |
| Hold | HOLD | Temporarily pause the SFC |
Additional SFC Management:
- Delete individual SFCs using the Delete button
- Delete all SFCs for an order using the delete button when filtered by a specific order
- View production progress through the Step column showing current step vs. total steps
- Track quantities with planned, yield, and scrap quantities for each SFC
7.5 Nonconformance Codes (NC Codes)
NC Codes are predefined quality deviation categories. When a machine triggers a nonconformance event during simulation (based on the NC rate configured in the scenario), one of the NC codes connected to that machine is randomly selected and logged in the event history.
NC codes allow you to analyze which defect types occur most frequently, on which machines, and during which orders.
Navigate to a plant → Create Resources → NC Codes.
Creating an NC Code:
- Click Add NC Code.
- Fill in the fields:
| Field | Description |
|---|---|
| Code | A short identifier, e.g. "NC-001" or "DIM-FAIL" — used in reports and event logs (required) |
| Description | Detailed explanation of what this nonconformance means |
| Severity | The severity level of the nonconformance: Minor, Major, or Critical (required) |
- Click Create.
Note: An NC code must be connected to a machine before it can be logged during simulation. See Section 8.5.
License limit: The maximum number of NC codes is determined by your license plan (see Chapter 14).
7.6 Tools
Tools represent physical tooling items used by a machine during production — for example, drill bits, milling cutters, cutting inserts, or punches. When tool logging is enabled in a scenario, MaConSim records one tool usage event per takt, helping you track tool consumption over production runs.
Navigate to a plant → Create Resources → Tools.
Creating a Tool:
- Click Add Tool.
- Fill in the fields:
| Field | Description |
|---|---|
| Name | The tool’s display name, e.g. "8mm Drill Bit" (required) |
| Description | Additional details such as grade, specification, or coating |
| Current Usage Count | How many times this tool has been used. Incremented automatically when tool logging is active. |
| Max Usage Limit | The maximum number of production cycles (takts) this tool can be used before it is considered worn out. Leave empty for no limit. |
| Count Mode | Whether usage is counted Per Takt (+1 per production cycle) or Per SFC (+1 per completed SFC) |
- Click Create.
Editing and Deleting Tools:
- Click the Edit button to edit a tool’s name, description, usage count, or count mode.
- Click the Delete button to delete a tool.
Max Usage Limit: Once a tool’s usage count reaches this limit, it will appear as exhausted in reports. This helps simulate realistic tool lifecycle management.
Note: A tool must be connected to a machine and Tool Logging must be enabled in the active scenario for usage to be tracked. See Section 8.6.
License limit: The maximum number of tools is determined by your license plan (see Chapter 14).
7.7 Alerts
Alerts define types of machine events that can be triggered automatically during simulation — for example, temperature warnings, vibration alarms, pressure drops, or door-open signals. When a machine fires an alert event (based on the alert rate in the scenario), one of the alert types connected to that machine is randomly selected and logged.
Navigate to a plant → Create Resources → Alerts.
Creating an Alert:
- Click Add Alert.
- Fill in the fields:
| Field | Description |
|---|---|
| Name | A descriptive name for the alert type, e.g. "Overtemperature Warning" (required) |
| Severity | The severity level of this alert type (required) |
| Description | Details about the alert, its typical cause, or recommended operator action |
Severity levels:
| Severity | Typical Use |
|---|---|
| Low | Informational events that require no immediate action |
| Medium | A condition that should be monitored |
| High | A fault condition requiring attention |
| Critical | A serious fault that may require an immediate production stop |
- Click Create.
Editing and Deleting Alerts:
- Click the Edit button to edit an alert’s name, description, or severity.
- Click the Delete button to delete an alert.
Note: An alert must be connected to a machine before it can be triggered during simulation. See Section 8.3.
License limit: The maximum number of alerts is determined by your license plan (see Chapter 14).
To assign alerts to machines, see Section 8.3.
7.8 Data Collections
Data Collections define named measurement channels associated with a machine — for example, spindle temperature, hydraulic pressure, vibration level, or cycle time. They represent the data points that MaConSim can publish externally via OPC UA or MQTT during simulation.
Navigate to a plant → Create Resources → Data Collections.
Creating a Data Collection:
- Click Add Data Collection.
- Fill in the fields:
| Field | Description |
|---|---|
| Name | The name of the measurement channel, e.g. "Spindle Temperature" (required) |
| Data Type | The data type of the measurement, e.g. Float, Integer, String |
| Unit | The physical unit of the measurement, e.g. °C, bar, rpm, mm (required) |
| Description | What is being measured, where on the machine, and its significance |
- Click Create.
Editing and Deleting Data Collections:
- Click the Edit button to edit a data collection’s name, description, data type, or unit.
- Click the Delete button to delete a data collection.
Note: A data collection must be connected to a machine before it is active in simulation output. See Section 8.4. When connected, simulated values for this channel are available via OPC UA and MQTT if connectivity is configured.
License limit: The maximum number of data collections is determined by your license plan (see Chapter 14).
8. Create References
References are the links between resources. Creating a machine is not enough on its own — you must explicitly connect scenarios, alerts, NC codes, tools, and data collections to machines for them to be active during simulation. This design allows the same resource (e.g. an alert type "Overtemperature") to be reused across many machines without duplication.
Navigate to a plant → Create References.
8.1 Connect Scenarios to Machines
A scenario must be connected to a machine before you can run a simulation on that machine. Each machine can have only one scenario connected at a time. To change a machine’s scenario, first remove the existing connection and then connect a different scenario.
Navigate to a plant → Create References → Connect Scenarios.
- Select a Machine from the dropdown.
- Select a Scenario from the dropdown.
- Click Connect.
The connection appears in the list below. Each machine can have only one active scenario connection.
To remove a connection, click the Delete button next to it. Removing a connection does not delete the scenario or the machine.
8.2 Load Order to Machine
Assign orders to a specific machine’s production queue. Queuing an order does not require a scenario to be connected — a machine without a scenario simply stays stopped until one is assigned in the Connect Scenarios tab.
Navigate to a plant → Create References → Load Order to Machine.
- Select a Machine from the dropdown. Each machine shows its connected scenario (if any) or a "no scenario" warning.
- The selected machine card displays its current scenario connection status.
- To add an order:
- Select an Order from the dropdown (only fully allocated orders are available)
- Click Add
- To remove an order, click the Delete button next to it.
Production Queue: The collapsible Production Queue section shows all queued orders with their position in the queue. The first order is highlighted with an "Up Next" badge, indicating it will be processed next.
SFC Production Queue: The collapsible SFC Production Queue section shows all queued SFCs for the selected machine. The first SFC is highlighted with an "In Process" badge.
Note: Orders can only be added to the queue if they are fully allocated (SFC planned quantities match the order target quantity). If an order has incomplete SFC allocation, it will be disabled in the dropdown with a message showing the current allocation vs. target.
8.3 Add Alerts to Machine
Alert types must be connected to a machine before they can be triggered during simulation. Only connected alert types can fire on that machine. When an alert event occurs, the simulator selects one randomly from all alerts connected to the machine.
Navigate to a plant → Create References → Add Alerts to Machine.
- Select the Machine from the dropdown.
- Select the Alert from the second dropdown.
- Click Connect.
To remove a connection, click the Delete button next to it.
Tip: Connect multiple different alert types to a machine to simulate a realistic mix of event types.
8.4 Add Data Collections to Machine
Data collection channels must be connected to a machine before their values are tracked and published. Only connected channels appear in OPC UA and MQTT output for that machine.
Navigate to a plant → Create References → Add Data Collections to Machine.
- Select the Machine from the dropdown.
- Select the Data Collection from the second dropdown.
- Click Connect.
To remove a connection, click the Delete button next to it.
8.5 Add NC Codes to Machine
NC code types must be connected to a machine before they can be logged during simulation. When a nonconformance event fires, the simulator selects randomly from all NC codes connected to that machine.
Navigate to a plant → Create References → Add NC Codes to Machine.
- Select the Machine from the dropdown.
- Select the NC Code from the second dropdown.
- Click Connect.
To remove a connection, click the Delete button next to it.
Tip: Connect multiple NC codes reflecting different failure modes to get a realistic distribution of nonconformance events.
8.6 Add Tools to Machine
Tools must be connected to a machine before tool usage events can be logged during simulation. Tool Logging must also be enabled in the active scenario. When a tool event fires each takt, the simulator selects randomly from the tools connected to that machine and increments its usage counter.
Navigate to a plant → Create References → Add Tools to Machine.
- Select the Machine from the dropdown.
- Select the Tool from the second dropdown.
- Click Connect.
To remove a connection, click the Delete button next to it.
8.7 Connect Alerts to NC Codes
Link alerts to nonconformance codes so that whenever an alert is active during production, each connected NC code is automatically recorded with the specified quantity.
Navigate to a plant → Create References → Alert–NC Code Connections.
- Select an Alert from the dropdown.
- Check the NC Codes you want to connect (use Select All or Clear for quick selection).
- Click Connect. If connecting multiple codes, a progress bar shows the completion status.
The active connections list displays all alert–NC code links, grouped by alert. Each entry shows the NC code, description, severity, and the configured quantity.
To remove a connection, click the Delete button next to it. This only removes the link, not the alert or NC code themselves.
Tip: Connect alerts to relevant NC codes to simulate realistic quality issues when specific alert conditions occur during production.
9. Advanced Database Features
The Advanced Database Features provide powerful tools for extending MaConSim’s data model and automating database operations. These features allow you to add custom data fields to entities and create automated responses to database changes.
Navigate to a plant → Advanced Database Features (top tab bar).
License requirement: Advanced Database Features require the appropriate database entitlement.
9.1 Database Triggers
Database triggers allow you to automatically execute SQL statements in response to specific database events such as INSERT, UPDATE, or DELETE operations on a table. This enables powerful automation without requiring external integration.
Key capabilities:
- Create and manage triggers: Define triggers with custom SQL that executes automatically when specified events occur
- SQL validation: Built-in validation ensures your trigger SQL is syntactically correct before saving
- Dialect support: Automatic adaptation for SQLite and PostgreSQL database syntax
- Target table selection: Associate triggers with specific tables from the available MaConSim data model
- Active/Inactive status: Enable or disable triggers without deleting them
- Example templates: Pre-configured SQL examples for common use cases on different tables
Common use cases:
- Automatically update related records when data changes (e.g., update machine status when an SFC completes)
- Enforce business rules and data validation beyond standard constraints
- Log changes to critical data for audit purposes
- Cascade updates across related tables
To create a database trigger:
- Navigate to Advanced Database Features → Database Triggers (Global)
- Click Create Trigger
- Enter a Name and optional Description
- Select the Target Table from the dropdown
- Write or paste your trigger SQL in the editor
- Click Validate SQL to check for syntax errors
- Toggle Active to enable the trigger (enabled by default)
- Click Save
The trigger editor provides:
- Example SQL: Load pre-configured examples for the selected table type
- Table browser: Preview actual table data and schema to help write accurate SQL
- Validation feedback: Clear error messages for SQL syntax issues
- Duplicate detection: Warning if a trigger with the same name already exists
9.2 Custom Variables
Custom Variables allow you to add custom data fields to MaConSim entities, extending the standard data model without modifying the core database schema. These fields can store additional information specific to your use case or organization.
Key capabilities:
- Flexible field types: Support for Text, Integer, Numeric, and Boolean data types
- Entity association: Attach custom fields to various entity types including Plants, Machines, Orders, Materials, Alerts, Data Collections, and NC Codes
- Global or scoped: Create global variables or scope them to specific entities
- Validation: Automatic validation based on the selected data type
- Search and filter: Quickly find custom variables by name or entity type
Common use cases:
- Add organization-specific metadata to machines (e.g., maintenance schedules, location codes)
- Extend order data with custom tracking fields (e.g., customer reference numbers, priority codes)
- Store additional material properties not covered by standard fields
- Track custom configuration parameters for alerts or data collections
To create a custom variable:
- Navigate to Advanced Database Features → Custom Variables
- Click Create Custom Variable
- Select the Entity Type (e.g., Machine, Order, Plant, Global)
- Enter the Field Name (must be unique within the entity scope)
- Select the Value Type (Text, Integer, Numeric, or Boolean)
- Enter the Field Value (must match the selected type)
- Add an optional Description to document the field’s purpose
- Click Save
The custom variable editor provides:
- Type-specific validation: Prevents invalid values (e.g., non-numeric input for Numeric type)
- Duplicate detection: Ensures field names are unique within their entity scope
- Entity filtering: View variables by specific entity type
- Search functionality: Quickly locate variables by name
10. Production Operator Dashboard
The Production Operator Dashboard is the central control and monitoring view during an active simulation. It provides a real-time view of all order processes in the plant, allows starting and stopping production per machine, and displays progress, queue status, and recent events.
Navigate to a plant → Production Operator Dashboard (top tab bar).
License requirement: The Production Operator Dashboard requires the
productionOperatorDashboardentitlement.
10.1 Overview
An order process is the combination of a machine running a specific order at runtime. The dashboard is organized into three main sections:
- Summary Cards: Display counts for In Progress, Pending, Recently Completed, and Total Orders
- Running Orders: Currently executing order processes with live progress updates
- Order Queue: Pending order processes waiting to be started
- Recently Completed Orders: The last 5 completed orders with a link to view full history
The dashboard auto-refreshes every second to provide real-time updates on all order processes.
10.2 Running Orders Table
The Running Orders table shows order processes that are currently being executed. Each row displays:
| Column | Description |
|---|---|
| Order ID | Unique identifier for the order |
| Machine | The machine assigned to this order process |
| Machine State | Live status badge reflecting ISA-95/PackML machine states |
| Order Name | The name of the production order |
| Progress | Progress bar with percentage, showing yield quantity vs. target quantity |
| Total Produced | Total parts produced (good + scrap) |
| Good Parts | Count of acceptable parts produced |
| Scrap Parts | Count of rejected parts |
| Status | Order status badge (IN_PROGRESS) |
| Last Updated | Timestamp of the last update |
| Actions | Stop button to halt the simulation |
10.3 Order Queue Table
The Order Queue table shows pending order processes that are waiting to be started. Each row displays:
| Column | Description |
|---|---|
| Queue Position | Position in the queue (1 = next to run) |
| Order ID | Unique identifier for the order |
| Machine | The machine assigned to this order process |
| Machine State | Live status badge reflecting ISA-95/PackML machine states |
| Order Name | The name of the production order |
| Target Parts | Total parts the order requires |
| Status | Order status badge |
| Created | Timestamp when the order process was created |
| Actions | Play button to start simulation, Delete button to remove order process |
10.4 Filtering
Use the machine filter multi-select dropdown in the header to restrict the view to one or more specific machines. This is useful in large plants with many machines running simultaneously. Filtering does not stop or affect any running simulations — it changes only what is displayed.
10.5 Starting Production
To start a simulation on a machine:
- Ensure the machine has at least one scenario connected (Section 8.1).
- Ensure there is at least one order process in the queue for the machine.
- On the dashboard, click Play next to the order process in the Order Queue table.
- The machine status changes to EXECUTE and the progress bar begins advancing with each takt.
Note: If a machine has no simulation connection configured, the dashboard will prevent starting the order.
10.6 Stopping Production
Click Stop next to a running order process in the Running Orders table to stop the simulation. The machine status returns to IDLE. Progress already recorded is retained — you can restart later and production will continue from where it left off.
10.7 Deleting an Order Process
Click the Delete button next to a pending order process in the Order Queue table to remove it. You will be prompted to confirm the deletion.
10.8 Expanding an Order
Click the chevron next to any order row (running or pending) to expand it and see detailed information in three columns:
- SFCs: All SFCs associated with this order, showing SFC number, yield quantity vs. planned quantity, unit of measure, last produced timestamp, and status badge
- Alerts: All alert events triggered for this order process, showing alert name, message, occurrence timestamp, severity badge, and acknowledgment status. The panel header displays a count overview (e.g.,
total: 11 / acknowledged: 0 / active: 11). You can acknowledge individual alerts by clicking the checkmark button, and clear them by clicking the X button. Acknowledged alerts show an "Ack" badge, while unacknowledged alerts show "Unack" - NC Codes: All nonconformance events logged for this order process, showing NC code, description, quantity, occurrence timestamp, and severity badge
10.9 Recently Completed Orders
The Recently Completed Orders section shows the last 5 completed orders across all machines in the plant. This provides a quick at-a-glance overview of recent production results. Click View All History to navigate to the Order History page (Section 11.1) for complete historical data.
11. Event Logs
The Event Logs provide a permanent record of all production activity in the plant. Unlike the dashboard (which shows live and recent data), the Event Logs store the full history for the life of the plant and can be used for quality reporting and process analysis.
Navigate to a plant → Event Logs.
The Event Logs section contains three main areas:
- Order History: Complete log of all completed production orders
- Alert History: Record of all alert events with management capabilities
- NC Code Occurrences: Tracking of all nonconformance events
Each log provides detailed views of historical production activity.
11.1 Order History
Navigate to a plant → Event Logs → Order History.
The Order History displays a complete log of all completed production orders with archived SFC snapshots. The main table shows:
| Column | Description |
|---|---|
| Order ID | Unique identifier for the order |
| Order Name | The name of the production order |
| Machine | The machine on which the order was processed |
| Target | Target quantity for the order |
| Total Produced | Total parts produced (good + scrap) |
| Good Parts | Count of acceptable parts produced |
| Scrap | Count of rejected parts (highlighted in red if > 0) |
| Status | Final order status badge (e.g., COMPLETED, CANCELLED) |
| Completed | Timestamp when the order was completed |
| Actions | Delete button to remove history entry |
Expanded Order Details: Click the chevron next to any order to expand it and see:
- Summary Cards: Yield percentage, Cycle Time in seconds, Number of SFCs, Good Parts count
- SFC Snapshots at Completion: Detailed table showing each SFC’s state at order completion:
- SFC Number (with replacement indicator for rework SFCs)
- Material
- Status badge
- Planned quantity
- Yield quantity
- Scrap quantity
- Current step / Total steps
- Started: Timestamp when this SFC was started
- Completed: Timestamp when this SFC was completed
Additional Feature:
- Delete individual history entries with confirmation
License requirement: Requires the
orderHistoryentitlement.
11.2 Alert History
Navigate to a plant → Event Logs → Alert History.
The Alert History shows all alert events triggered during simulation with management capabilities. The main table displays:
| Column | Description |
|---|---|
| Alert | Alert name and optional message |
| Machine | The machine that generated the alert |
| Severity | Severity level badge (Low, Medium, High, Critical) |
| Occurred | Timestamp when the alert was triggered |
| Duration | How long the alert was active (or "Active" badge if still open) |
| Status | Acknowledged or Unacknowledged badge |
| Actions | Acknowledge, Clear, Delete buttons |
Additional Features:
- Record Alert: Click the "Record Alert" button to manually log a new alert occurrence
- Select Alert type from existing alerts
- Select Machine
- Set Severity level
- Add optional message
- Alert Management Actions:
- Acknowledge: Mark an unacknowledged alert as acknowledged
- Clear Alert: Clear an active alert
- Delete: Remove alert history entry permanently
- Empty state message when no alerts exist
- Error handling with dismissible alerts
Use the alert history to analyze the frequency and distribution of machine alerts over time, validate scenario parameters, and ensure alerts are properly acknowledged and cleared.
License requirement: Requires the
alertHistoryentitlement.
11.3 NC Code Occurrences
Navigate to a plant → Event Logs → NC Code Occurrences.
The NC Code Occurrences log tracks all nonconformance events with recording capabilities. The main table displays:
| Column | Description |
|---|---|
| NC Code | Nonconformance code with description |
| Machine | The machine on which the event occurred |
| SFC | The SFC on which the event occurred |
| Severity | Severity level badge (Minor, Major, Critical) |
| Quantity | Number of defective parts for this occurrence |
| Occurred | Timestamp when the nonconformance was logged |
| Comment | Optional notes about the occurrence |
| Actions | Delete button to remove the entry |
Additional Features:
- Record NC Code Occurrence: Click the "Record Occurrence" button to manually log a new nonconformance event
- Select NC Code from existing codes
- Select Machine
- Set Quantity (minimum 1)
- Add optional comment
- Delete individual occurrence entries with confirmation
- Empty state message when no NC code occurrences exist
- Error handling with dismissible alerts
Use the NC code log to identify which defect types occur most frequently, on which machines, and correlated with which orders — supporting quality analysis and process improvement.
License requirement: Requires the
ncCodeHistoryentitlement.
11.4 Tool Usage Log
Navigate to a plant → Event Logs → Tool Usage Log.
The Tool Usage Log tracks all tool usage events across machines with manual recording capabilities. The main table displays:
| Column | Description |
|---|---|
| Id | Unique identifier for the log entry |
| Tool | Name of the tool used |
| Machine | The machine where the tool was used |
| SFC | The SFC number associated with the usage, if any |
| Quantity | How many times the tool was used in this event |
| Occurred | Timestamp when the usage was logged |
| Comment | Optional notes about the usage event |
| Actions | Delete button to remove the entry |
Additional Features:
- Record Tool Usage: Click the "Record Usage" button to manually log a new tool usage event
- Select Tool from existing tools
- Select Machine from existing machines
- Set Quantity (minimum 1)
- Add optional comment
- Delete individual tool usage entries with confirmation
- Empty state message when no tool usage entries exist
- Error handling with dismissible alerts
Use the tool usage log to track tool consumption, maintenance schedules, and correlate tool wear with quality issues.
12. Connectivity
Navigate to a plant → Connectivity to configure OPC UA and MQTT integrations with external systems.
12.1 OPC UA
MaConSim includes an embedded OPC UA server that can expose machine simulation data to external MES/SCADA/DCS systems.
Navigate to a plant → Connectivity → OPC UA to access the OPC UA Tree Management interface.
12.1.1 Creating an OPC UA Tree
The OPC UA Tree Management interface displays all existing OPC UA trees in a table view with their configuration and security status.
To create a new OPC UA tree:
- Click Add OPC UA Tree.
- Configure the tree settings in the dialog:
| Field | Description | Default |
|---|---|---|
| Name | Display name for the tree | — |
| Server Address | Hostname or IP address to bind the server to | localhost |
| Server Port | TCP port number for the OPC UA server | 4840 |
| Description | Optional description of the tree’s purpose | — |
- Security Configuration (expandable section):
| Field | Description | Default |
|---|---|---|
| Security Mode | Message security level | None |
| Security Policy | Cryptographic algorithm (dropdown appears only when Security Mode ≠ None) | None |
| User Authentication | Authentication method for clients (single-selection radio buttons) | Anonymous |
| Username | Required when User Authentication = Username/Password | — |
| Password | Required when User Authentication = Username/Password | — |
UI Behavior Notes:
- User Authentication uses single-selection radio buttons — only one authentication method can be active at a time
- Security Policy dropdown automatically appears when Security Mode is set to
SignorSignAndEncrypt - When Security Mode is changed to
None, the Security Policy automatically resets toNone - For existing trees with Username authentication, a "View Current" button allows viewing stored credentials
Security Mode Options:
None– No security, messages sent in plain textSign– Messages are signed but not encryptedSignAndEncrypt– Messages are signed and encrypted (recommended for production)
Security Policy Options:
None– No cryptographic securityBasic128Rsa15– Legacy (DEPRECATED since OPC UA 1.04)Basic256– Legacy (DEPRECATED since OPC UA 1.04)Basic256Sha256– Compatible with older clientsAes128Sha256RsaOaep– Modern, good performance (recommended)Aes256Sha256RsaPss– Highest security level
User Authentication Options:
Anonymous– No authentication requiredUserName– Authenticate with username and passwordCertificate– Authenticate with X.509 certificateIssuedToken– Authenticate with OAuth/JWT token
- Click Create to save the tree.
Note: When selecting Certificate authentication, you can upload trusted client certificates (.der, .pem, .crt, or .cer files) and manage the trusted certificate list directly in the tree creation dialog.
12.1.2 OPC UA Tree Management
Important: Any changes to OPC UA tree configurations or nodes require the server to be stopped first. Before editing a tree configuration, adding, editing, or deleting nodes: stop the server using the Stop button, make your changes, then restart the server using the Play button for the changes to take effect.
The OPC UA Tree Management table displays all trees with the following columns:
| Column | Description |
|---|---|
| Name | Tree name with optional description shown below |
| Server Address | Hostname or IP address and port (e.g., localhost:4840) |
| Security | Color-coded badge indicating security mode: 🟡 Yellow "No Security" for None mode, 🟢 Green "Encrypted" with 🔒 icon for SignAndEncrypt mode, 🔵 Blue "Signed" with 🛡️ icon for Sign mode |
| User Auth | User token types configured (e.g., Anonymous, UserName, Certificate, IssuedToken) displayed as comma-separated text |
| Created | Date when the tree was created |
| Actions | Server control and management buttons |
Table Features:
- Click any tree row to enter its Node Management view
- Hover over security badges to see the security mode details
- User token types are displayed directly in the table for quick reference
Actions available for each tree (6 action buttons):
| Action | Icon | Description |
|---|---|---|
| Start/Stop Server | ▶️⏹️ | Play button starts the OPC UA server, Stop button stops it |
| Edit | ✏️ | Modify tree configuration, security settings, or authentication credentials |
| Export NodeSet2 XML | 📥 | Download button to export the tree as NodeSet2 XML file |
| Import NodeSet2 XML | 📤 | Upload button to import a NodeSet2 XML file (replaces existing nodes) |
| Copy Tree | 📋 | Duplicate the tree with a new name (creates a copy with "(Copy)" suffix) |
| Delete | 🗑️ | Remove the tree and all its nodes (with confirmation dialog) |
Starting and Stopping Servers:
- Click Play on an OPC UA tree to start the server
- Click Stop to stop it
- Server state is indicated by color-coded badges:
- Yellow "No Security" badge for unsecured servers
- Green "Encrypted" badge for SignAndEncrypt mode
- Blue "Signed" badge for Sign mode
- Port Conflict Detection: The system automatically checks if the port is already in use by another running server and prevents starting with an error message showing which tree is using the port
- Success and error messages are displayed temporarily when starting/stopping servers
Editing Trees:
- Click the Edit button to modify any tree configuration
- Change basic settings, security configuration, or authentication credentials
- For trees with username authentication, you can view current credentials using the "View Current" button
Tree Navigation:
- Click on any tree row to enter the node management view for that tree
- Use the back arrow to return to the tree list
12.1.3 NodeSet2 Import and Export
Import NodeSet2 XML: You can import an OPC UA NodeSet2 XML file to pre-populate the node tree:
- Click Import NodeSet2 button on an OPC UA tree from the tree list
- Confirm the action (importing will replace the tree’s current nodes and references)
- Select the
.xmlfile from your file system - The import summary will show the number of nodes created, references created, and namespace URIs processed
Export NodeSet2 XML:
- Click Export NodeSet2 button on an OPC UA tree from the tree list
- A save dialog will appear with a suggested filename based on the tree name
- Choose the destination and save the
.xmlfile - A success message will confirm the export location
12.1.4 Certificate Management
When using Sign or SignAndEncrypt security modes, certificates are managed automatically.
Certificate Storage:
- On Windows:
C:\Users\{username}\AppData\Roaming\com.maconsim.app\pki\ - Certificate files are stored with extensions:
.der,.pem,.crt, or.cer
Managing Trusted Certificates:
When creating or editing a tree with Certificate authentication, the X.509 Certificate Authentication section appears with the following features:
-
Upload Client Certificate:
- Click the file input or drag-and-drop a certificate file
- Supported formats:
.der,.pem,.crt,.cer - Invalid file types trigger an error message
- Uploaded certificates appear in the Trusted Certificates list
- A loading spinner indicates upload progress
-
Trusted Certificates List:
- Displays all currently trusted certificate filenames in a scrollable list
- Each certificate filename is shown in monospace font for clarity
- Each certificate can be deleted individually using the Delete button
- Deleting a certificate removes it from the trusted store
- The list updates automatically after upload or deletion
UI Indicators:
- Loading state shown while certificates are being loaded
- Success messages confirm successful uploads and deletions
Note: Server certificates are generated automatically when using security modes other than None.
License requirement: OPC UA functionality requires the
opcUaServeroropcUaCliententitlement.
12.1.5 OPC UA Node Management
After creating an OPC UA tree, click on it to access the Node Management interface. This displays the tree structure with all nodes and allows you to add, edit, and organize nodes.
Node Management Interface Features:
- Tree View: Hierarchical display of all nodes with expand/collapse controls
- Live Value Display: Variable nodes show their current values with live/static indicators
- Node Type Indicators: Objects (📦), Variables (🔢), Methods (⚙️), Views (👁️) with color coding
- Simulation Badges: Variables with simulation configs show their simulation mode
- Server Controls: Start/Stop server buttons are available in the node view
- Chart Preview: For simulation variables, a Live Chart button appears for real-time visualization
View Switcher Tabs: MaConSim provides two different views for managing OPC UA nodes:
| Tab | Icon | Purpose |
|---|---|---|
| Instances | 🌳 (GitBranch) | Manage the actual node instances in your OPC UA address space. This is where you create and organize Objects, Variables, Methods, and Views that represent your machine data and hierarchy. |
| Type Definitions | 📦 (Box) | Manage the OPC UA type system (ObjectTypes, VariableTypes, DataTypes, ReferenceTypes). Use this to define reusable type definitions that can be instantiated in the Instances view. |
When to use each view:
- Instances: For creating your actual production data model (machines, sensors, status variables, etc.)
- Type Definitions: For creating custom types that can be reused across multiple instances (e.g., a "MachineType" that defines a standard machine structure)
Tree Navigation:
- Click the chevron buttons (▶️/▼) to expand or collapse individual nodes
- Use Expand All and Collapse All buttons to control tree visibility for the entire hierarchy
- Hover over nodes to see additional actions (Add Child, Edit, Delete, etc.)
- Node icons help identify node types at a glance
12.1.5.1 Adding Nodes
To add a root node (for empty trees):
- Click Add Node button
- The system automatically selects Object type for root nodes
To add a child node:
- Navigate to the parent node in the tree
- Hover over the parent node to reveal the Add Child button
- Click Add Child or click Add Node for a root-level node
Node Creation Dialog:
-
Select Node Type (required):
- Object: Container node for hierarchical organization (e.g., machines, subsystems)
- Variable: Data value node that OPC UA clients can read/subscribe to
- Method: Executable function node that clients can invoke
- View: Visual organization node for grouping related nodes in the address space
-
Basic Node Information:
- Namespace: Numeric namespace identifier (default: 2)
- Identifier Type: NodeId identifier type. Available options:
Type Label Description sString String identifier (e.g., MyNode) — defaultiNumeric Numeric identifier (e.g., 12345)gGUID GUID identifier (e.g., {6B29308F-...})bByteString ByteString identifier (Base64 encoded) - Identifier: Unique identifier within the namespace (required)
- Browse Name: Programmatic name used for browsing (required)
- Display Name: Human-readable name (optional)
- Description: Optional node description
- Node Class: OPC UA node class (auto-populated based on type)
-
For Variable Nodes:
- Data Type: Select from available OPC UA data types (String, Int32, Int64, Float, Double, Boolean, DateTime, ByteString)
- Access Level: Read, Write, or Read/Write permissions
- Units: Optional unit of measurement (e.g., °C, bar, rpm)
- Update Interval: Polling interval in milliseconds (default: 1000ms)
-
For Method Nodes:
- Executable: Enable/disable method execution
- User Executable: User-specific execution permissions
- Method Source: Choose between Python Script or Low-Code Flow to define the method logic
- Method Language: Set to ‘python’ for Python-based methods
- See Method Configuration below for detailed instructions on creating method nodes
12.1.5.2 Data Source Configuration
For detailed instructions on data source configuration, see Section 13. The same data source types and configuration options are available for both OPC UA and MQTT connectivity.
12.1.5.3 Method Configuration
Method Source Options:
When creating a Method node, you must choose how the method logic is defined:
- Python Script: Write method logic using Python code. Full flexibility with access to allowed standard library modules and system capabilities via host.call().
- Low-Code Flow: Define method logic visually by connecting capability calls and data transformations on a canvas. No coding required.
Python Runtime Requirements:
Method nodes (both Python Script and Low-Code Flow) require Python 3.x to be installed and available on your system:
- The Python executable must be in your system PATH or configured via the
MES_PYTHONenvironment variable - MaConSim automatically checks Python availability when opening the node form
If Python is not available:
- Both Python Script and Low-Code Flow method sources are disabled
- An alert message explains the issue and provides resolution hints
- Existing Python methods can still be edited (but not validated or tested)
If Python is available:
- Runtime version information is displayed
- All method source options are enabled
Creating Python Script Methods:
- Select Method as the node type
- Choose Python Script as the method source
- Write your method logic in the script editor
Function Requirements:
- Define a single Python function
- Use type hints for parameters and return value
- Supported parameter types: int, float, str, bool
- Supported return types: int, float, str, bool, tuple[…]
- Function name is used as the method identifier (auto-fills browse name and display name)
Example:
def calculate_area(radius: float) -> float:
import math
return math.pi * radius ** 2
Real-time Validation: As you type, the system validates your script (with a short delay to avoid excessive checking):
- Valid scripts show a green confirmation with parsed signature
- Invalid scripts show red error messages
- Validation errors auto-dismiss after 5 seconds
- Function signature (name, parameters, return type) is extracted and displayed
Quick Examples: Jumpstart your method development with pre-built examples:
- Circle area calculation (uses math module)
- Get machine by id (uses host.call to query database)
- Add order to machine (uses host.call to modify simulation state)
- Set machine status (uses host.call to control machine state)
Click any example to insert its code into the editor automatically.
Capability Palette: Browse and insert system capabilities directly into your script:
- Click Capabilities to expand the palette
- Browse available host.call() capabilities
- Click a capability to insert a code snippet at your cursor position
This provides easy access to system functions like database queries, machine control, and simulation state modifications.
Available OPC UA Nodes Browser: Discover existing OPC UA nodes to reference in your method:
- Click Available OPC UA Nodes to expand
- Select a tree from the dropdown (current tree or sibling trees)
- Browse the node table showing ID, Name, Type, and Node Identifier
- Use the displayed Node Identifier (e.g.,
ns=2;s=Temperature) to reference nodes in your capability calls
Available Database Tables Browser: Preview database table contents to understand data structure:
- Click Available Database Tables to expand
- Select a table from the dropdown
- View table rows in a preview grid
- Reference table names, column names, and values in your method logic
Allowed Python Modules: The following standard library modules are available for import:
- math, datetime, json, re, itertools, functools, decimal, fractions, statistics, random
Test Execution: Verify your method works before saving:
- Enter test values for each parameter (input fields match the parameter types)
- Click Run Test
- View results including:
- Success/failure indicator
- Execution time in milliseconds
- Output values with their types
- Errors are displayed with helpful messages
- Test results auto-dismiss after 5 seconds
Creating Low-Code Flow Methods:
- Select Method as the node type
- Choose Low-Code Flow as the method source
- Define your method’s inputs and outputs
- Build the logic on the flow canvas
Defining Inputs:
- Each input has a name and type (int, float, str, bool)
- Click Add Input to add more parameters
- Click the trash icon to remove an input
Defining Outputs:
- Each output has a name and type (int, float, str, bool)
- At least one output is required (default: "result" of type bool)
- Click Add Output to add more return values
- Click the trash icon to remove an output (cannot remove the last one)
Flow Node Types:
Every low-code flow consists of nodes connected together. Each flow must start with a Start node (automatically created with your method’s input parameters) and must end with a Return node (which defines the output values).
Available node types (accessed via the Add step button on any node):
-
Start: The entry point of your flow. Automatically created based on your method’s input parameters. Each input appears as a data source handle that can be wired to other nodes.
-
Capability Call: Invokes a system capability (function). Select from available capabilities, provide arguments (literals or variable references), and optionally name an output variable to store the result.
-
Branch (if / else): Implements conditional logic. Define a condition using comparison operators (==, !=, <, <=, >, >=) or logical operators (and, or, not), then specify different step sequences for the then (true) and else (false) branches.
-
For Each: Iterates over a list. Provide a list (literal or variable reference) and a variable name for the current item, then define the loop body steps that execute for each item.
-
Set Variable: Creates or updates a named variable. Specify a variable name and a value (literal or reference to another variable/output). The variable can be used by subsequent nodes.
-
Return: The exit point of your flow. Map each of your method’s output parameters to a value (literal or variable reference). Required — flows without a Return node are invalid.
Creating Connections:
- Drag from an output handle (right side of a node) to an input handle (left side of another node)
- Or use the dropdown next to each input field to select a variable/value
- The canvas validates that all required inputs are wired
Testing Flow Methods:
- Define test values for inputs (if any)
- The flow is automatically validated when you save
- Invalid flows show error messages (e.g., unwired inputs, missing Return step)
Tip: The flow canvas is ideal for users who prefer visual programming over writing code. It provides the same functionality as Python scripts but with a more intuitive interface.
Testing Methods Without Starting a Server:
You can test method nodes directly without starting an OPC UA server:
- In the OPC UA Node Management tree view, find your method node
- Click the Play button (Play icon) next to the method node
- The "Test Call Method" dialog opens
Using Test Call Method:
- Input fields are automatically populated based on the method’s parameter definitions
- Enter values for each input argument
- Click Call to execute the method in-process
- View results including:
- Success/failure indicator
- Execution time
- Output values with their types
Note: This feature allows rapid testing during development without requiring an OPC UA client connection or running server. It uses the same Python runtime and method logic that would be invoked by an OPC UA client.
12.1.5.4 Node References
Node references define how nodes are linked in the OPC UA address space for browsing and semantic structure.
Available Reference Types:
- Organizes: Hierarchical organization relationship
- HasComponent: Functional component relationship (common for machine parts)
- HasProperty: Property/attribute relationship (common for metadata)
- HasTypeDefinition: Type definition relationship
- HasSubtype: Inheritance relationship
- HasModellingRule: Modelling rule relationship
- HasEncoding: Encoding relationship
- HasDescription: Description relationship
- GeneratesEvent: Event generation relationship
Reference Behavior:
- Hierarchical references (
Organizes,HasComponent,HasProperty) create parent-child relationships in the tree view - Non-hierarchical references describe semantic relationships without affecting tree position
- When adding a child node under a parent, MaConSim automatically creates a
HasComponentreference - References can be customized to reflect your modeling intent
Practical Guidelines:
- Use Object nodes with
OrganizesorHasComponentto structure systems and subsystems - Use Variable nodes with
HasComponentfor operational signals orHasPropertyfor descriptive attributes - Use Method nodes with
HasComponentwhen they belong to a specific subsystem
12.1.5.5 Live Value Display and Monitoring
Live Value Indicators:
- Variable nodes display their current values in the tree
- Values are color-coded:
- Green badge: Live value from running OPC UA server
- Amber badge: Static value (server not running or value not updated)
- Values are truncated if longer than 8 characters (hover to see full value)
- An indicator shows whether the value is live or static
Real-time Value Updates:
- The UI updates node values every second to display current data
- Live values are read directly from the running OPC UA server’s address space
- When the server is stopped, values fall back to the database-stored current value
- Database-referenced and simulation nodes update automatically when their source data changes
Chart Preview:
- For simulation variables with supported modes (sine, sawtooth, random), a chart button appears
- Click the Live Chart button to open a real-time visualization
- Chart shows value changes over a configurable time window (default: 60 seconds)
12.1.5.6 Editing and Deleting Nodes
Editing Nodes:
- Click the Edit button next to any node to edit its properties
- Modify any node configuration (type, identifiers, data source, etc.)
- For database references, changing the table/row/column will update the data source
- Click Save to apply changes and refresh the tree
Deleting Nodes:
- Click the Delete button next to any node
- The node and all its children will be deleted permanently
- Deletion cannot be undone
12.1.5.7 Typical Use Cases
Expose Machine Status:
- Add an Object node for the machine
- Add Variable nodes for each status aspect (Running, Idle, Error)
- Set data source to Database Reference and link to machine status fields
- Use Boolean data type for status flags
Publish Sensor Data:
- Add Object nodes to organize sensors by type or location
- Add Variable nodes for each sensor reading
- Set data source to Database Reference and link to data collection channels
- Configure appropriate data types (Float for temperatures, Int32 for counts, etc.)
- Set units for better client interpretation
Simulate Dynamic Data:
- Add Variable nodes for dynamic values
- Set data source to Simulation
- Choose simulation mode (sine for oscillating values, random for variable data, etc.)
- Configure simulation parameters (min/max values, frequency, etc.)
- Monitor values in real-time using the live chart
Organize Complex Systems:
- Use Object nodes to create a hierarchical structure matching your plant
- Group related variables and methods under appropriate parent objects
- Use meaningful reference types to indicate relationships
- Set descriptive display names and descriptions for all nodes
Create Custom Actions:
- Add Method nodes to expose custom functionality
- Use Python methods for complex logic or calculations
- Use method templates for predefined common operations
- Configure input/output arguments as needed
- Test methods using the built-in test execution feature
12.2 MQTT
MaConSim can publish machine simulation data to MQTT brokers.
Navigate to a plant → Connectivity → MQTT.
12.2.1 Creating a Broker Tree
- Click Add Broker Tree.
- Configure:
| Field | Description | Default |
|---|---|---|
| Name | Display name of the broker tree | — |
| Description | Optional notes for this broker tree | — |
| Broker Host | Broker hostname or IP address | localhost |
| Broker Port | MQTT TCP port | 1883 |
| WebSocket Port | Optional MQTT-over-WebSocket port | — |
| Username / Password | Optional login credentials | — |
| Client ID | MQTT client identifier used by MaConSim | Auto-generated (mqtt-client-${timestamp}) |
| Keep Alive (seconds) | Keep-alive interval for the client connection | 60 |
| Max Buffer Size | Internal message buffer size | 10000 |
| Max Connections | Maximum concurrent connections | 1000 |
| Birth Topic / Birth Message | Optional online-status publish message when connecting | — |
| Last Will Topic / Last Will Message | Optional offline-status message if the client disconnects unexpectedly | — |
| Authentication | Toggle to require username/password auth | Off |
| TLS/SSL | Enable encrypted MQTT connections | Off |
| Enabled | Enable/disable this broker tree configuration | On |
- Click Add Broker Tree.
12.2.2 Starting and Stopping a Broker Tree
- Click Play to start the broker runtime.
- Click Stop to stop it.
- The broker row and detail view show a
Running/Stoppedstate badge. - In the topic tree view, use the Start Broker/Stop Broker buttons to control the broker state.
12.2.3 Topic Tree and Add Topic Configuration
After creating a broker tree, open it to manage the Broker Topic Tree. Topics are shown as a hierarchical tree derived from slash-separated topic paths, with folder indicators for parent nodes and signal-type indicators for leaf topics.
You can add topics from:
- The main Add Topic button,
- A folder node (Add Topic under a path prefix),
- A leaf node (Add to create a sibling topic).
- Topics can be organized in a hierarchical folder structure using slash-separated paths.
Add Topic Configuration:
- Open a broker tree.
- Click Add Topic.
- Configure the topic with the following fields:
| Field | Description | Default |
|---|---|---|
| Topic Path | Full MQTT topic path (slash-separated) | — |
| Signal Type | Message category (status, telemetry, event, alarm, metrics, command) |
telemetry |
| QoS Level | MQTT QoS level (0, 1, 2) |
1 |
| Publish Interval (ms) | Publish cadence for this topic | 1000 |
| Retain Message | Broker retains the last message for new subscribers | Off |
| Enabled | Topic active/inactive state | On |
- Optionally configure an inline data source directly in the topic dialog using the embedded data source selector.
- Click Create Topic.
Topic path conventions:
MQTT topic paths are slash-separated strings. A common convention for machine data is:
{plant}/{machine}/{data-channel}
For example:
factory-berlin/press-1/spindle-temperaturesite-a/cnc-3/vibration-level
Each topic must be a fully specified path. Use path segments to build a clear hierarchy.
Topics can be removed via the topic row action (Delete topic).
12.2.3.1 Live Value Monitoring
MaConSim provides real-time monitoring of MQTT topic values:
- Live Value Updates: The UI updates topic values every 2 seconds to display current data
- Visual Indicators: Current field values are displayed in the topic tree as badges showing the field count and values
- Simulation vs Static: Simulation-based values show green indicators, while static/database values show blue indicators
- Multi-field Display: Topics with multiple data sources show the total field count and first field value with a tooltip showing all field values
- Status Badges: Each topic displays its signal type, QoS level, retain status, and enabled/disabled state
12.2.4 Data Source Configuration
For detailed instructions on configuring data sources, see Section 13. This section applies to both OPC UA and MQTT connectivity.
13. Data Source Configuration
The Data Source Configuration system provides the foundation for connecting MaConSim simulation data to external systems via OPC UA and MQTT. This chapter documents the shared configuration options available for both connectivity types, with a focus on the comprehensive Database Reference capabilities including JOIN functionality.
Note: The same data source types and configuration options are available for both OPC UA Variable nodes (Section 12.1.5.2) and MQTT topics (Section 12.2.4).
13.1 Overview
Data sources define where the values for OPC UA variables or MQTT topic fields come from. MaConSim supports three fundamental data source types:
- Static Value: Fixed values that remain constant until manually changed
- Database Reference: Dynamic values linked to real-time data from the MaConSim database
- Simulation: Dynamically generated values using various simulation modes (sine, random, etc.)
The Database Reference type offers the most flexibility and power, allowing you to create complex queries with JOINs, filters, sorting, and aggregation to extract exactly the data you need from your plant database.
13.2 Data Source Types
| Type | Description | Best For |
|---|---|---|
| Static Value | Set a fixed value that remains constant until manually changed | Configuration constants, test values, or values that rarely change |
| Database Reference | Link to real-time data from the MaConSim database with full SQL query capabilities | Dynamic machine data, order information, event logs, or any database-stored values |
| Simulation | Dynamically generate values using simulation configurations (sine, sawtooth, random, etc.) | Testing, demonstrations, or simulating sensor data without actual database entries |
For Variable nodes in OPC UA, the data source type is configured via the Value Source dropdown. For MQTT topics, each field within a topic has its own Source Type configuration.
13.3 Database Reference Configuration
The Database Reference configuration provides a visual query builder that allows you to create sophisticated database queries without writing SQL manually. The configuration interface is organized in a specific order that follows the natural flow of building a query.
13.3.1 Table and Column Selection (UI Position 1)
The first step in building a database reference query is selecting the source data.
Table Selection:
- Choose from all available database tables in the Table dropdown
Column Selection:
- After selecting a table, choose a specific column from the Column dropdown
- Each column entry displays the column name and its data type (e.g.,
machine_name (String)) - Only columns from the selected table are available
13.3.2 JOIN Configuration (UI Position 2)
The JOIN Configuration allows you to combine data from multiple tables to create comprehensive queries that span across different entities in your plant.
Adding JOINs:
- Expand the JOINs section by clicking the JOINs button
- Click Add JOIN to add your first join condition
- Up to 4 JOINs can be configured per query
JOIN Types:
| Type | Description | Typical Use Case |
|---|---|---|
| INNER JOIN | Returns only rows that have matching values in both tables | Finding machines with active orders |
| LEFT JOIN | Returns all rows from the left table, and matched rows from the right table (or NULL if no match) | Including all machines regardless of order status |
| RIGHT JOIN | Returns all rows from the right table, and matched rows from the left table | Finding all orders and their machine assignments |
ON Condition Builder: The visual builder provides an intuitive interface for creating JOIN conditions:
- Left Table/Column: Select the column from your primary or previously joined table
- Operator: Choose the comparison operator (typically
=for JOINs) - Right Table/Column: Select the column from the table you are joining
The builder uses dropdowns for table and column selection, ensuring only valid combinations are available.
Table Aliases:
- Optionally assign a short alias to each joined table
- Aliases make queries more readable and manageable
- When configured, column references in the query will use the format
alias.columninstead oftable.column - Example: Join the
orderstable with aliaso→ columns becomeo.order_name,o.target_quantity
Column Selection with JOINs:
- After adding JOINs, the Column dropdown includes entries from all joined tables
- Columns are displayed in
table.columnformat (oralias.columnif aliases are defined) - This allows you to select values from any table in your JOIN chain
Example JOIN Configuration: To create a query that gets the alert name of an alert, that occured on a specific machine:
- Select primary table:
alerts - Select column:
name - Add JOIN: INNER JOIN with
alert_historytable - ON Condition:
machines.id = alert_history.alert_id
You now have access to the alert names of the alerts that occured.
13.3.3 Preview Rows of Tables (UI Position 3)
The Preview Rows feature allows you to inspect the data in your selected tables before building complex queries, helping you understand the available data and verify your selections.
Target Table Preview:
- Click Preview rows of tables to open the preview dialog
- View sample data from your primary (target) table
- The preview shows the first 10 rows with all columns visible
JOIN Table Previews:
- For each configured JOIN, a separate preview is available
- View sample data from each joined table to verify the join will work as expected
- Identify the correct columns to use in your ON conditions
13.3.4 Filter Conditions (UI Position 4)
Filter conditions allow you to restrict the query results to specific subsets of data based on column values.
Adding Filter Conditions:
- Expand the Filter Conditions section
- Click Add Condition to create your first filter
- Combine multiple conditions using AND/OR connectors
Available Operators:
| Operator | Description | Data Types |
|---|---|---|
= |
Equal to | All types |
≠ |
Not equal to | All types |
< |
Less than | Numeric, DateTime |
≤ |
Less than or equal to | Numeric, DateTime |
> |
Greater than | Numeric, DateTime |
≥ |
Greater than or equal to | Numeric, DateTime |
| contains | String contains substring (case-insensitive) | String |
| is one of | Value is one of multiple options | All types |
| between | Value is between two specified values | Numeric, DateTime |
| is empty | Column value is NULL or empty | All types |
| is not empty | Column value is not NULL or empty | All types |
Special Operators:
- is one of: Enter a comma-separated list of values (e.g.,
IDLE,EXECUTE,STOPPED) - between: Enter two values separated by
to(e.g.,10 to 100or2024-01-01 to 2024-12-31) - contains: Performs case-insensitive substring matching
Combining Conditions:
- Use the AND/OR toggle to specify how conditions should be combined
- Conditions are evaluated in the order they are listed
- Complex logic can be built by nesting conditions with appropriate connectors
Example Filter Configuration: To find active orders on a specific machine:
- Column:
machine_id, Operator:=, Value:5 - Connector: AND
- Column:
status, Operator:is one of, Value:IN_PROCESS,QUEUED
13.3.5 Sorting, Limit & Aggregation (UI Position 5)
This section allows you to control the order, quantity, and aggregation of query results.
Sorting:
- Sort Column: Select which column to sort by
- Sort Order: Choose Ascending (A→Z, 0→9) or Descending (Z→A, 9→0)
Limit & Offset:
- Limit: Maximum number of rows to return (enter 0 for no limit)
- Offset: Number of rows to skip before starting to return rows
- Use Limit and Offset together for pagination of large result sets
Aggregation Functions: For numeric columns, you can apply aggregation functions to compute summary values:
| Function | Description | Example |
|---|---|---|
| MAX | Maximum value in the column | Highest temperature recorded |
| MIN | Minimum value in the column | Lowest production count |
| COUNT | Number of rows matching the query | Total number of orders |
| SUM | Sum of all values in the column | Total parts produced |
| AVG | Average value of the column | Average cycle time |
Latest Entry Preset:
- Click Latest Entry to automatically configure the query for retrieving the most recent row
- This preset sets: Sort by primary key or timestamp column, Descending, Limit = 1
- Useful for getting the current status or latest reading from a sensor
Example Aggregation: To get the total parts produced by a specific machine:
- Select table:
sfcs - Select column:
yield_quantity - Add filter:
machine_id = 5 - Aggregation: SUM
13.3.6 Formatting Options (UI Position 6)
Formatting options allow you to customize how the query result is presented and formatted.
Prefix and Suffix:
- Prefix: Text to add before the value (e.g.,
Machine:) - Suffix: Text to add after the value (e.g.,
°Corpcs) - Useful for adding units, labels, or contextual information
Default Value:
- Specify a fallback value to use when the query returns no rows
- Example: Set default to
N/Aor0to ensure a value is always published - Prevents empty or NULL values from being published to external systems
Override Data Type:
- Force the output to a specific data type for OPC UA compatibility
- Useful when the database column type needs to be converted to match OPC UA type requirements
- Available types: String, Int32, Int64, Float, Double, Boolean, DateTime
Example Formatting: To display a temperature value with proper units:
- Prefix: (empty)
- Suffix:
°C - Default Value:
0 - Override Data Type: Float
13.3.7 Live Preview (UI Position 7)
The Live Preview panel provides real-time feedback on your query configuration, allowing you to see the result as you build it.
Preview Panel:
- Displays the current query result based on your configuration
- Shows the actual value that will be published
- Updates automatically as you change parameters
Live Updates:
- The preview refreshes every time a configuration parameter changes
- See immediate feedback on how JOINs, filters, sorting, and aggregation affect the result
- No need to save and test separately
Error Messages:
- Invalid configurations display clear error messages
- Common errors include missing table/column selections, invalid JOIN conditions, or syntax issues
- Error messages guide you to the specific problem that needs correction
Summary Badges:
- The preview area displays summary badges showing:
- Selected table
- Selected column
- Number of active filters
- Number of JOINs configured
- Aggregation function applied
- This provides a quick overview of your current configuration
Tip: Use the Live Preview extensively while building complex queries to catch issues early and verify your configuration produces the expected results.
14. License Plan Feature Matrix
The following table shows the features available per plan. For the latest pricing and plan details, visit the MaConSim website:
https://maconsim.com/licenses-pricing/
| Feature | Free Trial | Basic | Premium |
|---|---|---|---|
| Users | 1 | 3 | Unlimited |
| Software Updates | ✓ | ✓ | ✓ |
| Technical Support | — | ✓ within 48 h (Mon–Fri 9–17) | ✓ within 12 h (Mon–Fri 9–17) |
| Plants | 1 | 3 | Unlimited |
| Production Machines | 2 | 10 | Unlimited |
| Production Scenarios | 1 | 10 | Unlimited |
| Production Orders | 1 | 10 | Unlimited |
| NC Codes | 3 | 10 | Unlimited |
| Tools | 2 | 10 | Unlimited |
| Alerts | 2 | 10 | Unlimited |
| Data Collections | 2 | 10 | Unlimited |
| OPC UA (Server/Client) | ✓ | ✓ | ✓ |
| Import/Export OPC UA NodeSet2.xml file | ✓ | ✓ | ✓ |
| MQTT Broker | ✓ | ✓ | ✓ |
| REST API (only in Docker Version) | ✓ | ✓ | ✓ |
| Production Operator Dashboard | ✓ | ✓ | ✓ |
| History (Orders, NC Codes, Alerts) | ✓ | ✓ | ✓ |
| Plant Import | — | ✓ | ✓ |
Exact limits are embedded in your license key and enforced automatically. Plan details on the website are always up to date.
15. REST API
MaConSim provides a REST API in its Docker version only that exposes all frontend functionality for programmatic access. This allows you to integrate MaConSim into test automation frameworks, CI/CD pipelines, or external MES/SCADA systems.
Important: The REST API is only available when running MaConSim via Docker. It is not accessible in the Windows, macOS, or Linux desktop versions.
Key characteristics:
- Local access only: The REST API is designed for local clients only. No authentication is required as the API is not intended to be exposed to the internet.
- Complete coverage: Every interaction available in the MaConSim frontend is also available through the REST API.
- Automatic documentation: Full API documentation with interactive testing is available via Swagger UI.
Use cases:
- Automated testing of MES functionalities that require a machine simulation environment
- CI/CD pipeline integration for automatic testing before updates (MES, SCADA, or other IoT systems)
- Custom integrations with external systems
- Batch operations and automation scripts
15.1 Accessing the API
Swagger UI (Recommended):
Open http://localhost:8080/swagger-ui#/ in your browser to explore all available endpoints interactively. Swagger UI provides:
- Complete list of all endpoints
- Detailed parameter documentation
- Try-it-out functionality
- Request/response examples
OpenAPI Specification:
Download the machine-readable specification at /api-docs/openapi.json. This can be used for:
- API client code generation
- Integration with API documentation tools
- Automated testing frameworks
Base URL:
Docker deployment: http://localhost:8080
15.2 Usage Notes
Request Format: All endpoints use HTTP POST with a JSON request body.
Example request:
curl -X POST http://localhost:8080/api/get_plants \
-H "Content-Type: application/json" \
-d '{}'
Response Format:
- Success: JSON with result data
- Error: JSON with error message and HTTP error code
CORS: Cross-Origin Resource Sharing is configured to allow requests from any origin, making it easy to integrate from any local application.
Example: Export a Plant via API
# Export plant with ID 1
curl -X POST http://localhost:8080/api/export_plant_yaml \
-H "Content-Type: application/json" \
-d '{"plant_id": 1}' \
--output plant-export.yaml
16. Updating MaConSim
MaConSim provides built-in functionality to check for and download new versions of the application.
16.1 Checking for Updates
- Click the Updates button in the top navigation bar (header section)
- MaConSim contacts the update server (
https://api.maconsim.com/api/latest-version) to check if a newer version is available - If your current version is up-to-date, a confirmation message appears briefly
- If a newer version is available, a notification banner appears displaying:
- The available version number
- Your current version number
- A Download update button
Automatic checks: MaConSim automatically checks for updates once per session, approximately 3 seconds after you log in.
16.2 Downloading and Installing Updates
-
When an update is available, click Download update in the notification banner
-
The update installer is downloaded to your Downloads folder and automatically opened:
- Windows: The EXE installer typically runs automatically; if it doesn’t, navigate to your Downloads folder and run the installer manually
- macOS: The DMG file is mounted automatically
- Linux: The AppImage or .deb package is opened with your system’s default handler
-
Follow the installer prompts to complete the installation:
- The installer will typically offer to remove the previous version
- Your existing configuration and plant data are preserved in the database
-
After installation completes, launch MaConSim as you normally would
Note: The update process is the same across all platforms — download the new installer from within the app, then run it to upgrade.
16.3 Recommended Backup Before Updating
Before updating, it is strongly recommended to create backups:
- Export all plants using the Plant Export feature (Section 6.4)
- Export OPC UA NodeSet2 XML files for any OPC UA trees you’ve configured (Section 12.1.3)
- Backup your database file manually (optional but recommended):
- Copy
MaConSim.dbfrom its location (see Section 2 for paths)
- Copy
Why backup? While updates are designed to preserve your data, having backups ensures you can restore your configuration if any issues occur during the update process.
16.4 Troubleshooting Update Issues
If the application fails to start after updating:
-
First try: Simply restart MaConSim — the database is typically preserved during normal updates
-
If problems persist, you may need to reset the database:
- Close MaConSim completely
- Navigate to the database file location for your OS (Section 2):
- Windows:
C:\Users\{username}\AppData\Roaming\com.maconsim.app\MaConSim.db - macOS:
~/Library/Application Support/com.maconsim.app/MaConSim.db - Linux:
~/.local/share/com.maconsim.app/MaConSim.db - Rename the file to
MaConSim.db.bak(this preserves it as a backup) - Launch MaConSim — a fresh database will be created
- You will need to:
- Reactivate your license (have your license key ready)
- Create a new user account (Section 5.3)
- Re-import your exported plants (Section 6.5)
- Re-import your OPC UA NodeSet2 files if applicable
Important: Deleting the database file will permanently remove any data that was not exported. The Plant Export feature (Section 6.4) is the recommended way to back up your data.
If the update button doesn’t appear or doesn’t work:
- Verify your internet connection is active
- Check that outbound HTTPS connections to
api.maconsim.comon port 443 are not blocked by your firewall - The update server might be temporarily unavailable — try again later
17. Troubleshooting
17.1 Application shows "License validation failed" on startup
- No internet connection: The license server must be reachable at startup. Check your network and try restarting MaConSim.
- Firewall blocking outbound connection: Ensure MaConSim is allowed to make outbound HTTPS connections through your firewall.
- License expired: Contact MaConSim GmbH to renew your subscription.
- License recently renewed or transferred: Click Re-activate on the error screen, enter your updated license key, and try again.
17.2 Import Plant button is greyed out
The Plant Import feature requires the importPlant entitlement, which is not included in the Free Trial. Contact MaConSim GmbH to upgrade to a Basic or Premium plan.
A button shows "Limit reached"
You have reached the maximum number of that resource type allowed by your plan. Options:
- Delete unused items of that type to free up capacity.
- Contact MaConSim GmbH to upgrade your plan.
See Chapter 14 for the limits per plan.
Simulation does not start when clicking Play
Ensure the following prerequisites are met:
- The machine has at least one scenario connected (Section 8.1).
- There is at least one SFC in the queue for the order (Section 8.2).
- The machine is not already in a RUNNING state for another order process.
Produced parts count does not increase
- Verify the Takt Time in the scenario is not set too high (e.g. milliseconds vs. minutes: 3,600,000 ms = 1 hour).
- Check that the machine is in RUNNING state and not stuck in MAINTENANCE or ERROR.
- The takt time is always in milliseconds: 60,000 = 1 minute, 3,600,000 = 1 hour.
Alerts, NC codes, or tools are not appearing in simulation output
Resources must be explicitly connected to the machine:
- Alerts → Section 8.3
- NC Codes → Section 8.5
- Tools → Section 8.6 (also requires Tool Logging to be enabled in the active scenario)
OPC UA server fails to start
- No OPC UA nodes created: The OPC UA tree must contain at least one node before the server can start. Navigate to Connectivity → OPC UA, select your tree, and add nodes using the Add Node button (Section 12.1.5.1).
- Port in use: Another application (or another OPC UA tree in MaConSim) is already using the configured port. Change the port number in the OPC UA tree configuration.
- Firewall blocking the port: Ensure the configured port (default 4840) is allowed through Windows Firewall. Add an inbound rule for the port in Windows Defender Firewall settings.
- Certificate error (Sign/SignAndEncrypt mode): Try stopping the server, deleting the PKI directory, and restarting. MaConSim will regenerate the certificates.
MQTT broker connection fails
- Wrong host or port: Verify the broker hostname/IP and port exactly match your MQTT broker’s configuration.
- Authentication: If your broker requires credentials, check that the username and password are entered correctly (case-sensitive).
- TLS misconfiguration: Try disabling TLS first to isolate the issue. If TLS is required, ensure the broker’s certificate is valid.
- Broker not running: Verify the MQTT broker is running and accessible from the MaConSim machine, e.g. using an MQTT client tool such as MQTT Explorer.
- Firewall: Check that the configured port (default 1883, or 8883 for TLS) is not blocked.
Docker deployment issues
| Symptom | Likely cause | Fix |
|---|---|---|
POSTGRES_PASSWORD is required |
Missing or empty .env file |
Create .env with POSTGRES_PASSWORD=yourpassword |
Cannot connect to the Docker daemon |
Docker not running | Start Docker Desktop (or sudo systemctl start docker on Linux) |
| Backend container exits immediately | Database not ready in time | Run docker compose up again — the healthcheck will retry |
| Web UI shows network errors | Wrong backend URL in image | Ensure VITE_REST_API_URL=http://localhost:8080 in .env and that the backend is running |
| Port already in use (8080 / 1420 / 4840 / 1883 / 8883 / 5432) | Another process occupies the port | Stop the conflicting service, or edit the host port in docker-compose.yml or docker-compose-build.yml (left side of "host:container") |
Images not found after docker compose up |
.tar files not loaded |
Run docker load -i maconsim-backend.tar and docker load -i maconsim-frontend.tar first |
Database error on startup
The database file may be corrupted. To reset it:
- Close MaConSim completely.
- Navigate to the database file:
- Windows:
C:\Users\{username}\AppData\Roaming\com.maconsim.app\MaConSim.db - macOS:
~/Library/Application Support/com.maconsim.app/MaConSim.db - Linux:
~/.local/share/com.maconsim.app/MaConSim.db
- Windows:
- Rename the file to
MaConSim.db.bakas a backup. - Relaunch MaConSim. A fresh, empty database is created automatically.
- Re-import any plants you previously exported (Section 6.5).
Warning: Deleting or replacing the database permanently removes all plant data that was not exported. Back up your plant data regularly using the Plant Export feature (Section 6.4).
18. Help and Support
18.1 Opening the User Manual
A Help button is available in the header section of the application. Clicking this button opens the MaConSim User Manual in your default web browser, providing quick access to complete documentation for all application features.
18.2 Reporting a Bug or Contacting Support
A Support button is available in the header section of the application. This button allows you to report bugs or contact support directly from within the application.
To report a bug or contact support:
- Click the Support button in the header
- A dialog appears with the following fields:
| Field | Description | Required |
|---|---|---|
| Type | Select the category: Bug report for software issues, or Support request for general questions | Yes |
| Your email address for follow-up | Yes | |
| Your notes | Describe the problem or your request in detail | Yes |
- Fill in the required information and click Submit
- A confirmation message appears when your ticket has been successfully submitted
Requirements: An active license and an internet connection are required to submit a support ticket.
© 2026 MaConSim GmbH. All rights reserved. Public documentation for MaConSim users.
