System update

TwinCAT/BSD release process

The system update is performed by default via the preset Beckhoff Package Server or the Beckhoff repository, which provides all required packages (see: Package Server).

As a rule, a new version of the Beckhoff repository is published on the first Tuesday of each month. Provided that all internal tests are passed successfully. If the internal tests fail, the release will be postponed to the next month.

Only the Beckhoff repository is updated, which does not necessarily mean that a new TwinCAT/BSD or TwinCAT version is automatically published in each new repository version. It could also simply be individual packages, third-party packages, or packages that you don't even have installed on your system. When performing an update, it is recommended to update the entire system and not just individual packages. This is because the packages in the Beckhoff repository are tested as a complete system in each release, thus avoiding incompatibilities.

It is possible to download and save a tested version of the Beckhoff repository as a local repository at any time. This allows you to freeze your system in a tested state and use it for series machine construction, for example. In this case, the local repository and all the packages it contains can be made available via a server in the local network or via a USB stick (see: Provide repository on USB stick).

Call TwinCAT/BSD version

The TwinCAT/BSD version can be called with the command TcSysExe.exe. There are different version information that you can get from the system. The current version is listed under the TC/BSD entry:

Administrator@CX-0C8432:~ $ TcSysExe.exe

The software licenses can be found in this folder: /usr/local/etc/TwinCAT/3.1/System/Legal/
TcOsSys.dll: TcOsSys_Rel31_4024_20210804.2
TwinCAT Build: 3.1.4024.19
AMS Net Id: 5.12.132.50.1.1
TC/BSD: 13.0.8.2,2
Administrator@CX-0C8432:~ $
System update 1:
Breakdown of the TwinCAT/BSD version.

Call Beckhoff repository version

The command pkg info os-generic-userland-conf | grep Version displays the pipeline number for the corresponding internal Beckhoff repository. In this sample the pipeline ID 55702 is displayed after the TwinCAT/BSD version:

Administrator@CX-3AE2C6:~ $ pkg info os-release-bhf | grep Version
Version : 13.0.11.3_55702
Administrator@CX-3AE2C6:~ $

Perform update

There are two ways to update the system. The first way is the regular one for minor versions and TwinCAT updates. The second path is only required for upgrading FreeBSD major releases, which usually bring new FreeBSD features (see: FreeBSD-Release-Notes).

  1. Update TwinCAT/BSD
  2. Update major version

Configuration files such as rc.conf and TcRegistry.xml are usually not affected by a system update and installation of new packages and remain unchanged. This ensures that any changes the user makes to the configuration files are preserved and not overwritten.

When installing new packages, configuration files may need to be manually adjusted. Since no user configurations are made during the upgrade, a system may differ not only in its configuration but also in its installed packages from a newly installed system, despite having the same version levels.

1. Update TwinCAT/BSD

The command pkg upgrade is used to update packages. In doing so, pkg upgrade compares the versions of all installed packages with the versions available in the configured package repositories. The Beckhoff Package Server mirrors most of the packages from the normal FreeBSD repository and also contains the following specific Beckhoff packages that can be updated:

In addition, pkg upgrade also tries to update the dependencies of the packages. However, no new packages will be installed except when necessary to satisfy package dependencies.

Individual packages can also be updated, but it is recommended to update the entire system to avoid incompatibilities. This is because the packages in the Beckhoff repository are tested as a complete system in each release.

2. Update major version

The latest major version is required because after a change to the next higher major version, all security updates are provided only for the current version. Older versions are no longer maintained.

In addition to this, new features may be implemented and made available in the future in the latest major version, which will be required for TwinCAT/BSD.