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

软件定制开发公司    

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

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
站内搜索
 
友情链接
首页 > 新闻中心 > 有什么办法让PLC输出模拟量跟随一个函数?
新闻中心
有什么办法让PLC输出模拟量跟随一个函数?
发布时间:2026-04-05        浏览次数:6        返回列表

在三菱 FX2N 上完全可以实现:让 PLC 模拟量输出(DA 模块)严格跟随一个数学函数,比如:

  • 线性函数:y = kx + b

  • 二次曲线:y = ax² + bx + c

  • 正弦 / 三角 / 梯形波

  • 温度、压力、流量的拟合曲线

我给你一套直接能用、原理 + 步骤 + 程序写法,FX2N 照着做就能跑。


一、核心思路(非常简单)

PLC 做不到 “直接写函数”,但可以分步计算

  1. 用一个变量做 自变量 X(时间 / 编码器 / 计数器)

  2. 在 PLC 里用 功能指令 计算 函数值 Y

  3. 把 Y 送给 DA 模拟量输出模块

最终效果:模拟量电压 / 电流 = 函数 f (X)


二、三菱 FX2N 实现步骤

1. 准备硬件

  • FX2N + FX2N-2DA / 4DA(模拟量输出模块)

  • 模块地址:#0 或 #1(看安装位置)

2. 确定你的函数

举例几个最常用的:

① 线性函数(最常用)

Y = K × X + B例:Y = 0.5X + 100对应模拟量 0~10V 或 4~20mA

② 二次曲线

Y = aX² + bX + c适合:抛物线、加速曲线、流量补偿

③ 周期波形(正弦 / 三角 / 梯形)

做震荡输出、测试传感器、模拟流量波动

④ 任意拟合曲线(多点折线)

工程上最实用:把曲线拆成 N 段直线,PLC 分段计算。


三、最简单直接的实现方法

方法 1:纯运算指令(适合简单函数)

用:

  • MOV 赋值

  • ADD / SUB / MUL / DIV

  • DMUL 浮点运算(FX2N 支持 32 位)

示例:线性输出 Y = 2X + 100

ld

mov    k0    d0       // X 从0开始
inc    d0             // X 自增(随时间变化)
mul    d0    k2    d10 // d10 = X*2add    d10   k100  d20 // d20 = 2X+100to     k0    k1    d20 k1 // 送给 DA 模块输出

这样模拟量就会线性上升


方法 2:分段折线法

任何曲线都能拆成直线段:

plaintext

if X < 100:    Y = 1X
if 100≤X<200: Y = 0.5X+50
if X ≥200:    Y = 200

CMP/ZCP 判断区间,分别计算。

几乎所有工控曲线都这么干,简单、稳定、不出错。


方法 3:查表法(适合复杂函数,如正弦、传感器拟合)

  1. 把函数算好一批点,存入 D 区

  2. 用 X 做索引,取出对应 Y

  3. 输出到 DA

例正弦波:D0~D99 存好 0~99 度对应的正弦值用 D100 做角度自增,查表输出。

优点:

  • 任何复杂函数都能实现

  • PLC 运算压力极小


四、FX2N 输出模拟量关键指令

1. DA 模块写入指令:TO

格式:TO  模块号  通道号  数值  点数例:

plaintext

TO K0 K1 D20 K1
  • K0:0 号 DA 模块

  • K1:通道 1

  • D20:函数计算结果

  • K1:输出 1 点

2. 数值范围

  • 0~10V:对应 K0~K1000

  • 4~20mA:对应 K0~K1000(内部偏移即可)


五、让 “函数随时间变化”

想要模拟量自动按函数走,只需要让自变量 X 随时间自增:

plaintext

ld     m8013       // 1s时钟
pls    m0
ld     m0
inc    d0          // X 每秒+1

然后用 D0 计算函数 Y → 输出 DA。

效果:模拟量按照函数自动跑波形。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服