模拟量信号分时复用通过 PLC 控制多路切换器(如 CD4051、ADG708 等 8 通道模拟开关),让 1 个模拟量输入(AI)通道轮流采集多个模拟量信号,适用于非实时场景(如采样频率≤1Hz)。以下是基于三菱 FX3U PLC 的具体程序示例,包含硬件接线逻辑和梯形图程序。
一、硬件准备与接线
二、程序设计思路
三、梯形图程序示例(三菱 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
四、程序说明与注意事项
该方案适合临时解决模拟量通道不足问题,若需高精度或实时性,建议加装扩展模块。

