返回主站|会员中心|保存桌面

三菱电机服务商    

PLC、变频器、伺服驱动、触摸屏,机器人

联系方式
  • 联系人:吴经理
  • 电话:18576370666
  • 邮件:18576370666@163.com
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 三菱DABS指令,读取绝对值!
新闻中心
三菱DABS指令,读取绝对值!
发布时间:2025-12-23        浏览次数:1        返回列表

三菱 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 系列

核心逻辑

  • [S] = 123.45 → [D] = 123.45

  • [S] = -67.89 → [D] = 67.89

  • [S] = 0 → [D] = 0


二、基础用法示例(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

注:32 位浮点数占用连续 2 个 D 寄存器(如 D0 = 尾数,D1 = 指数 / 符号位),指令会自动识别连续寄存器。


三、实战:读取绝对值编码器 / 定位模块的绝对值

若需 “读取绝对值”(如绝对值编码器的位置值),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(实际长度)

四、注意事项

  1. 数据类型匹配

    • ABS:仅处理 16 位整数(如 D10),负数取正,正数不变;

    • DABS:仅处理 32 位浮点数(如 D0/D1),若输入整数需先通过BINTOF转浮点数。

  2. 绝对值编码器读取

    • 若编码器输出为二进制绝对值(无正负),无需DABS,直接读取即可;

    • 若编码器输出包含方向(正负),需用DABS/ABS统一为绝对值。

  3. 错误处理

    • DABS源操作数非浮点数,PLC 会报运算错误(错误码 6706),需先校验数据类型。


总结

  • DABS核心是32 位浮点数绝对值计算,并非直接 “读取绝对值”,读取绝对值需结合编码器 / 模块的读取指令;

  • 整数绝对值用ABS,浮点数用DABS,需严格匹配数据类型;

  • 绝对值编码器场景:先读取原始位置值 → 转浮点数(可选) → 取绝对值 → 换算实际值。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服