Configuration Manager (goal_cm)

The Configuration Manager provides an interface to handle configuration variables during runtime. If a NVM is available, the configuration variables can also be managed nonvolatile. Besides providing runtime configuration data the CM also provies an interface for the Device Manger Tool/ GOAL Manager Tool.
The Configuration Manager organizes the configuration data module-wise, called CM-module. Each CM-module contains a list of configuration variables, called CM-variables.



Figure: data structure and data flow of the Configuration Manager

Each CM-variable is uniquely identified by a CM-module-ID and a CM-variable-ID. The Configuration Manager allows to handle configuration variables of the CM-variable data types, see Chapter: GOAL data types. The CM-modules and CM-variables must be installed in state GOAL_FSA_INIT.
The configuration data in the NVM are extended by a CRC-sum to detect data errors. The applied CRC-algorithm is Fletcher-32 /Fletcher/.
The Configuration Manager differentiates between CM-variables with temporary and volatile values. CM-variables can be marked as temporary or stable by function goal_cmSetVarValue(). Temporary CM-variables can be manipulated after loading from the NVM via a callback function. Chapter: Callback functions describes all callback functions of the Configuration Manager.
If there are changes at the interface of the Configuration Manager to the NVM or changes at the variable list, the configuration data are not loaded from NVM. Changes on interfaces are identifiable by the version number GOAL_CM_VERSION of the Configuration Manager in the file ...\goal\goal_cm.h.
It is possible to assign a name to each CM-variable. This possibility must be activated/deactivated by the compiler-define GOAL_CM_NAMES.
The Configuration Manager can be controlled via the command line interface, see Chapter: Command line interface.

  • GOAL files:

    • goal_cm.[h,c], goal_cm_id.h, goal_cm_t.h, goal_cm_cli.c, cm/goal_cm_cm.[h,c]

  • example:

    • …\goal\appl\00410_goal\cfg_demo

Configuration

Compiler-defines

The following compiler-defines are available to configure the Configuration Manager:

  • GOAL_CM_NAMES:

    • 0: CM-modules and CM-variables are identified by ID numbers (default)

    • 1: CM-modules and CM-variables are identified by ID numbers and names

CM-variables

The following CM-variables are available for the Configuration Manager:

Table: CM-variables for Configuration Manager

CM-Module-ID

GOAL_ID_CM

CM-variable-ID

0

CM-variable name

CM_CM_VAR_SAVE

Description

Each writing of any value to this CM-variable stores all CM-variables in the NVM.

CM data type

GOAL_CM_UINT8

Size

1 byte

Access

-

Default value

from NVS or 0

Callback functions

The Configuration Manager supports two kinds of callback functions:

  • callback functions, which must be specified during implementation and

  • callback functions, which can be specified during runtime

CM-variables based

During implementation callback functions

  • for value validation and

  • to inform the application about value changes

can be specified for each CM-variable. The specification of the callback functions is described in Chapter: Creating a CM-module and a variable list. The callback functions themselves are described in the following tables. The names of the callback functions are application-specific.

Table: description of callback function cbValidateFunc()

Prototype

GOAL_STATUS_T cbValidateFunc(uint32_t cmModId, uint32_t cmVarId, GOAL_CM_VAR_T *pVar, void *pNewData, uint32_t size)

Description

This callback function is used to validate new values for the specified CM-variable.

Parameters









cmModId

number of the CM-module

cmVarId

number of the CM-variable

pVar

pointer to the entry in the CM-variable list for the CM-variable

pNewData

new specified value for the CM-variable

size

size of the CM-variable in byte

Return values

GOAL return status, see Chapter: GOAL status

Category

optional
If a callback function is not available, specify NULL in the CM-variable list.

Registration

by compilation



Table: description of callback function cbChangedFunc()

Prototype

GOAL_STATUS_T cbChangedFunc(uint32_t cmModId, uint32_t cmVarId, GOAL_CM_VAR_T *pVar) 

Description

This callback function is used to inform other components about the changing of the value of the CM-variable. 

Parameters





cmModId

number of the CM-module

cmVarId

number of the CM-variable

pVar

pointer to the entry in the CM-variable list for the CM-variable

Return values

GOAL return status, see Chapter: GOAL status

Category

optional
If a callback function is not available, specify NULL in the CM-variable list. 

Registration

by compilation

CM-module based

During runtime callback functions

  • for customer-specific loading of CM-variables from the NVM,

  • for customer-specific saving of CM-variables to the NVM,

  • to change values for temporary CM-variables after loading from the NVM by function goal_cmLoad()

can be configured for each CM-module by function goal_cmAddModule(). The callback functions are described in the following tables. The names of the callback functions are application-specific.

 

Table: description of callback function cbLoadFunc()

Prototype

GOAL_STATUS_T cbLoadFunc(uint32_t cmModId, uint32_t cmVarId, GOAL_CM_VAR_T *pVar, uint32_t *pSize)

Description

This callback function is used to load a CM-variables from NVM customer-specific. 

Parameters







cmModId

number of the CM-module

cmVarId

number of the CM-variable

pVar

pointer to the entry in the CM-variable list for the CM-variable

pSize

returns the current size of the CM-variable in byte

Return values

GOAL return status, see Chapter: GOAL status

Category

optional
If not available, specify NULL in the call of goal_cmAddModule(). 

Registration

during runtime about function goal_cmAddModule() 

 

Table: description of callback function cbSaveFunc()

Prototype

GOAL_STATUS_T cbSaveFunc(uint32_t cmModId, uint32_t cmVarId, GOAL_CM_VAR_T *pVar)

Description

This callback function is used to save a CM-variables in the NVM customer-specific.

Parameters







cmModId

number of the CM-module

cmVarId

number of the CM-variable

pVar

pointer to the entry in the CM-variable list for the CM-variable

pSize

returns the current size of the CM-variable in byte

Return values

GOAL return status, see Chapter: GOAL status

Category

optional
If not available, specify NULL in the call of goal_cmAddModule().

Registration

during runtime about function goal_cmAddModule()

 

Table: description of callback function cbTmpsetFunc()

Prototype

GOAL_STATUS_T cbTmpsetFunc(uint32_t cmModId, uint32_t cmVarId, GOAL_CM_VAR_T *pVar, uint32_t *pNewSize)

Description

This callback function allows to overwrite the value of the temporary CM-variable after loading from the NVM. If no callback function is specified, GOAL uses the default function goal_cmTmpSet() and clears the value to 0.

Parameters







cmModId

number of the CM-module

cmVarId

number of the CM-variable

pVar

pointer to the entry in the CM-variable list for the CM-variable

pNewSize

returns the current size of the CM-variable in byte,
goal_cmTmpSet() returns 0

Return values

GOAL return status, see Chapter: GOAL status

Category

optional
If not available, specify NULL in the call of goal_cmAddModule().

Registration

during runtime about function goal_cmAddModule()

Creating a CM-module and a variable list


The Configuration Manager provides a scheme for the creation of a CM-module and a list of CM-variables. It is recommended to use this scheme for application-specific CM-modules too.

  1. For each CM-module a unique number is necessary.

    Code: Example of unique number

    #define APPL_CM_MOD_ID 0x00EE000

     

  2. The CM-variables, which shall be available via the Configuration Manager, must be specified and assigned to a CM-variable-ID. Because the CM-variable-ID is also used as list index, the counting has to start with 0 and must be consecutively. Create a enum for the CM-variable-IDs to access the configuration variable by a symbolic name.

    Code: Example of enum for the CM-variable-IDs

    typedef enum { APPL_CM_VAR_1, APPL_CM_VAR_2 } APPL_CM_VARS_ID_T;

     

  3. The CM-variables are listed with the following properties:

    1. CM-variable-ID,

    2. CM-variable data types of the CM-variable,

    3. maximal size of the CM-variable in byte,

    4. a callback function for the validation of the written value,

    5. a callback function to inform the application about the change of the variable's value and

    6. the name of the CM-variable, if naming is switched on by the compiler-define GOAL_CM_NAMES.
      Create a table with the properties for all CM-variables assigned to the CM-module. Each line of the table represents one CM-variable according to the structure GOAL_CM_VARENTRY_T. This structure contains the properties of the CM-variable and pointer references for the internal handling. Please set the internal pointer references to NULL. If no callback functions are available for validation and/or change reports, set the references also to NULL.

      Code: Example for GOAL_CM_NAMES = 0 with callback functions

      static GOAL_CM_VARENTRY_T applCmVars[] = { \ {APPL_CM_VAR_1, GOAL_CM_UINT8, 1, NULL, applValidateFct, applChangeFct, NULL, NULL }, {APPL_CM_VAR_2, GOAL_CM_UINT32, 4, NULL, applValidateFct, applChangeFct, NULL, NULL } }

       

      Code: Example for GOAL_CM_NAMES = 0 without callback functions

       

  4. Now the created CM-module can be integrated in the code as described in Chapter: Creating a new CM-module.

Virtual Variables

GOAL CM supports virtual variables, which only are stored in memory and not written to the non volatile storage.
Virtual variables are created in stage GOAL_STAGE_CM_MOD_ADD using the function goal_cmRegVarVirtual().


Table: description of goal_cmRegVarVirtual()

Prototype

GOAL_STATUS_T goal_cmRegVarVirtual(uint32_t modId, unt32_t varId, GOAL_CM_DATATYPE_T type, uint32_t sizeMax, goal_cm_validate validate, goal_cm_changed changed);

Description

Register a virtual cm variable

Parameters











modId

Module ID

varId

Variable ID

type

CM datatype

sizeMax

Maximum size of variable

goal_cm_validate

Validation callback or NULL

goal_cm_changed

Modification callback or NULL

Return values

GOAL return status, see Chapter: GOAL status

Category

Optional

Condition

-



 

Code: example of creating virtual cm variable

Command line interface

Table: description of cm set

Command

cm set <modId> <varId> <newVal>

Description

Sets the value of an existing variable identified by the CM-module-ID and CM-variable-ID in the Configuration Manager.

Parameter





<modId>

number of the CM-module

<varId>

number of the CM-variable within the CM-module, value range 00000001h – FFFFFFFFh

<newVal>

new value
Integer values are entered with an optional sign. String values begin and end with "-character.

 

Table: description of cm show

Command

cm show [<modId> <varId>]

Description

Shows the value of the variable identified by the CM-module-ID and CM-variable-id or all CM-variables. If no IDs are given all CM-variables of all CM-modules are printed out to the command line interface.

Parameter



<modId>

number of the CM-module, value range 00000001h – FFFFFFFFh

<varId>

number of the CM-variable within the CM-module, value range 00000001h – FFFFFFFFh

Implementation guidelines

Creating a new CM-module

  1. Specify a unique CM-module-ID number, see Chapter: Creating a CM-module and a variable list.

  2. Specify the list of CM-variables, see Chapter: Creating a CM-module and a variable list.

  3. Create a variable for the CM-module-ID.

    Code: Create a variable for the CM-module-ID

     

  4. Register the CM-variables by function goal_cmRegModule() in the state GOAL_FSA_INIT_APPL, stage GOAL_STAGE_CM_MOD_REG.

    Code: Register the CM-variables by function goal_cmRegModule()

     

  5. In stage GOAL_STAGE_CM_MOD_ADD add the CM-variable list to the CM-module by function goal_cmAddModule() in the state GOAL_FSA_INIT_APPL and do not specify callback functions for customer-specific nonvolatile load and save and the modification of temporary CM-variables after loading from NVM.

    Code: add the CM-variable list to the CM-module by function goal_cmAddModule()

     

  6. Write a value to a CM-variable by function goal_cmSetVarValue().

    Code: Write a value to a CM-variable by function goal_cmSetVarValue()

     

  7. Read the value of a CM-variable about function goal_cmGetVarById().

    Code: Read the value of a CM-variable about function goal_cmGetVarById()

Add a new CM-variable to a CM-module

  1. Add the CM-variable to the variable list, see Chapter: Creating a CM-module and a variable list.

  2. Create a variable for the CM-module-ID.

    Code: Create a variable for the CM-module-ID

     

  3. Register the CM-module by function goal_cmRegModule() in the state GOAL_FSA_INIT_APPL.

    Code: Register the CM-module by function goal_cmRegModule()

     

  4. Add the CM-variable list to the CM-module by function goal_cmAddModule() in the state GOAL_FSA_INIT_APPL and do not specify callback functions for customer-specific nonvolatile load and save and the modification of temporary CM-variables after loading from NVM.

    Code: Add the CM-variable list to the CM-module by function goal_cmAddModule()

     

  5. Write a value to a CM-variable by the function goal_cmSetVarValue().

    Code: Write a value to a CM-variable

     

  6. Read the value of a CM-variable by the function goal_cmGetVarById().

    Code: Read the value of a CM-variable

Load and save CM-variables nonvolatile

  1. Create a variable for the CM-module-ID.

    Code: Create a variable for the CM-module-ID

     

  2. Register the CM-module by function goal_cmRegModule() in the state GOAL_FSA_INIT_APPL

    Code: Register the CM-module by function goal_cmRegModule()

     

  3. Add the CM-variable list to the CM-module by function goal_cmAddModule() in the state GOAL_FSA_INIT_APPL and do not specify callback functions for customer-specific nonvolatile load and save and the modification of temporary CM-variables after loading from NVM.

    Code: Add the CM-variable list to the CM-module by function goal_cmAddModule()

     

  4. Load all CM-variables from NVM by function goal_cmLoad().

    Code: Load all CM-variables

     

  5. Write a value to a CM-variable by the function goal_cmSetVarValue().

    Code: Write a value to a CM-variable

     

  6. Save all CM-variables nonvolatile by function goal_cmSave().

    Code: Save all CM-variables

     

List of CM Module and Variable IDs

This List represents some available Module and Variable IDs of the official GOAL Release Version 2.23.0. For a complete List, please contact us.

Module IDs

ID

Component

Description

GOAL_ID

34

GOAL

Device Detection

GOAL_ID_DD

27

PROFINET

PROFINET

GOAL_ID_PNIO

35

GOAL

Logging Manager

GOAL_ID_LM

12

GOAL

TCP/IP Networking

GOAL_ID_NET

37

BOOT

Bootloader Interface

GOAL_ID_BOOT

4

GOAL

Ethernet

GOAL_ID_ETH

23

EtherNet/IP

EtherNet/IP

GOAL_ID_EIP

72

CCM

CCM Ethernet Modules

GOAL_ID_CCM

Variable IDs

Module Name

Variable Name

Variable ID

Type

Max. Size

Variable Description

Temp.

Long description

GOAL_ID_DD

MODULENAME

0

GOAL_CM_STRING

20

Modulename

 

Customer specific name of the module

GOAL_ID_DD

CUSTOMERID

1

GOAL_CM_UINT32

4

Customerid

 

Customer Id

GOAL_ID_DD

RESERVED

2

GOAL_CM_UINT8

1

 

 

-

GOAL_ID_DD

FEATURE_DISABLE

3

GOAL_CM_UINT32

4

Bitmask of disabled features

 

Each bit disables a function: 
bit 0, disable "HELLO DETECTION"
bit 1, disable WINK
bit 2, disable GETLIST
bit 3, disable GET VALUE
bit 4, disable SET VALUE

GOAL_ID_PNIO

STATION_NAME

0

GOAL_CM_GENERIC

255

 

 

 

GOAL_ID_PNIO

VENDOR_ID

1

GOAL_CM_UINT16

2

 

 

 

GOAL_ID_PNIO

DEVICE_ID

2

GOAL_CM_UINT16

2

 

 

 

GOAL_ID_PNIO

VENDOR

3

GOAL_CM_GENERIC

255

 

 

 

GOAL_ID_PNIO

IM0HWREV

4

GOAL_CM_UINT16

2

 

 

 

GOAL_ID_PNIO

IM0SWREVPREF

5

GOAL_CM_UINT8

1

 

 

 

GOAL_ID_PNIO

IM0SWREVENH

6

GOAL_CM_UINT8

1

 

 

 

GOAL_ID_PNIO

IM0SWREVBUGFIX

7

GOAL_CM_UINT8

1

 

 

 

GOAL_ID_PNIO

IM0SWREVINTCHG

8

GOAL_CM_UINT8

1

 

 

 

GOAL_ID_PNIO

IM0SWREVCNT

9

GOAL_CM_UINT16

2

 

 

 

GOAL_ID_PNIO

IM0PROFILEID

10

GOAL_CM_UINT16

2

 

 

 

GOAL_ID_PNIO

IM0PROFILETYPE

11

GOAL_CM_UINT16

2

 

 

 

GOAL_ID_PNIO

IM0ORDERID

12

GOAL_CM_GENERIC

(20 + 1)

 

 

 

GOAL_ID_PNIO

IM0SERIALNR

13

GOAL_CM_GENERIC

(16 + 1)

 

 

 

GOAL_ID_PNIO

IM1TAGFUNC

14

GOAL_CM_GENERIC

32

 

 

 

GOAL_ID_PNIO

IM1TAGLOC

15

GOAL_CM_GENERIC

22

 

 

 

GOAL_ID_PNIO

IM2DATA

16

GOAL_CM_GENERIC

16

 

 

 

GOAL_ID_PNIO

IM3DESC

17

GOAL_CM_GENERIC

54

 

 

 

GOAL_ID_PNIO

IM4SIG

18

GOAL_CM_GENERIC

54

 

 

 

GOAL_ID_PNIO

HOLDFCT

19

GOAL_CM_UINT32

4

 

 

 

GOAL_ID_PNIO

SYSCAP

20

GOAL_CM_UINT32

4

 

 

 

GOAL_ID_PNIO

PORTDESC

21

GOAL_CM_GENERIC

LLDP_PORT_DESC_LEN

 

 

 

GOAL_ID_PNIO

SYSDESC

22

GOAL_CM_GENERIC

LLDP_SYS_DESC_LEN

 

 

 

GOAL_ID_PNIO

TXINTERV

23

GOAL_CM_UINT32

4

 

 

 

GOAL_ID_PNIO

MANADDR

24

GOAL_CM_UINT32

4

 

 

 

GOAL_ID_PNIO

SYSTEM_NAME

25

GOAL_CM_STRING

LLDT_SYS_NAME_LEN

 

 

 

GOAL_ID_PNIO

IFSUBTYPE

26

GOAL_CM_UINT32

4

 

 

 

GOAL_ID_PNIO

PDPORTDATA

27

GOAL_CM_GENERIC

sizeof(PN_REC_PDPORTDATA_CFG_T)

 

 

 

GOAL_ID_LM

VERSION

0

GOAL_CM_UINT8

1

LM Version

 

Version information for LM interface

GOAL_ID_LM

READBUFFER

1000

GOAL_CM_GENERIC

128

Log Buffer

X

Buffer for reading online logging from deivce

GOAL_ID_LM

CNT

1001

GOAL_CM_UINT16

2

Log Buffer Byte Counter

X

Control word for online log access

GOAL_ID_LM

EXLOG_READBUFFER

1002

GOAL_CM_GENERIC

128

Exception Log Buffer

X

Buffer for reading exception logging from deivce

GOAL_ID_LM

EXLOG_CNT

1003

GOAL_CM_UINT16

2

Exception Log Buffer Byte Counter

X

Control word for exception log access

GOAL_ID_LM

EXLOG_SIZE

1004

GOAL_CM_UINT32

4

Exception Log Size (kByte)

X

Indicator for exception log size

GOAL_ID_LM

EXLOG_USAGE

1005

GOAL_CM_UINT8

1

Exception Log Usage (%)

X

Indicator for exception log usage

GOAL_ID_LM

EXLOG_ERASE

1006

GOAL_CM_UINT8

1

Erase Exlog Command

X

Command:
*, Erase Exception Log

GOAL_ID_NET

IP

0

GOAL_CM_IPV4

4

IP address

 

IP address of first interface

GOAL_ID_NET

NETMASK

1

GOAL_CM_IPV4

4

IP netmask

 

NETMASK of first interface

GOAL_ID_NET

GW

2

GOAL_CM_IPV4

4

IP gateway

 

GATEWAY of first interface

GOAL_ID_NET

VALID

3

GOAL_CM_UINT8

1

IP validity

 

Validity of IP address:
0, Stored IP address is not valid, interface settings originate from network stack of system
1, Stored IP address is valid, will be applied to interface at start of device

GOAL_ID_NET

DHCP_ENABLED

4

GOAL_CM_UINT8

1

DHCP enable flag

 

DHCP enable:
0, DHCP disabled
1, DHCP enabled

GOAL_ID_NET

DHCP_STATE

5

GOAL_CM_UINT8

1

DHCP state

X

DHCP state:
0, DHCP initialized
1, DHCP server selecting
2, DHCP requesting configuration
3, DHCP ip address bound
4, DHCP renewing configuration
5, DHCP rebinding ip address to interface

GOAL_ID_NET

DNS0

6

GOAL_CM_IPV4

4

DNS server

 

First DNS server of first interface

GOAL_ID_NET

DNS1

7

GOAL_CM_IPV4

4

DNS server

 

Second DNS server if first interface

GOAL_ID_NET

HOSTNAME

8

GOAL_CM_STRING

20

Hostname

 

Hostname of first interface

GOAL_ID_NET

COMMIT

1000

GOAL_CM_UINT8

1

Commit IP command

X

Command:
*, Apply IP settings

GOAL_ID_BOOT

SIGNATURE

0

GOAL_CM_GENERIC

16

 

X

Signature of booted image

GOAL_ID_BOOT

BLVERSION

1

GOAL_CM_STRING

16

Boot loader version

X

Bootloader Version

GOAL_ID_BOOT

FWVERSION

2

GOAL_CM_STRING

16

 

X

Firmware Version

GOAL_ID_BOOT

RESET_CAUSE

1000

GOAL_CM_UINT8

1

Reset Cause

X

Reset cause:

0, Unspecified

1, Firmware Update Requested

2, Watchdog

3, Firmware Commit Required

4, Reserved
5, Flash Error
6, Signature Verification Failed

GOAL_ID_BOOT

IMAGE_NUMBER

1001

GOAL_CM_UINT8

1

Image number

X

Booted image number

GOAL_ID_BOOT

IMAGE_COUNTER

1002

GOAL_CM_UINT8

1

Image counter

X

Booted image age counter

GOAL_ID_CM

VERSION

0

GOAL_CM_UINT32

4

CM version

 

Version information for CM interface

GOAL_ID_CM

SAVE

1000

GOAL_CM_UINT8

1

Save CM command

X

Command:
*, Save CM to Flash

GOAL_ID_ETH

MAC

0

GOAL_CM_GENERIC

6

MAC address

X

 

GOAL_ID_ETH

LINK

1000

GOAL_CM_UINT32

4

Port Linkstate Mask

X

Link status mask of interfaces

GOAL_ID_ETH

SPEED

1001

GOAL_CM_UINT32

4

Port Speed Mask

X

Port speed mask of interfaces

GOAL_ID_ETH

DUPLEX

1002

GOAL_CM_UINT32

4

Port Duplex Mask

X

Port Duplex mask of interfaces

GOAL_ID_ETH

PORTCNT

1003

GOAL_CM_UINT32

4

Port Count

X

Number of interfaces

GOAL_ID_PTP

PTPSTATE

0

GOAL_CM_GENERIC

(4 * 32)

PTP state array (max. 4 entries)

X

 

GOAL_ID_PTP

MPDSIGN

1

GOAL_CM_GENERIC

(4 * 1)

mean propagation/path delay sign array (max. 4 entries)

X

 

GOAL_ID_PTP

MPDSEC

2

GOAL_CM_GENERIC

(4 * 8)

mean propagation/path delay seconds array (max. 4 entries)

X

 

GOAL_ID_PTP

MPDNSEC

3

GOAL_CM_GENERIC

(4 * 4)

mean propagation/path delay nano seconds array (max. 4 entries)

X

 

GOAL_ID_PTP

OFFSETFROMMASTERSIGN

4

GOAL_CM_UINT8

1

Offset from Master sign 

X

 

GOAL_ID_PTP

OFFSETFROMMASTERSEC

5

GOAL_CM_GENERIC

8

Offset from Master seconds

X

 

GOAL_ID_PTP

OFFSETFROMMASTERNSEC

6

GOAL_CM_UINT32

4

Offset from Master nano seconds

X

 

GOAL_ID_GPTP

NEIGHBORRATERATIO

0

GOAL_CM_GENERIC

(4 * 4)

neighborRateRatio (scaled) array (max. 4 entries)

X

 

GOAL_ID_GPTP

RATERATIO

1

GOAL_CM_INT32

4

rateRatio (scaled)

X

 

GOAL_ID_HTTP

HTTP_CHANNELS_MAX

0

GOAL_CM_UINT16

2

Number of channels for HTTP

 

Determines the number of possible connections to the HTTP server

GOAL_ID_HTTP

HTTPS_CHANNELS_MAX

1

GOAL_CM_UINT16

2

Number of channels for HTTPS

 

Determines the number of possible connections to the HTTPS server

GOAL_ID_HTTP

USERLEVEL0

2

GOAL_CM_STRING

32

Login Level 0

 

Authentication data for level 0

GOAL_ID_HTTP

USERLEVEL1

3

GOAL_CM_STRING

32

Login Level 1

 

Authentication data for level 1

GOAL_ID_HTTP

USERLEVEL2

4

GOAL_CM_STRING

32

Login Level 2

 

Authentication data for level 2

GOAL_ID_HTTP

USERLEVEL3

5

GOAL_CM_STRING

32

Login Level 3

 

Authentication data for level 3

GOAL_ID_QUEUE

SMALLBUFSIZE

0

GOAL_CM_INT16

2

buffer size of small queue

 

Buffer size for small memory buffers

GOAL_ID_QUEUE

SMALLBUFNUM

1

GOAL_CM_INT16

2

buffer number in small queue

 

Amount of small memory buffers reserved

GOAL_ID_QUEUE

MEDBUFSIZE

2

GOAL_CM_INT16

2

buffer size of medium queue

 

Buffer size for medium memory buffers

GOAL_ID_QUEUE

MEDBUFNUM

3

GOAL_CM_INT16

2

buffer number in medium queue

Amount of medium memory buffers reserved

GOAL_ID_QUEUE

BIGBUFSIZE

4

GOAL_CM_INT16

2

buffer size of big queue

 

Buffer size for big memory buffers

GOAL_ID_QUEUE

BIGBUFNUM

5

GOAL_CM_INT16

2

buffer number in big queue

 

Amount of big memory buffers reserved

GOAL_ID_EIP

INCARNATIONID

0

GOAL_CM_UINT32

4

Most Significant Word of Connection ID

Used to create unique Connection IDs across power cycles

GOAL_ID_EIP

DOMAIN

1

GOAL_CM_GENERIC

EIP_CM_DOMAIN_LEN

Default Domain Name

 

part of TCP/IP Interface Object attribute 5

GOAL_ID_EIP

HOST

2

GOAL_CM_GENERIC

EIP_CM_HOST_LEN

Host Name

 

TCP/IP Interface Object attribute 6

GOAL_ID_EIP

ENCAPTIMEOUT

3

GOAL_CM_UINT16

2

Encapsulation Inactivity Timeout 

TCP/IP Interface Object attribute 13

GOAL_ID_EIP

PORTCFG

4

GOAL_CM_GENERIC

sizeof(OPENER_PORT_CFG_T)

External Ethernet Port Configuration

Ethernet Link Object attributes 6 & 9
(Interface Control & Admin State)

GOAL_ID_EIP

QOS_VLAN

5

GOAL_CM_UINT8

1

VLAN enable

 

QoS Object attribute 1

GOAL_ID_EIP

QOS_URGENT

6

GOAL_CM_UINT8

1

DSCP value for priority "Urgent"

QoS Object attribute 4

GOAL_ID_EIP

QOS_SCHEDULED

7

GOAL_CM_UINT8

1

DSCP value for priority "Scheduled"

QoS Object attribute 5

GOAL_ID_EIP

QOS_HIGH

8

GOAL_CM_UINT8

1

DSCP value for priority "High"

 

QoS Object attribute 6

GOAL_ID_EIP

QOS_LOW

9

GOAL_CM_UINT8

1

DSCP value for priority "Low"

 

QoS Object attribute 7

GOAL_ID_EIP

QOS_EXPLICIT

10

GOAL_CM_UINT8

1

DSCP value for priority "Explicit"

QoS Object attribute 8

GOAL_ID_EIP

TTL

11

GOAL_CM_UINT8

1

TTL Value

 

TCP/IP Interface Object attribute 8
TTL value of IP Header for Multicast Messages

GOAL_ID_EIP

MC_CTRL

12

GOAL_CM_UINT8

1

Multicast Config - Alloc Control

 

TCP/IP Interface Object attribute 9
Choose how to allocate Multicast Addresses
0: calculate address from device's IP address
1: use Mcast Start Address + offset

GOAL_ID_EIP

MC_NUM

13

GOAL_CM_UINT16

2

Multicast Config - Num Mcast

 

TCP/IP Interface Object attribute 9
Number of allocated Multicast Addresses for EtherNet/IP

GOAL_ID_EIP

MC_START

14

GOAL_CM_UINT32

4

Multicast Config - Mcast Start Addr

TCP/IP Interface Object attribute 9
first allocated Multicast Address

GOAL_ID_EIP

ACD_ENABLED

15

GOAL_CM_UINT8

1

ACD enable flag

 

ACD enable:
0, ACD disabled
1, ACD enabled

GOAL_ID_EIP

ACD_LAST_CONFLICT

16

GOAL_CM_GENERIC

sizeof(S_CIP_ACDLastConflictDetected)

ACD LastConflictDetected

 

Ethernet Link Object attributes 11
(LastConflictDetected)

GOAL_ID_CCM

SPI_TYPE

0

GOAL_CM_UINT8

1

SPI Configuration: Type

 

SPI Type (currently only slave supported):
0, SPI Master
1, SPI Slave

GOAL_ID_CCM

SPI_MODE

1

GOAL_CM_UINT8

1

SPI Configuration: Mode

 

SPI Mode:
0, CPOL=0; CPHA=0
1, CPOL=0; CPHA=1
2, CPOL=1; CPHA=0
3, CPOL=1; CPHA=1

GOAL_ID_CCM

SPI_SPEED

2

GOAL_CM_UINT32

4

SPI Configuration: Speed

 

SPI Speed in Master Mode

GOAL_ID_CCM

SPI_UNITWIDTH

3

GOAL_CM_UINT8

1

SPI Configuration: Unit width

 

Bitsize of one single transfer unit:
0, 8 Bit
1, 16 Bit
2, 32 Bit

GOAL_ID_CCM

SPI_BITORDER

4

GOAL_CM_UINT8

1

SPI Configuration: Bit order

 

Bitorder of SPI transfers:
0, MSB first
1, LSB first

GOAL_ID_CCM

SPI_TRANSFERSIZE

5

GOAL_CM_UINT16

2

SPI Configuration: Transfer size

 

Minimum transfer size of single transmission frame

GOAL_ID_CCM

COMM_FAULT_ERROR_STATE

6

GOAL_CM_UINT8

1

SPI communication timeout fault action

Fault action to execute when communication to AC was lost during a cyclic connection:
0, Enter fault state (disable connection)
1, Keep running (keep connection)

GOAL_ID_CCM

COMM_SYNC_RESET

7

GOAL_CM_UINT8

1

SPI Reset Request from AC behaviour

Behaviour when a sync reset request was received from AC:
0, Do nothing
1, Perform reset of CC controller

GOAL_ID_CCM

FW_UPDATE_COMMIT_DISABLE

8

GOAL_CM_UINT8

1

FIrmware Update Commit disable

Optional disable of the additional commit step during firmware update:
0, Firmware update requires commit step
1, Firmware update doesn't require a commit step

GOAL_ID_CCM

FOE_FILENAME

9

GOAL_CM_STRING

32

EtherCAT FoE update file name

 

This string defines the expected filename for FoE to accept as a firmware update image

GOAL_ID_CCM

FOE_PASSWORD

10

GOAL_CM_UINT32

4

EtherCAT FoE update password

 

This value defines the expected password for FoE tp accept the access as a firmware update image

GOAL_ID_CCM

FOE_UPDATE_REQUIRES_BOOT

11

GOAL_CM_UINT8

1

EtherCAT FoE update required state

This value defines weather BOOT state is required for firmware update:
0, Firmware update doesn't require BOOT state
1, Firmware update requires BOOT state

GOAL_ID_CCM

FOE_FILENAME_MATCH_LEN

12

GOAL_CM_UINT8

1

EtherCAT FoE update file name match length

This variable determines, how many characters are matched to detect FoE firmware update of the CC module. 0 means matching all characters.

GOAL_ID_CCM

ETH_SWITCH_MODE_TIMEOUT

13

GOAL_CM_UINT8

1

General timeout for Ethernet Interface activation

0, Default timeout of 3 seconds

1 .. 128, timeout value

255, no timeout active this network only active by application controller request

GOAL_ID_CCM

UPTIME

1000

GOAL_CM_UINT32

4

Uptime

 

Number of seconds since start of device

GOAL_ID_HTTPS

TLS_SERVER_CERTIFICATE

0

GOAL_CM_GENERIC

1024

TLS server certificate

 

TLS server certificate used for HTTPS

GOAL_ID_HTTPS

TLS_PRIVATE_KEY

1

GOAL_CM_GENERIC

1024

TLS private key

 

TLS server private key used for HTTPS 

GOAL_ID_HTTPS

TLS_SRV_CERT_CA_CN

2

GOAL_CM_STRING

128

TLS server cert CA CN

X

CA common name

GOAL_ID_HTTPS

TLS_SRV_CERT_CA_O

3

GOAL_CM_STRING

128

TLS server cert CA O

X

CA organization

GOAL_ID_HTTPS

TLS_SRV_CERT_CA_C

4

GOAL_CM_STRING

8

TLS server cert CA C

X

CA country

GOAL_ID_HTTPS

TLS_SRV_CERT_CN

5

GOAL_CM_STRING

128

TLS server cert CN

X

Subject common name

GOAL_ID_HTTPS

TLS_SRV_CERT_O

6

GOAL_CM_STRING

128

TLS server cert O

X

Subject organization

GOAL_ID_HTTPS

TLS_SRV_CERT_C

7

GOAL_CM_STRING

8

TLS server cert C

X

Subject country

GOAL_ID_HTTPS

TLS_SRV_CERT_NOT_BEFORE

8

GOAL_CM_STRING

20

TLS server cert valid not before

X

TLS server cert valid not before

GOAL_ID_HTTPS

TLS_SRV_CERT_NOT_AFTER

9

GOAL_CM_STRING

20

TLS server cert valid not after

X

TLS server cert valid not after

GOAL_ID_MI_MCTC

RPC_DISABLE

0

GOAL_CM_UINT8

1

RPC mode

 

RPC mode:
0, Enabled
1, Disabled

GOAL_ID_MI_MCTC

ID

1000

GOAL_CM_UINT32

4

Instance ID

X

Instance ID

GOAL_ID_MI_MCTC

STAT_RESET

1001

GOAL_CM_UINT32

4

Statistics: communication resets

X

Number of MCTC communications resets

GOAL_ID_MI_MCTC

STAT_RPC_TIMEOUTS

1002

GOAL_CM_UINT32

4

Statistics: RPC timeouts

X

Number of MCTC RPC timeouts

GOAL_ID_MI_MCTC

STAT_RPC_DELAY_MIN

1003

GOAL_CM_UINT32

4

Statistics: RPC min delay

X

Minimum time for RPC request

GOAL_ID_MI_MCTC

STAT_RPC_DELAY_MAX

1004

GOAL_CM_UINT32

4

Statistics: RPC max delay

X

Maximum time for RPC request

GOAL_ID_MI_MCTC

STAT_RPC_DELAY_MEAN

1005

GOAL_CM_UINT32

4

Statistics: RPC median delay

X

Median  time for RPC request

GOAL_ID_MI_MCTC

STAT_RPC_COUNT

1006

GOAL_CM_UINT32

4

Statistics: Number of RPC requests

X

Number of RPC requests 

GOAL_ID_GPT

DEVICE_ETH_MAC

0

GOAL_CM_GENERIC

6

Device MAC address

 

 

GOAL_ID_GPT

STAT_CYCLIC_TOT_MIN

1000

GOAL_CM_UINT32

4

Statistics: total minimum cycle time

 

GOAL_ID_GPT

STAT_CYCLIC_TOT_MAX

1001

GOAL_CM_UINT32

4

Statistics: total maximum cycle time

 

GOAL_ID_GPT

STAT_CYCLIC_MIN

1002

GOAL_CM_UINT32

4

Statistics: current minimum cycle time

 

GOAL_ID_GPT

STAT_CYCLIC_MAX

1003

GOAL_CM_UINT32

4

Statistics: current maximum cycle time

 

GOAL_ID_GPT

STAT_CYCLIC_LAST

1004

GOAL_CM_UINT32

4

Statistics: cycle time of last frame

 

GOAL_ID_SNMP

MIB2_SYS_LOCATION

0

GOAL_CM_STRING

255

MIB2 Location

 

 

GOAL_ID_SNMP

MIB2_SYS_CONTACT

1

GOAL_CM_STRING

255

MIB2 Contact

 

 

GOAL_ID_SNMP

MIB2_SYS_NAME

2

GOAL_CM_STRING

255

MIB2 Name

 

 

GOAL_ID_GPT

DEVICE_PNIO_NAME

1

GOAL_CM_STRING

255

Device name

 

 

GOAL_ID_GPT

DEVICE_PNIO_RED_RATIO

2

GOAL_CM_UINT16

2

Device reduction ratio (cycle time)

 

Device reduction ratio (cycle time):
1, 1 ms
2, 2 ms
4, 4 ms
8, 8 ms
16, 16 ms
32, 32 ms
64, 64 ms
128, 128 ms
256, 256 ms
512, 512 ms

GOAL_ID_GPT

DEVICE_PNIO_DATA_HOLD_FACT

3

GOAL_CM_UINT16

2

Device data hold factor (watchdog factor)

Device data hold factor (watchdog factor):
1, 1 (inofficial)
2, 2 (inofficial)
3, 3 (default)
4, 4
8, 8
16, 16
32, 32

GOAL_ID_GPT

DEVICE_NET_IP

4

GOAL_CM_IPV4

4

Device IP address

 

 

GOAL_ID_GPT

DEVICE_NET_NM

5

GOAL_CM_IPV4

4

Device netmask

 

 

GOAL_ID_GPT

DEVICE_NET_GW

6

GOAL_CM_IPV4

4

Device gateway

 

 

GOAL_ID_GPT

DEVICE_PNIO_CONN_TIMEOUT

7

GOAL_CM_UINT32

4

Device connection retry timeout in ms

Device connection retry interval:
5000, 5 s
10000, 10 s
20000, 20 s
30000, 30 s
40000, 40 s
50000, 50 s
60000, 60 s

GOAL_ID_GPT

DEVICE_PNIO_FLG_CONN_AUTO

8

GOAL_CM_UINT8

1

PROFINET Autoconnect Flag

 

PROFINET Autoconnect Flag:
0, Autoconnect disabled
1, Autoconnect enabled

GOAL_ID_GPT

DEVICE_PNIO_FLG_CONNECT

9

GOAL_CM_UINT8

1

PROFINET Connect

 

Command:
*, PROFINET Connect

GOAL_ID_GPT

DEVICE_PNIO_FLG_DISCONNECT

10

GOAL_CM_UINT8

1

PROFINET Disconnect

 

Command:
*, PROFINET Disconnect

GOAL_ID_GPT

DEVICE_PNIO_FLG_STATE_CONN

11

GOAL_CM_UINT8

1

PROFINET Connection State

 

PROFINET Connection State:
0, Disconnected
1, Connected

GOAL_ID_GPT

DEVICE_PNIO_FLG_STATE_ERR

12

GOAL_CM_UINT8

1

PROFINET Error State

 

PROFINET Error State:
0, No error
1, Error set

GOAL_ID_MON

RESERVED

0

GOAL_CM_UINT8

1

reserved

 

 

GOAL_ID_MON

STATUS

1000

GOAL_CM_UINT32

4

Monitor Status

 

Status

GOAL_ID_MON

ENDIANESS

1001

GOAL_CM_UINT32

4

System Endianess

 

System Endianess:
0, Big Endian
1, Little Endian

GOAL_ID_MON

ADDRESS_HIGH

1002

GOAL_CM_UINT32

4

Monitor Address (high part)

 

Highest 32 bit of address

GOAL_ID_MON

ADDRESS_LOW

1003

GOAL_CM_UINT32

4

Monitor Address (low part)

 

Lowest 32 bit of address

GOAL_ID_MON

VALUE

1004

GOAL_CM_UINT32

4

Monitor Value

 

Write Value / Read Value

GOAL_ID_MON

ADDRESS_ACTION

1005

GOAL_CM_UINT8

1

Monitor Action

 

Command:
1, Memory Read
2, Memory Write

GOAL_ID_MON

MDIO_REGISTER

1006

GOAL_CM_UINT32

4

MDIO register for reading

 

MDIO register for reading

GOAL_ID_MON

MDIO_PORT

1007

GOAL_CM_UINT8

1

MDIO phy number

 

MDIO phy number (0 .. N)

GOAL_ID_MON

MDIO_VALUE

1008

GOAL_CM_UINT32

4

MDIO Write / Read value

 

MDIO write value or MDIO read result

GOAL_ID_MON

MDIO_ACTION

1009

GOAL_CM_UINT8

1

MDIO Action

 

Command:
1, MDIO Read
2, MDIO Write

GOAL_ID_PNIO

FS_HELLO_MODE

28

GOAL_CM_UINT32

4

 

 

PNIO Fast Startup DCP Hello mode

GOAL_ID_PNIO

FS_HELLO_INTERVAL

29

GOAL_CM_UINT32

4

 

 

PNIO Fast Startup DCP Hello interval

GOAL_ID_PNIO

FS_HELLO_RETRY

30

GOAL_CM_UINT32

4

 

 

PNIO Fast Startup DCP Hello retries

GOAL_ID_PNIO

FS_HELLO_DELAY

31

GOAL_CM_UINT32

4

 

 

PNIO Fast Startup DCP Hello delay

GOAL_ID_DD

CRYPT_ACTIVATED

4

GOAL_CM_UINT8

1

 

 

Use cryptography for device detection messages:
0, cryptography deactivated
1, cryptography activated

GOAL_ID_DD

CRYPT_PASSWORD

5

GOAL_CM_STRING

32

 

 

Password to generate key for cryptography

GOAL_ID_EIP

LLDP_ENABLE

17

GOAL_CM_UINT32

4

LLDP Enable Flags

 

Bit 0: global Rx/Tx enable
Bit >0: port Tx Enable

GOAL_ID_EIP

LLDP_TX_INT

18

GOAL_CM_UINT16

2

LLDP Tx interval

 

LLDP transmission interval in seconds

GOAL_ID_EIP

LLDP_TX_HOLD

19

GOAL_CM_UINT8

1

LLDP valid time

 

factor of LLDP Tx interval