Skip to main content

Available Dynamic Components

Optional components are used for adapting CODESYS Control RTE to specific hardware. You can also load these components to the configuration from the  Component Manager tab of the PLC configuration dialog. For more information, see: Dialog: System Configuration – Component Manager

Adapting to the hardware platform

On multicore processors, CmpDrvSchedulerAMP is always initialized by the setup. This offloads the execution of the RTE to a CPU core not used by Windows. On Windows 64-bit or Windows versions > 7, a real-time operation is possible only in this way. As a result, the setup will limit the execution of Windows to the first <number of physically available cores - 1> cores by means of the boot option numproc. Hyperthreading cores have to be abandoned completely. The setup recognizes the platform and automatically enters the required driver as the first component in the cfg file of the RTE. This must never be changed.

The drivers save their results from the measurement at the first start when the speed of the applied hardware is determined. These are saved as their names in the path of the system services HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service in the key Params. At all following system starts, the determined value is read from the registry. When values are missing, the measurement is taken again.

Support of optional fieldbus adapters

Driver: CmpEt1000Drv

This driver directly supports Pro1000-compatible chip sets from Intel. To use the component, you have to replace the original driver from Intel with this driver in the device manager of Windows. Continue as follows:

  • Open the Windows Device Manager.

  • Right-click the selected Pro1000 network adapter and click the command Update driver software.

  • Select the driver manually and specify the path as <RTE installation directory>\CmpET1000MPD.

If the device manager refuses to install the driver, then uninstall the original driver by Intel by pressing the <Del> key, and delete the corresponding inf and pnf files in the directory <SystemRoot>\inf. Note: SystemRoot is usually "C:Windows".

The inf files to be used here are widely named net557*.inf/pnf or net559*.inf/pnf. Note: If a reference is made to Pro1000 in the inf file, then it is usually the correct file. The pnf file always has the same name as the inf file.

Then when the system is restarted, Windows can no longer install the driver automatically. The hardware manager Is started and the driver in <RTE installation directory>\CmpET1000MPD is transferred to it.

Important

You also have to enable the runtime components in the file CODESYSControl_User.cfg:

Component.<subsequent number>=CmpEt1000Drv

Driver: CmpEt100Drv

Note: This driver is supplied for compatibility purposes only. The hardware can no longer be purchased.

This driver directly supports Pro100-compatible chip sets from Intel. To use the component, you have to replace the original driver from Intel with this driver in the device manager of Windows. Continue as follows:

  • Open the Windows Device Manager.

  • Right-click the selected Pro100 network adapter and click the command Update driver software.

  • Select the driver manually and specify the path as <RTE installation directory>\CmpET100MPD.

If the device manager refuses to install the driver, then uninstall the original driver by Intel by pressing the <Del> key, and delete the corresponding inf and pnf files in the directory <SystemRoot>\inf. Note: SystemRoot is usually "C:\Windows".

The inf files to be used here are widely named net557*.inf/pnf or net559*.inf/pnf. Note: If a reference is made to Pro100 in the inf file, then it is usually the correct file. The pnf file always has the same name as the inf file.

Then when the system is restarted, Windows can no longer install the driver automatically. The hardware manager Is started and the driver in <RTE installation directory>\CmpET100MPD is transferred to it.

Important

You also have to enable the runtime components in the file CODESYSControl_User.cfg:

Component.<subsequent number>=CmpEt100Drv

Driver: CmpSJACanDrv

CmpSJACanDrv is a generic driver for CAN hardware that is based on the CAN controller SJA1000 or compatible controllers. The PCI adapters from Peak, Ixxat (passive CAN adapter), and Automata are supported directly.

After installing the adapter, you can select and install the corresponding drivers from the directory W2K_XP_Drivers (in the RTE installation directory). To do this, use the wizard that appears directly above New hardware found, or use the device manager of Windows (context menu: command Update driver software). You install the desired driver by manually selecting a driver and navigation in one of the directories cited above. The device is located in the category "3S compatible devices".

Note: The original driver from the manufacturer must not be installed.

The driver CmpSJACanDrv can also address SJA1000 controllers fixed on the hardware. The properties of these kinds of onboard CAN controllers can be transferred to the driver by means of entries in the configuration file of CODESYS Control RTE in the section [CmpSJACanDrv]. Possible entries:

NumDevices=1 <number of SJAs>  ;Number of SJAs, that are configured in the following>
;(optional: <DisableRetain=1> The driver is told that it should
; not create any retain entry in the cfg file, even if a CAN adapter is equipped with NVRAM.)
0.Address=<physical address of the SJA1000>            
0.Interrupt=<interrupt vector of the SJA1000>
0.IntEdgeTrig=<0 or 1. 0 hardware dependent>
0.XtalFrequency=<frequency>   ;normally 16000000Hz, 24000000Hz is also a possible variant
0.BusType=<bus type>  ;depending on the type of switching of the SJA, 
;1 for ISA, 3 for PCI, 0 for memory
0.Alignment=<alignment>       ;normally 1, hardware dependent
0.Name=<any name>
.OutputCtrl=<valid values:e.g. 0xFE, 4C, 1A>   ;Depends on the CAN switching
0.PortAddress=<port address>  ;This address is written one time for 
;initializing the CAN switching.
0.PortValue=<vlaue>    ;The value that is written for the initialization.

Driver: CmpNetXCanDlDrv

This component is a CAN minidriver for a NetX CAN adapter. With this driver, CODESYS Control RTE can use the CAN libraries from CODESYS GmbH via a NetX adapter.

CmpNetXCanDlDrv can only be used with CmpHilscherCIFX over which you have to load a CAN firmware (master or slave). It does not matter whether a master or slave is used because CmpNetXCanDlDrv uses only the CAN driver interface of the adapter. The protocol is managed by a 3S CAN library.

The configuration of the component in the configuration file of CODESYS Control RTE:

[CmpNetXCanDlDrv]MaxNumberOfCanNetworks=0..n -> number of the CAN networks (number of the NetIds)
NetId.0.Channel=0 -> mapping of the NetId onboard nad NetX channels (see CmpHilscherCIFX)
NetId.0.Board=0

Driver: CmpRTL81x9Mpd

Note: This driver is supplied for compatibility purposes only. The hardware can no longer be purchased.

This driver directly supports Realtek RTL8139 (and compatible) Ethernet controllers. The combination chip sets 8100 and 8110 are also compatible. The installation is also performed similar to CmpEt100Drv.

Driver: CmpRTL8169Mpd

In the same way as for CmpRTL81x9Mpd; for the gigabit variant of the above Realtek Ethernet controller.

Driver: CmpSercos3Master

This driver supports the SERCOS III PCI adapter 700353x0 from Automata. After installing the adapter, install the driver from W2K_XP_Drivers\Automata_SERCOS3.

Driver: CmpHilscherCIFX

This driver supports a CifX card from Hilscher.

After installing the card, you can install the driver supplied by Hilscher or SysDrv3S. (Within the scope of delivery of the CODESYS Control Win runtime system for Windows from CODESYS GmbH).

Specify the component in the cfg file of CODESYS Control RTE. This is possible by an editor or by means of the PLC Configuration dialog. Generate the [CmpHilscherCIFX] section as well. The following entries are necessary for the driver (example):

Device.0.BootloaderFilePath=NXCIF50-RTE.bin
Device.0.Channel.0.FirmwareFile=cifxdpm.nxf

In this example, the 0 in Device.0 is the 0-based index of the adapter if more than one is used. Channel is always followed by 0 because all PCI adapters from Hilscher support only one channel.

The files that contain the boot loaders or firmware are delivered with the CifX card from Hilscher. You have to place them in the root file directory of the CODESYS Control RTE. You may also have to adapt the file names or entries in the configuration file.

For more information, see: Commissioning the Hilscher CIFX Card

NVRAM PCI plug-in adapters

Driver: CmpPciRetain

This driver allows for the use of NVRAM as retain memory on a PCI adapter. Requirements: The NVRAM is reachable directly via the physical address in the PCI registers, and it supports all ranges of access, for example byte, word, and double word access.

You can configure the component with the following entries in the configuration file CoDeSysControl.cfg of CODESYS Control RTE in the section [CmpPciRetain]:

  • VendorID, DeviceID, SubDeviceID, SubVendorID: Identification of the PCI device.

  • AddressIndex: PCI address register (BAR0BAR5) that contains the physical base address of the NVRAM. Default value: 0.

  • MemorySize: Size (in bytes) of the available NVRAM. Default value: 0x80000 (512 KB).

  • AddrOffset: Movement of the NVRAM against the used address register.

See the documentation for the used PCI adapter for the values of AddressIndex, MemorySize, and AddrOffset.

The default values of the four IDs identify the MRAM device in a Siemens NanoBox PC.

Beckhoff CX5xxx-specific components

Driver: CmpCX5000Mpd

This is a Windows network driver. It can be used only on a CXxxxx Beckhoff PC with a CX5000 communication processor.

If the setup of CODESYS Control RTE is executed on a CXxxxx PC, then the driver CmpCX5000Mpd is installed automatically and added to a list of components (in the cfg file).

Additional information and manual installation: Exception: A CX-IPC was installed by default with "Windows7 embedded standard". This comprises a Beckhoff driver for the PCI device with the hardware IDs VendorID = SubVendorID = 0x15ec and DeviceID = SubDeviceID = 0x5000. After the installation of CODESYS Control RTE, you can replace this driver with the driver CmpCX5000Mpd.sys. In this case, use the function Update driver software in the Windows Control Panel:

  • Open the Windows Device Manager. Search for the system device from Beckhoff, right-click it, and then execute the command Update driver software.

  • In the wizard, select the Search for driver software manually option and click Have disk.

  • Select the inf file in the installation directory of CODESYS Control RTE (subdirectory CmpCX5000Mpd).

  • Confirm any prompts as to whether the driver should be installed.

    Windows installs a network adapter named CX5000 driver for CODESYS Ethernet.

  • Manually specify the driver in the configuration file CoDeSysControl.cfg (installation directory of CODESYS Control RTE): Example: Component.3=CmpCX5000Mpd.

Then a download of a CODESYS project with EtherCAT should no longer display unresolved references.

Driver: CmpCXSecUPS

This driver can be used only on an "embedded PC" in the CX5000 or CX5100 series from Beckhoff.

The component monitors a pin that monitors the state of the power supply in low-priority, cyclic call of the communication task.

If a power failure is detected, then the applications are stopped and the retain data saved in a file (typically Application.ret).

Note: The following restrictions exist when saving retain data:

  • Depending on the current load of the PLC, the detection of the power failure may be delayed.

  • Depending on the load of the PC, the time varies that can be used for saving data after a power failure.

Due to these restrictions, you have to test the storage of the retain data with the completed applications. Moreover, it is recommend that the validity of the remanent variables is checked at the application start.

The component does not have any configuration options. You have to add them only to the component list of the controller.

For more information, see: Registry Entries of the RTE