Forward Compatible Libraries

Overview

A forward compatible library (FCL) is developed in such a way that its functionalities are forward compatible. This means that every version of a forward compatible library contains all function­alities of the previous version and a newer library version can be easily used in already existing projects without any changes.

Dependencies to libraries (library X uses library Z) are read as minimum compatible version.

If a library X requires another, forward compatible library Z, for example in version 1.0.0.0, library X will work with version 1.0.0.0 or any newer version of library Z.

Only one single version of a forward compatible library is selected and used in a project Library Manager on request (when clicking the Automatic button). This compatible version of the library selected in the Version mapping tab of the Library Manager is used in the direct and indirect references in the libraries within this project.

This referencing method has the following advantages:

oIt supports a parallel independent development process of several libraries.

oIt eases library updates by forward compatible development ruleset.

It is assumed, that once a version of a library is marked as a forward compatible library, then all future versions will also be forward compatible.

For detailed information about creating forward compatible libraries, refer to Create Your Own Forward Compatible Library.

Example

Situation: The following libraries are added in the Library Manager:

Library

Version

Library X

1.0.0.0

Library Y

1.0.0.0

Library Z

1.0.0.0

Dependencies:

Library...

Requires Minimum Version of Library Z...

X

1.0.1.0

Y

1.0.2.0

On the local system the following versions of library Z are installed:

o1.0.0.0

o1.0.1.0

o1.0.2.0

o1.0.3.0

Assuming that the installed versions of library Z are marked as forward compatible, this would mean:

oOnly one version of library Z is loaded.

oCompatible versions of library Z in this project are 1.0.2.0 and 1.0.3.0, which meet the minimum required dependencies.

oYou can configure which version is to be used in this case (however, it makes sense to use the newest installed compatible version).

oAfter clicking the Automatic button in the Version mapping tab of the project, version 1.0.3.0 of library Z will be chosen because it is the newest installed compatible version.

oThe POUs of the projects of library X and library Y use the same versions of POUs of library Z.

oThe exchange of POUs from library Z between the project and other libraries is possible.

Advanced Example

Situation:

oA new version 1.0.3.1 of library Z uses some features of a system library referenced via placeholder V.

oThis library is compatible to controller A since version 2.0.0.0. This is indicated in library Z version 1.0.3.1 by a minimum controller firmware requirement.

This would mean:

oIf a project uses controller A version 1.0.0.0, the following libraries are compatible:

o1.0.2.0

o1.0.3.0

oIf a project uses controller A version 2.0.0.0, the following library is compatible:

o1.0.3.1

oWhen clicking the Automatic button in the Version mapping tab, version 1.0.3.1 of library Z will be selected, if the controller A used in the project has been updated to version 2.0.0.0.

Otherwise version 1.0.3.0 of library Z will be selected.