Hi everyone, let me introduce myself again. I'm Daniel Campos (Dandrvms or
dacmz), from the CEOS Automatización team, working alongside Luis Rodríguez
and César García. As I mentioned before, I'm working on Malbec, an IDE for
industrial configuration built on top of the NetBeans RCP.

Today I just made my first PR for this project in the feature/app branch at
plc4x-extras, marking my very first contribution to the foundation. Here is
a breakdown of the project structure:


   - /api : Domain model and ports. S88Element is the minimal model unit:
   an S88 entity that can hold children and structured property bags.
   S88PlantModel is the orchestrator: the in-memory root of the element tree,
   the registry of classes/enumerations, and the event bus. Supporting classes
   provide S88ElementClass (reusable property templates), S88Enumeration,
   S88Level, DataType/EngineeringUnits/Magnitude, the
   S88ChangeEvent/S88ChangeListener observer contract, and the persistence
   contracts S88Repository, S88Storage and S88RepositoryProvider.
   - /data : Serialization adapters implementing the contracts above.
   B2MMLRepositoryImpl parses/writes the main model using B2MML, the MESA
   International schemas compiled with XMLBeans. AXMLRepositoryImpl
   imports/exports the Rockwell FactoryTalk Batch .axml format. Formats are
   pluggable: a new format is a new S88RepositoryProvider discovered through
   NetBeans Lookup.
   - /core : Application layer. A set of use cases (create, update, delete,
   rename elements; manage class templates and struct entries) are the only
   way to mutate the model. Every mutation fires an S88ChangeEvent, so the UI
   stays in sync.
   - /plant : The NetBeans sub-project in charge of the plant model's
   lifecycle: project providers and factories, the hierarchy tree nodes (one
   per S88 level), project actions (import/export, templates, enumerations,
   delete), and the shared panel/dialog builders reused across the different
   S88 levels. Loading and saving delegates to data repositories; UI refresh
   is event-driven, not manual.
   - /project : The NetBeans project type (wizard, factory, folder
   installer, logical view) that hosts the plant sub-project.
   - /batch : Placeholder module reserved for future recipe management and
   supervision.

The Process Cell config editor is intentionally empty; the properties
dialog exposes only the General tab (name, level, class, display creation),
while content tabs (Attribute Tags, Parameters/Reports, Arbitration, etc.)
are placeholders. These are the targets of upcoming updates.

Recipes/batch supervision and generic ISA-88 runtime support are outside
the scope of this PR (batch is a placeholder).

Best regards, Daniel.

Reply via email to