台达分两大系列:DVP(传统单扫描)、AS/AH(多任务 CODESYS 内核)。
核心重点:模拟量 AD 转换是模拟量模块自带独立硬件 / MCU 完成,独立于 PLC CPU 扫描周期,不和开关量输入采样同步。开关量 X 是扫描周期开头批量采样映像;模拟量 AI 是模块后台持续转换,CPU 只是读取模块已经转换好的数字结果。
一、DVP 系列(ES2/EH3 等,传统循环扫描)
完整采样链路
外部模拟信号(电压 / 电流 / PT100 热电偶)进入 AD 模块;模块硬件电路做硬件 RC 滤波。
模块本地 MCU 独立持续做 A‑D 转换,有自己的采样速率(例如单通道几百 μs~ 数 ms),不受 PLC 主机扫描周期约束,一直在后台跑,不占用 CPU 扫描时间。
模块内部 CR 寄存器保存两组数据:
Present value(当前瞬时值):最近一次 AD 转换原始结果;
Average value(平均值):模块内部硬件递推平均滤波,可设置 1‑100 次平均,抑制噪声。
PLC 主机通过扩展总线,使用
FROM指令读取模块 CR 寄存器,把模拟量数值读到 PLC 内部 D 寄存器。
不是扫描周期开头统一采集模拟量。开关量 X:扫描周期开始一次性全部读入 X 映像;模拟量 AI:什么时候执行 FROM,什么时候去读模块最新已经转换完成的值。程序任意位置读取,读到的是模块后台最新转换结果,不会在扫描开始锁存一份全局模拟量快照。
DVP 关键现象
同一个扫描周期内,前后两次 FROM 读取同一个 AI 通道,读到的数值可能不一样,因为模块后台还在持续 AD 转换。
模拟量刷新延迟 = 模块 AD 转换时间 + 总线 FROM 读取延迟,不完全等于 PLC 扫描周期。
没有全局模拟量映像区;AI 数据存放在模块侧 CR,CPU 需要主动读过来。
即使放在中断程序里面用 FROM 读 AI,读到的也是模块已经转换完毕的数据,不能消除模块本身 AD 转换延迟。
内置模拟量主机(DVP‑EX)逻辑一样:主机内部 AD 硬件独立转换,程序读取特殊 D 寄存器获取结果。
误区:很多人以为模拟量和 X 点一样,扫描周期开头统一采样;DVP 开关量 X 会锁存一整个扫描周期;模拟量 AI 不会锁存。
二、AS 系列(AS200‑AS300,支持多任务)
AS 有两种模式:传统单扫描模式、多任务模式。
1)传统单扫描模式
开关量 X:扫描周期开始全局输入采样,X 映像本扫描周期不变。
模拟量模块:模块本地硬件独立持续 AD 转换;PLC 总线后台异步刷新 AI 过程变量;不会在扫描开头做统一模拟量快照。程序任意位置读取 AI 标签,拿到模块最新转换结果;同一扫描周期内 AI 数值可以变化。
2)多任务模式(Cyclic 周期任务 / Event 事件任务)
AS 多任务:数字量 DI 每个任务启动会拷贝 DI 快照副本;但是模拟量 AI 默认不参与任务 IO 快照拷贝。
AD 模块依旧后台独立转换;底层总线任务异步更新 AI 标签缓冲区。
用户周期任务读取 AI 标签,直接读取底层缓冲区;同一个任务执行中途,AI 值可以被后台总线改写,本任务内部不会自动锁存模拟量快照。
和数字 DI 行为不一样:DI 任务启动拷贝快照,AI 不拷贝。 工程做法:周期 / 中断任务开头把 AI 复制到本地变量,后续逻辑全部使用副本,模拟快照锁存。
如果放在 EtherCAT 总线周期任务,远程模拟量从站由总线周期同步更新 AI 值。
三、模块内部滤波参数
DVP、AS 模拟量模块,每个通道独立可设置平均滤波次数 1‑100 次:
平均次数 = 1:读取瞬时原始 AD 采样值,响应快,噪声大;
平均次数越大,滤波越强,响应时间变长。
滤波是模块硬件侧完成,不是 PLC 程序做平均,减轻 CPU 负担ManualsLib。
四、DVP 与 AS 模拟量与开关量输入对比
表格
| 对象 | DVP 开关量 X 输入采样 | DVP 模拟量 AI 输入采样 | AS 多任务数字 DI | AS 多任务模拟量 AI |
|---|---|---|---|---|
| 转换执行者 | PLC 主机 CPU | AD 模块本地 MCU 独立后台转换 | 底层总线任务 | 模块独立 AD,总线异步更新 |
| 采样时机 | 扫描周期开头一次性批量采样,锁存 X 映像 | 模块持续转换;FROM 指令才读取,无全局锁存 | 任务启动拷贝 DI 快照,本任务内不变 | 不自动快照,任务执行中 AI 可变化 |
| 本扫描周期数值 | 全程不变 | 可变化 | 本任务内不变 | 可变化 |
| 是否受扫描周期约束 | 是 | AD 转换不受扫描周期;读取时机受程序指令位置影响 | 受任务调度 | AD 转换不受任务周期,读取受任务调度 |
五、实操编程要点
DVP:不要在循环中频繁执行大量 FROM,会拉长扫描时间;可放在 END 之后处理或者定时执行。
AS 多任务:周期任务、中断任务用到模拟量,任务开头复制 AI 到局部变量,逻辑全部使用副本,避免中途数值跳动。
高速采集:提高模块采样速率(减小平均次数),模拟量本身硬件转换时间是系统固有延迟,单纯缩短 PLC 扫描周期不能消除模块 AD 固有延迟。
中断程序读取模拟量:只能拿到模块已经转换完成的数据,不能消除 AD 硬件转换延迟。
模拟量总延迟 = 传感器响应 + 模块 AD 转换 + 滤波时间 + 总线读取延迟。


