Skip to content

Latest commit

Β 

History

3,490 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

iPlus-MES

iPlus-MES is a highly configurable, extendable and adaptable Manufacturing Execution System (MES) that closes the gap between enterprise-level systems (ERP) and field-level operations. Built on the iPlus-framework, it combines SCADA and MES in a single application β€” so operators see machines and business objects in one consistent interface.

iPlus-MES screenshot

Table of Contents

Highlights

  • πŸ–₯️ One UI, every platform β€” Avalonia UI runs on Windows, Linux, macOS, Android and in the browser. The same designs, no separate code base.
  • 🏭 SCADA + MES merged β€” navigate seamlessly between physical objects (machines, modules) and business objects (orders, batches, materials) without keyboard entry.
  • 🧱 Normalized, adaptable data model β€” the model adapts to your production and IT landscape, not the other way round.
  • πŸ”Œ Industry-agnostic β€” extend the standard with sector-specific add-ons, or build your own solution on top of it.
  • πŸ”„ Updateable in production β€” extend and adapt while the system is running, without losing updateability.
  • πŸ“ˆ Proven in the field β€” 30+ installations, 500+ workplaces/users, 4000+ machines and devices.

Features

  • Stability and performance β€” optimal operation and user-friendly presentation of complex production processes.
  • Architecture β€” a normalized database model that adapts to existing production and IT systems.
  • Industry agnostic β€” suitable for many sectors thanks to its customizable structure, with a focus on the process industry.
  • DCS β€” distributed control system.
  • Usability β€” an intuitive graphical user interface that merges SCADA and MES functionality.
  • Comprehensive modules:
    • Master data management
    • Production and control
    • Material management
    • Logistics
    • Quality management
    • Maintenance
  • Real openness and extendability β€” expand as required: by inheriting existing components, by developing additional components, or by using iPlus packages that contain industry solutions.

Why choose iPlus-MES?

  • Resource utilization β€” helps achieve optimal resource utilization and high efficiency.
  • Transparency β€” renders all processes considerably more transparent.
  • Proven success β€” 30+ installations, 500+ workplaces/users, 4000+ machines and devices.

Technology

  • Runtime: .NET 10 β€” one code base for server, desktop, mobile and browser.

  • Server side (no UI): Windows and Linux. Runs as a console host or as a Windows/Linux service.

  • Client side (UI): Avalonia UI is the primary UI technology and is fully functional on:

    • Windows (x64)
    • Linux (x64)
    • macOS
    • Android
    • Web browser (WebAssembly β€” nothing to install)

    The framework also ships an iOS head project; an iPlus-MES iOS head can be added the same way.

  • Data access: Entity Framework Core, using our own optimized iPlus.EntityFrameworkCore.* packages (see Entity Framework Core).

  • Communication: network-transparent RMI, WCF/CoreWCF, OPC-UA client and server, PLC drivers.

  • UI definition: XAML stored in the database and rendered at runtime β€” the same design runs on desktop, mobile and browser without rework.

The WPF client remains in the repository for Windows-only and legacy deployments, but Avalonia UI is the strategic UI platform and the one used for all cross-platform releases.

Getting Started

Prerequisites

  • .NET 10 SDK
  • A Microsoft SQL Server edition (Express, Developer or Standard) β€” on Windows or Linux, or in Docker
  • Optional: Visual Studio 2022+, JetBrains Rider or VS Code

1. Clone both repositories

iPlus-MES builds on the framework, so both repositories must sit side by side in the same parent directory β€” the project files use relative paths.

git clone https://github.com/iplus-framework/iPlus.git
git clone https://github.com/iplus-framework/iPlusMES.git

2. Install SQL Server

Follow the Microsoft SQL Server installation guide.

3. Restore a MES database

Restore the SQL Server backup file located in the Database folder:

  • IPCDrivesV5 β€” a fully configured demo plant. Best for exploring the features.
  • iplusMESV5 β€” an empty MES to start building your own from scratch.

4. Configure the connection string

Edit ConnectionStrings.config in the project you want to start. The exact steps are described in gipSoft's documentation.

5. Build and run

Pick the client that matches your target platform. All of them share the same code and designs.

# Desktop (Windows, Linux, macOS)
dotnet run --project gip.mes.client.avui.Desktop

# Browser (WebAssembly)
dotnet run --project gip.mes.client.avui.Browser

# Android
dotnet run --project gip.mes.client.avui.Android

# Server service without UI
dotnet run --project gip.mes.console -- /U00 /P00

No WINE required. The Avalonia UI client runs natively on Linux and macOS. WINE is only needed if you want to run the legacy WPF client on Linux.

6. Log in

  • superuser / superuser β€” start as a client.
  • 00 / 00 β€” start as a service.

After starting the service, your local IP is remembered; start a second instance and log on as a client to establish the client-server connection. If the client cannot connect, read the network configuration section.

Important: every time you pull a newer version from GitHub, hold down the CTRL key while clicking the login button so that your local databases are updated. Otherwise the application will not start.

πŸ€— Have fun trying it out and watch our videos to get started. We also recommend online training.

Contributing

We welcome contributions from the community!

Are you passionate about open-source development and eager to make a real impact in the world of industrial software? The gipSoft is looking for talented developers like you to help us push the boundaries of innovation and autonomy in software solutions.

By contributing to the iPlus-framework, you'll be part of a dynamic community dedicated to creating flexible, scalable, and efficient software that empowers businesses to thrive in the era of Industry 4.0. Your expertise and creativity will directly influence the evolution of our platform, helping to solve complex technical challenges and drive the future of manufacturing technology.

Why Contribute?

Make an Impact: Your contributions will help shape a powerful tool that supports businesses worldwide in achieving greater autonomy and efficiency. Collaborate and Innovate: Work alongside a passionate community of developers and industry experts, sharing knowledge and driving innovation.

Revenue Sharing: As a token of our appreciation, contributors will receive a share of the revenue generated from the commercial edition of the iPlus-MES, recognizing your valuable input and dedication. Join us on GitHub and be part of a project that values collaboration, innovation, and shared success. Together, we can build a more sustainable and independent future for industrial software.

Contribute today and let's create something amazing together! More about our rewarding model.

Entity Framework Core

iPlus-MES inherits its data access from the iPlus-framework, which is built on Entity Framework Core. Long-lived, network-transparent contexts need capabilities that upstream EF Core does not provide, so we maintain and publish our own EF Core packages that contain the fixes:

Package Purpose
iPlus.EntityFrameworkCore Core, with the fixes below
iPlus.EntityFrameworkCore.Relational Relational layer
iPlus.EntityFrameworkCore.SqlServer SQL Server provider
iPlus.EntityFrameworkCore.Proxies Lazy-loading proxies
iPlus.EntityFrameworkCore.Abstractions Abstractions
iPlus.EntityFrameworkCore.Design / .Tools Design-time tooling

The fixes these packages carry:

  1. Refresh a context from the database β€” dotnet/efcore#16491
    Essential for long-term contexts: already-loaded entities and their relationships can be reloaded from the database. For example, when a workflow changed on the client has to be reloaded on the server.
  2. Fast DetectChanges in long-term contexts β€” dotnet/efcore#31819
    Without this, long-lived contexts with large amounts of data become progressively slower.
  3. Reverting changes β€” dotnet/efcore#14594

Using them

The packages are consumed from nuget.org and are enabled by default β€” a fresh clone builds against them with no extra setup. The switch lives in the iPlus-framework repository, in build/EntityFramework.Build.props:

<UseEFCoreForkIPlus>True</UseEFCoreForkIPlus>

Set it to False only if you explicitly want the stock Microsoft.EntityFrameworkCore.* packages.

Note: you no longer need to clone the EF Core fork. The packages are published on nuget.org, so dotnet restore is all that is required.

Documentation

For now, please use the documentation on our website.

We are working on transferring the content to the iPlus.docs on GitHub and ask for your patience.

License

iPlus-MES is dual-licensed:

Edition License Intended for
Community GPL-3.0 Development, evaluation and non-commercial use
Commercial Commercial license Productive, commercial operation

The source code is the same in both editions β€” the commercial edition adds a runtime license, support and the right to use the software commercially. See the license conditions and the dual licensing overview.

Building on iPlus-MES

As an integrator you can roll iPlus-MES out to your own customers and extend it for your industries. The framework ships an integrated license manager so you can issue and enforce licenses for your own add-ons and products, while the runtime itself is licensed per concurrent user.

  • GPL packages and commercial runtime do not mix. A package published under GPL-3.0 cannot be loaded into a commercially licensed runtime, and vice versa.
  • No developer dongle required. Development and license issuing are software-based; you sign your product licenses with your own key pair.

Contact

For questions, suggestions, or feedback, please send us a e-mail to info[at]iplus-framework.com or via contact form.

We look forward to your contributions and hope you enjoy working with the iPlus-MES!