学习三菱 FX3U 和 FX2N 的 485 通讯,需要从硬件基础概念、硬件连接、协议原理到编程实践逐步掌握,两者核心逻辑相通,但但硬件模块和部分细节有差异。以下是分步骤的学习指南:
无论 FX3U 还是 FX2N,485 通讯的底层原理一致,先掌握这些基础:
485 通讯的本质基于 RS-485 标准的差分信号传输,支持多设备联网(最多 32 个节点),半双工通信(同一时间只能发送或接收),适合工业现场中短距离(几十到几百米)数据传输。
核心概念
总线结构:所有设备并联在 A、B 两根总线上(A 接 A,B 接 B,注意极性,反接会通信失败)。
终端电阻:总线两端的设备需接 120Ω 终端电阻(减少信号反射,部分模块内置,可通过拨码开关设置)。
波特率 / 校验位:通信双方必须一致(如 9600bps,无校验,8 位数据位,1 位停止位)。
主从模式:485 通讯通常为 “1 主多从”,主设备(如 PLC)主动发送指令,从设备(如仪表、变频器)被动响应。
两者需搭配专用 485 通讯模块,硬件型号和接线不同,先明确模块特性:
| 设备 | 常用 485 模块 | 模块特点 | 接线要点 |
|---|
| FX2N 系列 | FX2N-485-BD(板载模块) | 插在 PLC 主机背面的 BD 插槽,节省空间,支持无协议、N:N 网络、专用协议(如三菱变频器)。 | 模块上的 A、B 端子接总线,需外接 DC24V 电源(V + 接 24V,0V 接 0V),GND 可接系统地。 |
| FX2N-485ADP(扩展模块) | 作为扩展模块连接,功能与 BD 板一致,适合主机无 BD 插槽的情况。 | 模块侧面有 A、B、SG 端子,SG 为信号地(可选接,增强抗干扰)。 |
| FX3U 系列 | FX3U-485-BD(板载模块) | 兼容 FX2N 的 485-BD 功能,支持更高波特率(最高 115200bps),新增无协议缓冲发送功能。 | 接线与 FX2N-485-BD 类似,A、B 端子接总线,需注意模块上的拨码开关(设置终端电阻、波特率等)。 |
| FX3U-485ADP-MB(Modbus 模块) | 专用于 Modbus RTU 协议,无需手动编写协议帧,通过专用指令(如 RD/WR)实现通信。 | 支持主 / 从模式切换,接线更简单,适合快速对接 Modbus 设备(如传感器、触摸屏)。 |
三菱 485 通讯主要有两种方式,建议从简单的 “无协议通讯” 入手,再学专用协议:
原理:PLC 通过发送 / 接收自定义格式的报文(字节流)与从设备通信,需手动编写协议帧(含地址、指令、数据、校验码等)。
适用场景:对接非标准设备(如自定义单片机、特殊仪表),或理解协议细节。
核心指令:
学习步骤:① 确定从设备的通讯协议(如 “地址 + 指令 + 数据 + CRC 校验”);② 在 PLC 中用 MOV 指令将协议帧写入发送缓冲区(如 D0~D5);③ 调用 RS 指令发送数据,并通过模块的 “发送完成” 标志(如 M8122)判断发送状态;④ 接收从设备响应,通过 “接收完成” 标志(如 M8123)读取接收缓冲区(如 D10~D15),解析数据。
原理:基于标准 Modbus RTU 协议(主从问答式),主设备发送指令(如读保持寄存器 0x03、写单个寄存器 0x06),从设备按格式响应。
适用场景:对接支持 Modbus 的设备(如变频器、温控器、触摸屏),无需手动写校验码,效率更高。
FX2N 实现:需通过无协议通讯手动组 Modbus 帧(含地址、功能码、数据、CRC16 校验),需编写 CRC 计算子程序。
FX3U 实现:
准备:PLC(FX2N/FX3U)、485 模块、从设备(如另一台 PLC、变频器)、屏蔽双绞线、终端电阻。
接线:A 接 A,B 接 B,确保所有设备共地(必要时接 SG 端子),两端设备接终端电阻(拨码开关置 ON)。
检查:用万用表测 A、B 之间的电压(空闲时约 0~5V,通信时波动),排除接线错误。
假设仪表协议:发送 01 03 00 00 00 01 84 0A(读地址 1 的温度值),响应 01 03 02 XX XX YY YY(XX XX 为温度数据,YY YY 为 CRC)。
步骤 1:在 PLC 中定义发送缓冲区 D0~D7,写入发送帧:
plaintext
MOV K1 D0 ; 从站地址01
MOV K3 D1 ; 功能码03
MOV K0 D2 ; 起始地址高8位
MOV K0 D3 ; 起始地址低8位
MOV K0 D4 ; 数据长度高8位
MOV K1 D5 ; 数据长度低8位
MOV K132 D6 ; CRC高8位(84H)
MOV K10 D7 ; CRC低8位(0AH)
步骤 2:调用 RS 指令发送,并检测发送完成:
plaintext
LD X0 ; 发送触发信号
RS D0 K8 D10 ; 从D0发送8个字节,接收存D10
LD M8122 ; 发送完成标志
SET M0 ; 标记发送完成
步骤 3:接收响应并解析(假设温度数据在 D12~D13):
plaintext
LD M8123 ; 接收完成标志
MOV D12 D20 ; 温度高8位存D20
MOV D13 D21 ; 温度低8位存D21
步骤 1:设置模块为 Modbus 主站(拨码开关设站号 0,主从模式拨到 “主站”);
步骤 2:调用 MODRD 指令读变频器(站号 1,寄存器地址 0x2000,读 1 个数据):
plaintext
LD X0
MODRD K1 H2000 K1 D100 ; 从站1,地址H2000,读1个,存D100
LD M8163 ; 读取成功标志
MOV D100 D200 ; 保存结果
必备工具
常见问题排查
通讯失败:检查波特率 / 校验位是否一致;A、B 线是否接反;终端电阻是否正确;设备地址是否冲突。
数据乱码:增加屏蔽层接地;缩短总线长度;降低波特率;检查电源是否共地(避免地电位差)。
偶尔失败:检查从设备响应时间是否过长(PLC 需设置足够的超时等待时间,如通过 D8120 设置)。
官方手册:
实操视频:搜索 “FX3U 485 通讯教程”“FX2N Modbus 通讯”,观看硬件接线和编程演示,重点看调试过程。
仿真练习:用 GX Works2(FX2N)或 GX Works3(FX3U)编写程序,结合串口调试助手模拟从设备,发送 / 接收数据验证逻辑。
理解 RS-485 总线原理→2. 区分 FX2N/FX3U 的 485 模块→3. 掌握无协议通讯的帧编写与指令使用→4. 学习 Modbus RTU 协议及专用指令→5. 接线实操 + 调试排错→6. 进阶 N:N 网络或多设备联动。
从简单的 “PLC 与仪表通讯” 开始,逐步增加复杂度(如多从机、双向数据传输),重点在于理解 “协议帧格式” 和 “指令时序控制”,多动手调试是关键。