Skip to main content

Satzvorlauf verwenden

Ein Satzvorlauf ermöglicht die Fortsetzung der Interpolation nach einer Unterbrechung. Dabei wird zuerst die Stoppposition angefahren und ab dieser Position die Bahn unverändert verfahren. Dazu müssen das Programm, das die Interpolation durchführt, und das Programm, das die Bahnvorverarbeitung durchführt, erweitert werden.

Beispiel 51. Beispiel

Ein abgebrochener Fräskopf führt zu einem Stopp der Fahrt. Nach einer Reparatur kann mit Satzvorlauf die Bahn weiterverfahren werden.



Erweitern der Applikation um

  • Funktionsbausteininstanz in der Interpolationstask, die die Vorlaufposition speichert

  • Funktionsbausteininstanz in der Bahntask, die ein Bahnelement verkürzt

Für weitere Informationen siehe: SMC_BlockSearchSavePos, SMC_BlockSearchPos und SMC_BlockSearch

Vorlaufposition vornehmen

Sie können den Funktionsbaustein SMC_BlockSearchSavePos verwenden, um auf Kommando die aktuelle Position zu speichern. Dabei muss die Instanz des Funktionsbausteins in der Task des Interpolators laufen. Das Interplator-Programm im Beispiel trägt den Namen CNC.

  1. Deklarieren Sie in dem Programm, das die Interpolation durchführt, eine Instanz des Funktionsbausteins SMC_BlockSearchSavePos.

    bssp: SMC_BlockSearchSavePos;

  2. Verbinden Sie den Eingang ipo der Instanz von SMC_BlockSearchSavePos mit der Instanz des Interpolators.

  3. Verbinden Sie den Eingang bExecute mit einer Steuervariablen, die in der Applikation dann gesetzt wird, wenn das CNC-Programm abgebrochen wird (zum Beispiel wenn der Eingang bAbort der SMC_Interpolator-Instanz gesetzt wurde. Die damit an Ausgang ePos gespeicherte Position wird im Folgenden mittels SMC_BlockSearc für den Satzvorlauf verwendet. Nach einer Unterbrechung muss bExecute mit steigender Flanke zurückgesetzt werden.

Beispiel 52. Beispiel

Teil des Programms, das die Interpolation durchführt mit der Instanz des Funktionsbaustein SMC_BlockSearchSavePos in CFC.

_sm_img_interpolation_with_block_search.png


Verwenden des Satzvorlaufs

Eine Instanz des Funktionsbausteins SMC_BlockSearch muss in der gleichen Task wie die übrige Bahnvorverarbeitung aufgerufen werden, typischerweise direkt vor dem Funktionsbaustein SMC_CheckVelocities. Wenn an bExecute eine steigende Flanke anliegt, wird ein Satzvorlauf ausgeführt. Nach dem Start wird die gespeicherte Position angefahren und ab dieser Position die Bahn unverändert gefahren.

  1. Deklarieren Sie in dem Programm, das die Bahnvorverarbeitung durchführt, eine Instanz des Funktionsbausteins SMC_BlockSearch.

    bs: SMC_BlockSearch;

  2. Implementieren Sie das Triggern des Eingangs bExecute der Instanz von SMC_BlockSearch.

  3. Als Eingang epos des Funktionsbausteins SMC_BlockSearch muss die zuvor mittels des Funktionsbausteins SMC_BlockSearchSavePos gespeicherte Position übergeben werden.

Beispiel 53. Beispiel: Satzvorlauf in der Bahnvorverarbeitung
PROGRAM CNC_PreparePath
...
VAR
        bs: SMC_BlockSearch;
END_VAR
...
bs(
                ePos:=CNC.bssp.ePos ,
                bExecute:=rncf.bExecuteDecoder ,
                bAbort:= ,
                bAppend:= ,
                poqDataIn:=ncd.poqDataOut ,
                bStartFromSavedPos:=CNC.bssp.bPositionStored ,
                nSizeOutQueue:=SIZEOF(agiBufBlockSearch) ,
                pbyBufferOutQueue:=ADR(agiBufBlockSearch) ,
                bDone=> ,
                bBusy=> ,
                bError=> ,
                wErrorID=> ,
                poqDataOut=> );

Der Eingang bStartFromSavedPos kann auch mit einer Steuervariablen beschaltet werden. Die Steuervariable kann nach einer Unterbrechung geschaltet werden, um an der letzten gespeicherten Position wieder fortzufahren.