两个三菱 FX3U PLC 通过 RS 指令实现 RS 指令是三菱 PLC 中用于串行通信的基本指令,可实现两个 FX3U 之间的异步串行数据交换(如 RS-232C 或 RS-485 接口)。以下是具体实现步骤,包括硬件连接、参数设置和程序编写:
一、硬件准备与连接
二、通信参数设置(双方必须一致)
通过 PLC 的D8120寄存器设置通信参数(断电重启后生效):
| 参数 | 设定值(示例) | 说明 |
|---|---|---|
| 波特率 | K9600 | 可选:2400、4800、9600、19200 等 |
| 数据长度 | K8 | 8 位数据 |
| 停止位 | K1 | 1 位停止位 |
| 校验方式 | K2 | 偶校验(0 = 无校验,1 = 奇校验,2 = 偶校验) |
| 协议模式 | K0 | 无协议(RS 指令自定义格式) |
设置程序(双方均需执行):
ladder
// 初始化通信参数(仅上电执行一次) LD M8002 // 初始脉冲 MOV K9600 D8120 // 波特率9600,数据长8,停止位1,偶校验,无协议
三、RS 指令格式与功能
RS 指令用于发送 / 接收数据,格式如下:
plaintext
RS D100 D200 D300 M0
四、互刷数据程序设计(示例:双向交换 10 字节数据)
假设需求:
PLC1 程序(发送 + 接收)
ladder
// 1. 发送数据到PLC2(每1秒触发一次) LD M8013 // 1秒脉冲 MOV K10 D300 // 发送长度10字节(5个寄存器) MOV D0 D100 // 待发送数据:D0→D100,D1→D101... MOV D1 D101 MOV D2 D102 MOV D3 D103 MOV D4 D104 SET M0 // 触发发送请求 // 2. 发送完成后,等待接收PLC2返回的数据 LD M1 // 发送完成标志(M1由RS指令自动置1) RST M0 // 清除发送请求 MOV K10 D301 // 接收长度10字节 SET M20 // 允许接收(自定义标志) // 3. 接收完成后,将数据存入D50~D54 LD M2 // 接收完成标志(M2由RS指令自动置1) RST M20 // 清除接收允许 MOV D200 D50 // 接收数据:D200→D50,D201→D51... MOV D201 D51 MOV D202 D52 MOV D203 D53 MOV D204 D54 RST M2 // 清除接收标志 // 4. 调用RS指令(放在程序末尾,持续扫描) RS D100 D200 D300 M0
PLC2 程序(接收 + 返回)
ladder
// 1. 等待接收PLC1的数据(持续允许接收) LD M8000 // 运行标志 MOV K10 D301 // 接收长度10字节 SET M20 // 允许接收 // 2. 接收完成后,将数据存入D0~D4,并准备返回数据 LD M2 // 接收完成标志 RST M20 // 清除接收允许 MOV D200 D0 // 接收PLC1的数据:D200→D0... MOV D201 D1 MOV D202 D2 MOV D203 D3 MOV D204 D4 RST M2 // 清除接收标志 // 3. 发送返回数据到PLC1(接收完成后立即发送) MOV K10 D300 // 发送长度10字节 MOV D10 D100 // 待返回数据:D10→D100... MOV D11 D101 MOV D12 D102 MOV D13 D103 MOV D14 D104 SET M0 // 触发发送请求 // 4. 发送完成后清除标志 LD M1 // 发送完成标志 RST M0 // 清除发送请求 // 5. 调用RS指令(放在程序末尾,持续扫描) RS D100 D200 D300 M0
五、关键说明与调试
通过以上方式,两个 FX3U 可通过 RS 指令实现双向数据互刷,适用于中小型设备间的简单数据交换(如生产线工位协同、数据备份等)。若需更高可靠性,可考虑使用 CC-link 等工业总线。

