Information for Library Developers

Note

In order to avoid consistency problems and to adequately support the user, be sure to adhere to certain rules for the creation, referencing, encryption, protection and documentation of libraries.

The following description is intended to give you an overview of the library development possibilities. You can find a more detailed description of these topics in the guidelines for library development ‘LibDevSummary’.

See also

  • Guidelines for Developing Libraries: guidelines

General

  • You can define categories for libraries. The libraries are then displayed in the library repository below these categories.

  • You can define a namespace for a library in order to enable unambiguous access to the integrated objects. The access becomes unambiguous by adding the namespace in front of the module name:

    <namespace>.<variable name>

    Example: AC.Module

  • You can open the POUs of unencrypted libraries (\*.library) by double-clicking on the respective entry in the library manager.

  • You can create the following library types:

    • \*.library: Implementation library
    • \*.compiled-library: Protected library; source code no longer accessible
    • \*_Itfs.library: Interface library
    • \*_Cnt.library: Container library
  • You can protect libraries with a license (dongle). License-protected libraries can be installed in the repository. If you use the modules of this library in the project, however, a dongle with a valid license must be plugged into the computer. Licenses are managed in the license manager.

  • You can integrate external libraries into the application. External libraries are programmed outside of CODESYS in a different programming language, for example C.

Library versions

  • You can have several versions of a library installed on the system at the same time.
  • You can have several versions of a library integrated into your project at the same time. However, we do not recommend doing this. In this case, each of the libraries must be assigned a unique namespace and access to the symbols must be qualified. Examples: V1.SendBlob, V2.SendBlob

Referenced libraries

  • You can integrate a library into other libraries (referenced libraries). The nesting can be of any depth.
  • You can define whether referenced libraries should be visible in the library manager.
  • You can integrate referenced libraries via library placeholders. This way you avoid the problems that could occur due to version dependencies or the necessity to use vendor-specific libraries.