KinRig Pro in detail
What makes us different?
KinRig Pro differs from most automation solutions in two key ways. Firstly, it allows development in modern and widely used programming languages (Java, Python). Secondly, KinRig Pro relies on an open and extensible microservice architecture.
These two points will be explained in detail here. A less specific feature praise can be found here.
Architecture
A first look at the architecture. This gives us an insight into how KinRig Pro works. There are basically three levels: real time, the connector and the micro services.
The real-time critical code is developed in Java and loaded onto the PLC using the uploader (not shown in the diagram).
Real time connects to the connector, a server that provides the current values and records. It also allows Remote Procedure Calls (RPC) in real time.
The services connect to the connector via a client from the KinRig Pro library and can thus read and write values from real time, as well as call methods in real time using RPC calls.
Die Micro-Service Architektur erlaubt, dabei jede einzelne The microservice architecture allows each individual component to be replaced. For example, a real-time PLC can be replaced by a simulation and the system can be tested on a digital twin without real hardware. Individual services such as the HMI can also be replaced by headless services and thus executed in a CI/CD context.
Comparison of IEC 61131-3 with Java in KinRig Pro
Java in the real time allows things that you can only dream of in IEC 61131-3, such as parsing JSON and XML or concurrency via green threads.
Ultimately, the best language is the one that suits your project requirements, goals and learning style. To be honest, we firmly believe that Java outperforms classic structured texts in new, complex or long-term projects. However, we also believe that structured texts or another language according to IEC 61131-3 may be the better choice for small projects where programming is mainly carried out by electricians.
| Aspect | PLC | Java in KinRig Pro | Winner |
|---|---|---|---|
| Portability | Manufacturer-specific IDEs (e.g. TIA Portal, Studio 5000). Limited debugging and version control integration. But with strong and deep integration into these IDEs. | Extensive ecosystem: IntelliJ, Eclipse, VS Code. Excellent support for debugging, profiling and CI/CD. | Java |
| Tooling & IDEs | Tied to specific PLC platforms and providers. The IEC 61131-3 standard is helpful, but not universally applicable. | "Write once, run anywhere". Extremely portable across platforms and devices. | Tie |
| Performance | Difficult to write asynchronous code. Hardware is often not fully utilised. | Very easy to write asynchronous code and high execution performance via RtThreads. | Java |
| Community & Support | Small niche community focusing on industrial automation. | Large global community with many developers, extensive documentation, forums and libraries. | Java |
| Readability | Easy to understand for engineers familiar with automation. The syntax is similar to Pascal. | Cryptic for non-PLC programmers. Very readable for software developers. Strict conventions and detailed syntax ensure clarity. | Tie |
| Expressiveness | Supports loops, conditions, functions, and offers limited support for object-oriented programming (OOP). | Highly expressive: supports OOP, generics, lambdas, extensive APIs, and advanced data structures. | Java |
Comparison by features
| Feature | PLC | Java in KR Pro | Details |
|---|---|---|---|
| Cross-Plattform | |||
| Memory Safety | By PLC vendor dependent. | ||
| Classes | |||
| Inheritance | |||
| Polymorphism | |||
| Reflection | |||
| Variadic Functions | |||
| Type Inference | |||
| Pattern Matching | |||
| Smart Enums |