ControllerConfigUtil.UpdateDataRecord (METH)ΒΆ

METHOD UpdateDataRecord : ConfigError

Update the value of a data record parameter of a submodule.
By using this method together with GetDataRecord(), the settings / parameters of a module or device can be updated at the runtime of an application.
The device first has to be deactivated (DED.Reconfigure function block), then update the setting and re-activate it again. The updated parameters will be used, when the new connection is established.

Example: Reconfigure a single slave

PROGRAM PLC_PRG
VAR
    util : IoDrvProfinetBase.ControllerConfigUtil;
    moduleID : UDINT;
    error : IoDrvProfinetBase.ConfigError;

    byteData : ProfinetCommon.ProfinetByteData;
    buffer : ARRAY[0..15] OF BYTE;
    recordLen : UDINT;
    anyValue : UDINT;

    reconf : DED.Reconfigure;
    enabled : BOOL;
END_VAR

//read a data item of type Unsigned32 from one of the submodule's record data parameters (each has an unique INDEX):
moduleID := IoDrvProfinetBase.GetID(Module_with_Parameters);      // here we access the module directly by the device object's name
error := util.GetDataRecord(ID := moduleID, INDEX := 10 , MLEN := SIZEOF(buffer), RECORD := ADR(buffer), LEN => recordLen);       // read the complete data record

//read a specific value item from the data record paramter;
byteData.InitData(ADR(buffer), SIZEOF(buffer));
anyValue := byteData.GetUnsigned32(2);        //within the data record, the value is at offset 2.

//update the value - only possible while device is disabled (see below)
byteData.PutUnsigned32(2, 2000);
error := util.UpdateDataRecord(ID := moduleID, INDEX := 10 , LEN := recordLen, RECORD := ADR(buffer));

//enable / disable device which is parent of this module
pn_device.Enable := enabled;
reconf(itfNode := pn_device);         //start reconfigure (set xExecute := TRUE) to enable / disable PROFINET device that owns this module
InOut:

Scope

Name

Type

Comment

Return

UpdateDataRecord

ConfigError

Input

ID

DWORD

ID of the submodule that is owner of the data record

INDEX

UINT

Index of the data record

LEN

UDINT

Length to write

RECORD

POINTER TO BYTE

Data record