New Features TwinCAT 3.1

Build 4024: More efficiency and consistency in the engineering process

TwinCAT users receive the latest information in a targeted manner via the Visual Studio® start page.
TwinCAT users receive the latest information in a targeted manner via the Visual Studio® start page.

  • integration of Visual Studio® 2017 Shell (TcXaeShell)
  • new home page, including new RSS feed with TwinCAT information
  • support of Visual Studio 2019 (Build 4024.10 and higher)

The variant management capability of TwinCAT simplifies the versioning and maintenance of control software significantly.
The variant management capability of TwinCAT simplifies the versioning and maintenance of control software significantly.

  • simple configuration of machine options
  • version-specific deactivation/activation of components
  • version-specific parameterization
  • mapped through ‘conditional compilation’ in the PLC

The multi-user functionality of TwinCAT simplifies the commissioning of even complex machines significantly.
The multi-user functionality of TwinCAT simplifies the commissioning of even complex machines significantly.

  • Several programmers can work on the same PLC project simultaneously.
  • integrated workflow
  • reduced commissioning time
  • high traceability

Further new functions of TwinCAT 3.1 Build 4024

  • corrected time stamps for data records, e.g. via NTP protocol

In larger installations with multiple controllers, certain data must often be stored on a central server so that the aggregated data can be subsequently analyzed. Unfortunately, the timestamps on the different devices cannot be generated uniformly. If such data is then aggregated for a centralized application like TwinCAT Scope, the central system has no accurate time reference. Unfortunately, the system clocks on the individual controllers cannot be simply adjusted to synchronize them, because this would impair the entire application. The only option that’s left is therefore to use a reference clock and determine its offsets from the local clocks when timestamps are generated for the data to be aggregated.

But which reference clock should you use? In order to achieve medium accuracy very simply, you can use the (S)NTP service, which is free and installed on all Beckhoff devices. In distributed installations, this method is sufficient when all you want to do is compare data. For more accuracy, a process based on IEEE 1588 can be used. This method, which is also called PTP (Precision Time Protocol), can reconcile very different PLCs with great precision, but requires special hardware such as the EL6688 EtherCAT Terminal. The only way to achieve even more clock precision would be with special cabling, i.e. to use an EtherCAT cable between the devices.

The interface introduced in the new TwinCAT build for one of these methods allows you to use corrected timestamps for different data and thus achieve comparable timestamps in aggregated databases.

  • improved overview in the mapping dialog
  • 'Go To Definition' from the PLC process image to the PLC code

The Mapping dialog has been revised for a user-friendly I/O configuration. At the same time, the possibility to jump from the process image to the corresponding place in the code was added.

  • improvements in the cross-reference list (new filter, performance enhancements)
  • new keyword: ABSTRACT for abstract FB/method/property definition
  • improved monitoring of interface variables
  • Small icons in the solution tree show access modifiers.
  • ENUMs now also available as strings in the PLC
  • exception handling via TRY-CATCH
  • simplified commenting function in the PLC
  • 'Released' flag is used during library creation.
  • conditional compilation also available in the declaration section (in addition to implementation part)
  • multi-line support in pragma declarations
  • new, optional Base64 memory format for graphical PLC objects

To develop and test PLC code faster and more effectively, many improvements have also been incorporated in the PLC area. Especially in object-oriented programming, simplifying code maintenance and reusability is a major objective. The use of interfaces is essential in this context. In the past, interface pointers were able to indicate the address, but no pointer de-referencing was executed. With Build 4024, this is now possible and further improves the engineering capabilities.

In the C++ and C# high-level languages, programming abstract classes with abstract methods and properties is widespread. This option is now also available to the PLC programmer, because abstract classes make it easy to generate sample function blocks or classes, which can then be filled with code. This ability brings the PLC programmer another step closer to the capabilities of C++ and C#. The same applies to exception handling. If there is an exception, the PLC programmer wants to respond to it. In case of a division by zero, it may be useful to execute a specific routine to bring the machine into a safe state and prevent any damage to it.

The mapping dialog has been improved in such a way that not all node levels are open. This reduces the scrolling range and makes it easier to create a link, for example between the PLC and an I/O component, because the respective devices can now be found more rapidly. An option allows you to switch between the old, the new, and an automatically adjusted view. With the “Go To Link” variable, users have always been able to jump back and forth between an I/O device and the process image, but there was no way to jump from the process image to the code. This is now possible with the “Go To Definition” command, a feature which makes debugging much easier. It also improves program clarity, because with this functionality the still frequently used lists of global variables can be dispensed with.

Another advantage is that the program code of function blocks in graphical languages can now be saved in the binary Base65 format as well, which speeds up the loading and saving of programs with a large proportion of graphical languages.

  • automatic local start of the PLC HMI client at runtime
  • dynamic scaling for the operating elements of the measuring equipment category
  • offline rotation of elements
  • performance improvements during opening of dialogs
  • automatic transfer of scaling options of the TargetVisu object to the Tc3PlcHmi.ini file

A variety of optimizations have been made for the PLC-HMI. These range from the automatic start of the PLC-HMI client on the runtimes and the dynamic scaling of operating elements in the measuring devices category to performance improvements when opening dialogs.

  • exchange of TcCOM modules for C++ und MATLAB®/Simulink® while the machine is running
  • repository for versioned C++ projects
  • new way of signing TcCOM modules

Until now, only the PLC programmer was able to change the control code with the machine running. This is an absolutely necessary feature, because in practical use, many machine or plants can rarely be stopped if at all. If C++ or MATLAB®/Simulink® is used for the machine control, it has only been possible until now to change this code in conjunction with a machine restart. However, this is not permissible in many applications. In particular in the case of test machines, processes may not be interrupted as a rule. Despite that, program changes are frequently necessary. As a solution to this challenge, Beckhoff has implemented the option to also replace C++- and MATLAB®/Simulink® code during operation in the new TwinCAT build. To this end, the corresponding code is specially versioned and the existing version is replaced by a newer one while retaining the data.

  • based on the AutomationML format
  • bidirectional exchange of I/O topologies with ECAD tools
  • incremental import of I/O topologies
  • fully integrated in TwinCAT

Based on the AutomationML format, a bidirectional exchange of I/O topologies is integrated in the TwinCAT Engineering. This can be used for interaction with ECAD tools and also supports incremental updates of the I/O topologies.

  • User-defined function blocks can be created and instantiated as often as required (including GoToDefinition, Online View, nesting up to 2 levels).
  • multiple use of variables
  • global variables

In addition to security, safety plays an important role in the TwinCAT system as well. For this reason, numerous features have been added that make safety-related operations easier. One of the most important of these is the multiple use of variables. Variables therefore no longer need to be unique but can be declared and used locally as well as globally across an entire safety project. This makes safety-related projects much easier and more effective. In addition, special function blocks that are based on existing and certified function blocks can be defined and instantiated multiple times. This means that a functionality for a safety door e.g. needs to be created only once. If an application has multiple safety doors, the function block can simply be reused in multiple instances and with different I/O assignments or parameters.

  • 'Secure ADS' Extension (uses TCP port 8016): encrypted ADS communication

The Beckhoff ADS protocol was already introduced with the first version of TwinCAT and has been essentially unchanged ever since, but frequently enhanced by new features all the same. One such new feature in TwinCAT Build 4024 is the ability to communicate securely via ADS by setting up an encrypted connection between two parties who then exchange ADS telegrams as usual.

When a new connection is created between two ADS devices, their authentication can be ensured via certificates. All telegrams are automatically encrypted. Beckhoff has decided to use TLS, the best-known process for authentication and encryption, for this purpose. The programmer does not need to worry about the certificates and their management, because TwinCAT handles this automatically in the background. The integration into the central communication component, TwinCAT Router, also enables legacy applications using ADS to use encrypted connections by reconfiguring them without having to recompile or even rewrite the application.

  • project wizard facilitates Scope configuration
  • new single bar and digital charts
  • dynamic style for dynamic display switching, depending on variables
  • shapes: display of geometric shapes in x/y plots
  • vision trigger: inserts images with time stamp into the Scope data stream
  • headless mode: allows the view to be disconnected from the server during recording
  • marker: with docking function on the x-axis and label feature
  • integrated dictionary with physical units
  • clear display option for clearing the chart after the display time has elapsed

With the new TwinCAT Scope New Project Wizard it is possible to realize a simple and guided project start with the Scope View. Not only the previous YT, XY and Array bar charts, but also the new single bar and digital charts can be configured. Furthermore, it is now possible to change the appearance of the graphs at runtime with the Dynamic Style function. The color of a channel, for example, can be changed if threshold values are reached. Geometric figures can now also be installed in the XY chart. The vision triggers form a completely new function group: They enable camera images that are provided with a timestamp to be displayed directly in the chart.