F165_HighSpeedCounter_Cam

Control Cam para el FP0H

Esta instrucción realiza un control Cam según los parámetros de la DUT especificada, con un máximo de 32 valores objetivo de acuerdo con el valor actual del contador de alta velocidad. Para cada salida cam, el valor objetivo se establece como un par con un valor de ajuste ON y OFF.

Se puede ejecutar un programa de interrupción siempre que el valor actual coincida con uno de los valores de preselección.

Parámetros

Entrada

iHscChannel* (INT)

Canal del contador de alta velocidad: 0–3

s_dutDataTable (ANY_DUT)

Dirección de inicio del área que contiene la tabla de datos

Salida

dutBitOutputs (ANY_DUT)

Dirección de inicio (WR, WL o WY) del área que contiene la dirección (palabra), por ejemplo, BOOL32_OVERLAPPING_DUT. Seleccionar el tamaño (16 ó 32 bits) según el número establecido en diNumberOfTargetValuesAndOutputRelays.

Observaciones

  • Entrada

    Crear su propia DUT utilizando la siguiente DUT como ejemplo: F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT

    Se pueden especificar los siguientes parámetros en la DUT:

    • Código de control

    • Dirección (palabra) para las salidas

    • Número de valores de preselección

      (Valores de preselección ON/OFF de F165_HighSpeedCounter_Target_Values_OnOff_DUT)

    • Máximo valor de preselección

      Rango: 1–2147483646 (16#1–16#7FFFFFFE)

  • Salida

    • Si el número de valores de preselección está en el rango de 1–16, se utiliza una palabra. Si el número de valores de preselección está en el rango de 17–32, se utilizan dos palabras.

    • Por ejemplo: Cuando la dirección de salida se ajusta a "Relé interno", el número de palabra base de la dirección de salida se ajusta a "0", y el número de valores objetivo se ajusta a "32", R0 a R1F son configurados como la dirección de la salida cam.

    1.  (1) Cuando el valor de proceso alcanza el valor objetivo 1, R0 se activa o desactiva.
    2.  (2) Cuando el valor de proceso alcanza el valor objetivo 16, RF se activa o desactiva.
    3.  (3) Cuando el valor de proceso alcanza el valor objetivo 18, R11 se activa o desactiva.
    NOTA

    Cuando se ha especificado el relé de salida (Y), los valores son enviados tanto a la salida de la CPU como a las memorias de operación.

  • Ejemplo

    1.  (1) Valor actual
    2.  (2) Valor objetivo 1; valor de preselección ON: 1000

      1000–4999 R100: ON

    3.  (3) Valor objetivo; valor de preselección OFF: 5000
    4.  (4) Valor objetivo 2; valor de preselección ON: 7000

      7000–8999 R101: ON

    5.  (5) Valor objetivo; valor de preselección OFF: 9000

Control del valor de preselección máximo

  • Con F165_HighSpeedCounter_Cam, es posible realizar el control con un objetivo máximo especificado. Los ajustes para activar/desactivar el control de valores objetivo máximos y el valor objetivo máximo se especifican en la tabla de datos.

  • La tabla de datos varía entre 12 y 138 palabras en función del número de valores objetivo y del ajuste de valor objetivo máximo especificado.

NOTA

El valor objetivo máximo del final de la tabla de datos solo es válido cuando el control del valor objetivo se ajusta a 16#0010 (con valor máximo) en dwCamControlCode. Este ajuste puede omitirse cuando el control del valor objetivo se ajusta a 16#0000 (sin valor máximo).

Habilitado

Deshabilitado

Rango de contaje

0 a valor objetivo

Valor mínimo negativo a valor máximo positivo

Operación cuando se supera el rango de contaje

Contaje incremental:

Cuando el valor de actual supera el valor objetivo, se ajusta a 0.

Cuando el valor actual supera el valor máximo positivo, vuelve al valor mínimo negativo.

Contaje decremental:

El puntero a la tabla de datos se mueve desde el último valor objetivo al valor objetivo 1.

Cuando el valor actual cae por debajo de 0, se establece en el valor objetivo.

Cuando el valor actual cae por debajo del valor mínimo negativo, vuelve al valor máximo positivo.

Especificación de valores objetivo

La salida varía en función del valor de preselección ON y del valor de preselección OFF.

  • Valor de preselección OFF > valor de preselección ON

    Cuando el valor actual es mayor o igual que el valor de preselección ON y menor que el valor de preselección OFF, el bit de salida correspondiente se activa. Cuando el valor actual está fuera de rango, el bit correspondiente se desactiva.

    Contaje incremental:

    Contaje decremental:

    Valor de preselección OFF (1) > valor de preselección ON (2)

  • Valor de preselección ON > valor de preselección OFF

    Cuando el valor actual es menor que el valor de posición ON y mayor o igual que el valor de preselección OFF, el bit de salida correspondiente se desactiva. Cuando el valor actual está fuera de rango, el bit correspondiente se activa.

    Contaje incremental:

    Contaje decremental:

    Valor de preselección ON (1) > valor de preselección OFF (2)

  • Valor de preselección ON = valor de preselección OFF

    Cuando el valor actual está fuera de rango, el bit correspondiente se desactiva.

    Contaje incremental:

    Contaje decremental:

    Valor de preselección ON (1) > valor de preselección OFF (2)

Información de programación general

  • Seleccionar la entrada del contador de alta velocidad para el canal determinado en los registros del sistema.

  • Cuando se ejecuta una instrucción del contador de alta velocidad, la bandera control del contador de alta velocidad (por ejemplo, sys_bIsHscChannel0ControlActive) del canal utilizado pasa a TRUE. No se puede ejecutar otra instrucción del contador de alta velocidad utilizando el mismo canal mientras que la bandera de control esté a TRUE.

  • Se puede ejecutar la instrucción simultáneamente en un máximo de dos canales.

  • Para cancelar la ejecución de la instrucción, poner a TRUE el bit 3 del registro de datos que almacena el código de control del contador de alta velocidad (sys_wHscOrPulseControlCode). La bandera de control del contador de alta velocidad pasa a FALSE. Para habilitar la ejecución de la instrucción del contador de alta velocidad, poner el bit 3 a FALSE. Cuando se ajusta el bit 3 de sys_wHscOrPulseControlCode a TRUE, también se desactiva el control del valor objetivo máximo. Cuando se detiene el control del valor objetivo máximo, la salida cam se mantiene y el contador de alta velocidad sigue contando.

  • Poner a cero o preestablecer el valor actual del contador de alta velocidad antes de activar la instrucción.

  • Sobrescribir el valor actual del canal utilizado en la ejecución de la instrucción puede causar un funcionamiento inesperado.

  • Si la instrucción se ejecuta en el programa principal, asegurarse de que el intervalo de tiempo entre los valores de preselección adyacentes es mayor que el ciclo de scan.

  • Si la instrucción se ejecuta en un programa de interrupción, asegurarse de que el intervalo de tiempo mínimo entre valores de preselección adyacentes es mayor que el máximo tiempo de ejecución del programa de interrupción.

  • Cuando se utiliza una entrada de reset o un reset por software, comprobar que el valor de preselección 1 es un entero y ³ 1.

  • Cuando se usa el control de valor máximo junto con una entrada de reset o un reset por software, tener la precaución de no utilizarlos la vez.

  • Cuando se ejecuta el reset por hardware o el reset por software durante el control del contador de alta velocidad, el valor actual del contador de alta velocidad se pone a 0. La salida asignada a la salida cam será la salida correspondiente al valor actual de proceso 0.

  • También es posible iniciar el programa de interrupción INTn cada vez que el valor actual alcanza los valores objetivo. Para esta operación, la activación del programa de interrupción debe ser permitida por la instrucción de control de interrupción ICTL.

Banderas de error

sys_bIsOperationErrorHold (pasa a TRUE y permanece TRUE)
  • si el número de canal o los valores de la tabla de datos están fuera del rango permisible
  • si el contador de alta velocidad no se ha activado en los registros del sistema
  • si el valor de preselección > el valor de preselección máximo.

  • si el valor de preselección = 0.

  • si los valores de preselección no están ordenados en sentido ascendente.

sys_bIsOperationErrorNonHold (pasa a TRUE para un ciclo de scan)
  • si el número de canal o los valores de la tabla de datos están fuera del rango permisible
  • si el contador de alta velocidad no se ha activado en los registros del sistema
  • si el valor de preselección > el valor de preselección máximo.

  • si el valor de preselección = 0.

  • si los valores de preselección no están ordenados en sentido ascendente.

Ejemplo con CH0 del FP0H

DUT

La DUT FF165_HighSpeedCounter_Cam_8_Values_OnOff_DUT está predefinida en la FP Library y se puede utilizar como un ejemplo.

Variables Globales

En la Lista de Variables Globales, se definen las variables a las que pueden acceder todas las POUs del proyecto.

Cabecera de la POUCopy code to clipboard

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU.Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

	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

Cuerpo de la POU

La función se ejecuta cuando la variable bEnable se encuentra a TRUE.

Cuerpo 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

Cuerpo en STCopy code to clipboard

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

Modificado el: 2023-03-22Comentarios sobre esta páginaLínea directa de Panasonic