Skip to content

Improved library support - #40

Open
4lon wants to merge 3 commits into
greenforge-labs:mainfrom
Pumpkin-Engineering:improved-library-support
Open

Improved library support#40
4lon wants to merge 3 commits into
greenforge-labs:mainfrom
Pumpkin-Engineering:improved-library-support

Conversation

@4lon

@4lon 4lon commented Sep 1, 2026

Copy link
Copy Markdown

This modifies the export lib to files function so that the destination is a new POUs directory. This means that running export lib to files and regular export to files do not clobber each other, and they are now both compatible in one project.

This also adds a new import lib from files command, which operates much like the import from files command, but for 'POUs' objects. This allows for better plaintext syncing of libraries/shared elements in a project.

4lon added 2 commits September 1, 2026 14:46
The library export used to export to the device folder and wiped out any
files that had been exported with the normal export to files command.

Now the export lib files land in a POUs folder beside the device folder
so that they can be exported without collision.
This adds a new command that enables importing a codesys project library
files (those that are underneath the POUs tab) back in from an export.

Some files need to be ignored in the current project as they cannot be
deleted as they are core to codesys.
@4lon

4lon commented Sep 1, 2026

Copy link
Copy Markdown
Author

While I have implemented this as a separate command, I would be interested in hearing your thoughts on merging the export/import lib and non lib commands, since they no longer clobber each other with these changes.

@4lon

4lon commented Sep 3, 2026

Copy link
Copy Markdown
Author

I've also discovered I think the save as template function is not stripping out the library files. Since this adds support for library import/export i think save as template should also strip out the library files? Let me know what you think of this PR and how you may want to proceed, particularly if you want to consider merging the lib and non-lib import/export

@gsokoll gsokoll left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Alon. Your questions: keep the two import commands separate. Save As Template should not strip library files until Update From Template also reads the POUs folder; otherwise every root POU is lost. Three changes before merge:

  1. Name the folder <project_name>.POUs so two projects in one directory do not overwrite each other.
  2. Skip the generated Library Information objects on export and on import. Otherwise the import fails with a duplicate name after it has removed the other root objects.
  3. #38 adds a check that refuses library export on a project with a device. I will resolve that conflict when the second of the two PRs merges.

@gsokoll

gsokoll commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Thanks Alon for updating the folder name. There is still one open item: on a library with generated Library Information objects, the import removes the root objects and then stops with a duplicate-name error. Suggest you skip those objects on export and on import.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants