ItpWriteRParamsEx

ItpWriteRParamsEx 1:

The function block ItpWriteRParamsEx writes R-parameters into the NC.

ItpWriteRParamsEx 2: Inputs


VAR_INPUT
    bExecute       : BOOL;
    pAddr          : DWORD;
    nIndex         : DINT;
    nCount         : DINT;
    tTimeOut       : TIME;
END_VAR

Name

Type

Description

bExecute

BOOL

A rising edge starts the write operation.

pAddr

DWORD

Address of the variables containing the data to be written. Data are used directly from the specified address, i.e. nIndex is not to be interpreted as offset from pAddr. The data are usually read from an array of type LREAL, which has to be defined by the user.

nIndex

DINT

Describes the index of the R-parameter to be written from an NC perspective.

nCount

DINT

Number of R-parameters to be written

tTimeOut

TIME

ADS Timeout-Delay

ItpWriteRParamsEx 3:/ItpWriteRParamsEx 4: Inputs/Outputs

VAR_IN_OUT
    sNciToPlc           : NCTOPLC_NCICHANNEL_REF;
END_VAR

Name

Type

Description

sNciToPlc

NCTOPLC_NCICHANNEL_REF

The structure of the cyclic channel interface from the NCI to the PLC. This structure is read-only (type: NCTOPLC_NCICHANNEL_REF).

ItpWriteRParamsEx 5: Outputs

VAR_OUTPUT
    bBusy     : BOOL;
    bErr      : BOOL;
    nErrId    : UDINT;
END_VAR

Name

Type

Description

bBusy

BOOL

This output remains TRUE until the function block has executed a command, but at the longest for the duration supplied to the 'Timeout' input. While Busy = TRUE, no new command will be accepted at the inputs. Please note that it is not the execution of the service but its acceptance whose time is monitored.

bErr

BOOL

This output is switched to TRUE as soon as an error occurs during the execution of a command. The command-specific error code is contained in 'nErrId'. Is reset to FALSE by the execution of a command at the inputs.

nErrId

UDINT

Contains the command-specific error code of the most recently executed command. Is reset to 0 by the execution of a command at the inputs. The error numbers in ErrId can be looked up in the ADS error documentation or in the NC error documentation (error codes above 0x4000).

Example

VAR
    arrfRParam90to99 : ARRAY[0..9] OF LREAL;
    fbWriteRParam    : ItpWriteRParamsEx;
    n                : INT := 0;
    bWriteParam      : BOOL := FALSE;
    sNciToPlc AT%I*  : NCTOPLC_NCICHANNEL_REF;
END_VAR
FOR n:=0 TO 9 DO
    arrfRParam90to99[n] := 90 + n;
END_FOR

fbWriteRParam(
 bExecute := bWriteParam,
 pAddr := ADR( arrfRParam90to99[0] ),
 nIndex := 90,
 nCount := 10,
 tTimeOut := T#200ms,
 sNciToPlc := sNciToPlc );

In this example the parameters R90 to R99 are written from an NC perspective.

Requirements

Development environment

Target platform

PLC libraries to be linked

TwinCAT v3.1.0

PC or CX (x86 or x64)

Tc2_NCI