1.7.2.2. Device identificationΒΆ

This section specifies the device identification. This is as a type lable for a PLC.

The identification is checked for consistency when a connection with a runtime system is established. For this reason these entries in the device decription must match the corresponding values in the runtime system! This inhibits to login to with a wrong device description to PLC.

Example:

<DeviceIdentification>
    <Type>4096</Type>
    <Id>0000 0001</Id>
    <Version>3.5.14.0</Version>
</DeviceIdentification>

Entry

Description

Type

Device type:

0000 (0x0000) special type: empty slot

4096 (0x1000) programmable devices

4097 (0x1001) 3S special devices (OfflineVisuClient or similar)

4098 (0x1002) safety controllers

4099 (0x1003) drives

5000 (0x1004) parameterizable devices

Id

HighWord: VendorId (reserved to OEMs by CODESYS GmbH)

CODESYS GmbH = 0x0000

LowWord: OEM-based controller Id (may be a consecutive number)

Version

Version of the controller or the target description. The version is verified as follows when a connection with the controller is established.

Version: 4.3.2.1
Main version: 4
Subversion: 3
Service pack version: 2
Patch version: 1
  1. Different main versions of the device description and the runtime system are generally not compatible and cannot be used together

  2. While different subversion are compatible in principle, a warning is issued because changes in the runtime system may lead to semantic changes or changes in behavior

  3. Different service pack numbers are compatible, since only new interfaces were added, for example. Any changes in existing interfaces would lead to incompatibility!

  4. Different patch numbers are compatible, since only changes in the target description were made, without affecting the controller

This numbering scheme must be taken into account for all future changes in the target description or the runtime system.

In the runtime system the device identification values are set in the SysTarget component. This component offers interfaces for accessing the device Identifications (group___sys_target_itf).

Alternatively the values can be defined in the header file of runtime system named <targetdefines.h> which is automatically generated for every plc! In this case the associated values are automatically set during compile time of the runtime system respectively of the SysTarget component. This has the advantage that the target component only has to be parameterized, not be replaced.

The typical entries for the file <targetdefines.h> are listed below: .. _dev_target_defines_h:

#ifndef __TARGETDEFINES_H_
#define __TARGETDEFINES_H_

    #define SYSTARGET_SIGNATUREID       0xF879D1FC
    #define SYSTARGET_DEVICE_TYPE       SYSTARGET_TYPE_PROGRAMMABLE
    #define SYSTARGET_VENDOR_ID         0x0123
    #define SYSTARGET_DEVICE_ID         0x0001
    #define SYSTARGET_DEVICE_MASK       0x0000
    #define SYSTARGET_VENDOR_NAME       "My company"
    #define SYSTARGET_DEVICE_NAME       "My device"
    #define SYSTARGET_DEVICE_VERSION    0x03050F00

#endif

The SYSTARGET_SIGNATUREID is generated based on the other entries! So the runtime system can check the consistency of all parameters.