dpTypeChange()

The function changes data point types.

Synopsis

int dpTypeChange(dyn_dyn_string names, dyn_dyn_int types [, dyn_string elementNames]);

Parameters

Parameter Meaning
names Name of data point elements
types Types of data point elements (must have the same structure as its DPT, see below)
elementName

For renaming elements. Therefore you have to write the path of the element that you want to rename. The structure is like this:

elementName = makeDynString(elementPathOld1, elementName1[, elementPathOld2, elementName2,...] )

Return Value

In the event of an error -1, 0 if everything is OK

Errors

Errors can be queried with getLastError(). An error message is issued in the event of incorrect type names or missing arguments.

Description

The function dpTypeChange() changes a DPT into the indicated type with the appropriate data types. With defining a path you can change an existing data point element without a new given ID.

Example

Data point type with elements:

Table: Display of the above DPT

valve
defaults
regratio
returns
faults
id
text
states
endpos_open
motor_running
endpos_closed
regratio

Data types: Use the WinCC OA constants (see Datentypen von DPEs.

structure, (DPEL_STRUCT)
structure (DPEL_STRUCT)
float (DPEL_FLOAT)
structure (DPEL_STRUCT)
structure (DPEL_STRUCT)
bit32 (DPEL_32)
string (DPEL_STRING)
structure (DPEL_STRUCT)
bool (DPEL_BOOL)
bool (DPEL_BOOL)
bool (DPEL_BOOL)
float (DPEL_FLOAT)

Example

Change the data type of the data point element "regratio" (cf. data point type above) from float to int.

main()

// Create the data type

int n;

dyn_dyn_string xxdepes;

dyn_dyn_int xxdepei;

//Erstellen des Datentypen

xxdepes[1] = makeDynString ("valve","","","");

xxdepes[2] = makeDynString ("","defaults","","");

xxdepes[3] = makeDynString ("","","regratio","");

xxdepes[4] = makeDynString ("","returns","","");

xxdepes[5] = makeDynString ("","","faults","");

xxdepes[6] = makeDynString ("","","","id");

xxdepes[7] = makeDynString ("","","","text");

xxdepes[8] = makeDynString ("","","states","");

xxdepes[9] = makeDynString ("","","","endpos_open");

xxdepes[10] = makeDynString ("","","","motor_running");

xxdepes[11] = makeDynString ("","","","endpos_closed");

xxdepes[12] = makeDynString ("","","regratio","");

xxdepei[1] = makeDynInt (DPEL_STRUCT);

xxdepei[2] = makeDynInt (0,DPEL_STRUCT);

xxdepei[3] = makeDynInt (0,0,DPEL_INT);

xxdepei[4] = makeDynInt (0,DPEL_STRUCT);

xxdepei[5] = makeDynInt (0,0,DPEL_STRUCT);

xxdepei[6] = makeDynInt (0,0,0,DPEL_BIT32);

xxdepei[7] = makeDynInt (0,0,0,DPEL_STRING);

xxdepei[8] = makeDynInt (0,0,DPEL_STRUCT);

xxdepei[9] = makeDynInt (0,0,0,DPEL_BOOL);

xxdepei[10] = makeDynInt (0,0,0,DPEL_BOOL);

xxdepei[11] = makeDynInt (0,0,0,DPEL_BOOL);

xxdepei[12] = makeDynInt (0,0,DPEL_INT);

// Create the data point type

n = dpTypeChange (xxdepes,xxdepei);

DebugN ("valve data point type changed, result: ",n);

}

Example

Changing the name of a data point element


main()
{
  dyn_dyn_string names;
  dyn_dyn_int types;
  dyn_string elementNames;
  names[1][1] = "valve";
  elementNames = makeDynString( "valve.defaults.regratio",
  "regratio_renamed", "valve.defaults", "defaults_renamed");
  dpTypeChange(names, types, elementNames);
}

Assignment

Data point functions, waiting Control functions

Availability

CTRL