ItpWriteRParamsEx

ItpWriteRParamsEx 1:

Der Funktionsbaustein ItpWriteRParamsEx schreibt R-Parameter in die NC.

ItpWriteRParamsEx 2: Eingänge


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

Name

Typ

Beschreibung

bExecute

BOOL

Mit einer steigenden Flanke wird der Schreibvorgang gestartet.

pAddr

DWORD

Adresse der Variablen, die die zu schreibenden Daten enthält. Dabei werden die Daten direkt ab der angegebenen Adresse verwendet. D.h. nIndex ist nicht als Offset zu pAddr zu sehen. Die Daten werden gewöhnlich aus einem Array vom Typ LREAL gelesen, das vom Anwender definiert werden muss.

nIndex

DINT

Beschreibt den Index des R-Parameters der aus NC Sicht beschrieben werden soll.

nCount

DINT

Anzahl der zu beschreibenden R-Parameter

tTimeOut

TIME

ADS Timeout-Delay

ItpWriteRParamsEx 3:/ItpWriteRParamsEx 4: Ein-/Ausgänge

VAR_IN_OUT
    sNciToPlc           : NCTOPLC_NCICHANNEL_REF;
END_VAR

Name

Typ

Beschreibung

sNciToPlc

NCTOPLC_NCICHANNEL_REF

Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen (Typ: NCTOPLC_NCICHANNEL_REF).

ItpWriteRParamsEx 5: Ausgänge

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

Name

Typ

Beschreibung

bBusy

BOOL

Dieser Ausgang bleibt so lange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der an dem 'Timeout'-Eingang angelegten Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.

bErr

BOOL

Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'nErrId' enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.

nErrId

UDINT

Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Die Fehlernummern in ErrId können in der ADS Fehlerdokumentation oder in der NC Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.

Beispiel

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 diesem Beispiel werden aus NC Sicht die Parameter R90 bis R99 beschrieben.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT V3.1.0

PC oder CX (x86 oder x64)

Tc2_NCI