F6_DGT

Transferencia de dígitos

Copia un número de dígitos hexadecimales del registro fuente s en la posición deseada del registro de destino d según se especifique en n.

Parámetros

Entrada

s (WORD, INT, UINT)

Área de 16 bits fuente

n (WORD, INT, UINT)

Especifica la posición del dígito hexadecimal fuente y la posición del dígito destino y el número de dígitos a transferir

Salida

d (WORD, INT, UINT)

Área de 16 bits destino

Observaciones

  • En lugar de utilizar esta instrucción F, se recomienda utilizar la instrucción FP7 correspondiente: FP_MOVE_DIGITS

  • Los dígitos son unidades de 4 bits que se utilizan para manejar datos. Con esta instrucción, los datos de 16 bits se separan en unidades de 4 dígitos. Los dígitos se nombran como dígito hexadecimal 0, dígito hexadecimal 1, dígito hexadecimal 2 y dígito hexadecimal 3, comenzando por los cuatro bits menos significativos:

    1. dato de 16 bits

    2. bit

    3. digito hexadecimal

  • n es un dato hexadecimal que especifica la posición del dígito hexadecimal fuente (3), el número de dígitos a copiar (2) y la posición del dígito hexadecimal destino (1):

    1.  (1) Destino: Posición inicial del dígito hexadecimal

      0 Dígito hexadecimal 0

      1 Dígito hexadecimal 1

      2 Dígito hexadecimal 2

      3 Dígito hexadecimal 3

    2.  (2) Número de dígitos hexadecimales a copiar

      0 Copia 1 digito hexadecimal (4 bits)

      1 Copia 2 digitos hexadecimales (8 bits)

      2 Copia 3 digitos hexadecimales (12 bits)

      3 Copia 4 digitos hexadecimales (16 bits)

    3.  (3) Fuente: Posición inicial del dígito hexadecimal

      0 Dígito hexadecimal 0

      1 Dígito hexadecimal 1

      2 Dígito hexadecimal 2

      3 Dígito hexadecimal 3

    A continuación se muestra el valor de n para algunos patrones típicos de transferencia de dígitos:

    • Especificar n: 16#101 para copiar el dígito hexadecimal 1 de la fuente al dígito hexadecimal 1 del destino.

    • Especificar n: 16#003 (en su forma abreviada: 16#3) para copiar el dígito hexadecimal 3 de la fuente al dígito hexadecimal 0 del destino.

    • Especificar n: 16#212 para copiar varios dígitos (los dígitos hexadecimales 2 y 3) de la fuente en los dígitos hexadecimales 2 y 3 del destino.

    • Especificar n: 16#210 para copiar varios dígitos (los dígitos hexadecimales 0 y 1) de la fuente en los dígitos hexadecimales 2 y 3 del destino.

    • Especificar n: 16#130 para copiar 4 dígitos (los dígitos hexadecimales del 0 al 3) de la fuente en los 4 dígitos hexadecimales (del 0 al 3) del destino.

Ejemplo

Cabecera de la POU

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
		start: BOOL:=FALSE;
		source: INT:=329;
			(*decimal 329 = 16#149*)
		specify_n: WORD:=16#111;
			(*Beginning from the end:
1: first hex. digit is digit 1, i.e. 4
1: copies 2 hex. digits, i.e. 14
1: destination is hex. digit 1*)
		output: INT:=0;
			(*16#140 = decimal 320*)
	END_VAR

Cuerpo de la POU

Cuando la variable start está ajustada a TRUE, se ejecuta la función. Para mostrar en hexadecimal los valores de source y de output en la ventana Monitorizar Cabecera del diagrama de contactos, activar botón Hex en la barra de herramientas.

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,F6_DGT!,Instance,12,0,18,5,,?DEN?D@'s'?Dn?AENO?Cd);
B(B_VARIN,,source,8,2,10,4,);
B(B_VARIN,,specify_n,8,3,10,5,);
B(B_VAROUT,,output,18,2,20,4,);
B(B_CONTACT,,start,6,1,8,3,);
L(10,3,12,3);
L(10,4,12,4);
L(8,2,12,2);
L(1,2,6,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

IF start then
    F6_DGT( s:= source,
         n:= specify_n,
         d=> output);
END_IF;

Cuerpo IL

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