F6_DGT

数字数据移动

s指定的16位数据或16位等效常量中的十六进制数字会按照n所指定的复制到由d指定的16位区域中。

参数

输入

s (WORD, INT, UINT)

源16位区域

n (WORD, INT, UINT)

指定源和目标十六进制数位和十六进制数字数量

输出

d (WORD, INT, UINT)

目标16位区域

标注

  • 建议使用相应的FP7指令,来代替使用此F型指令:FP_MOVE_DIGITS 数字数据移动

  • 数字是处理数据时使用的4位单位。使用此指令,16位数据被分成四个数字。从最低有效四位开始按十六进制数字0、数字1、数字2和数字3的顺序调用数字:

    1. 16位数据

    2. 十六进制数字

  • 使用如下十六进制数据,n指定要复制的(3)源十六进制数位、(2)数字数量和(1)目标十六进制数位:

    1.  (1) 目标:起始十六进制数位

      0十六进制数字0

      1十六进制数字1

      2十六进制数字2

      3十六进制数字3

    2.  (2) 要复制的十六进制数字数量

      0复制1个十六进制数字(4位)

      1复制2个十六进制数字(8位)

      2复制3个十六进制数字(12位)

      3复制4个十六进制数字(16位)

    3.  (3) 源:起始十六进制数位

      0十六进制数字0

      1十六进制数字1

      2十六进制数字2

      3十六进制数字3

    以下是基于指定n时的一些数字传输模式。

    • 当源的十六进制数字1复制到目标的十六进制数字1时,指定n: 16#101

    • 当源的十六进制数字3复制到目标的十六进制数字0时,指定n: 16#003(简写:16#3)。

    • 当源的多个十六进制数字(十六进制数字2和3)复制到目标的多个十六进制数字(十六进制数字2和3)时,指定n: 16#212

    • 当源的多个十六进制数字(十六进制数字0和1)复制到目标的多个十六进制数字(十六进制数字2和3)时,指定n: 16#210

    • 当源的4个十六进制数字(十六进制数字0到3)复制到目标的4个十六进制数字(十六进制数字0到3)时,指定n: 16#130

示例

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。

	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

POU本体

当变量start设置为TRUE时,执行此函数。梯形图的[监控头]中的sourceoutput值已设置为通过激活工具栏中的[十六进制]按钮来显示十六进制值。

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

ST本体

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

IL本体

最后更新日期: 此页面上的反馈松下热线