F165_HighSpeedCounter_Cam

Controllo Cam per FP0H

Tale istruzione esegue il controllo Cam come specificato dai parametri nella DUT specificata con un massimo di 32 valori target secondo il valore corrente del contatore veloce. Per ogni singola uscita cam, il valore target viene impostato come coppia con un valore di impostazione ON e OFF.

Un programma di interrupt può essere eseguito ogni volta che il valore corrente corrisponde a uno dei valori target.

Parametri

Ingresso

iHscChannel* (INT)

Canale contatore veloce: 0–3

s_dutDataTable (ANY_DUT)

Indirizzo di partenza dell'area contenente la tabella dati

Uscita

dutBitOutputs (ANY_DUT)

Indirizzo iniziale (WR, WL o WY) dell'area contenente l'indirizzo word di uscita, p.es. BOOL32_OVERLAPPING_DUT. Scegliere la dimensione (16 o 32 bit) in base al numero impostato con diNumberOfTargetValuesAndOutputRelays.

Note

  • Ingresso

    Creare la propria DUT usando la seguente DUT come modello: F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT

    Nella DUT possono essere specificati i seguenti parametri:

    • Codice di controllo

    • Indirizzo word per uscite

    • Numero di valori target

      (Valori di impostazione ON/OFF da F165_HighSpeedCounter_Target_Values_OnOff_DUT)

    • Maximum target value

      Campo di valori: 1–2147483646 (16#1–16#7FFFFFFE)

  • Uscita

    • Se il numero dei valori target è nell'intervallo compreso tra 1–16, viene utilizzata una word. Se il numero dei valori target è nell'intervallo compreso tra 17–32, vengono utilizzate due word.

    • Esempio: Quando l'indirizzo di uscita è impostato su "Flag interno", il numero di word iniziale dell'indirizzo di uscita è impostato su "0" e il numero dei valori target è impostato su"32", da R0 a R1F si ha un'allocazione come indirizzo per uscita cam.

    1.  (1) Quando il valore corrente raggiunge il valore target 1, R0 diventa ON o OFF.
    2.  (2) Quando il valore corrente raggiunge il valore target 16, RF diventa ON o OFF.
    3.  (3) Quando il valore corrente raggiunge il valore target 18, R11 diventa ON o OFF.
    NOTA

    Quando il flag di uscita è stato specificato (Y), i valori vengono emessi sia sull'uscita CPU e che sulle memorie operative.

  • Esempio

    1.  (1) Valore corrente
    2.  (2) Valore target 1; valore di impostazione ON: 1000

      1000–4999 R100: ON

    3.  (3) Valore target; valore di impostazione OFF: 5000
    4.  (4) Valore target 2; valore di impostazione ON: 7000

      7000–8999 R101: ON

    5.  (5) Valore target; valore di impostazione OFF: 9000

Controllo del valore target massimo

  • Con F165_HighSpeedCounter_Cam è possibile eseguire il controllo con un target massimo specificato. Le impostazioni per abilitare/disabilitare il controllo valore target massimo e il valore target massimo vengono specificati nella tabella dati.

  • La tabella varia in un intervallo compreso tra 12 e 138 parole, in base al numero di valori target e all'impostazione prevista per il valore target massimo specificato.

NOTA

Il valore target massimo della tabella dati è valido solo quando il controllo del valore target è impostato su 16#0010 (con valore massimo) in dwCamControlCode. Questa impostazione può essere omessa quando il controllo del valore target è impostato su 16#0000 (senza valore massimo).

Attivata

Disattivata

Campo di conteggio

0 a valore target

Valore minimo negativo a valore massimo positivo

Operazione quando il campo di conteggio viene superato

Conteggio avanti:

Quando il valore corrente supera il valore target viene impostato su 0.

Quando il valore corrente supera il valore massimo positivo, torna al valore minimo negativo.

Conteggio indietro:

Il puntatore della tabella dati si sposta dall'ultimo valore target al valore target 1.

Quando il valore corrente scende al di sotto dello 0, viene impostato al valore target.

Quando il valore corrente scende al di sotto del valore minimo negativo, torna al valore massimo positivo.

Specificazione di valori target

L'uscita varia in base al valore di impostazione ON e al valore di impostazione OFF.

  • Valore di impostazione OFF > Valore di impostazione ON

    Quando il valore corrente è maggiore o uguale al valore di impostazione ON e minore rispetto al valore di impostazione OFF, il bit di uscita corrispondente si attiva. Quando il valore corrente è fuori intervallo, il bit corrispondente si disattiva.

    Conteggio avanti:

    Conteggio indietro:

    Valore di impostazione OFF (1) > Valore di impostazione ON (2)

  • Valore di impostazione ON > valore di impostazione OFF

    Quando il valore corrente è minore rispetto al valore di impostazione ON e maggiore o uguale rispetto al valore di impostazione OFF, il bit di uscita corrispondente si disattiva. Quando il valore corrente è fuori intervallo, il bit corrispondente si attiva.

    Conteggio avanti:

    Conteggio indietro:

    Valore di impostazione ON (1) > valore di impostazione OFF (2)

  • Valore di impostazione ON = valore di impostazione OFF

    Quando il valore corrente è fuori intervallo, il bit corrispondente si disattiva.

    Conteggio avanti:

    Conteggio indietro:

    Valore di impostazione ON (1) = valore di impostazione OFF (2)

Informazione generale di programmazione

  • Selezionate l'ingresso del contatore veloce per il canale desiderato nei registri di sistema.

  • Quando viene eseguita un'istruzione contatore veloce, il flag di controllo del contatore veloce (p.es. sys_bIsHscChannel0ControlActive) per il canale utilizzato passa a TRUE. Finché il flag di controllo è TRUE, non è possibile eseguire nessun'altra istruzione contatore veloce utilizzando lo stesso canale.

  • Questa istruzione può essere eseguita simultaneamente su un massimo di due canali.

  • L'esecuzione delle istruzioni di uscita ad impulsi si interrompe mettendo il bit 3 del registro dati nel quale è memorizzato il codice di controllo per il contatore veloce (sys_wHscOrPulseControlCode) su TRUE. Allora il flag di controllo del contatore veloce passa a FALSE. Per riabilitare l'esecuzione dell'istruzione del contatore veloce, riportare il bit 3 a FALSE. Quando si imposta il bit 3 di sys_wHscOrPulseControlCode su TRUE, viene disabilitato anche il controllo del valore target massimo. Quando il controllo del valore target massimo viene arrestato, l'uscita cam viene tenuta in sospeso e il contatore veloce continua a contare.

  • Resettare o preimpostare il valore corrente del contatore veloce prima di attivare l'istruzione.

  • La riscrittura del valore corrente per il canale utilizzato durante l'esecuzione dell'istruzione può causare un funzionamento imprevisto.

  • Se l'istruzione viene eseguita nel programma principale, assicuratevi che l'intervallo di tempo minimo tra valori target vicini sia maggiore del tempo di scansione.

  • Se l'istruzione viene eseguita in un programma di interrupt, assicuratevi che l'intervallo di tempo minimo tra valori target vicini sia maggiore del tempo di esecuzione massimo del programma di interrupt.

  • In caso di utilizzo di un ingresso di reset o un reset software, assicuratevi che il valore target 1 sia un numero intero e ³ 1.

  • Quando il controllo del valore target massimo viene utilizzato insieme ad un ingresso di reset o ad un reset software, fate attenzione a non utilizzarli contemporaneamente.

  • Quando il reset hardware o il reset software viene eseguito durante il controllo del contatore veloce, il valore corrente del contatore ad alta velocità viene riportato a 0. L'uscita assegnata all'uscita cam sarà l'uscita secondo il valore corrente 0.

  • È possibile inoltre avviare il programma di interrupt INTn ogni volta che il valore corrente raggiunge il valore target. Per questa operazione l'attivazione del programma di interrupt dovrebbe essere permessa dall'istruzione di controllo interrupt ICTL.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se il numero di canale o valori della tabella dati sono fuori del campo ammissibile
  • se il contatore veloce non è stato impostato nei registri di sistema
  • se il valore target > valore target massimo.

  • se il valore target = 0.

  • se i valori target non sono disposti in ordine crescente

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se il numero di canale o valori della tabella dati sono fuori del campo ammissibile
  • se il contatore veloce non è stato impostato nei registri di sistema
  • se il valore target > valore target massimo.

  • se il valore target = 0.

  • se i valori target non sono disposti in ordine crescente

Esempio di utilizzo CH0 di FP0H

DUT

La DUT F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT è predefinita nella FP Library e può essere utilizzata come esempio.

Variabili globali

Nella lista variabili globali si definiscono variabili alle quali possono accedere tutti i POU del progetto.

Intestazione del POUCopy code to clipboard

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
		bEnable: BOOL:=FALSE;
		dutF165FP0H_CH0: F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT;
	END_VAR
	VAR_EXTERNAL
		g_dutCamControl_WY0: BOOL32_OVERLAPPING_DUT;
	END_VAR

Corpo del POU

Quando la variabile bEnable è impostata su TRUE, la funzione viene eseguita.

Corpo LDCopy code to clipboard

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,bEnable,5,1,7,3,);
B(B_F,F165_HighSpeedCounter_Cam!,,14,0,28,5,,?DEN?HiHscChannel?Ds_dutDataTable?AENO?CdutBitOutputs);
B(B_VARIN,,0,12,2,14,4,);
B(B_VAROUT,,g_dutCamControl_WY0,28,2,30,4,);
B(B_VARIN,,dutF165FP0H_CH0,12,3,14,5,);
L(1,0,1,6);
L(1,2,5,2);
L(7,2,14,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo STCopy code to clipboard

if (bEnable) then
    F165_HighSpeedCounter_Cam(iHscChannel := 0, s_dutDataTable := dutF165FP0H_CH0,
                              dutBitOutputs => g_dutCamControl_WY0);
end_if;

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