Share My Creation Pamaglawe – Visual HMI editor, PLC communication and process simulation built with B4J

Hello everyone,
Demo version 2.61.512 is now available for download at https://pamaglawe.de

Unbenannt.PNG

Have fun, and let me know what you discover!
Windows might complain when you launch it for the first time; you can find more details on the website under "Demo: getting started..."

Hello everyone,

I would like to introduce Pamaglawe, a desktop project I am developing with B4J and JavaFX for creating process visualizations and operator interfaces.

It has grown into quite a substantial application, so I thought it was time to share it with the B4X community.

The central idea is to build a process screen visually, connect its objects to process variables, and test the result in the same application. From there, a project can be extended with alarms, recipes, user permissions, documentation and more specialized functions.

Think of a tank, a pump and a valve: place the symbols, assign their variables, add a level display and operating controls, and switch to simulation. The same project structure can then be configured for communication with the actual equipment.

The visual editor

The PageEditor supports multiple pages, navigation and separate detail windows. It includes grid snapping, multiple selection, resizing, rotation, layer ordering and undo/redo.

The object palette contains 40 object types, covering graphical elements, operator controls, displays, layout containers and documents. Examples include buttons, switches, sliders, numerical inputs, gauges, progress indicators, operating-hours displays, LCD displays, value tables, trends and XY plots.

There are also tabs, collapsible sections, scroll areas and hotspots for opening detail windows. Polylines make it possible to draw connected pipe or conveyor paths as a single object.

The symbol library includes equipment such as tanks, pumps, valves, motors, fans, conveyors and sensors. State-dependent graphics allow the appearance of equipment to follow its process values.

PLC communication and simulation

Process variables are managed in a central communication table, with device names, addresses, data types and driver assignments. CSV/XML import and an integrated table editor help manage these definitions.

The communication options include:

  • Direct Modbus TCP.
  • Siemens S7 communication through Moka7.
  • OPC UA through a local bridge.
  • A local Connect bridge for exchanging status, values and write requests.

Device-specific driver assignments allow different communication paths within a project.

A local simulation mode lets me test screens without a connected PLC. Symbols can have saved simulation values, so controls and displays can be checked with reproducible inputs.

More than displaying a number

Values can be scaled or converted using reusable project formulas. The formula library includes examples for signal conversion, engineering units and tank geometry.

Some examples from recent tests:

  • An LCD display shows the same value in decimal, binary, hexadecimal or octal notation.
  • A value table combines several independent process variables, each with its own caption, unit and decimal places.
  • An XY display combines two variables into a measurement point, with an optional position trail.
  • A state display maps up to 16 PLC values to output texts, with translations for the selected project language.

For example, a value of 2 can display “Warnung” in German and “Warning” in English. If a translation is missing, the base text is used. If no value assignment matches, the configured fallback text is used.

The application includes language support for German, English, French, Italian, Spanish, Dutch, Polish and Portuguese. Project-specific texts can be translated separately.

Runtime functions

The wider feature set includes:

  • Alarm definitions, acknowledgement, history and CSV export.
  • Recipe management with setpoint sets and permission-controlled transfer.
  • Event logging and operator notes.
  • User management, roles, individual permissions and automatic runtime logout.
  • Multi-curve trends and CSV export.
  • Process reports in JSON and PDF, plus an integrated PDF viewer.
  • On-screen keyboard and numeric input for touch operation.
  • PID configuration for PLC-based, local or simulated control.

Specialized project modules

Pamaglawe also includes optional modules for workflows around the process:

  • Maintenance: operating-hours and switching-cycle intervals, advance warnings, due maintenance and maintenance history.
  • CIP / sequencing: configurable cleaning-in-place sequences with actuator masks, setpoints, waiting conditions, time limits and sequence reports.
  • Warehouse management: materials, storage locations, batches, expiry dates, minimum stock, reservations and stock movements.

The warehouse functionality also covers stacker-crane transport orders and feedback. Storage grids can be used to generate locations, target coordinates and associated PLC symbols. Database options include SQLite, MySQL/MariaDB, Microsoft SQL Server and PostgreSQL.

These modules are intended to keep related process and operational information within the same project.

Built with B4J

The editor and desktop interface are built with B4J and JavaFX. The project brings together graphical editing, custom-drawn displays, PLC communication, database access and document generation.

That combination is also why I wanted to show it here: it is a practical example of the range of work that can be brought together in a B4J desktop application.

Current stage

The current development version is 2.61.507, and my current development and testing platform is Windows.

Pamaglawe is still under active development and testing. This post is an introduction to the current development build, rather than an announcement of a production release.

There is no download available yet. For now, I would like to introduce the project and gather feedback from the community before deciding on the next steps.

The project website is already online: https://pamaglawe.de/

I am testing the individual objects step by step and documenting the results with actual screenshots. The German documentation currently contains 35 articles and 283 screenshots, maintained in matching website-help and offline-help versions. Some screenshots show earlier development builds.

I would be interested in feedback from other B4X developers, especially anyone working with PLCs, industrial interfaces or process visualization:

  • Is the configuration workflow understandable?
  • Which part would you like to see demonstrated in more detail?
  • What would you want to try first in an application like this?

Thanks for taking a look. I look forward to your questions and suggestions!

Best regards,
 

Attachments

  • 01-pageeditor.png
    01-pageeditor.png
    252 KB · Views: 105
  • Demo_01.png
    Demo_01.png
    122.9 KB · Views: 85
Last edited:

skyracer90

Member
Licensed User
Longtime User
Hello Mashiane, thanks for your interest!
Pamaglawe currently supports SQLite, MySQL/MariaDB, Microsoft SQL Server and PostgreSQL for its project-related warehouse management.

This functionality uses Pamaglawe’s own data structure. Connecting arbitrary existing database schemas or REST APIs would require additional integration work; it is not currently a configurable feature.

Are you looking to use a different database for storage, or to connect Pamaglawe to an existing application through a REST API? A practical example would help me understand your requirements.
 

skyracer90

Member
Licensed User
Longtime User
Pamaglawe – Website and documentation now available in English

Hi everyone,

Following my introduction of Pamaglawe, the visual HMI editor built with B4J, the website and documentation are now also available in English.

The English help includes 57 articles covering project setup, display and control objects, alarms, trends and simulation examples. You can switch between German and English using the DE / EN links.

The screenshots remain mostly in German for now, but the instructions and image captions are in English.

Website: https://www.pamaglawe.de/en/
Documentation: https://www.pamaglawe.de/en/hilfe/

There is no downloadable version yet. I’m considering an editor and simulation demo without PLC communication drivers.

Feedback on the website, documentation and the demo idea is very welcome!
 
Last edited:

rwblinn

Well-Known Member
Licensed User
Longtime User
Amazing work = Well Done.

I would be interested to test the application against the ESP32S3 OPC UA Server I created with B4R rOpen62541.
This is solely for personal use to verify the server with another client.
 
Top