F176_PulseOutput_Pass

Interpolazione circolare (punto di passaggio)

Gli impulsi vengono emessi su due canali contemporaneamente sulla base dei parametri impostati nella DUT associata, in modo che il percorso per il raggiungimento della posizione target formi un arco. Il raggio del cerchio viene calcolato specificando il centro e la posizione finale. Gli impulsi vengono emessi dal canale specificato quando il flag di controllo per tale canale è FALSE e la condizione di esecuzione è TRUE.

Parametri

Ingresso

n_iPulseOutputChannel* (costante decimale)

Canale uscita ad impulsi: 0, 2

Ingresso/uscita

s_dutDataTable (F176_PulseOutput_Pass_DUT)

Indirizzo di partenza dell'area contenente la tabella dati

Note

Utilizzare la seguente DUT predefinita: F176_PulseOutput_Pass_DUT

Nella DUT possono essere specificati i seguenti parametri:

  • Codice di controllo

  • Velocità composta

  • Valore target asse X

  • Valore target asse Y

  • Valore passaggio asse X

  • Valore passaggio asse Y

I seguenti parametri per ogni asse vengono calcolati all'esecuzione dell'istruzione e memorizzati nell'area riservata ai risultati dei calcoli della DUT.

  • Raggio

  • valore centro asse X

  • Valore centro asse Y

Caratteristiche dell’uscita ad impulsi

(1)

Direzione rotazione: dal canale 0 (asse X) al canale 2 (asse Y) (per un movimento in direzione positiva su entrambi i canali)

(2)

Direzione rotazione: dal canale 2 (asse Y) al canale 0 (asse X) (per un movimento in direzione positiva su entrambi i canali)

Fv:

Velocità composta

O (Xo,Yo):

Centro

Fx:

Velocità asse X

S (Xs,Ys):

Posizione corrente (inizio)

Fy:

Velocità asse Y

P (Xp,Yp)

Punto di passaggio

r:

Raggio

E (Xe,Ye)

Posizione target (fine)

Esempio

Sia il canale 0 l'asse X e il canale 2 l'asse Y.Il modo di controllo è la modalità di controllo assoluto.

La posizione corrente è (q=60°, Xs=5000, Ys=8660). Il centro O (Xo=0, Yo=0) viene utilizzato come punto di riferimento. Gli impulsi vengono emessi dall'asse X (canale 0) e dall'asse Y (canale 2) a una velocità di Fv=2000Hz fino a quando la posizione target (q=-30°, Xe=8660, Ye=-5000) viene raggiunta.

Informazione generale di programmazione

  • La condizione di esecuzione per questa istruzione deve essere continuamente TRUE. Quando la condizione di esecuzione è FALSE, l'emissione di impulsi si ferma.

  • Il flag di controllo del contatore veloce (p.es. sys_bIsHscChannel0ControlActive) e il flag di controllo dell’uscita ad impulsi (p.es. sys_bIsPulseChannel0Active) vengono allocati allo stesso numero di flag interno speciale (p.es. R903A). Pertanto, quando viene eseguita un'istruzione contatore veloce o un'istruzione uscita ad impulsi, il flag di controllo del contatore veloce (p.es. sys_bIsHscChannel0ControlActive) e il flag di controllo dell'uscita ad impulsi (p.es. sys_bIsPulseChannel0Active) per il canale utilizzato sono TRUE. Finché questo flag è TRUE non può essere eseguita nessun’altra istruzione contatore veloce o istruzione uscita ad impulsi.

  • L’esecuzione dell’istruzione di controllo di interpolazione circolare F176_PulseOutput_Center imposta il flag controllo interpolazione circolare (sys_bIsCircularInterpolationActive) su TRUE. Lo stato di questo flag viene mantenuto fino a quando viene raggiunto il valore target (anche se la condizione di esecuzione non è più TRUE). Durante questo lasso di tempo non è possibile eseguire altre istruzioni uscita ad impulsi Per riavviare l'interpolazione circolare, eseguite uno stop uscita impulsi (arresto dell'emissione di impulsi) per impostare il flag controllo interpolazione circolare (sys_bIsCircularInterpolationActive) su FALSE.

  • Se è stato selezionato "Continua" per la modalità per esecuzione di interpolazioni consecutive, utilizzate un flag speciale (sys_bIsCircularInterpolationOverwritingPossible) per permettere la sovrascrittura del valore target. Il flag è TRUE per una scansione quando viene eseguita l'istruzione di interpolazione circolare.

  • Il valore target per ciascun asse deve essere compreso nell'intervallo -8388608–8388607. Quando questa istruzione viene utilizzata in combinazione con altre istruzioni uscita ad impulsi, p.es. F171_PulseOutput_Trapezoidal, il valore target in queste istruzioni deve essere compreso nel medesimo intervallo.

  • L'accuratezza dell'interpolazione circolare può diminuire se il tempo di scan è troppo lungo.

  • La modifica online durante la modalità RUN non è disponibile per questa istruzione.

  • Se sia il programma principale sia il programma di interrupt contengono un codice per lo stesso canale, essi non devono poter esser eseguiti contemporaneamente.

  • Dal momento che non vi sono funzioni di interpolazione per l'Home Return (ritorno alla posizione iniziale), questo deve essere eseguito per ciascun canale.

  • In caso di utilizzo in applicazioni di precisione, è necessario effettuare test run con la macchina vera e propria.

  • Nei registri di sistema impostare un contatore veloce assegnato ad un canale di uscita ad impulsi su "Non utilizzato".

  • Si raccomanda vivamente di incorporare un'opzione di stop uscita impulsi nel proprio programma di posizionamento.

  • Lo stato del flag di controllo del contatore veloce o del flag di controllo dell'uscita ad impulsi può variare durante lo svolgimento di una scansione. For example, if the number of received bytes is read more than once different statuses may exist within one scan.

Impostazione dei flag durante l'esecuzione dell'istruzione

(1)

Condizione di esecuzione X0

(2)

Flag di controllo dell'uscita ad impulsi, canale 0(sys_bIsPulseChannel0Active)

(3)

Flag di controllo dell'uscita ad impulsi, canale 2(sys_bIsPulseChannel2Active)

(4)

Flag controllo interpolazione circolare (sys_bIsCircularInterpolationActive)

(5)

Flag possibile sovrascrittura valore target (sys_bIsCircularInterpolationOverwritingPossible)

a

Avvio

b

Condizione di esecuzione FALSE

c

Valore target raggiunto

d

Avvio modalità continua

e

1 scansione

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU.La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

	VAR
		Trigger: BOOL:=FALSE;
		dutPassData: F176_PulseOutput_Pass_DUT:=dwControlCode := 16#1000,
diSpeed := 2000,
diTargetPos_X := 8660,
diTargetPos_Y := -5000,
diPassPos_X := 9396,
diPassPos_Y := -3420;
			(*Control code:
Digit 4: 0=Operation connection mode: stop
Digit 3: 1=Rotation direction: CCW (left)  
Digit 2: 0=Fixed
Digit 1: 0=Relative value control
Digit 0: 2=Pulse/direction (Forward FALSE)
*)
		@'': @'';
	END_VAR

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,Trigger,4,2,6,4,R);
B(B_VARIN,,dutPassData,10,4,12,6,);
B(B_VARIN,,0,10,3,12,5,);
B(B_F,F176_PulseOutput_Pass!,Instance,12,1,27,6,,?DEN?Hn_iPulseOutputChannel?Ds_dutDataTable?As_dutDataTable?AENO);
L(1,3,4,3);
L(6,3,12,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

IF DF(Trigger) then
    F176_PulseOutput_Pass(n_iPulseOutputChannel := 0, 
        s_dutDataTable := dutPassData);
END_IF;

L'ultima revisione: 2023-03-14Feedback su questa paginaPanasonic hotline