FB_KinUnlockTrafoParam

FB_KinUnlockTrafoParam 1:

Der Funktionsbaustein FB_KinUnlockTrafoParam entsperrt Transformationsparameter, die einen Einfluss auf die Position haben, so dass diese geschrieben werden können.

Nach der Freigabe können die Kinematikparameter von der SPS mit ADSWRITE geschrieben werden. Die erforderliche Indexgruppe ist die Objekt-ID und der Indexoffset ist die Parameter-ID. Die geschriebenen Parameter sind nicht persistent. Parameter die keinen Einfluss auf die Position haben (z. B. Drehmomente und Massen), können ohne Aufruf von FB_KinUnlockTrafoParam geschrieben werden.

VORSICHT

Das Verändern der Parameter kann zu Unstetigkeiten führen.

Beachten Sie, dass dies mit größter Vorsicht zu benutzen ist. Die Neufestlegung von Kinematikparametern kann zu Positionssollwertsprüngen in der Kinematikkette führen.

Nachdem Kinematikparameter geschrieben wurden, kann das Beschreiben mit FB_LockTrafoParam wieder gegen Beschreiben gesperrt werden.

VAR_INPUT

VAR_INPUT
    bExecute              : BOOL;
    oidTrafo              : UDINT;
END_VAR

bExecute: Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

oidTrafo: Objekt-ID des kinematischen Transformationsobjekts. Siehe Beispiel unten.

VAR_OUTPUT

VAR_OUTPUT
    bBusy                 : BOOL;
    bDone                 : BOOL;
    bError                : BOOL;
    nErrorId              : UDINT;
END_VAR

bBusy: Der Ausgang wird TRUE, wenn der Befehl mit bExecute gestartet ist und bleibt es dann so lange, wie der Funktionsbaustein den Befehl ausführt. Während bBusy gleich TRUE ist, wird an den Eingängen kein neuer Befehl angenommen. Wenn bBusy wieder FALSE wird, ist der Funktionsbaustein bereit für einen neuen Befehl. Gleichzeitig wird einer der Ausgänge bDone oder bError gesetzt.

bDone: Der Ausgang wird TRUE, wenn der Befehl erfolgreich ausgeführt wurde.

bError: Der Ausgang bError wird auf TRUE gesetzt, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist.

nErrorId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Der Fehlercode kann in der ADS-Fehlerdokumentation oder in der NC-Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.

Beispiel

Die für die Freigabe eines Transformationsparameters und für das Schreiben eines entsprechenden neuen Wertes benötigten Objekt-ID und Parameter-ID können aus dem Transformationsobjekt in der XAE gelesen werden.

FB_KinUnlockTrafoParam 2:
FB_KinUnlockTrafoParam 3:
VAR
    bUserExecuteUnlock     : BOOL;
    fbFB_UnlockTrafoParam  : FB_KinUnlockTrafoParam;
    bUserExecuteWriteParam : BOOL;
    fbADSWRITE             : ADSWRITE;
    oidTrafo               : UDINT := 16#01010170; (*Trafo object id*)
    pidTrafo               : UDINT := 16#05010020; (*parameter id*)
    fParamValue            : LREAL;
END_VAR
fbFB_UnlockTrafoParam(
    bExecute := bUserExecuteUnlock,
    oidTrafo := oidTrafo,
    bBusy=>,
    bDone=>,
    bError=>,
    nErrorId=> );

(*After unlocking new parameter value can be written*)
fbADSWRITE(
    NETID:='' ,
    PORT:= AMSPORT_R0_NCSAF,
    IDXGRP:=oidTrafo ,
    IDXOFFS:= pidTrafo,
    LEN:=SIZEOF(fParamValue) ,
    SRCADDR:= ADR(fParamValue),
    WRITE:=bUserExecuteWriteParam ,
    TMOUT:= ,
    BUSY=> ,
    ERR=> ,
    ERRID=> );