[信捷] 信捷XDXL系列PLC数据转换指令(上)

[复制链接]
查看9420 | 回复0 | 2024-10-20 14:16:30 | 显示全部楼层 |阅读模式
一.数据转换指令

指令助记符

指令功能

WTD

单字整数转双字整数

FLT

16 位整数转浮点

DFLT

32 位整数转浮点

FLTD

64 位整数转浮点

INT

浮点转整数

BIN

BCD 转二进制

BCD

二进制转 BCD

ASCI

十六进制转 ASCII

HEX

ASCII 转十六进制

DECO

译码

ENCO

高位编码

ENCOL

低位编码

GRY

二进制数转格雷码

GBIN

格雷码转二进制

1.单字整数转双字整数[WTD]

1)指令概述

将指定软元件中的数据进行单字转双字操作的指令。

单字整数转双字整数[WTD]

16 位指令

WTD

32 位指令


执行条件

常开/闭、边沿触发

适用机型

XD 全系列、XL 全系列

2)操作数

操作数

作用

类型

S

指定源数据的软元件地址编号

16 位,BIN

D

指定目标软元件的首地址编号

32 位,BIN

3)功能和动作


(D0)→(D11,D10) 单字整数双字整数

l 当单字 D0 是正整数时,执行该指令后,双字 D10 的高 16 位补 0。

l 当单字 D0 是负整数时,执行该指令后,双字 D10 的高 16 位补 1。

l 值得注意的是,这里的高位补 0 或 1,均是指二进制数。

2.16 位整数转浮点数[FLT]

1)指令概述

将指定数据或软元件中的整数转换为浮点数的指令。

16 位整数转浮点数[FLT]

16 位指令

FLT

32 位指令

DFLT

64 位指令

FLTD

执行条件

常开/闭、边沿触发

适用机型

XD 全系列、XL 全系列

2)操作数

操作数

作用

类型

S

指定源数据的软元件首地址编号

16 位/32 位/64 位,BIN

D

指定目标软元件的首地址编号

32 位/64 位,BIN

3)功能和动作

《16 位指令》



(D10)→ (D13,D12)

BIN 整数二进制浮点值

《32 位指令》



(D11,D10)→(D13,D12)

BIN 整数二进制浮点值

《64 位指令》



(D13,D12,D11,D10)→(D15,D14)

BIN 整数二进制浮点值

l 二进制整数值与二进制浮点值间的转换指令。常数 K、H 在各浮点运算指令中被自动转换,可以不用FLT 指令。

l 这个指令的逆变换指令是 INT。

l FLTD 指令是将 64 位整数转换为 32 位浮点数。

l FLTD 指令的 S 操作数不支持常数 K/H 类型。

注意:在使用 EADD、ESUB、EMUL、EDIV、EMOV 以及 ECMP 等浮点数运算指令前,请务必要保证运算参数全部为浮点数!



初始设 D0 的值为整数 20,执行指令后,D10 的值为浮点数 20。在自由监控中添加 D10,选择浮点类型,可以正确的监控到 D10 的值。自由监控数据如下:



上图所示,D0 为整数 20,D10 为浮点数 20,当 D10 选择双字类型监控时,数据显示不是 20。这是因为整数和浮点数在底层存放格式不一样,所以监控浮点数时应该用自由监控,选择浮点类型监控,才能查看到正确的数据。

3.浮点转整数[INT]

1)指令概述

将指定软元件中的浮点数转换为整数的指令。

浮点转整数[INT]

16 位指令

INT

32 位指令

DINT

执行条件

常开/闭、边沿触发

适用机型

XD 全系列、XL 全系列

2)操作数

操作数

作用

类型

S

指定源数据的软元件地址编号

16 位/32 位,BIN

D

指定目标软元件的首地址编号

16 位/32 位,BIN

3)功能和动作

《16 位指令》



(D11,D10)→ (D20)

二进制浮点 BIN 整数

小数部分进行四舍五入处理

《32 位指令》



(D11,D10)→ (D20,D21)

二进制浮点 BIN 整数

小数部分进行四舍五入处理

l 将源数据地址内的二进制浮点值转换为 BIN 整数,存入目标地址中。此时,对小数部分进行四舍五入后所得的值。

l 此指令为 FLT 指令的逆变换。

l 运算结果为 0 时,标志位为 ON。

l 运算结果超出过以下范围而发生溢出时,进位标志位 ON。

16 位运算时:-32,768~32,767

32 位运算时:-2,147,483,648~2,147,483,647



假设 D0 中的浮点数为 130.2,执行 INT 指令后,得到整数 130 存放于 D10 中,如下图所示:



4.BCD 转二进制[BIN]

1)指令概述

将指定软元件中的 BCD 码转换为二进制数的指令。

BCD 转二进制[BIN]

16 位指令

BIN

32 位指令


执行条件

常开/闭、边沿触发

适用机型

XD 全系列、XL 全系列

2)操作数

操作数

作用

类型

S

指定源数据的软元件地址编号

BCD 码

D

指定目标软元件的首地址编号

16 位,BIN

3)功能和动作



源(BCD)→目标(BIN)的转换传送。

l 可编程控制器获取 BCD 数字开关的设定值时使用。源数据不是 BCD 码时,会置位 SM409(运算错误)、SD409=4(错误发生)。

l 因为常数 K 自动地转换二进制,所以不成为这个指令适用软件元件。

l 例如,PLC 时钟信息寄存器 SD13~SD19 中存储的全部为 BCD 码信息,但是我们都习惯使用十进制数值,可以通过 BIN 指令将需要的时间信息由 BCD 码信息转化为二进制:



5.二进制转 BCD [BCD]

1)指令概述

将指定软元件中的二进制数转换为 BCD 码的指令。  

二进制转 BCD [BCD]

16 位指令

BCD

32 位指令


执行条件

常开/闭、边沿触发

适用机型

XD 全系列、XL 全系列

2)操作数

操作数

作用

类型

S

指定源数据的软元件地址编号

16 位,BIN

D

指定目标软元件的首地址编号

BCD 码

3)功能和动作



源(BIN)→目标(BCD)的转换传送。

l 将可编程控制器内的二进制数据转变为 BCD 码格式的数据。

l BCD 是用 4 位二进制数来表示 1 位十进制数中的 0~9 这 10 个的方法。

l 例如,PLC 时钟信息寄存器 SD13~SD19 中存储的全部为 BCD 码信息,但是我们都习惯使用十进制数值,可以通过 BCD 指令将对寄存器 SD13~SD19 里面的时钟信息进行校正:



6.十六进制转 ASCII [ASCI]

1)指令概述

将指定软元件中的十六进制数转换为 ASCII 码的指令。

十六进制转 ASCII[ASCI]

16 位指令

ASCI

32 位指令


执行条件

常开/闭、边沿触发

适用机型

XD 全系列、XL 全系列

2)操作数

操作数

作用

类型

S

指定源数据的软元件地址编号

2 位,HEX

D

指定目标软元件的首地址编号

ASCII 码

n

指定转换的 ASCII 码字符个数

16 位,BIN

3)功能和动作



l HEX 数据的各位转换成 ASCII 码,向的高 8 位、低 8 位分别传送。转换的字符数用 n 指定。

l低 8 位、高 8 位,分别存储一个 ASCII 数据。



上例程序转换如下:

指定起始元件:

(D100)=0ABCH

(D101)=1234H

(D102)=5678H

[0]=30H [1]=31H

[5]=35H [A]=41H

[2]=32H [6]=36H

[B]=42H [3]=33H

[7]=37H [C]=43H

[4]=34H [8]=38H

7.ASCII 转十六进制[HEX]

1)指令概述

将指定软元件中的 ASCII 码转换为十六进制数的指令。

ASCII 转十六进制[HEX]

16 位指令

HEX

32 位指令


执行条件

常开/闭、边沿触发

适用机型

XD 全系列、XL 全系列

2)操作数

操作数

作用

类型

S

指定源数据的软元件地址编号

ASCII

D

指定目标软元件的首地址编号

2 位,HEX

n

指定转换的 ASCII 码字符个数

16 位,BIN

3)功能和动作



l 将中的高低位各 8 位的 ASCII 字符转换成 HEX 数据,每 4 位向

传送。

l 转换的字符数用 n 指定。

上例程序转换的情况如下所示:






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则