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

软件定制开发公司    

软件定制开发公司,承接各类工控软件,上位机软件,plc程序开发,编程,调试,电气...

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
站内搜索
 
友情链接
首页 > 新闻中心 > 模拟量信号分时复用的具体程序示例!
新闻中心
模拟量信号分时复用的具体程序示例!
发布时间:2025-11-12        浏览次数:12        返回列表

模拟量信号分时复用通过 PLC 控制多路切换器(如 CD4051、ADG708 等 8 通道模拟开关),让 1 个模拟量输入(AI)通道轮流采集多个模拟量信号,适用于非实时场景(如采样频率≤1Hz)。以下是基于三菱 FX3U PLC 的具体程序示例,包含硬件接线逻辑和梯形图程序。

一、硬件准备与接线

  1. 核心组件

    • PLC:FX3U-4AD(模拟量输入模块,1 个通道即可)。

    • 多路切换器:CD4051(8 通道,控制信号 A/B/C 为 3 位二进制,选通 1 路输入)。

    • 模拟量信号源:3 路(如温度传感器 0-10V 输出,分别为 T1、T2、T3)。

  2. 接线逻辑

    • 切换器控制端:CD4051 的 A/B/C 引脚接 PLC 的数字量输出 Y0/Y1/Y2(3 位二进制控制 8 个通道)。

    • 模拟量输入:CD4051 的公共输出端(COM)接 FX3U-4AD 的 AI 通道(如 CH1,电压输入 0-10V)。

    • 信号源:T1 接 CD4051 的 IN0,T2 接 IN1,T3 接 IN2(其余通道空置)。

    • 电源:CD4051 需 DC5V 供电,与 PLC 共地(0V 相连)。

二、程序设计思路

  1. 切换周期:设为 1 秒(1000ms),每路信号采集时间 200ms(确保信号稳定),3 路信号总周期 600ms,预留 400ms 冗余。

  2. 控制逻辑

    • 用定时器触发通道切换,Y0/Y1/Y2 组合输出 3 位二进制码(000→IN0,001→IN1,010→IN2)。

    • 每切换到 1 路通道,延迟 200ms 后读取 AI 值,存储到对应数据寄存器(D10=T1,D20=T2,D30=T3)。

三、梯形图程序示例(三菱 GX Works2)

1. 定时器与通道切换控制

plaintext

// 主定时器:1秒周期(K100=100×10ms=1000ms)
LD M8000
TON T0, K100  // T0=1秒后导通

// 通道切换计数:0→1→2→0循环(用D0存储当前通道号)
LD T0
RST T0        // 复位定时器,重新计时
INC D0        // 通道号+1
CMP D0 K3 M0  // 比较D0与3:M0=1(D0=3时),否则M1=1
LD M0
RST D0        // 当D0=3时,复位为0(循环0-2)

2. 通道选通信号(Y0/Y1/Y2 输出)

plaintext

// 通道0(IN0,T1):D0=0时,Y0=0,Y1=0,Y2=0(二进制000)
LD M8000
CMP D0 K0 M10
LD M10
OUT Y0
OUT Y1
OUT Y2
RST Y0        // Y0=0
RST Y1        // Y1=0
RST Y2        // Y2=0

// 通道1(IN1,T2):D0=1时,Y0=1,Y1=0,Y2=0(二进制001)
LD M8000
CMP D0 K1 M20
LD M20
SET Y0        // Y0=1
RST Y1
RST Y2

// 通道2(IN2,T3):D0=2时,Y0=0,Y1=1,Y2=0(二进制010)
LD M8000
CMP D0 K2 M30
LD M30
RST Y0
SET Y1        // Y1=1
RST Y2

3. 模拟量读取与存储(调用 FX3U-4AD 模块指令)

plaintext

// 通道0(T1)读取:延迟200ms确保信号稳定
LD M10                  // D0=0时触发
TON T1, K20             // T1=200ms后读取
LD T1
RST T1
FROM K0 K1 D10 K1       // 从4AD模块(K0)的CH1(K1)读取1个字到D10(T1值)

// 通道1(T2)读取
LD M20                  // D0=1时触发
TON T2, K20             // T2=200ms后读取
LD T2
RST T2
FROM K0 K1 D20 K1       // 读取到D20(T2值)

// 通道2(T3)读取
LD M30                  // D0=2时触发
TON T3, K20             // T3=200ms后读取
LD T3
RST T3
FROM K0 K1 D30 K1       // 读取到D30(T3值)

4. 数据转换(将模块原始值转为实际物理量)

FX3U-4AD 读取 0-10V 信号的原始值为 0-4000(对应 0-10V),需转换为实际单位(如温度 0-100℃):

plaintext

// T1实际温度=(D10/4000)×100℃
LD M8000
MOV D10 D11
MUL D11 K100 D12       // D12 = D10×100
DIV D12 K4000 D13      // D13 = T1实际温度(℃),存储到D13

// T2、T3同理,分别计算后存D23、D33

四、程序说明与注意事项

  1. 切换频率:示例中 1 秒切换 3 路信号,每路采样周期约 333ms,若需更高频率可缩短定时器时间(如 500ms 周期),但需确保信号稳定(至少 100ms 延迟)。

  2. 通道扩展:若需采集更多信号(如 8 路),只需增加 D0 的比较值(K8),并扩展 Y0/Y1/Y2 的控制逻辑(二进制 000~111)。

  3. 干扰处理:模拟量信号线需用屏蔽线,切换器与 PLC 共地,必要时在切换器输出端加 RC 滤波电路(100Ω 电阻 + 104 电容)。

  4. 误差校准:不同通道可能存在微小偏差,可在程序中加入补偿值(如 D13 = 计算值 + 2),通过实际测量校准。

该方案适合临时解决模拟量通道不足问题,若需高精度或实时性,建议加装扩展模块。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服