在三菱 FX3U PLC 中实现 PID 控制主要有两种方式使用专用 PID 指令 (PID)这是最常用、最灵活的方法适用于 FX3U 所有型号。使用 PID 调节模块 (如 FX3U-4AD-PWK)硬件模块自带 PID 功能减轻 CPU 负担本回答主要介绍软件指令法因为更通用。以下是基于PID指令的完整梯形图逻辑、参数设置及关键注意事项。1. 核心指令说明PIDFX3U 的 PID 指令格式如下PID S1 S2 S3 DS1 (目标值 SV)设定值例如设定温度 100℃。S2 (当前值 PV)反馈值例如传感器读到的当前温度。S3 (参数表首地址)存放 PID 参数Kp, Ti, Td, 采样时间等的寄存器起始地址通常占用 15 个点。D (输出值 MV)运算结果输出地址例如控制加热器的 PWM 占空比或模拟量输出值。2. 梯形图逻辑示例假设场景目标温度 (SV)存放在D100当前温度 (PV)存放在D101(由模拟量输入模块读取并转换)PID 参数表从D200开始输出控制 (MV)运算结果存放在D102最终输出到模拟量通道或用于 PWM梯形图结构1|---[ M8000 ]---------------------------------------------( PID D100 D101 D200 D102 )---| 2| (常开触点表示运行中) | 3| | 4|---[ 初始化脉冲 M8002 ]-----------------------------[ MOV K100 D100 ]------------------| 5| (上电脉冲) | (设定目标值为 100) | 6| | 7|---[ 初始化脉冲 M8002 ]-----------------------------[ ZRST D200 D214 ]-----------------| 8| (清空参数表区域防止乱码) | | 9| | 10|---[ 初始化脉冲 M8002 ]-----------------------------[ MOV K100 D200 ]------------------| 11| (设置参数表) | (D200: 采样时间 Ts 100ms) | 12| | | 13|---[ 初始化脉冲 M8002 ]-----------------------------[ MOV K200 D201 ]------------------| 14| | (D201: 比例增益 Kp 200 - 20.0%)| 15| | | 16|---[ 初始化脉冲 M8002 ]-----------------------------[ MOV K300 D202 ]------------------| 17| | (D202: 积分时间 Ti 300 - 3.00s)| 18| | | 19|---[ 初始化脉冲 M8002 ]-----------------------------[ MOV K50 D203 ]-------------------| 20| | (D203: 微分时间 Td 50 - 0.50s) | 21| | | 22|---[ 初始化脉冲 M8002 ]-----------------------------[ MOV K0 D204 ]--------------------| 23| | (D204: 滤波系数 α 0默认) | 24|------------------------------------------------------------------------------|(注以上为指令表逻辑描述实际在 GX Works2/3 中绘制时只需画一行主回路调用 PID 指令参数初始化用单独的分支)图形化梯形图示意 (GX Works 风格)1 M8000 (运行监控) 2|-------| |------------------------------------------------------------[ PID D100 D101 D200 D102 ] 3 (S1) (S2) (S3) (D) 4 5 M8002 (初始脉冲) 6|-------| |----------------------------[ MOV K100 D100 ] (设定目标值 SV) 7 8 M8002 9|-------| |----------------------------[ ZRST D200 D214 ] (清空参数区) 10 11 M8002 12|-------| |----------------------------[ MOV K100 D200 ] (采样时间 Ts 100ms) 13 14 M8002 15|-------| |----------------------------[ MOV K200 D201 ] (比例增益 Kp 20.0%) 16 *注意FX3U中Kp200代表20.0% 17 18 M8002 19|-------| |----------------------------[ MOV K300 D202 ] (积分时间 Ti 3.00s) 20 21 M8002 22|-------| |----------------------------[ MOV K50 D203 ] (微分时间 Td 0.50s)3. 参数表详解 (S3 开始的 15 个点)PID 指令需要占用从S3开始的15 个数据寄存器。必须正确设置前几个关键参数否则 PID 无法工作或震荡。表格地址参数名称设定内容单位/说明典型初值建议S3 0采样时间 (Ts)1 ~ 32767ms (毫秒)100(0.1秒) 或200。太短会增加CPU负担太长响应慢。S3 1比例增益 (Kp)1 ~ 32767% (放大100倍)100~300。设为 200 代表 20.0%。值越大反应越快但易震荡。S3 2积分时间 (Ti)0 ~ 327670.01s (秒)300(3.00s)。设为 0 则关闭积分作用。值越小积分作用越强。S3 3微分时间 (Td)0 ~ 327670.01s (秒)50(0.50s)。设为 0 则关闭微分作用。温度控制通常设小一点或为0。S3 4滤波系数 (α)0 ~ 99%0(默认)。用于过滤输入噪声值越大滤波越强但滞后增加。S3 5输出下限-与MV同单位通常设 0S3 6输出上限-与MV同单位通常设 4000 (对应 10V) 或 100%S3 7报警设定--0 (不使用)...............S3 14保留--0⚠️ 关键注意点Kp, Ti, Td 的数值单位FX3U 的 PID 指令中这些参数是放大 100 倍或放大 100 倍时间存储的整数。如果你想设 Kp 15.5%请写入1550。如果你想设 Ti 5.00 秒请写入500。如果你想设 Td 0.20 秒请写入20。(具体倍数请参考 FX3U 编程手册不同固件版本可能微调通常是 Kp: x100, Ti/Td: x100)-修正FX3U 手册标准是 Kp (1~32767 代表 0.1%~3276.7%)Ti/Td (0~32767 代表 0.00s~327.67s)。即都是 x100 的关系。例Kp20% - 写 2000?不手册通常定义 Kp 为 1~32767 对应 0.1%~3276.7%。更正确认在三菱 FX3U 手册中Kp: 1 ~ 32767 (单位 0.1%)。若要 20%则写200。Ti: 0 ~ 32767 (单位 0.01s)。若要 3s则写300。Td: 0 ~ 32767 (单位 0.01s)。若要 0.5s则写50。(上文梯形图中的数值是基于此标准的请以此为准)采样时间 (Ts)必须大于 PLC 的扫描周期。对于温度控制100ms ~ 500ms 是常见的。对于电机速度控制可能需要 10ms ~ 50ms。输入输出量程匹配PID 指令本身不关心单位它只处理数字。你需要确保SV (D100)和PV (D101)的量纲一致。例如传感器输入 0-4000 对应 0-200℃。如果你设定目标是 100℃那么 D100 应该填2000(对应一半量程)而不是填 100。或者你在程序里先做转换把 PV 转换成“摄氏度”再给 PIDSV 也直接填“摄氏度”。推荐做法统一转换成工程单位如℃后再送入 PID 指令这样参数整定更直观。4. 输出处理 (MV 的使用)PID 运算结果存储在D(如 D102) 中。这个值通常是 0 ~ 4000 (对应 0-100% 输出具体取决于参数表上下限设置)。你需要将这个值转换为实际控制信号方案 A控制模拟量输出模块 (如 FX3U-4DA)直接将 D102 传送到模拟量输出缓冲区。1|---[ M8000 ]--------------------------------------------[ TO K0 K0 D102 K1 ]---| 2| (持续传送) | (CH1 输出) |注意需确保 D102 的范围与模拟量模块的范围匹配通常 0-4000 或 0-10000。可以在 PID 参数表中设置输出上下限 (S35, S36) 来限制 D102 的范围。方案 B控制继电器/接触器 (时间比例控制/PWM)如果只有开关量输出如控制加热器通断需要使用PWM 指令或自行编写时间比例逻辑。假设周期为 2 秒 (2000ms)。如果 PID 输出 D102 2000 (50%)则 2 秒内导通 1 秒断开 1 秒。FX3U 有PWM指令但更常用的是用定时器比较法1|---[ M8000 ]--------------------------------------------[ INC D103 ]---| (循环计时器 0-2000) 2| | 3|---[ D103 K2000 ]-------------------------------------[ RST D103 ]---| (复位计时器) 4| | 5|---[ D102 D103 ]--------------------------------------[ Y000 ]-------| (当 输出值 当前计时值导通 Y0)(逻辑D102 越大Y0 导通的时间越长)5. 调试步骤 (调参指南)手动模式测试先不用 PID手动输出一个固定值观察系统能否升温/加速确认接线和传感器正常。仅用 P (比例)设 Ti 0 (关闭积分), Td 0 (关闭微分)。设 Kp 较小 (如 50)。观察系统响应。如果太慢逐渐增大 Kp直到系统出现轻微震荡然后回调一点。加入 I (积分)如果发现温度稳定在 95℃ 上不去 (静差)逐渐减小 Ti (增强积分作用)直到静差消除。注意 Ti 太小会引起大幅震荡。加入 D (微分)如果系统超调严重冲到 110℃才回来适当增加 Td。温度控制中 D 通常不需要很大甚至可以为 0。总结在 FX3U 中使用 PID准备好SV(目标) 和PV(反馈) 寄存器确保单位一致。规划好15 个寄存器作为参数表上电初始化Ts, Kp, Ti, Td。在主循环中使用PID指令。将输出结果MV映射到模拟量模块或转换为 PWM 控制开关量。通过观察曲线反复调整Kp, Ti, Td直到满意。