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 | |
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 | |
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 | |
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 | |
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, | |
Return values | GOAL return status, see Chapter: GOAL status | |
Category | optional | |
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.
For each CM-module a unique number is necessary.
Code: Example of unique number
#define APPL_CM_MOD_ID 0x00EE000
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;
The CM-variables are listed with the following properties:
CM-variable-ID,
CM-variable data types of the CM-variable,
maximal size of the CM-variable in byte,
a callback function for the validation of the written value,
a callback function to inform the application about the change of the variable's value and
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 structureGOAL_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 toNULL
. If no callback functions are available for validation and/or change reports, set the references also toNULL
.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
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 |
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
Specify a unique CM-module-ID number, see Chapter: Creating a CM-module and a variable list.
Specify the list of CM-variables, see Chapter: Creating a CM-module and a variable list.
Create a variable for the CM-module-ID.
Code: Create a variable for the CM-module-ID
Register the CM-variables by function
goal_cmRegModule()
in the stateGOAL_FSA_INIT_APPL
, stageGOAL_STAGE_CM_MOD_REG
.Code: Register the CM-variables by function
goal_cmRegModule()
In stage
GOAL_STAGE_CM_MOD_ADD
add the CM-variable list to the CM-module by functiongoal_cmAddModule()
in the stateGOAL_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()
Write a value to a CM-variable by function
goal_cmSetVarValue()
.Code: Write a value to a CM-variable by function
goal_cmSetVarValue()
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
Add the CM-variable to the variable list, see Chapter: Creating a CM-module and a variable list.
Create a variable for the CM-module-ID.
Code: Create a variable for the CM-module-IDRegister the CM-module by function
goal_cmRegModule()
in the stateGOAL_FSA_INIT_APPL
.Code: Register the CM-module by function
goal_cmRegModule()
Add the CM-variable list to the CM-module by function
goal_cmAddModule()
in the stateGOAL_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()
Write a value to a CM-variable by the function
goal_cmSetVarValue()
.Code: Write a value to a CM-variable
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
Create a variable for the CM-module-ID.
Code: Create a variable for the CM-module-ID
Register the CM-module by function
goal_cmRegModule()
in the stateGOAL_FSA_INIT_APPL
Code: Register the CM-module by function
goal_cmRegModule()
Add the CM-variable list to the CM-module by function
goal_cmAddModule()
in the stateGOAL_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()
Load all CM-variables from NVM by function
goal_cmLoad()
.Code: Load all CM-variables
Write a value to a CM-variable by the function
goal_cmSetVarValue()
.Code: Write a value to a CM-variable
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: |
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: |
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: |
GOAL_ID_NET | DHCP_ENABLED | 4 | GOAL_CM_UINT8 | 1 | DHCP enable flag |
| DHCP enable: |
GOAL_ID_NET | DHCP_STATE | 5 | GOAL_CM_UINT8 | 1 | DHCP state | X | DHCP state: |
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: |
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 |
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: |
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 | |
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 |
GOAL_ID_EIP | MC_CTRL | 12 | GOAL_CM_UINT8 | 1 | Multicast Config - Alloc Control |
| TCP/IP Interface Object attribute 9 |
GOAL_ID_EIP | MC_NUM | 13 | GOAL_CM_UINT16 | 2 | Multicast Config - Num Mcast |
| TCP/IP Interface Object attribute 9 |
GOAL_ID_EIP | MC_START | 14 | GOAL_CM_UINT32 | 4 | Multicast Config - Mcast Start Addr | TCP/IP Interface Object attribute 9 | |
GOAL_ID_EIP | ACD_ENABLED | 15 | GOAL_CM_UINT8 | 1 | ACD enable flag |
| ACD enable: |
GOAL_ID_EIP | ACD_LAST_CONFLICT | 16 | GOAL_CM_GENERIC | sizeof(S_CIP_ACDLastConflictDetected) | ACD LastConflictDetected |
| Ethernet Link Object attributes 11 |
GOAL_ID_CCM | SPI_TYPE | 0 | GOAL_CM_UINT8 | 1 | SPI Configuration: Type |
| SPI Type (currently only slave supported): |
GOAL_ID_CCM | SPI_MODE | 1 | GOAL_CM_UINT8 | 1 | SPI Configuration: Mode |
| SPI Mode: |
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: |
GOAL_ID_CCM | SPI_BITORDER | 4 | GOAL_CM_UINT8 | 1 | SPI Configuration: Bit order |
| Bitorder of SPI transfers: |
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: | |
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: | |
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: | |
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: | |
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: |
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): |
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): | |
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: | |
GOAL_ID_GPT | DEVICE_PNIO_FLG_CONN_AUTO | 8 | GOAL_CM_UINT8 | 1 | PROFINET Autoconnect Flag |
| PROFINET Autoconnect Flag: |
GOAL_ID_GPT | DEVICE_PNIO_FLG_CONNECT | 9 | GOAL_CM_UINT8 | 1 | PROFINET Connect |
| Command: |
GOAL_ID_GPT | DEVICE_PNIO_FLG_DISCONNECT | 10 | GOAL_CM_UINT8 | 1 | PROFINET Disconnect |
| Command: |
GOAL_ID_GPT | DEVICE_PNIO_FLG_STATE_CONN | 11 | GOAL_CM_UINT8 | 1 | PROFINET Connection State |
| PROFINET Connection State: |
GOAL_ID_GPT | DEVICE_PNIO_FLG_STATE_ERR | 12 | GOAL_CM_UINT8 | 1 | PROFINET Error State |
| PROFINET Error State: |
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: |
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: |
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: |
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: |
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 |
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 |