三菱 FX3U 十六进制转二进制显示:2 种最实用方法
你想让 FX3U 把接收到的十六进制数据,直接转换成二进制数显示(比如在触摸屏、上位机、监控软件里看),FX3U 本身没有专用指令,但有零难度、稳定可用的实现方法。
我给你整理了工程上最常用的 2 种方案,直接复制就能用:
一、最简单方案:用 HEX2BIN 指令(推荐!)
FX3U 原生支持 HEX→BIN 转换指令:HEX2BIN这是官方标准指令,专门做16 进制 → 2 进制转换,一行搞定。
指令格式
plaintext
HEX2BIN S D
S:存放十六进制数据的源寄存器(如 D0)
D:转换后二进制数据的目标寄存器(如 D10)
示例程序
plaintext
LD M0 // 触发转换信号 HEX2BIN D0 D10 // D0(HEX) → D10(BIN)
✅ 效果:如果 D0 = H1A(十六进制)执行后 D10 = 0001 1010(二进制)
二、如果需要 “按位拆分显示”(触摸屏 / 数码管专用)
很多场景不是只要 BIN 值,而是要把每一位二进制单独显示(比如触摸屏做位状态灯)。
可以用位移位指令逐位拆出来:
示例:把 D0 (HEX 转 BIN 后) 拆成 16 个独立位信号
plaintext
LD M0 MOV D0 D10 // 原始BIN数据 SFTR D10 K0 // 右移0位,保持原值 // 拆 bit0 ~ bit15 MOV D10 M0 // bit0 → M0 MOV D10 M1 // bit1 → M1 ...依次到 M15
更简单的写法:直接用位访问
plaintext
// D10 的二进制每一位,直接对应: D10.0 // 二进制 bit0 D10.1 // 二进制 bit1 D10.2 // 二进制 bit2 ... D10.15 // 二进制 bit15
触摸屏直接绑定 D10.0 ~ D10.15,就能直接显示二进制每一位。
三、通讯场景(从串口 / 485 收十六进制 → 转 BIN)
如果你是通过 MODBUS/RS485 收到十六进制数据,流程如下:
接收数据 → 存入 D 寄存器
直接用
HEX2BIN D接收 D结果
完整通讯转换示例
plaintext
// 假设从串口收到的16进制数据存在 D200 LD M8000 HEX2BIN D200 D210 // D200(HEX) → D210(BIN)
总结(超简洁)
FX3U 可以直接十六进制转二进制
专用指令:HEX2BIN S D
要显示二进制位 → 直接用
Dn.0 ~ Dn.15程序极短、稳定、不占资源。


