>
一.数据转换指令 指令助记符 | 指令功能 | 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 指定。 上例程序转换的情况如下所示:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |