三菱 DABS 指令详解(绝对值读取 / 计算)
三菱 PLC 中的DABS指令是浮点数绝对值指令(32 位),核心作用是对 32 位浮点数(REAL 型)取绝对值,也可结合绝对值编码器 / 定位模块实现 “绝对值读取” 场景的应用。以下从指令基础、用法、绝对值读取实战三部分说明:
一、DABS 指令基础参数
| 项目 | 说明 |
|---|---|
| 指令格式 | DABS Dn Dm(FX 系列) / DABS [S] [D](Q/L 系列) |
| 位数 | 32 位指令(16 位为ABS,仅处理整数绝对值) |
| 操作数类型 | 源 [S]:D 寄存器(存储 32 位浮点数,如 D0/D1);目标 [D]:存储绝对值结果 |
| 功能 | 计算[S]中 32 位浮点数的绝对值,结果存入[D](负数变正,正数 / 0 不变) |
| 适用系列 | FX3U/FX3G/FX5U(需浮点数运算功能)、Q/L 系列 |
核心逻辑
二、基础用法示例(FX5U 为例)
1. 整数绝对值(ABS,16 位)
若需处理整数绝对值(如编码器脉冲),用 16 位ABS指令:
ladder
LD M0 // 触发条件 ABS D10 D20 // 取D10中16位整数的绝对值,存入D20
2. 浮点数绝对值(DABS,32 位)
若需处理浮点数(如换算后的实际位置):
ladder
LD M1 // 触发条件 DABS D0 D2 // D0/D1(32位浮点数)的绝对值 → 存入D2/D3
三、实战:读取绝对值编码器 / 定位模块的绝对值
若需 “读取绝对值”(如绝对值编码器的位置值),DABS需结合定位模块指令(如 FX5-40SSC-S、QD75P)使用,步骤如下:
场景:读取绝对值编码器的位置值并取绝对值
步骤 1:读取编码器原始值(以 FX5U + 绝对值编码器为例)
通过定位模块指令读取编码器的原始位置(可能为负数,如反向旋转):
ladder
LD M100 // 读取触发 DRDSP K0 K1 D100 // 读取轴0的当前位置 → 存入D100/D101(32位整数) DTOBIN D100 D200 K32 // 32位整数转浮点数 → D200/D201
步骤 2:用 DABS 取绝对值
ladder
DABS D200 D300 // 浮点数绝对值 → D300/D301(最终绝对值位置)
步骤 3:结果换算(可选)
若需将脉冲数换算为实际长度(如 1 脉冲 = 0.1mm):
ladder
DMUL D300 D400 D500 // D300(绝对值) × D400(0.1) → D500(实际长度)


