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

软件定制开发公司    

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

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
站内搜索
 
友情链接
首页 > 新闻中心 > 三菱PLC与西门子plc的模拟量编程对比!
新闻中心
三菱PLC与西门子plc的模拟量编程对比!
发布时间:2025-11-30        浏览次数:1        返回列表

三菱 PLC 与西门子 PLC 模拟量编程对比(核心差异 + 实操案例)

三菱(FX 系列)与西门子(S7-200/S7-1200/1500)PLC 的模拟量编程核心目标一致(模拟量采集、换算、控制),但在硬件寻址、数据处理逻辑、指令体系、标定方式上差异显著 —— 三菱以 “寄存器直接操作 + 简易指令” 为主,西门子以 “数据块 / 变量映射 + 标准化指令” 为核心,以下从核心维度对比,并结合典型案例落地。

一、核心维度对比表(FX3U vs S7-200/S7-1200)

对比维度三菱 PLC(FX3U/FX5U)西门子 PLC(S7-200/S7-1200)
硬件寻址方式模拟量模块与 PLC 集成 / 扩展,直接映射到固定寄存器:- 输入:FX3U-4AD→D8030~D8033(通道 0~3)- 输出:FX3U-4DA→D8040~D8043无 “变量” 概念,直接操作 D 寄存器模块化设计,按 “模块地址 + 通道” 寻址,支持变量命名:- S7-200:AIW0/AQW0(模拟量输入 / 输出字)- S7-1200/1500:PIW256/PQW256(过程输入 / 输出字),需先定义变量(如 Temp_Raw: Int)
数据类型基础仅支持 16 位整数(默认),浮点运算需专用指令(FLT/EINT)原生支持 Int、Real(浮点),S7-1200/1500 可直接用 Real 运算,无需类型转换
模拟量换算逻辑手动计算:先读_raw 值→按量程换算为工程值,无标准化指令标准化指令(NORM_X/SCALE_X):一键完成 “_raw 值↔工程值” 转换,无需手动算系数
指令体系简易指令为主,无专用模拟量指令:- 读值:MOV D8030 D100- 换算:MUL/DIV/FLT 组合- 输出:MOV D200 D8040专用模拟量指令:- S7-200:SCALE/UNSCALE(库指令)- S7-1200/1500:NORM_X(归一化)/SCALE_X(标幺化)
标定方式纯程序手动标定:在程序中写死量程上下限(如 4-20mA 对应 0-100℃)支持 “程序标定 + 硬件组态标定”:S7-1200 可在 TIA Portal 中直接设置模块量程(4-20mA/0-10V),程序仅调用
中断 / 滤波支持需手动编写滤波程序(如平均值滤波),无硬件滤波配置S7-1200/1500 可在组态中设置硬件滤波(如 100ms 平均),也可调用系统函数滤波
程序可读性寄存器地址堆砌,需注释说明(如 D100 = 温度_raw 值),可读性差变量命名化(如 Temp_Process: Real),程序逻辑直观,易维护

二、实操案例对比(4-20mA 采集温度,0-100℃换算)

场景:采集 4-20mA 模拟量(温度传感器),换算为 0-100℃工程值,输出 4-20mA 控制调节阀

1. 三菱 FX3U 编程(FX3U-4AD 模拟量输入 + FX3U-4DA 输出)

步骤 1:硬件基础(4-20mA 对应_raw 值范围)
  • 4-20mA 输入:FX3U-4AD 的_raw 值范围为6400~32000(16 位 AD,4mA=6400,20mA=32000);

  • 4-20mA 输出:FX3U-4DA 的_raw 值范围同样为 6400~32000(4mA=6400,20mA=32000);

  • 工程量程:0~100℃(对应 4~20mA)。

步骤 2:核心程序(梯形图)

ladder

// 1. 读取模拟量输入(4AD通道0,温度传感器)
LD M8000
MOV D8030 D100  // D100=AD_raw值(6400~32000)

// 2. 手动换算为工程值(0~100℃)
// 公式:工程值 = (raw值 - 6400) × 100 ÷ (32000 - 6400)
LD M8000
SUB D100 K6400 D101  // 分子:raw值-最小值
MOV K100 D102
MUL D101 D102 D103   // ×量程上限
MOV K25600 D104      // 分母:32000-6400=25600
DIV D103 D104 D105   // D105=温度工程值(0~100℃,整数)

// 3. 浮点优化(可选,提高精度)
FLT D101 D200
FLT D104 D201
DIV D200 D201 D202
MUL D202 K100 D203   // D203=浮点温度值(如25.6℃)

// 4. 模拟量输出(4DA通道0,控制调节阀)
// 公式:输出raw值 = 工程值×25600÷100 + 6400
LD M8000
MUL D105 K25600 D300
DIV D300 K100 D301
ADD D301 K6400 D302  // D302=输出_raw值(6400~32000)
MOV D302 D8040       // 写入4DA通道0,输出4-20mA
关键注意:
  • FX3U 需手动处理 “除零错误”(如 raw 值<6400 时强制赋值 6400);

  • 滤波需手动编写(如取 10 次采样平均值):

    ladder

  • LD M8013  // 1s脉冲
    MOV D8030 D400+[D499]  // 循环存储10次采样值
    INC D499
    LD D499 K10
    RST D499
    AVG D400 D410 K10      // D410=10次平均值,替换原D100

2. 西门子 S7-200 编程(EM235 模拟量模块)

步骤 1:硬件基础(变量定义)
变量地址变量名类型说明
AIW0Temp_RawInt温度_raw 值(6400~32000)
VW100Temp_ProcessInt温度工程值(0~100℃)
AQW0Valve_RawInt调节阀输出_raw 值
步骤 2:核心程序(用 SCALE 库指令)

ladder

// 1. 读取模拟量输入
LD     SM0.0
MOVW   AIW0, VW0       // VW0=Temp_Raw

// 2. 换算为工程值(调用SCALE指令)
CALL   SCALE, IN:=VW0, OUT:=VW100, HI_LIM:=100, LO_LIM:=0, SCALED:=M0.0
// IN:raw值;OUT:工程值;HI_LIM/LO_LIM:工程量程;SCALED:完成标志

// 3. 模拟量输出(调用UNSCALE指令,工程值→raw值)
CALL   UNSCALE, IN:=VW100, OUT:=VW200, HI_LIM:=32000, LO_LIM:=6400, SCALED:=M0.1
MOVW   VW200, AQW0     // AQW0=Valve_Raw,输出4-20mA

3. 西门子 S7-1200 编程(TIA Portal,AI 8x13bit 模块)

步骤 1:硬件组态(可视化设置)
  1. 在 TIA Portal 中添加 AI 模块,设置通道 0 为 “4-20mA”,启用 100ms 硬件滤波;

  2. 定义变量(数据块 DB1):

    变量名数据类型地址说明
    Temp_RawIntPIW256模拟量_raw 值
    Temp_ProcessRealDB1.DBD0温度工程值(0~100℃)
    Valve_ProcessRealDB1.DBD4调节阀开度(0~100%)
    Valve_RawIntPQW256输出_raw 值
步骤 2:核心程序(标准化指令)

stl

// 1. 归一化(Raw值→0~1之间的标幺值)
"Temp_Norm" := NORM_X(
    X := "Temp_Raw",        // 输入Raw值
    XMIN := 6400.0,         // 4mA对应Raw值
    XMAX := 32000.0,        // 20mA对应Raw值
    YMIN := 0.0,            // 归一化最小值
    YMAX := 1.0             // 归一化最大值
);

// 2. 标幺化(0~1→工程值0~100℃)
"Temp_Process" := SCALE_X(
    X := "Temp_Norm",       // 归一化值
    XMIN := 0.0,            // 归一化最小值
    XMAX := 1.0,            // 归一化最大值
    YMIN := 0.0,            // 工程值最小值
    YMAX := 100.0           // 工程值最大值
);

// 3. 模拟量输出(工程值→Raw值)
"Valve_Norm" := NORM_X(
    X := "Valve_Process",
    XMIN := 0.0,
    XMAX := 100.0,
    YMIN := 0.0,
    YMAX := 1.0
);
"Valve_Raw" := SCALE_X(
    X := "Valve_Norm",
    XMIN := 0.0,
    XMAX := 1.0,
    YMIN := 6400.0,
    YMAX := 32000.0
);

三、核心差异总结

1. 编程复杂度:三菱手动化 vs 西门子标准化

  • 三菱:无专用模拟量指令,所有换算(_raw→工程值)需手动写公式,依赖寄存器运算,新手易出错(如系数算错、除零);

  • 西门子:S7-200 有 SCALE/UNSCALE 库指令,S7-1200/1500 有 NORM_X/SCALE_X 标准化指令,一键完成换算,无需记公式。

2. 数据处理:三菱整数优先 vs 西门子浮点原生

  • 三菱:默认 16 位整数,浮点运算需先转浮点(FLT 指令),步骤繁琐,精度易损失;

  • 西门子:S7-1200/1500 原生支持 Real 类型,可直接进行浮点运算(如温度 25.6℃),精度更高。

3. 硬件适配:三菱固定寄存器 vs 西门子组态化

  • 三菱:模拟量模块的_raw 值固定映射到 D 寄存器(如 4AD→D8030),更换模块需改程序地址;

  • 西门子:S7-1200/1500 通过硬件组态适配模块,程序仅调用变量,更换模块只需改组态,无需改程序逻辑。

4. 滤波与抗干扰:三菱手动 vs 西门子软硬结合

  • 三菱:需手动编写滤波程序(如平均值、中值滤波),无硬件滤波配置;

  • 西门子:S7-1200/1500 可在组态中设置硬件滤波(如 100ms 平均),也可调用系统函数(如 SMOOTH)软件滤波,抗干扰更强。

四、选型与移植建议

场景推荐 PLC核心原因
小型设备、简单模拟量(≤4 路)三菱 FX3U成本低,指令简单,无需复杂组态
中大型设备、多模拟量(≥8 路)西门子 S7-1200标准化指令,组态便捷,维护性强
高精度控制(如温度 ±0.1℃)西门子 S7-1500浮点运算精准,硬件滤波能力强

三菱→西门子移植关键:

  1. 寄存器地址→变量命名(如 D100→Temp_Process);

  2. 手动换算公式→替换为 NORM_X/SCALE_X 指令;

  3. 手动滤波→启用硬件滤波或调用 SMOOTH 函数;

  4. 无组态→先完成模块组态,再编写程序。

西门子→三菱移植关键:

  1. 变量→固定 D 寄存器(如 Temp_Process→D105);

  2. NORM_X/SCALE_X→手动编写换算公式;

  3. 硬件滤波→手动编写平均值 / 中值滤波程序;

  4. 浮点运算→先 FLT 转浮点,再运算,最后 EINT 转回整数(如需)。

综上,三菱模拟量编程更偏向 “底层寄存器操作”,适合简单场景;西门子更偏向 “标准化、模块化”,适合复杂场景和高精度控制,核心差异本质是 “面向寄存器” 与 “面向变量 / 对象” 的编程思想区别。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服