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

菲尼克斯连接器专营    

菲尼克斯连接器、连接端子

新闻分类
  • 暂无分类
联系方式
  • 联系人:吴经理
  • 电话:18576370666
  • 邮件:18576370666@qq.com
首页 > 新闻中心 > BCD和BEGD指令使用7段数码管!
新闻中心
BCD和BEGD指令使用7段数码管!
发布时间:2025-09-10        浏览次数:2        返回列表

在 PLC(可编程逻辑控制器)控制系统中,BCD 指令BEGD 指令(部分品牌 PLC 中称为 “二进制转 7 段数码管码指令”)是驱动 7 段数码管显示的核心指令,二者分工不同但协同工作,前者负责数据格式转换,后者负责直接生成显示驱动码。以下结合 7 段数码管的工作原理,详细讲解这两个指令的功能、使用场景及实操步骤:

一、基础认知:7 段数码管与显示原理

在理解指令前,需先明确 7 段数码管的显示逻辑:
7 段数码管由 7 个发光二极管(LED,通常标记为 a~g 段,部分含小数点 dp)组成,通过控制不同 LED 的 “亮 / 灭” 组合,显示 0~9、A~F 等字符。其驱动方式分为共阴极(低电平点亮 LED)和共阳极(高电平点亮 LED),指令输出的 “7 段码” 需与数码管类型匹配(如共阴极码和共阳极码相反)。


显示的核心需求:将 PLC 内部的二进制数据(如计数器值、传感器数值)转换为能驱动数码管的7 段码(通常为 8 位二进制,对应 a~g+dp),这一过程需通过 BCD 和 BEGD 指令实现。

二、BCD 指令:二进制转 BCD 码,解决 “数据格式适配”

1. 指令功能

BCD 指令的核心是将 PLC 内部的16 位 / 32 位二进制整数(如 D 寄存器中的数值)转换为BCD 码(Binary-Coded Decimal,二进制编码的十进制)。


  • BCD 码规则:用 4 位二进制数表示 1 位十进制数(0~9),例如十进制 “123” 的 BCD 码为 “0001 0010 0011”(16 位 BCD 码)。

  • 为什么需要 BCD 码?因为 7 段数码管通常按 “1 位十进制数” 为单位显示(如 4 位数码管显示 0000~9999),BCD 码能直接对应 “每 1 位十进制数”,方便后续拆分并生成 7 段码。

2. 指令格式(以三菱 FX 系列 PLC 为例)

指令类型指令符号操作数说明功能描述
二进制转 BCD 码BCD K1X0 D0源操作数(S):K1X0(16 位二进制数据,如输入端子状态)
目标操作数(D):D0(存储转换后的 16 位 BCD 码)
将 S 中的 16 位二进制数转换为 4 位 BCD 码(对应 0000~9999),存入 D 中
32 位二进制转 BCD 码BCDP D10 D20源操作数(S):D10(32 位二进制数据,D10 为低 16 位,D11 为高 16 位)
目标操作数(D):D20(存储转换后的 32 位 BCD 码,D20 低 16 位,D21 高 16 位)
将 32 位二进制数转换为 8 位 BCD 码(对应 00000000~99999999),存入 D 中

3. 关键注意事项

  • 数据范围限制:BCD 码仅支持十进制数(0~9),若源操作数(S)中的二进制数对应十进制超过 “9999”(16 位)或 “99999999”(32 位),会触发 PLC 报错(如三菱 FX 的 “BCD 转换错误”)。

  • 用途:BCD 指令不直接驱动数码管,而是将 “二进制数值” 转换为 “便于拆分的十进制编码”,为后续 BEGD 指令生成 7 段码做准备。

三、BEGD 指令:BCD 码转 7 段数码管码,直接驱动显示

1. 指令功能

BEGD 指令(Binary Coded Decimal to 7-Segment Display,部分品牌如西门子称 “SEG” 指令)的核心是将BCD 码(通常是 16 位,对应 4 位十进制数)直接转换为7 段数码管驱动码(8 位 / 段,含小数点),输出到 PLC 的输出端子(如 Y0~Y7),直接控制数码管亮灭。

2. 指令格式(以三菱 FX 系列 PLC 为例)

指令符号操作数说明功能描述
BEGD D0 K1Y0 M0源操作数(S):D0(存储 16 位 BCD 码,对应 4 位十进制数:D0 的 bit15~bit12 = 第 4 位,bit11~bit8 = 第 3 位,bit7~bit4 = 第 2 位,bit3~bit0 = 第 1 位)
目标操作数(D):K1Y0(输出端子,K1Y0=Y0~Y7,对应第 1 位数码管的 a~g+dp;若为 4 位数码管,需 K4Y0=Y0~Y31,对应 4 位)
控制位(M):M0(控制小数点显示,M0=1 时显示第 1 位小数点,M1=1 显示第 2 位,以此类推)
将 D0 中的 4 位 BCD 码(如 “0123”)转换为 4 组 7 段码,分别输出到 K4Y0(Y0~Y31),控制 4 位数码管显示 “0123”;M0~M3 控制对应位的小数点

3. 7 段码输出逻辑(以共阴极数码管为例)

BEGD 指令会根据 BCD 码的每 1 位十进制数,自动生成对应的 7 段码(8 位,bit0=a 段,bit1=b 段...bit6=g 段,bit7=dp 小数点),示例如下:


十进制数BCD 码(4 位)共阴极 7 段码(8 位,Y0~Y7)显示字符
0000000111111(Y0~Y5=1,Y6=0)0
1000100000110(Y1~Y2=1)1
2001001011011(Y0,Y2,Y3,Y5,Y6=1)2
............
9100101101111(Y0,Y1,Y2,Y3,Y6=1)9


若为共阳极数码管,需在指令中设置 “反相输出”(部分 PLC 支持,如三菱 FX 的 BEGD 指令可通过 M8029 控制,或直接修改输出逻辑),将上述 7 段码取反(如 00111111→11000000)。

四、实操步骤:用 BCD+BEGD 指令驱动 4 位 7 段数码管

以 “显示 PLC 内部计数器 C0 的数值(0~9999)” 为例,步骤如下:

1. 硬件连接(共阴极 4 位数码管)

  • 数码管引脚:4 位共阴极数码管共 12 个引脚(a~g+dp 共 8 个段引脚,4 个公共端 COM1~COM4)。

  • PLC 输出端子:用 K4Y0(Y0~Y31)控制段引脚和公共端:

    • Y0~Y7:第 1 位数码管(COM1)的 a~g+dp;

    • Y8~Y15:第 2 位数码管(COM2)的 a~g+dp;

    • Y16~Y23:第 3 位数码管(COM3)的 a~g+dp;

    • Y24~Y31:第 4 位数码管(COM4)的 a~g+dp;

  • 公共端 COM1~COM4:接 PLC 输出 Y32~Y35(或直接接 GND,共阴极)。

2. PLC 程序编写(三菱 GX Works2)

ladder

// 步骤1:将计数器C0的二进制数值(0~9999)转换为BCD码,存入D0
NETWORK 1: 
  LD     M8000        // PLC运行时始终为ON
  BCD    C0           D0  // 二进制(C0)→ BCD码(D0),C0≤9999

// 步骤2:将D0的BCD码转换为7段码,输出到K4Y0(驱动4位数码管),M0~M3控制小数点
NETWORK 2: 
  LD     M8000
  BEGD   D0           K4Y0 M0  // BCD码(D0)→ 7段码(Y0~Y31),M0=1时第1位显小数点

// 步骤3:(可选)控制小数点显示(如第2位显小数点,表示“XX.XX”)
NETWORK 3: 
  LD     M8000
  SET    M1           // M1=1,第2位数码管的小数点点亮

3. 调试与验证

  1. 启动 PLC,观察计数器 C0 的数值变化(可通过输入端子触发 C0 计数);

  2. 检查 4 位数码管是否同步显示 C0 的数值(如 C0=123 时,显示 “0123”,若 M1=1 则显示 “01.23”);

  3. 若显示异常,优先排查:

    • BCD 指令是否报错(如 C0 数值超过 9999,需限制计数范围);

    • 7 段码类型是否匹配(共阴 / 共阳是否反相);

    • 输出端子 Y0~Y31 的接线是否对应 a~g 段。

五、常见问题与解决方案

问题现象可能原因解决方案
数码管显示乱码1. BCD 码转换错误(源数据超范围);2. 7 段码类型不匹配;3. 接线错误1. 检查源数据(如 C0)是否≤9999;2. 确认共阴 / 共阳,修改指令反相;3. 核对 Y 端子与数码管 a~g 段的对应关系
某 1 位数码管不亮1. 该位 BCD 码为无效值(如 16#A~F);2. 对应输出端子(如 Y8~Y15)故障1. 确保源数据为 0~9 的十进制数;2. 用万用表测量 Y 端子输出是否正常
小数点不显示M0~M3 未置 ON;或小数点引脚(如 Y7)接线错误1. 在程序中 SET 对应 M 位(如 M1);2. 检查小数点引脚(Y7/Y15/Y23/Y31)的接线

六、指令对比与适用场景

指令核心作用适用场景注意事项
BCD二进制→BCD 码需将 “二进制数值” 转换为 “十进制编码”,为显示 / 打印做准备(不仅限于 7 段数码管)源数据需在 BCD 码范围内(16 位:0~9999,32 位:0~99999999)
BEGDBCD 码→7 段码直接驱动 7 段数码管显示,无需手动编写 7 段码表需匹配数码管类型(共阴 / 共阳),输出端子需覆盖所有段引脚


综上,BCD 指令是 “数据格式转换器”,BEGD 指令是 “显示驱动生成器”,二者结合是 7 段数码管精确显示的高效方案,广泛应用于设备参数显示(如转速、温度、计数)、人机交互界面等场景。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服