news 2026/10/21 18:50:37

台达PLC与三菱变频器Modbus RTU通讯:从接线到梯形图实战解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
台达PLC与三菱变频器Modbus RTU通讯:从接线到梯形图实战解析

1. 为什么是台达PLC去控三菱变频器

先把结论放在前面:台达PLC和三菱变频器之间做Modbus通讯,真正麻烦的不是指令代码,而是地址映射和那根RS-485尾巴。只要把寄存器地址对准、把变频器的运行模式放对,DVP-ES2的COM2口加几条Modbus RTU指令,就能控制FR-A700/E700系列变频器的启停、正反转、频率设定、状态监视和故障复位。

这个案例来自我给某台收卷设备做的电气改造。变频器是原先就装在设备上的三菱FR-A700,一直通过外部端子和电位器调速,控制逻辑用的是老式继电器回路。后来设备要并入整套控制系统,上位需要远程启停、远程调速、状态反馈,改造的时候评估来评估去,最省钱、最不耽误生产的方案就是把继电器控制柜换成台达DVP系列PLC,用RS-485把PLC和变频器连起来,走标准Modbus RTU协议。

1.1 改造背景:变频器没坏,控制柜该换了

设备上那台变频器用了六七年,电机侧的绝缘、电流都正常,变频器本身也没有大毛病。如果我为了凑协议强行把它换掉,成本高不说,现场调试周期也要拉长。后来我们算了一笔账:加一块带RS-485口的PLC、拉一根屏蔽双绞线、改一下变频器参数、写几段梯形图,两天之内就能恢复生产。剩下的老电位器和继电器逻辑全部作废,控制权交到PLC这边。

这个方案成立的前提是:台达PLC自带Modbus主站功能,三菱变频器内置RS-485接口且支持Modbus RTU从站协议。两者都不需要额外选配通讯网卡,只是很多人一看到不同品牌就条件反射地想加网关,其实完全是绕远路。

1.2 这套方案需要的硬件

设备型号参考作用
PLC主机台达DVP-ES2系列,带COM2 RS-485口作为Modbus主站
变频器三菱FR-A700 / FR-E700系列Modbus从站,用内置RS-485口
通讯线RVSP屏蔽双绞线,2×0.75mm²RS-485信号线
水晶头RJ45,压接变频器PU口连接三菱PU口端子
终端电阻120Ω,1/4W长线时两端并联
工具串口调试助手、编程数据线排查通讯和核对寄存器

这里有个选型提醒:台达DVP-14SS2这类主机有些只有一个RS-232口,不是自带RS-485的,这种情况要么换ES2系列,要么加一块RS-485通讯板。我手上这台是DVP-14ES2,COM2口直接出来的是D+/D-端子,接起来最省事。

2. 通讯前先把三菱变频器的寄存器地图看熟

很多第一次做跨品牌通讯的人,最容易栽在"把Modbus寄存器号和实际设备寄存器地址弄混"上。Modbus RTU本身很简单:主站发报文,从站回报文,靠功能码区分是读还是写。三菱变频器侧比较特殊的是,它对外提供的是16位保持寄存器,地址编号和市面上常见的仪表不太一样,必须按手册里的十六进制地址来算。

2.1 Modbus RTU的基础动作

正常情况下,PLC侧只需要用三种功能码:

  • 03H:读保持寄存器,比如读运行状态、输出频率、输出电流
  • 06H:写单个保持寄存器,比如写运行指令、频率设定
  • 10H:写多个保持寄存器,需要连续写多个字时用

三菱变频器的寄存器属于保持寄存器,所以读状态用03H,写指令用06H或10H,不需要用到线圈类功能码。有些资料把寄存器写成40001、40002,那是把Modbus协议层的"1基址"直接映射过来的表达方式,PLC指令里真正填的从站地址一般还是十六进制,比如H0000、H0001。

2.2 这台变频器我常用的几张寄存器表

以我现场用的FR-A700为例,常用保持寄存器地址如下:

寄存器地址含义方向说明
H0000变频器状态监视只读bit0运行中,bit1正转,bit2反转,bit3故障
H0001运行指令字写bit0正转,bit1反转,bit3复位
H0002频率设定值写单位0.01Hz,50.00Hz写5000
H000D参数读写入口读/写通过数据代码访问Pr.参数

这张表不同系列有一点点差别。A700和E700基本是一致的,但如果是D700、F800这些型号,位定义可能调整过,抄之前务必把手头变频器手册翻开核对一遍。我就是吃过一次亏:拿A700的寄存器表去控制某台E700,启停能通,频率也写得进去,但状态字里的故障位怎么都对不上,最后查手册发现两个系列的bit分配并不完全相同。

2.3 地址偏移和0.01Hz的量纲

这里有两个容易搞混的坑:

第一个坑是地址偏移。Modbus协议里说的"寄存器0"对应很多组态软件里的40001,PLC指令里用H0000;"寄存器1"对应40002,指令里用H0001。如果你在程序里直接填K1表示1号寄存器,其实访问的是协议里的第一个寄存器,也就是40002,不是H0001对应的"第二个寄存器"。这种1和0的错位在跨品牌调试时最容易出现,我在现场用串口调试助手对照过,才把这个问题看透。

第二个坑是频率的量纲。三菱变频器Modbus通讯里,频率设定寄存器的单位是0.01Hz。也就是说,你PLC里要给50.00Hz,寄存器写入的值是5000,不是50。刚开始调试时如果发现变频器显示0.00Hz或者疯狂往低频跑,多半就是量纲没换算。同样,读取输出频率的时候,读回来的值也要除以100才是Hz。

3. 接线细节:PU口是四根线,Modbus只走两根

程序写得再好,485线接错一样全盘白搭。这台三菱FR-A700的RS-485口是一个RJ45形状的PU口,很多初次接触的人会误以为这是网口,拿一根普通网线往上一插就想通讯,结果一点反应都没有。实际上这是一个串行通讯口,引脚定义和以太网完全不是一回事。

3.1 RJ45引脚识别

FR-A700/E700的PU口引脚定义大致如下:

引脚号信号名说明
1SG信号地
2P5S5V电源输出,一般不接
3RDA接收数据A
4SDA发送数据A
5SDB发送数据B
6RDB接收数据B
7SG信号地
8P5S5V电源输出,一般不接

这里必须看清一个关键点:PU口内部的接收和发送是分开的,RDA、SDA是一组A线,RDB、SDB是一组B线。也就是说,这个口默认是RS-422四线制的硬件结构,而Modbus RTU跑在RS-485两线制半双工网络上。直接拿两根A、B线接上去,变频器收到的信号根本不完整。

3.2 四线转两线的短接做法

解决办法是在RJ45水晶头内部做短接,把接收、发送的差分对合并成一组两线制总线。具体这样处理:

  • 把水晶头里的第3脚RDA和第4脚SDA短接在一起,作为A+
  • 把水晶头里的第6脚RDB和第5脚SDB短接在一起,作为B-
  • 第1脚或第7脚SG和PLC侧的GND(COM口参考地)选一端连接

然后台达PLC的COM2端子就非常简单:D+接到RJ45的A+,D-接到RJ45的B-。测试过多次,这个接法只要没接反,通讯稳定性都还可以。

3.3 屏蔽层与终端电阻

RS-485的屏蔽层不能两头都接,这是我的一个习惯做法。线缆屏蔽层一端接到变频器PU口的SG,另一端悬空,或者接PLC的接地端子,总之只允许选择一个接地点。两头都接屏蔽层,反而容易形成地环路,变频器一启动,屏蔽层上感应出来的共模电流会让通讯瞬间乱掉。

终端电阻方面,通讯距离短、只有一台变频器的情况下,可以只在变频器端并一个120Ω电阻。如果PLC到变频器之间走线超过30米,或者线上挂了多台变频器,最好是在总线两端各并一个120Ω。有一点要特别注意:不能既在变频器端并,又在PLC端并,还在中间某处再加一个,三个电阻并联感抗不合适,信号会明显衰减,偶尔还会出现一会通一会断的现象。

4. 参数设置和扫雷要点

这部分看起来只是"填几个数字",实际上大多数通讯不成功都出在这里。我已经不止一次遇到有人把接线和程序都做完了,结果变频器还是不理PLC,一问才知道Pr.79还在外部端子运行模式。

4.1 台达PLC侧COM2通讯参数

台达DVP-ES2的COM2口通讯参数,在PLC内部有对应的特殊寄存器。我手里这台机器,COM1的参数对应D1120/D1121,COM2的参数对应D1320/D1321,但不同型号、不同固件版本的索引略有差异,使用前先翻PLC手册的特殊寄存器表。

我并不会手工去算那些十六进制格式字。在WPLSoft或ISPSoft里把通讯口2的格式直接勾选出来:Modbus RTU、9600bps、8数据位、偶校验、1停止位,软件会自己把格式字写进对应寄存器。这里要用的协议一定选RTU,不要选成ASCII。RTU的数据帧是二进制方式,效率高,也最适合和变频器通讯。

站号也设一下:PLC这个主站在总线上的站号不是太关键,但从站站号必须和变频器Pr.117一致。我在这个案例里把变频器设为1号站,PLC侧只需要知道"我要访问1号站",并不需要给自己专门设一个主站站号。

4.2 三菱变频器侧参数

变频器侧要设置的参数主要围绕Pr.117到Pr.124,这是内置RS-485通讯最核心的一组参数:

参数号设置内容我的设定
Pr.79运行模式1(PU/网络运行模式)
Pr.117Modbus站号1
Pr.118通讯波特率0(9600bps)
Pr.119停止位/数据位0(1停止位)
Pr.120奇偶校验0(偶校验)
Pr.121通讯重试次数1
Pr.122通讯校验时间0(初调时先关掉)
Pr.123等待时间0
Pr.124CR/LF选择1(带CR/LF)
Pr.77参数写入选择1(允许通过通讯写参数)

各个系列的Pr.118取值不一定一样,比如有的型号用0到2表示4800/9600/19200,有的用数字直接对应波特率值。最好的办法是看手册里"通讯速率设定"这一页,拿表对一下再填。

4.3 那些隐蔽的运行模式坑

Pr.79是最大的坑。三菱变频器有外部端子运行、PU面板运行、网络运行几种模式,只有Pr.79设置正确,PLC发过来的启动指令才会被接收。我习惯把Pr.79设为1,也就是由PU口/网络侧接管运行指令来源。

另一个容易被忽视的是STF/STR外部端子。有些设备原先的启动按钮直接接在STF、STR端子上,虽然你Pr.79已经设成1,但如果STF端子还是被外部回路强制拉高,变频器可能仍然优先响应端子信号。我在改造时直接把STF、STR上的旧线拆掉了,保证运行指令唯一来源是通讯报文。

还有Pr.122。它一旦设了非零值,变频器会做通讯超时检测,如果超过设定时间没收到有效报文,就会报E.PUE并停机。初调阶段我建议把它设成0,先把通讯跑通,最后再根据PLC程序的扫描周期和设备安全要求决定要不要打开。

5. 梯形图思路与可复现代码

调试过程中我一开始也想过自己按Modbus RTU格式组帧、算CRC,后来想想完全没必要。台达DVP系列本身就有Modbus主站通讯指令,可以直接发出读保持寄存器、写单个寄存器、写多个寄存器的请求,我只要把站号、功能码、从站地址和本地数据寄存器准备好就行。

5.1 能用现成Modbus指令就别自己拼CRC

台达DVP-ES2上,我习惯用MODRD和MODWR这两条指令,MODRD对应Modbus的03H读保持寄存器,MODWR对应06H写单个保持寄存器。如果一次要连续写多个寄存器,再改用10H功能码写多个保持寄存器。用现成指令比手工拼帧省心,尤其是CRC校验这部分,PLC都已经算好了。

这里补充一句:不同系列、不同固件版本的指令操作数排列顺序可能有差异,我下面的写法是我这台机器上的常用样子,抄程序时请对照自己手里手册的指令说明。

5.2 启停和频率的控制逻辑

梯形图的文字化表达大致是这样:

; 正转启动 LD M10 ; M10为上升沿 MOV H1 D0 ; 运行指令字:bit0=1,正转 MODWR K1 H06 H0001 D0 ; 站号1,功能码06,从站地址H0001,写入D0 ; 反转启动 LD M11 MOV H2 D0 MODWR K1 H06 H0001 D0 ; 停止 LD M12 MOV K0 D0 MODWR K1 H06 H0001 D0 ; 频率设定 LD M20 ; M20为100ms脉冲,周期刷新 MOV K5000 D1 ; 50.00Hz = 5000 MODWR K1 H06 H0002 D1

这里有几个小细节值得展开。

运行指令字是整个写入的,不能用SET、RST这种位操作去改其中一位。因为正转和反转的bit在同一个寄存器里,如果程序里先置位了正转,下一秒又去复位反转,很容易把整字算错,导致正转反转同时给到变频器。高频刷新时,我都是先把整个字算好,再用一条MODWR发下去。

启动前先给频率,这点很重要。如果上电后先发运行指令、再写频率,变频器可能按原先记忆的旧频率启动一小段,现场滚筒瞬间冲一下很危险。我在程序里特意做了顺序:上电后先写一次目标频率,确认写成功了,再给运行指令字。

停止逻辑最推荐的是把运行指令字清零。这样一来效果等同于给STF/STR端子断电,变频器按设定的减速时间停下来。不要通过Modbus去频繁断电上电,那样反而容易触发瞬间停电重试逻辑。

5.3 状态读取与故障复位

状态监视我用MODRD读H0000寄存器,也就是从站1号、功能码03H、地址H0000,读回来的字放到D2里。

; 读变频器状态 LD M30 ; 200ms周期脉冲 MODRD K1 H03 H0000 K1 D2

如果D2的bit0是1,说明变频器正在运行;bit3是1,说明变频器当前有故障。程序里可以把bit3单独拉出来,接到PLC侧故障灯或者上位机报警信号上。需要故障复位时,在运行指令字里把复位位置1发送一次,再恢复正常的运行指令字。

有一点要提醒:状态读取是只读操作,不影响变频器运行,所以这个周期可以放短一点;但写指令要避免高频重复写,尤其是正转、反转这种动作,尽量用上升沿触发,不然一条写指令每个扫描周期都发出去,通讯口占用率会很高。

6. 调试中遇到的三类问题

这个项目从接线到跑通大约花了两天,其中大部分时间都花在排查问题上。我把实际踩过的问题整理成三类,基本覆盖了台达PLC配三菱变频器时最常见的故障。

6.1 完全无应答:先查硬件,再查Pr.79

第一类现象是PLC发送报文后完全无应答,变频器面板也没有任何反应。这种问题我的排查顺序是固定的:先看线有没有接反,再看水晶头里的RDA/SDA短接有没有做对,最后才查参数。有几次问题就出在RJ45水晶头压接上,第4脚和第5脚压反了,信号完全串位。

如果这些都没问题,把PLC的COM口单独接一个RS-485转USB调试器,用电脑上的串口调试助手直接发03H报文去读变频器。电脑端能读通,说明问题在PLC的参数设定或程序;电脑端也不通,问题几乎都在变频器侧。变频器侧十个里有八个是Pr.79没改到通讯运行模式,剩下的要么是Pr.118波特率、Pr.119停止位、Pr.120校验和PLC侧设置不一致,要么是站号Pr.117对不上。

6.2 能通讯但启动不了或者频率卡住

通讯已经通了,03H读状态能读回来,但写运行指令后电机就是不动。我第一反应是看运行模式是否真的切到通讯侧,很多变频器即使Pr.79设了1,控制面板上的运行按钮仍然能用,容易造成"参数已经对了"的错觉。把STF/STR的线拆掉之后再看,如果还是不动,就去查运行指令字的位定义,确定bit0正转对不对。

频率卡在0.00Hz多半是量纲问题。我有一次写了50给频率寄存器,变频器面板显示的始终是0.00Hz,后来用串口调试助手手动写5000,频率马上起来了,才意识到PLC程序里漏掉了0.01Hz的倍率换算。

6.3 跑一段时间偶发E.PUE掉线

通讯刚开始一切正常,机器跑个把小时偶尔报一次E.PUE,这种间歇性问题是现场最难受的。E.PUE是三菱变频器在检测到PU口通讯异常时报的故障码,大概率不是程序问题,而是物理链路被干扰。

我的处理套路是:

  1. 把通讯线和变频器主电源动力线分开走线槽,不要平行长距离捆在一起
  2. 确认屏蔽层只有单端接地
  3. 总线两端各并一个120Ω终端电阻
  4. 如果PLC的RS-485是非隔离型的,而现场又有明显的强干扰,在PLC和变频器之间加隔离型RS-485中继器
  5. 把Pr.121重试次数从0改成1到3,让变频器有重试的余地

还有一点很关键:如果Pr.122通讯校验时间设了非零值,PLC程序里的写指令周期必须比这个时间短。我在最终程序里用100ms脉冲周期去刷新频率设定和运行指令字,再把Pr.122设成0.5s,这样即使偶发丢一帧报文,下一帧也能在超时前救回来。如果是把Pr.122设成0来调试的,产品交付前一定要想清楚:0代表不检测通讯中断,PLC死机或通讯线断掉后变频器可能会按最后一条指令一直运行下去,这是非常危险的隐患。

另外,多台变频器挂在同一条RS-485总线上时,建议把运行指令字和频率设定字用10H功能码一次性写入,这样一条报文搞定两个寄存器,总线的负载低很多,干扰窗口也小。台达PLC写多个连续寄存器时,只要从站地址连续,指令长度设K2,就把两个寄存器都带上了。我后来在另一个项目里就是这么干的,一台PLC带三台不同站号的变频器,跑起来比单寄存器一条条写要稳得多。

最后再分享一个个人习惯:项目文件里一定留一张寄存器地址对照表,标明哪个地址对应哪台变频器的哪个功能,最好连量纲一起写上。跨品牌调试,最大的敌人不是协议难懂,而是资料散落各处,今天翻PLC手册,明天翻变频器手册,后天发现变频器手册上的地址写法和PLC指令里对不上。把这张表做出来,改设备、换人维护的时候才能少走弯路。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 18:49:02

C++继承实战指南:从代码复用到多态,避开对象切片与虚析构陷阱

前阵子我接手了一个叫“模拟项目X”的旧工程,里面有三个类,长得非常像:都有名称、编号、状态标记,也都实现了相同的保存和加载逻辑,区别只是各自多了一些字段。我一看这代码,第一反应是复制、粘贴、改几个类…

作者头像 李华
网站建设 2026/10/21 18:47:10

Java多态底层原理与面试要点:动态绑定、虚方法表到工程落地

1. 先抓核心:面试官问“多态”时,到底在问什么把这个问题拆开看,面试官手里其实握着一张“检查清单”:你知不知道多态的基本定义,能不能用一两句话说清楚?你说的是“重写”层面上的多态,还是“重…

作者头像 李华
网站建设 2026/10/21 18:47:09

数据库一体机的智能复兴:从Britton-Lee到Exadata与zData

1. 一个"生不逢时"的机器:Britton-Lee没能等来它的时代这几年我经常遇到一个有意思的问题:云计算都喊了这么多年,为什么金融、制造、医疗这些行业的用户,反而在关键系统上重新抱紧了数据库一体机?甚至有人告…

作者头像 李华
网站建设 2026/10/21 18:45:31

三级等保设备清单与落地部署实战:从采购到运维的完整指南

简介:这份PDF文档面向需要开展网络安全等级保护三级建设与测评的企业IT负责人、安全运维人员及合规咨询从业者,系统梳理了三级等保落地所需的设备与服务清单,帮助读者对照标准快速明确建设范围与配置要求。资源包共1个PDF文件,约2…

作者头像 李华
网站建设 2026/10/21 18:44:35

artcraft:用工艺技法承载艺术表达,让创意落地成作品

出去逛文创市集的时候,经常有人问我在做什么,我说做“artcraft”,然后对方会愣一下。这个英文词其实不难理解,就是 art(艺术)加 craft(工艺),但真正把它当作一套创作方法…

作者头像 李华
网站建设 2026/10/21 18:44:18

FANUC机器人SV OFF报警排查:从使能回路到参数设置

简介:这份PDF资料聚焦FANUC机器人SV OFF(伺服自动关闭)功能的参数设置与报警排查,面向现场调试工程师、机器人维护人员及自动化集成技术人员。内容围绕J6轴在长时间等待后运动时触发SRVO-050报警的典型故障,梳理了sv_o…

作者头像 李华