On this page, you can find answers to questions about our hardware and software products.

Do you have other questions that have not been answered in this section?

Just send us an e-mail with “FAQ” in the subject line.
We will process your request as quickly as possible.


1. What are B-Primis, B-Fortis and B-Nimis?

These designations are used to define the respective families of Berghof products:

  • B-Primis: A product family including Berghof’s DC and ET display devices
  • B-Fortis: A product family including Berghof’s CC and CC-IO compact devices
  • B-Nimis: A product family including Berghof’s MC and MC-IO modular devices
2. What do the abbreviations DC, ET, CC, CC-I/O, MC, MC-I/O all mean?

These abbreviations designate the model family of the respective product and have the following meanings

  • DC: Display Controller –  A PLC with an integrated display
  • ET: Ethernet Terminal – The display is configurable as a VNC client and a web terminal
  • CC: Compact Controller – A compact PLC with integrated I/Os
  • CC-IO: Compact I/O modules with an EtherCAT interface and an integrated bus coupler
  • MC: Modular controller – A PLC in a modular design with plug-in I/Os that can be extended in a modular manner
  • MC-IO: Modular I/Os – I/Os in modular design and an EtherCAT interface    
3. What are PPC, MX6?

These abbreviations describe the processor architecture installed on the devices and stand for:

  • PPC: Power PC CPU – used in all devices from the “Classic” sub-families
  • MX6:  iMX6 Cortex A9 CPU – used in all devices from the “Pro” and “Prime” sub-families

These two terms are used primarily to distinguish between old and new control platforms.

4. Which interfaces are supported?

Berghof controllers support all common interfaces for both low-level and system automation

with easy-to-use wizards for different communication protocols.

  • Ethernet: TCP/IP, UDP, EtherCAT, Profinet, Modbus TCP, FTP, Ethernet/IP, OPC UA
  • CAN: CANL2, CANOpen, J1939
  • RS232/485: COML2, Modbus RTU
  • USB: For USB memory and USB updates, USB keyboard, USB-to-Ethernet
  • SD card: For fixed memory expansion, up to 32GB depending on the model


USB keyboard: Only the German and American English keyboard layouts are supported

USB-to-Ethernet: Only USB-to-Ethernet adapters with an ASIX AX88179 chipset are supported

5. Can I increase my storage capacity?

It is not possible to increase the size of the internal Flash memory, but you can easily increase the total storage space with external media. Berghof controllers support SD cards (MX6-SDHC / PPC - SD) as fixed memory expansion and USB sticks as removable media. Memory sizes of up to 32GB are supported and the data carriers must be formatted in the FAT(32) file system.

6. Do controllers without a display also support visualization?

Yes, all Berghof controllers without a display feature an integrated VNC server which provides target visualization. The most common way to display the target visualization is to use a B-Primis Ethernet terminal, which features an integrated VNC client; in principle, however, you can use any VNC client to display the visualization. Alternatively, you can also use the web visualization, which can be displayed in any HTML5-capable browser.

7. What resolutions can be used for target visualization?

If a controller without a display outputs the visualization via a B-Primis Ethernet terminal, it is important to set the correct output resolution – depending on the ET model – via VNC. B-Primis display controllers do not have this setting, their resolution is fixed and corresponds to the resolution of an Ethernet terminal of the same size.


  • ET1003:                           QVGA                    – 320x240 –        3.5 inch (CC series, MC series)
  • ET/DC-Pro 4.3″:               WQVGA                 – 480x272 –        4.3 inch (CC series, MC-Pro)
  • ET1005:                            VGA                      – 640x480 –        5.7 inch (CC series, MC series)
  • ET/DC-Pro 7″:                   WVGA                    – 800x480 –        7 inch (CC series, MC series)
  • ET1010:                            VGA                       – 640x480 –       10.4 inch (CC series, MC series)
  • ET/DC-Prime 10.1″:           WXGA                     – 1280x800 –      10.1 inch (CC series, MC-Pro)
  • ET/DC-Pro 15.6″:               WXGA                     – 1366x768 –      15.6 inch (CC series, MC-Pro)
  • ET/DC-Prime 15.6″:            FHD                        – 1920x1080 –    15.6 inch (CC series, MC-Pro)
  • PC VNC client:                   SVGA                      – 800x600 –        (CC series, MC series)
  •  PC VNC client:                  XGA                        – 1024x768 –      (CC series, MC-Pro)
8. Where do I get CODESYS + target?

Depending on the customer's order, the scope of delivery for Berghof PLCs includes a data carrier containing the current target and the matching CODESYS version.
Alternatively, you can also download the current target package, firmware and the matching CODESYS version in the restricted Download area.


The target package is covered by the Berghof Target License, which must be purchased separately and is not free of charge! Access to the restricted Download area is only granted to customers who have verifiably purchased a Berghof Target License.

9. What types of Berghof Target Licenses are available?

Berghof offers two different target licenses with different services:

Berghof Target Single License:

  • One-time provision of the target package in the version current at the time of the order.
  • Installation on one PC only
  • No updates and no access to the restricted Download area
  • Basic support via e-mail only

Berghof Target Company License:

  • One-time purchase and valid for the entire company
  • Installation on any number of PCs within the company
  • Future updates and access to the restricted Download area
  • Extended support by telephone and via e-mail
10. Where do I find manuals and data sheets for the devices?

Depending on the customer's order, the scope of delivery for Berghof PLCs includes a data carrier containing the manuals, data sheets and instructions for the respective hardware. Alternatively, you can also simply download the manuals and data sheets from the respective product pages on the Berghof Automation website.

11. Why is it not allowed to use the new CODESYS version during commissioning?

A Berghof release is always issued as a set consisting of the target, the firmware and the matching CODESYS version combined in a kind of a closed system. The Berghof target is always linked to certain library and compiler versions. These versions are required for the system to work. If only the latest version of CODESYS is used, in which the required library and compiler versions are newer than those linked in the target, it is no longer possible to ensure smooth operation.

12. Should I update my system?

In general, it is not recommended to make changes to a running system if it is stable and meets all of your needs. However, Berghof continuously maintains and improves its systems and it is OK to update to an official release version.

13. When can I update my system?

The system should only be updated with releases that have been officially approved by Berghof. When a new release is issued, all registered customers in our database receive a change notification via e-mail. The updates can then be conveniently downloaded from the restricted Download section.

14. How do I perform updates correctly?

A cleanly executed update process is essential to ensure that the project continues to run smoothly after the update.

Use the following procedure for updates.

  • Firmware update of the PLC
  • Update of the official CODESYS version approved by Berghof
  • Installation of the new Berghof target package
  • Update of the project (target, devices, compilers, libraries, visualization profile)
  • Save the project file in a new profile
15. Can I perform updates without worrying about any issues?

In general, the system can be updated without any issues as long as the release in question is an official release. However, it is also recommended to first install a CODESYS update on a separate computer or in a VM in order to run your initial tests there. With regard to project updates, a general rule of thumb is to always first update a copy of the project file and then verify its functionality.

16. My firmware version is different from my target version?

If the firmware version is newer than the installed target version, this should not be a problem per se since our firmware versions are usually compatible with older target & CODESYS versions; however, we cannot guarantee smooth operation with mixed versions. In general, with these types of constellations it is urgently recommended to run a full function test of the application.
If the firmware version is older than the installed target version, it is no longer possible to download the project. In this case, either the PLC firmware must be updated or the target must be downgraded. Our recommendation is to perform a firmware update.

17. Can I update to a CODESYS version that has not been officially approved?

The answer to this question depends on how the project is to be used after an update of the CODESYS version. In the event of an already existing installation of an approved version, an update of the CODESYS version is not an issue as long as the project is left as it is and not updated. In this way, it is possible to make use of bugfixes or new features in the CODESYS development environment without jeopardizing your project. However, it is recommended to exercise caution when creating new projects as the latest versions of devices, libraries, compilers and visualization profiles are automatically used here. All of these must be reset manually at the beginning of the project. If the aim is to also use the new CODESYS version in order to update the project itself, caution is advised. Versions that have not been approved should only be installed on a separate PC or in a VM and projects should always be backed up. Updates can then be tried out without any issues in this separate test environment. Based on our experience, updates to higher patch versions within the same service pack version are compatible. Jumps to higher service pack versions might work, but this depends on the changes; new features (such as a new visualization element) are not supported without updating the Berghof hardware. In general, Berghof’s recommendation is to only install updates if an official release is available. Berghof generally only gives a functional guarantee for official releases, you perform any other installations at your own risk. If you urgently need a certain update, please contact Berghof’s customer support first.

18. What is the target?

The target can be described as the connecting link between CODESYS and the Berghof PLC which enables CODESYS to correctly recognize the Berghof PLC and communicate with the PLC. The target package components include device descriptions for the PLC, device descriptions for I/Os and device-specific libraries for use in projects. The target is always linked to certain standard CODESYS libraries which must be installed in order for users to be able to log in to the controller. For this reason, the target must always be used in connection with the appropriate CODESYS version.

19. How do I put a Berghof controller into operation?

CODESYS is not needed for the initial commissioning of Berghof controllers. It is recommended to have the manual within reach; however, you can also always find the most important connection instructions on the housing of the controller. The controller requires a 24V DC power source for smooth operation. The user must manually wire a 24V line to the connector for the 24V connections on the controller. The connectors for the power supply are always included in the scope of delivery of the controllers. All power sources must be off during the wiring process.

20. How do I switch on the Berghof controller?

The controllers do not have a power switch, i.e., they are switched on automatically as soon as 24V DC is applied to the corresponding Power In and switched off if the power supply is no longer available.

21. Do Berghof controllers have an energy storage device?

Berghof controllers are equipped with a buffer battery which supplies the PLC with power for a further 10ms in the event of a power failure. This is used to prevent restarts in the event of very short interruptions in the power supply.

22. What happens if I connect a power cable with reversed polarity to a Berghof controller?

Nothing, all Berghof devices have integrated reverse polarity protection and remain switched off. Therefore, you do not have to worry about any damage to hardware.

23. I have connected and switched on the controller, what do I do next?

The next step would be to log in to the controller via the web interface and configure the controller according to your preferences. After the configuration is completed, you can now log in with CODESYS and work with the controller.

24. Do Berghof controllers signal their state via LEDs?

In the rare event that a controller is unresponsive after being switched on and you cannot connect to it, there is still the option to determine the system state via the LEDs. The LED signals are based on the system and CODESYS states. If CODESYS is inactive, the LEDs are controlled by the firmware. As soon as CODESYS is active, the LEDs are only operated by the CODESYS runtime.

25. What do the different LED signals mean?

System states:

RUN/STOP (yellow/off) Description
off Bootloader active
off Linux boot process active
yellow System is supplied with undervoltage
yellow 1x flash, 2s pause Maintenance work mode active
yellow continuous flashing slow (1s)  Packet update via USB active
yellow continuous flashing fast (400ms) Device runs on RAM (firmware update active)
yellow 2x flash, 2s pause  The device requires a reboot (e.g., as Ready message after USB update)
red or green For PLC devices: See CODESYS operating states for the CODESYS states
green For visual terminals: Visu (VNC/WEB) is active


 CODESYS operating states:

 RUN/STOP (green/red)  ERROR (red)  Description
red off  At least one PLC application is stopped
red off  All PLC applications are stopped 
green off  All PLC applications are running
red red At least one PLC application has stopped due to an error
red flashing - Preparations for RESET COLD (via switch/PG) are in progress
? off  Waiting for peripherals (e.g., Retain/undervoltage, Ethernet initialization, ...) 
26. How do I connect the controller to the PC?

For normal use, the controller is connected to the PC exclusively via Ethernet. It doesn’t mater whether the controller is connected directly to the PC with a patch cable or via a switch. For direct connections, it is also not necessary to ensure that a crossed cable is used since Berghof controllers have auto-crossing. Only the network settings on the PC and on the controller must be correct so that a connection can be established, i.e., the PC and the controller must have IP addresses from the same range and the subnet mask must be the same.

27. The controller has several Ethernet ports, which one should I use?

In controllers that have more than one Ethernet port, the standard Ethernet interface (ETH0) is the first port. On models such as CC-Lite, MC-Classic, MC-Pro, which only have one Ethernet port, this port is ETH0. On the DC-Pro, DC Prime and CC-Slim models, this is the port labeled X4. On the CC-Prime models, this is the port labeled X10, but X11 and X12 can also be used here as an alternative, since X10-X12 represent a switch integrated into the controller that goes to the same Ethernet interface.

28. Why are there several Ethernet interfaces?

The second Ethernet interface (ETH1), X5 on the DC-Pro, DC Prime and CC-Slim models and X13 on the CC-Prime models, is primarily intended as a fieldbus interface. In the default settings of the controller, this interface is configured as an EtherCAT port; alternatively, it can also be reconfigured for a Profinet device or statically.

29. Is it possible to use the second Ethernet interface as a standard network or service interface?

This is possible with certain restrictions. The two interfaces (ETH0 and ETH1) are independent of each other and can also be configured differently (see 1.38 and 1.39). If you do not need an Ethernet-based fieldbus with exclusive access to the interface, you can configure the second Ethernet interface as a normal network interface. However, only the IP address and the network mask can be set. For direct connections to the PC as a service and programming interface.

30. How do I find out the IP address?

If you have a DC controller, you can read the configured IP address directly from the display.

Each Berghof controller is delivered with a pre-configured IP address.
This address is: 169.254.255.XX
where XX corresponds to the last two digits of the serial number of the device.

Exception 1: If XX is equal to 00, the IP address is
Exception 2: If XX is equal to 0X, the IP address is 169.254.255.X.

The network mask is always set to

Please note that in order to connect a PC to the controller, it must also be assigned an IP address in the 169.254.255.XX range, but this IP address must be different from that of the controller. The same network mask must be set on both sides.

31. What do I do if I no longer remember the configured IP address?

In the event that you no longer remember the IP address of a controller without a display, there are two ways to reestablish access to the controller. The more common method involves what is known as “maintenance mode”. As long as this mode is active, the controller can be accessed again via the delivery IP, regardless of which IP address was previously set. However, the configured IP becomes active again after a restart. The other method uses Berghof’s USB update functionality (see 1.65 and the following) with a prepared USB stick that only changes the IP address.

32. What is “maintenance mode” and how do I activate it?

Maintenance mode is comparable to “Safe Mode” in Windows. Only the base system is started, the PLC functionality and boot applications remain deactivated; in addition, the controller is loaded with internally pre-defined settings so that the user can still access the controller in exceptional cases.

To activate maintenance mode, first switch off the controller and then proceed as follows.

  • Press and hold the S1 button (Run/Stop).
  • Now supply the controller with power.
  • Wait briefly until the Run/Stop LED starts to flash slowly.
  • Release the button.
  • The controller has now temporarily set the factory IP address on the first Ethernet interface (ETH0) and access to the controller is possible again
  • After a restart, the controller is booted normally again
  • Any settings actively changed in maintenance mode are preserved.
33. How can I reset my controller to its factory settings?

The controller can be reset to the factory settings in one of the following ways:

  • You can use the “Configuration Reset” menu in the web interface (see 1.45).
  • You can use the USB Update Script (see 1.71).
34. How can I manually transfer files to my Berghof controller?

The simplest method for transferring files to the controller is via FTP. For this purpose, the FTP server must be activated on the controller (see 1.43). In order to connect to the controller, you now need an FTP program (CoreFTP, FileZilla, TotalCommander) on the PC; it’s not possible to connect via a browser or the normal Windows Explorer. The FTP address of the controller is the IP address, the port is 21. The “root” user and the associated password (see 1.44) must be used to log in. After the connection is established, you will be in the “root” folder of the controller and can then browse through the directory system of the controller in the same way as you would on a PC. Please always keep in mind that the base directory and file structure of the controller must not be modified, because otherwise, the Codesys runtime system may no longer work. The path of the relevant folder is "/flash/plc/applications/”; everything related to the application, such as Codesys Config, the boot application, visualization files, log files, etc., is saved in this folder. Also, all files created by the application which do not specify an explicit path to other folders can be found here. The FTP program can then be used to create new sub-folders, load files from the controller or write files to the controller.


When transferring files via FTP, please note the transfer type! The transferred data remains unmodified only with the 'binary' transfer type! If the transfer type is ‘ascii’, the transferred data is modified!

35. How can I transfer new fonts to my Berghof controller?

In order to transfer new fonts to the controller, all you have to do is copy the respective Font File (*.ttf) to the designated folder on the controller. The folder designated for this purpose is “/flash/plc/applications/fonts/”. When the controller is delivered, the “fonts” sub-folder is still not created and must be created by the user the first time a new font is transferred. To do this, connect to the controller with an FTP program (see 1.34), navigate to the “applications” folder and create a new folder with the name “fonts”. After the “fonts” folder is created, copy your Font Files (*.ttf) to “fonts” and restart the controller (see 1.48). After the “fonts” folder has been created, all fonts must be stored there, because if the “fonts” folder” is empty, the target visualization will fail to find any fonts and therefore fail to display any font. After the restart, the new font files should be listed in the font overview of the web interface (see 1.57).


Due to system constraints, the file extension of the font files must always be in lowercase letters, otherwise, the file will not be recognized by the system and may have to be renamed.
For example, the Arial Unicode font must be named "ARIALUNI.ttf", because "ARIALUNI.TTF" or "ARIALUNI.Ttf" would not be recognized as font files.

Web interface

36. What is the web interface?

The web interface is the web-based configuration menu for Berghof controllers. A web server runs on the controller itself. You can log in to the web interface and configure the controller using any HTML5-capable browser.
Depending on the specific controller, you can configure various settings here, such as network, SD card, VNC, FTP, time, user management settings, you can view and download the internal system and PLC log of the controller, perform a firmware update, reset the system and start, stop, delete or save the application.

37. How do I reach the web interface?

In order to reach the web interface, you must ensure that the device you log in with is located in the same network as the controller. If this is the case, you can open your browser and specify the IP address of the controller as the URL, after which a login screen with the Berghof logo and two input fields for the username and password appears. After logging in successfully, you now enter the web interface configuration menu of the controller.

38. How can I change the IP address in the web interface?

To change the IP address, you must first log in to the web interface.

In the selection menu on the left under “Configuration”, click on “Network” to access the network settings.

To change the IP address, click in the text field to the right of “IP Address” under ETH0 and enter the desired new IP address.

Follow the same procedure to change the network mask.

You can leave the mode to “Static”.

After changing your settings, you can save them by clicking on the “Save” button below the network settings and then restart the controller.

39. What parts of the network settings can I configure via the web interface?

The network settings are divided into three sub-sections:


General settings, here you can specify the network name of the controller and assign DNS server addresses.

ETH0 and ETH1:

Primary Ethernet interface for the controller:
The “Mode” can be set to
“static”    to denote a permanently allocated configuration
The parameters that can be changed are IP, network mask and the gateway for ETH0.
“dhcp”           for a dynamic configuration via a DHCP server
“inactive”               to disable this interface
“ethercat”       sets the interface to EtherCAT mode and it can no longer be used for normal TCP/IP communication.
“profinet device”  sets the interface to the Profinet device mode and it can no longer be used for normal TCP/IP communication

ETH0:1 and ETH1:1

Virtual extensions of the eth0 and eth1 network interfaces, which make it possible to set a second static IP address for the respective network interface, e.g., for separate service access.
This can only be operated in static mode and the IP must be in a different IP range than the base interface. Cannot be activated if ethercat mode is active on the base interface.

40. How can I configure the time via the web interface?

Date (Time zone: UTC):

This is the real-time clock of the controller, which also acts as reference for the UTC time zone. If time zones are not relevant to your application, you can change the time directly from here. To change the time for the real-time clock, edit the values in the text fields and save the changes by pressing the “Change Time and Date” button. A restart is not necessary.

Time zone:

You can also set a time zone for the time. This time zone is then handled as an offset to UTC. Please note that CODESYS retrieves the time from the real-time clock for time stamps in its system functions; the offset to the configured time zone must be added manually by the user. To set a time zone, first set the current UTC time under UTC and save it. Then select the desired zone from the drop-down list and save the setting with the “Change Timezone” button. A restart is not necessary.

41. How can I configure the VNC resolution via the web interface?

The resolution and color depth can be set in the “VNC” menu (only available on Berghof’s Ethernet controllers (EC/ECC)).

Select the appropriate resolution and color depth from the drop-down list and save the setting by pressing the “Change” button. A reboot is required for the settings to take effect.

42. How can I configure the display via the web interface?

The settings for the integrated display of display controllers can be configured in the “Display” menu. Unlike the VNC settings, there is no option to change the resolution here because the system always uses the resolution natively supported by the display.


The display brightness can be set here. The desired value can be selected from the drop-down list and saved with the “Change” button.

Touch calibration:

The saved touch calibration can be deleted with the “Delete Calibration” button. A reboot will then be required; after that, the display controller will automatically boot into the calibration page. Follow the instructions on the display.

Splash screen:

The splash screen is the image that is shown during bootup of the display controller. It can be changed in this menu. The image file must be in the PNG format and should be adapted to the resolution of the display. The “Search” button opens a window where you can specify the path to the desired file. The image is downloaded to the controller with “Send data”. The new image is displayed as a splash screen the next time the controller is started.

43. How can I activate the FTP server via the web interface?

Each Berghof controller has an integrated FTP server. The FTP server can be activated or deactivated via the drop-down list in the “FTP Configuration” menu. The setting is saved by pressing the “Save” button. A reboot is required for the setting to take effect. The FTP server can be accessed with any conventional FTP client via the IP address of the controller under TCP port 21 and is the most straightforward way to exchange files with the controller. The FTP server does not support the sftp protocol.

44. How can I change the access passwords for the controller via the web interface?

Berghof controllers have several pre-defined users with different access rights. These users are relevant for logging in to the controller via the web interface and FTP. In order to protect the controller against unauthorized access, the passwords can be changed in the “User Management” menu. The usernames cannot be changed. To change a password, click in the password text field for the corresponding user and enter your new password. To save the password, click on the symbol with the green arrows in the “Change” column. The passwords must be changed individually for each individual user. After that, a reboot is required. Berghof recommends that all customers change the default passwords after receiving the hardware in order to prevent unauthorized access.

45. How can I reset the settings via the web interface?

If you want to reset your existing settings to the default factory settings, the first step is to go to the “Configuration Reset” menu. Check “Reset all settings to factory defaults” and press the “Reset Module” button. The controller must then be restarted. “Configuration Reset” only resets the settings; any existing applications and other files in the internal memory of the controller remain intact.

46. How can I retrieve system information via the web interface?

Concise system information can be viewed conveniently by opening the “System Info” menu.

The following information is retrieved:

  • Part name
  • Part number
  • Hardware revision
  • FDT version (device description)
  • Firmware version
  • Supported Codesys version
  • Installed licenses
  • Total runtime
  • Time since last system start
  • CPU temperature overview
  • System temperature overview
  • Memory usage (RAM)
47. How can I perform an update via the web interface?

Berghof controllers offer a web interface option to install updates retroactively. This makes it possible to install firmware or licenses on the controller at a later date without much hassle. All update files for our controllers are so-called “TGZ” files that can be obtained from our Download area or from our support team. The “Search” button in the “Package Update” menu opens a window where you can specify the path to the desired TGZ file. The archive is downloaded to the controller with “Send data”.

After the archive is fully transferred to the controller, an overview screen with information about the loaded archive and what is to be installed on the controller appears. You can now initiate the update process with the “Start” button. Depending on the size of the TGZ file, the update can take between a few seconds and about two minutes. Do not switch off the controller during the process!

During the process, the browser may briefly lose the connection to the controller; in this case, just manually refresh the browser window. The update has been completed when the “System has to be rebooted” message appears on the screen. The controller must then be restarted once for the update to become active.

48. How can I restart the controller via the web interface?

With a large part of the settings or with an update of the controller, a restart is required for the changes to take effect. So that you do not have to disconnect the power supply from the controller every time to perform a restart. There is this functionality also in the web interface of the controller.

In the menu item "System Reboot" you can initiate the reboot via the button "Reboot Module". A message "Rebooting module, session will be closed..." appears. After about 30 seconds, you can click on the "Back to Login" link to return to the controller login page.

49. Is it possible to influence the PLC application via the web interface?

Basically, only CODESYS V3 in connection with the project file has the possibility to actively influence an application stored on the controller. Berghof controllers also offer basic functionality for application control under the web interface. You can start, stop, reset and delete the application. Additionally, it is possible to delete only the retain memory or create a security image of the entire application folder and other options.

50. How can I start, stop or reset my application via the web interface?

The controls for the application are located under the menu item "PLC Control" in the web interface. The control interface is divided into four units.

The top unit shows the current runtime status of the application. The following statuses are possible.

  • AS_RUN: Application available and running
  • AS_STOP: Application available and stopped
  • AS_NO_APPLICATION: Feedback after successful reset Origin
  • EXCEPTION_XXX: Application stopped with exception error, XXX stands for the cause of the error

The two middle units contain the direct controls for the application.

  • Start All Applications: Start existing application(s) on the controller
  • Stop All Applications: Stop existing application(s) on the controller
  • Reset Warm:      Application is reset and stopped, retain variables are retained
  • Reset Cold:        Application is reset and stopped, retain variables are reset
  • Reset Origins:     Application is deleted, all other files in the application directory on the controller remain intact

The lower unit contains the possibility to delete areas of the application. Here you have the choice between the following points:

Erase CODESYS application, configuration and all files in the plc folder: deletes the contents of the entire application directory on the flash memory of the controller, including CODESYS configuration files.

Erase CODESYS retain area: resets only the retain memory of the controller, files in the application directory remain untouched

51. What can be set in PLC Configuration?

In the menu item "PLC Configuration" there are two extended setting options for application functionality.

PLC application on SD-Card:

With this setting, the application directory can be mapped from the flash memory of the controller to an SD card. The application and all relevant files are then stored on the SD card. This is done in the rare case that an application is so large that it no longer fits on the flash memory of the controller, or if you just want to conveniently replace the PLC, you put the SD card into the new PLC and the application starts up again normally.

Warning! If one wants to use this feature, a special SD card provided by Berghof must be used. Commercially available SD cards are only recognized as mass storage but not as additional system storage. If the option is activated without Berghof SD card, the CODESYS runtime system will no longer start on the controller and it will not be possible to load an application on it. In this case, the web interface remains accessible so that the option can be disabled again.

XBIO Watchdog is triggered by code in application:

With this setting, the automatic watchdog for integrated I/Os can be switched off and operated manually via the application. This is a feature for very advanced users and special applications, it is therefore recommended by Berghof to leave this setting disabled.

52. How can I find out what application is running on my controller via the web interface?

In the menu item "PLC Info" the controller reads out some information from the application, so the user can see at a glance exactly which application is on the controller.

The following information can always be read:

Application name: Name of the application in the Codesys project
Status: How the status in “PLC Control”
Project ID: ID, which is automatically assigned by the system
Project name: Results from the file name of the project
Project profile: CODESYS version with which the project runs
Exception (ID): Additional information if an exception error occurs in the application.

The following information must be entered manually in the project information of the application so that the controller can read it out:

Project author:  Person who worked on this application
Project version: Version number of the application
Project description: A brief description of the application
53. Is it possible to see via the web interface what files are in the application directory?

Berghof controllers use Linux as the operating system, on which a CODESYS runtime is then executed. As a result, the system memory of the controller contains a directory system similar to the one we know from every PC. However, all data relevant to an application is collected in a single directory. This is the so-called application directory. The web interface offers the possibility to display a list of all files located in this application directory. In addition, by "clicking" on a single file line, this file can be loaded from the controller to the respective device via the browser. Transferring a file to the controller does not work via the web interface, this is done differently (see 1.34).

55. Is it possible to restore a backup of my application via the web interface?

To restore an existing image to the PLC via the web interface, the PLC status must be "AS_STOP", otherwise the button "Upload folder to PLC" is grayed out. If the control is set to Stop, press the Upload button. The web interface now jumps to the menu item "Package Update".

There you select the desired "plcapplication.tgz" via "Browse" and press "Send data" and then "Start" (see 1.47). You should be aware that the application present on the controller will be overwritten. Files which are in the application directory and in the image are overwritten by the files in the image without request! Files that are present in the application directory but not in the image are retained, but are then without function depending on the application. After uploading an image, a reboot must be performed.

56. How can I clean my application directory via the web interface?

The last functionality in the application directory menu item is the complete deletion of its content. Just like the upload button, the "Clean Folder" button is grayed out as long as the PLC status is "AS_RUN". Once the PLC is stopped, the "Clean folder" button can be used to initiate the deletion process.

57. How can I see which fonts are on my Berghof controller via the web interface?

In the sub-item "Font Files Download" of the web interface, it is possible to list the fonts located on the controller. A distinction is made between two subgroups.

In System Fonts the standard fonts of the controller are listed, these are always installed on the controller by default and can always be used. It is not possible to change or delete the system fonts. In PLC Fonts the fonts copied by the user to the controller are listed, this list can be extended with all fonts if enough memory is available. TrueType fonts (*.ttf) are supported in the four standard display types: Regular, Bold, Italic and Bold Italic. 

58. What kind of diagnostic functions do I have via the web interface?

Berghof controllers offer a range of diagnostic options for the entire system via the web interface. There are diagnostic displays about the CODESYS Runtime, system logs, hardware interfaces and memory.

Since all diagnostic displays are shown in Linux format, it can be difficult for an inexperienced user to understand these logs, which is why there is also the function in the event of an error to create an image of all relevant logs at the push of a button and to save this file on the PC and send it to Berghof for analysis.

59. What does the PLC Diag page in the web interface show me?

On the "PLC Diag" page you can see the logging information of the CODESYS Runtime. Everything CODESYS related such as logging in and out, downloading applications, and information about the application itself is displayed here. If there are errors where e.g. the application suddenly stops, then you will be able to see the cause in the "PLC Diag".

60. What does the System Log page in the web interface show me?

On the System Log page you can see the logging information of the system. A distinction is made between two categories.
"System Log", in the upper half shows the standard Linux console; here, information is displayed which can be relevant outside the CODESYS Runtime, e.g. boot process, system status, network accesses, debug information etc.
"System Log" is used for extended information acquisition in the event of a controller malfunction.

"System Diag" in the lower half shows the logging of the entire system, recording information such as retain accesses, changes and states of the CODESYS runtime, boot and power fail times and any actions performed by the user via the web interface or via hardware buttons on the controller.

61. What does the Ethernet page in the web interface show me?

On the Ethernet page you can see information about the Ethernet interfaces of the respective Berghof controller. The format here again corresponds to the Linux console output.

Information such as MAC address, set IP, netmask etc. as well as received and sent packets and data endings can be read out.

62. What does the CAN page in the web interface show me?

On the CAN page you can see information about the CAN interfaces of the respective Berghof controller. The format here again corresponds to the Linux console output.

Information can be read out such as BUS status, set baud rate and received and sent packets and data volumes.

63. What does the File System Usage page in the web interface show me?

On the File System Usage page you can see information about the available memory of the respective Berghof controller. The format here again corresponds to the Linux console output. Relevant for the user, in this case, is the available flash memory of the controller, which is framed in green in the picture. Here the total memory is displayed and how much of it is in use and how much of it is unused.

If an SD card is also used, it is displayed in an extra entry, framed in blue in the image, with the same information as the flash memory.

All other entries are only system relevant and do not have to be considered.

64. How to create the SystemLog image file?

In order to be able to help you with errors whose cause cannot be determined immediately, Berghof controllers offer the function of automatically creating an image file of the entire diagnostic area.

This file can then be easily sent to Berghof for further analysis.

To create this file, you need to go to the "System Dump" page of the controller web interface. Here you just need to click the "Create and Save Dump File" button and the controller will automatically start creating the file.

The creation of the file can take a few minutes, when the creation process is completed the download dialog of the browser appears automatically and the file can be saved on the PC and sent on.

USB update

65. What is the USB Update Script?

The USB Update Script is a Berghof exclusive feature that allows the user to change settings, make application updates, copy files to the controller or perform firmware updates with a USB stick without any use of the web interface or CODESYS.

66. How do I use the USB update script?

The USB update script is a predefined folder structure within the top-level directory "usbupdate-mx6". Exactly which actions are executed is defined in the "usbupdate.ini" file. This INI file is already prepared so that the individual actions only have to be defined with "yes" or "no".

Each subfolder represents a function of the USB update script, if a function needs additional files they will be loaded into the respective subfolders. Alternatively, the subfolders may also contain additional INI files for further configuration options, which can also be edited. How to configure the individual functions is described in detail in points 1.68- 1.73.

Once the USB update script has been configured as desired, the folder "usbupdate-mx6" and its contents must be copied to the root directory of a USB stick. Please note that the USB stick must be formatted in the FAT32 file system so that it can be recognized by the controller. The USB stick is then inserted into the USB port of the switched-off controller. Once the USB stick is inserted, switch on the controller. If you have a display control, the console output shows directly on the display that a USB update stick has been detected and that the script is now active. When it comes to controllers without displays, you have to pay attention to the status LEDs, if the USB update stick was recognized correctly and the script started the Run/Stop LED starts to blink orange. When the script has run completely, the controller restarts automatically and the USB stick can then be removed.


When using the USB update script, a basic knowledge of the structure and syntax of an INI configuration file is a prerequisite! An incorrectly edited INI file can lead to the USB update stick having no effect, to individual configurations not being adopted or, in the worst case, to the controller being incorrectly configured, which can lead to unforeseen events.

Information about the structure of the INI files can be found here:

67. What is the usbupdate.ini and how do I use it?

The usbupdate.ini file is the central configuration file for the USB update script. Here you can set which actions are performed in the USB Update and which are omitted.

The usbupdate.ini is divided into five sections, each containing at least one key.
For each section and key you will also find a short description of the function in English.

Almost all keys in the usbupdate.ini can have "yes" or "no" as value, depending on whether the function should be executed or not. A few keys require a file name as value.

The following five sections are available

  • [firmware]:      Settings for a USB firmware upgrade or downgrade
  • [webtheme]:    Settings for replacing the logo visible in the web interface
  • [splashscreen]: Settings for exchanging the image when starting up a display control
  • [sysconfig]:      Settings for executing the system configuration
  • [plcapp]:          Settings for performing an application update or copy operation.

For each of these sections there is a folder with the same name in the folder structure. The files required for the respective execution are copied into these folders.

Since usbupdate.ini is basically just a text file with special formatting, it can be edited with any text editor. However, it is recommended to use an editor that supports the ini format and displays the text correctly formatted and colored, such as Notepad++.

Each section and the keys within the section are independent of each other except for file names and can be combined freely, but it is recommended to leave the order as it is in the delivery state.

So you can typically create a USB update, which only changes one setting, or copy files to the controller afterwards without doing an application update. The user can choose freely here and create different USB sticks for different occasions if necessary.

The settings are made very simply by going through the ini file and entering "yes" or "no" for all entries.

Once you have edited the settings according to your wishes, save and then copy the appropriate data into the respective section folders.

68. What settings can I make in the firmware section?

The firmware section consists of two keys:

  • do_update: Perform firmware up/downgrade -> yes/no
  • firmware_name: Exact file name of the firmware file -> e.g. firmware_mx6-plc_1.5.0.tgz

      Firmware file must be located in the "firmware" subfolder

69. What settings can I make in the web theme section?

The webtheme section consists of a key:

  • do_update_webtheme: Replace web interface logo -> yes/no

The logo must be in the "webtheme" subfolder as a "logo.gif" named and converted image file.

The logo will be scaled in the web interface afterwards, but it is still recommended to create the logo image file in the appropriate resolution for the intended use.

70. What settings can I make in the splash screen section?

The splash screen section consists of a key:

  • do_update_splashscreen: Replace boot screen logo -> yes/no

The splash screen setting is only relevant for Berghof display controls and e-terminals.

If this option is applied to a control without a display, the step is skipped.

The screen must be in the "splashscreen" subfolder as a "splash.png" named and converted image file.

The screen is not scaled on the display, therefore, the splash screen image file must always be created in the resolution that matches the display.

71. What settings can I make in the Sysconfig section?

The Sysconfig section consists of three keys:

  •  do_reset_syscfg_to_factory_defaults:                           Reset existing configuration on controller -> yes/no
  •  do_sysconfig_from_file:                                               Load configuration from USB update to controller -> yes/no


The config. of the controller is set in a separate ini file, what exactly can be set in the standard-configuration.ini can be found at point. 1.72.
The configuration file "configuration.ini must be in the "sysconfig" subfolder.


  • replace_config_file_instead_of_merge:                           Overwrite existing configuration completely -> yes/no


During a normal configuration process via the USB update the already existing settings are supplemented or overwritten by the settings in the configuration.ini, the configurations are merged. By enabling the Replace setting in the USB update script, the existing configuration will be completely overwritten by the USB Update configuration. Settings which are not listed in the configuration.ini will be changed.
Then reset to your default value in the controller.

72. Which settings are in the "configuration.ini"?

The configuration.ini is mandatory for successful execution of a sysconfig via USB update script.
A predefined configuration.ini is always included in the delivery state of the folder structure. In general, everything that can be set in the web interface can be set in configuration.ini, but three sections are included by default for simple basic settings.

If further entries and sections are desired, one should contact the support of Berghof Automation.

The default configuration.ini entries are:

Section: [network]

  • mode: Mode of the interface -> "static"/ "dhcp"/ "inactive"
  • ip: IP address of the interface -> e.g. ""
  • netmask: Netmask of the interface -> e.g. ""
  • default_gateway: Gateway address of the interface -> e.g. ""

Section: [ftp]

  • enabled: Activate FTP server of the PLC -> "0"/"1"

Section: [vnc]

  • size: Resolution for the VNC server -> "480x272"/ "640x480"/ "800x480"/ "1366x768" etc.
  • depth: Color depth of the VNC visualization -> "16"/"32"

The VNC settings are only relevant for Berghof controllers without display and which show their visualization via an e-terminal. Controllers with display have their resolution fixed, in this case, you can remove the entry from the configuration.ini.

73. What settings can I make in the Plcapp section?

The Plcapp section consists of four keys:

  • do_clean_plcfolder: Delete contents of application folder (/flash/plc/applications/) completely -> yes/no
  • do_update_plcapp: Execute the application update and restore the application backup (see 1.54) -> yes/no
  • do_copy_plcdata: Copy the data present in the Data subfolder to the Application folder -> yes/no

In the "application" subfolder of the USB Update folder structure there is another subfolder named "data". The Data folder is always included in the delivery state but empty. In this data folder you can copy extra files, folders and folder structures, which you want to load additionally or later on the controller. If the key "do_copy_plcdata" is set to "yes" the whole content of the data folder is copied to "/flash/plc/applications/" of the controller.

  • plcapp_name: Exact filename of the application backup file -> e.g. plcapplication.tgz

Backup file must be located in the "application" subfolder

74. I have created a USB stick but the update fails, what can I do?

If an update does not start or fails, this can have several reasons. A few of those reasons are as follows:


  • USB stick is not recognized:            

Make sure that the USB stick is recognized and mounted correctly by the controller. This can be easily checked in the web interface under File System usage (see 1.63) there should be an entry with the path: /media/USB0/1/x. If this is not the case, you should make sure that the USB stick is formatted in FAT32 or replace the USB stick.


  • USB stick is recognized but the controller boots directly without blinking:

This happens when the "usbupdate-mx6" folder is not found or its contents have been untitled. Check if the folder "usbupdate-mx6" is really located in the root directory of the USB stick and has not been renamed. There is also a distinction between upper and lower case. The files and folders inside the "usbupdate-mx6" must also have the file and folder names of the delivery state


  • USB stick is recognized the control starts blinking but my settings are not applied:

It can be assumed that there is a faulty configuration or that files have been forgotten. Check the ini files to make sure that everything has been edited and saved correctly. Check if all keys have valid values and check if your section or a key is not commented out with ";" or "#".  Furthermore, it should be checked whether all specified files are located in the correct folder and the file name is correct.


Another tool for debugging is a log file of the update process which is always created as soon as the script is started, no matter if it runs completely or is aborted. From this log you can see what exactly has been executed and where errors have occurred. If you still get stuck and want to contact support, please always send a ZIP of your entire USB update folder along with a log file.


75. How do I install CODESYS V3?

Execute the file Setup_CODESYSV35SP_x_Patch_x.exe as administrator to start the CODESYS installation. An Internet connection may be required for the installation of CODESYS V3.5 if some required components such as the Microsoft .NET Framework have to be installed additionally.

 If you do not know which features you need, you should do a full installation with all features, otherwise, you can deselect some features that are not absolutely needed.

Only the CODESYS V3 and CODESYS Gateway features are required in any case.

  • If you do not want to convert CODESYS V2.3 projects to V3, you can do without installing the CODESYS Converter.
  • If you do not need access to CODESYS V2.3 controllers, you can do without installing the CODESYS Gateway V2.3.
  • If you do not need an OPC server, you can do without installing the CODESYS OPC Server 3. Please note: You can also access the controller via OPC UA without OPC Server, but you need an OPC UA license for your controller.
  • If you do not need a software PLC for Windows to be able to execute and test projects directly under Windows, then you can do without installing the CODESYS Control Win V3.
76. Where do I install devices and libraries in CODESYS V3 Berghof?

Additional devices or libraries whether from Berghof or another manufacturer are always installed via CODESYS in so-called "repositories". These "repositories" are a global storage location for CODESYS V3 on the hard disk. All standard devices and libraries, as well as devices and libraries from other manufacturers which are subsequently installed are located in this storage location and are accessible for all CODESYS V3 versions installed on the PC. The "Repositories" are PC bound, i.e. per PC on which CODESYS  V3 is installed, all subsequently installed devices and libraries must be installed again. Each project and each user accesses it, a direct link to a file as known from older CODESYS versions, there is no longer.

The two main "repositories" associated with our controllers are as follows:

  • Device Repository
  • Library Repository

A more detailed description of these two "repositories" can be found in points 2.3 and 2.4.

77. What is the device repository and how do I install a device later?

The Device Repository is the storage location for all control descriptions, I/O peripherals, drives and other devices installed in CODESYS V3. The repository is manufacturer and bus independent, so all description formats supported by CODESYS V3 can be installed in the repository. Installed devices can then be selected in the CODESYS control configuration.

The repository can be opened in CODESYS V3 via the Context menu->Tools-> Device Repository.

The installed devices are sorted into five subgroups for better overview.

  • Miscellaneous: for peripherals not clearly assigned to a bus. The descriptions for the I/Os integrated in the Berghof PLC are listed here.
  • Fieldbuses: Each fieldbus periphery whether master or slaves are sorted here. In the subgroups, the devices are then assigned to the corresponding fieldbuses.
  • Logical devices: Logical I/Os for a pure software linking of variables between multi-control projects, e.g. for data exchange between a normal PLC and a Safety PLC inserted in the project.
  • Controls: All controllers installed in CODESYS V3 are displayed here.
  • SoftMotion devices: Drives specially marked as SoftMotion devices are listed here. As with the fieldbuses, these are also categorized into subgroups per device type and fieldbus.

To install a device subsequently, open the device repository in CODESYS V3 and press the "Install" button. In the newly opened "Open file" dialog, navigate to the device description file and open it.CODESYS V3 then installs the device in its repository, from then on these devices are usable in CODESYS V3. If the file is not displayed in the destination folder, probably the file filter (in the dialog at the bottom right, next to the file path) is set to a specific format, this filter should be set to "All supported files".

78. What is the Library Repository and how do I install a library later?

The Library Repository is the storage location for all libraries installed in CODESYS V3. The repository is manufacturer independent, so all CODESYS V3 libraries can be installed in the repository. Installed libraries can then be selected in the Library Management of CODESYS V3.

The repository can be opened in CODESYS V3 via:

Context menu->Tools-> Library Repository.

A categorization can be optionally switched on and off, in addition, either all installed libraries can be displayed or filtered by manufacturer. To install a library later, open the Library Repository in CODESYS V3 and press the "Install" button. In the newly opened "File Open" dialog, navigate to the library file and open it. CODESYS V3 then installs the library into its repository, from then on these libraries are usable in CODESYS V3. If the file is not displayed in the destination folder, the file filter (in the dialog at the bottom right, next to the file path) is probably set to a specific format.

The formats for libraries are as follows:

  • Libraries: Normal CODESYS V3 Library library file (*.library)
  • Translated libraries: CODESYS V3 libraries which are stored precompiled (*.compiled-library)
  • CODESYS libraries: CoDeSys V2.x libraries which can be opened under CODESYS V3 to be converted (if possible) (*.lib)
79. What is a package?

Packages are a special CODESYS V3 archive format in which multiple device descriptions, libraries, sample projects, visualization style, etc. are installed in one installation process. Packages are usually provided by control and device manufacturers so that customers can conveniently install all required files. The Berghof target (see 1.18) is also a package and must be installed so that CODESYS V3 recognizes Berghof devices correctly.

80. What is the Package Manager and how do I install a package / target package?

The Package Manager is similar to a repository as for devices or libraries. In this, you can see which packages are installed on this PC and CODESYS V3. Unlike with devices or libraries, you don't use these packages directly in your project, but your content, which can then be found in the other repositories. The manager can be opened in CODESYS V3 via: Context menu->Tools-> Package Manager
To install a package or the Berghof Target Package, first open a new CODESYS V3 instance as administrator. If you have also opened the Package Manager in CODESYS V3, press the "Install" button.

In the newly opened "Open File" dialog, navigate to the package file and open it. CODESYS V3 now opens a small installation menu, if you don't know exactly what you need, you normally select "complete installation" here. After the package installation is complete, you will see an overview of what package content was installed and in which category. This content is then available in projects from this point on.

81. I have a question about CODESYS V3, where do I look first?

The first place to go if you have a question about CODESYS V3 is on the PC where CODESYS V3 is already installed. Each installation includes the CODESYS V3 the so-called CODESYS Online Help, unlike the name suggests this help is also available offline because all required files are located on the hard disk. The online help is a digital documentation platform for CODESYS V3, with category display and integrated index search.

Every CODESYS standard functionality is documented here, about the user interface, settings, editors, data types, operands, programming features, visualization, visualization elements, standard libraries, etc.

To open the online help, simply open an instance of CODESYS V3 and press the "F1" key on your keyboard while the window is open. After a short loading time, the online help is now available and can be searched. In newer CODESYS versions it is checked if an internet connection is available and either the help in web format is opened in the browser or the local help.

Tip: If you select the element you want information about, whether it is a window, a block in a graphical editor, ST code or a Visu element, and then press F1, the online help opens immediately in the entries of the selected element, if there are any.

Alternatively, the entire CODESYS Online Help can also be found in web format at: