资讯动态

台达PLC与三菱变频器Modbus RTU通讯实战:接线、参数偏移与调试全指南

发布时间:2026/10/21 17:33:27 来源:尧图企业网站定制
先交代一下背景我手头这个项目柜子里是一台台达DVP-24ES的老款PLC驱动侧是一台三菱FR-E700变频器。两者之间没有任何IO点交互所有启停、频率、状态采集全靠一根RS-485线走Modbus RTU协议。这也是很多改造项目的常见局面——电柜里剩的PLC品牌和变频器品牌往往对不上又不愿意多花钱买专用的通讯卡那就只能让Modbus RTU来干活。台达DVP 24ES作为主站三菱E700变频器作为从站一主一从协议栈极其成熟接线加起来不超过两根线。这篇文章就把我从接线、参数、写程序到联调踩坑的全过程完整捋一遍给同样手里拿着这两种设备的同行一个可以直接抄作业的模板。这类活儿看起来简单但真做起来一半时间都耗在参数匹配上。E700的通讯寄存器不多台达PLC侧的指令写法也有几个容易绕晕的细节尤其是“寄存器地址偏移”这个坑几乎每个第一次上手的人都会被绊一下。文章会按照实际调试的顺序来写先把变频器参数配明白再搞定PLC侧通讯格式最后联调排错。中途用到串口助手抓帧的部分建议你也准备一个USB转485的小工具调试效率能翻一倍。1. 为什么会选“台达24ES 三菱E700”这个组合1.1 设备背景一边是国产PLC一边是日系变频器台达DVP-24ES是DVP-E系列里的老型号CPU上自带一个RS-485通讯口COM2不需要额外加通讯扩展板就能做Modbus主站。这个型号在小型设备里存量很大很多十年前的控制柜到现在还在稳定跑着电机启停、气缸动作、传感器采集这些基础逻辑完全够用。三菱E700系列变频器同样是工业现场最常见的中小功率变频器之一标准配置里也带了RS-485端子排Modbus RTU通讯属于它的标准功能不用选配件。我之前在社区里见过不少人在问“台达PLC能不能直接控制三菱变频器”答案是当然能前提是通讯参数、寄存器地址、数据格式三者全部对齐。E700支持Modbus RTU台达DVP-ES也支持Modbus RTU两边都属于开放协议设备不存在品牌壁垒。真正需要你动手解决的不是“能不能通”而是“怎么把参数配得两边都认账”。1.2 Modbus RTU在这套系统里的角色Modbus RTU是一种串行总线协议物理层走RS-485半双工一主多从主站轮询从站。台达24ES这边是主站负责发起所有请求三菱E700是从站被动响应。这种主从架构在工业现场非常实用协议本身不复杂帧结构固定调试时用手抓包也能读懂而且RS-485在几十米的柜内走线上稳定性很好。这套系统里Modbus RTU要承担的工作有几块运行指令下发正转、反转、停止、复位、频率设定下发、运行状态监视当前是否在转、什么方向、实时数据采集输出频率、输出电流。这些全部通过功能码03读保持寄存器和06写单个寄存器就能完成E700支持的通讯功能本来也不多我们用到的也就这两三个。搞清楚每项数据在E700的Modbus寄存器表里落在哪个地址、数据是什么单位后面写PLC程序就是纯粹的对表填空。2. 接线重点RS-485不是插上就完事的2.1 端子定义与正确对应关系先说最容易出问题的硬件接线。台达DVP-24ES本体上的COM2是内置RS-485口端子上标的是S和S-这点需要先确认——有些早期的型号会把通讯端子和输入输出端子放在同一排不仔细看容易接错。三菱E700变频器的RS-485端子排上标的是A和B其中A对应数据正端B对应数据负端。这两组端子接起来就一句话S接AS-接B。我见过有人习惯性地把“正接正、负接负”理解成S接B结果通讯完全没反应反复查了半天才在换线时发现问题。RS-485是差分信号极性反了不会烧设备但就是不通而且有时候时通时不通很迷惑人所以接线第一件事就是拿万用表量清楚再上电。另外注意一点E700的A/B端子旁边往往还有SD、PC等控制端子别把485的数据线插到那些端子上。三菱E700的RS-485端子一般集中在控制回路端子排的下排位置A和B挨在一起标识很清晰上电前对着说明书再核对一次比什么都强。2.2 屏蔽层、终端电阻和共地处理RS-485在短距离、低速率下非常皮实但工业现场总归有变频器、接触器、电机电缆这些干扰源所以走线规范还是得讲究。我在这套系统里用的是屏蔽双绞线屏蔽层单端接地接在控制柜的接地排上PLC和变频器那一侧不要都接避免地环路通讯线尽量不要和电机动力线走同一个线槽保持至少20cm的距离。E700自身的载波频率如果偏高对通讯的干扰会明显一些必要时可以把变频器的载波频率从默认值调到2kHz左右试试。终端电阻的问题要看距离。如果PLC和变频器就在同一个柜子里通讯线长度不超过两三米不接终端电阻通常也能正常工作。如果走线超过10米、或者现场还有别的485设备就需要在总线两端各接一个120欧姆终端电阻。三菱E700的控制端子排附近一般有终端电阻的跳线开关具体位置以随机手册为准找不到的话直接用两个120欧姆电阻跨接在两端也可以。我这里距离比较近没有接终端电阻实测通讯稳定。屏蔽线和地线处理完还有一个容易被忽略的点PLC侧的24V直流电源地和变频器的主回路地不要强行并在一起。共地处理不当会导致电位差轻则通讯偶发错误重则损坏通讯口。让两者分别接地电位平衡靠工程接地网去解决这样最稳妥。3. E700变频器端参数每一项都要和“从站身份”对应3.1 与通讯直接相关的Pr参数表E700变频器的所有通讯参数都在Pr参数组里和Modbus RTU直接相关的参数不算多但每一项都必须和PLC侧完全对上。我整理了一张表按调试顺序排好了参数号名称设置值说明Pr.79运行模式选择1固定为PU运行模式通讯控制时最常用Pr.117通讯站号1从站地址PLC发帧时第一个字节就是它Pr.118通讯速度96对应9600bps必须与PLC侧D1120一致Pr.119数据长度/校验18位数据、偶校验、1位停止位8E1Pr.120停止位长度01位停止位Pr.121重试次数1通讯异常时自动重试1次Pr.122通讯检查时间0设为0表示不检测通讯中断调试期先这样Pr.123等待时间0从站应答前的等待时间默认即可Pr.124CR/LF选择0无CR/LFModbus RTU不需要Pr.549通讯协议选择00为Modbus RTU协议不要设成1Pr.550PU模式下频率设定权11频率由RS-485端子排控制Pr.551PU模式下运行指令权11启停由RS-485端子排控制这里要特别注意Pr.117。E700出厂默认站号是0而Modbus从站地址0在协议里是广播地址E700作为从站时不响应广播请求所以如果不把Pr.117改成1PLC发任何帧它都不理你。这个坑我第一轮调试就踩过变频器面板上PU灯闪都不闪查了半天资料才想起来站号还是出厂值0。3.2 Pr.550 / Pr.551的真正含义控制权移交新手最容易迷惑的是Pr.550和Pr.551这两个参数。E700变频器本身有多个控制来源面板按键、外部端子、RS-485通讯、选件通讯卡。当你把Pr.79设为1PU运行模式之后变频器默认听从面板控制这时候就算你从RS-485写入启停指令它也不会执行。原因就在于运行指令权还在“PU面板”那里。Pr.551就是用来移交运行指令权的设为1之后启动、停止、反转这些指令改从RS-485端子排接收。Pr.550则是频率设定权的移交开关设为1之后频率设定值也改从RS-485端子排接收。这两个参数不设对会出现两种经典症状一是频率写进去但电机不转Pr.551没设二是电机转了但频率始终是面板电位器给定的值Pr.550没设。在实际调试里我建议先在面板上把这两个参数设成1然后用串口助手发指令看到电机转动后再去写PLC程序。这样能把问题范围缩小避免“PLC程序和变频器参数同时出问题”的时候无从下手。3.3 最容易配错的三个地方第一个是校验位。E700出厂默认Pr.1192对应的帧格式是8位数据、奇校验、1位停止位8O1而很多PLC侧习惯配置成偶校验8E1两者不一致会导致通讯帧校验错误。我之所以在参数表里把Pr.119设成1就是为了配合台达侧常用的8E1格式。如果你的PLC侧D1120配置的是奇校验那这里就要改回2两边必须严格一致。第二个是波特率。E700默认Pr.118969600bps但台达PLC程序里如果按照网上下载的模板设置了19200bps两边速率对不上帧就完全收不到。我遇到过好几次“程序在别人设备上能跑到自己这边死活不通”一查全是波特率不一致。第三个是Pr.549。E700同时支持Modbus RTU和三菱自己的变频器协议这个参数如果不小心被人改成了1PLC发的Modbus帧它根本不认。建议参数设完之后把Pr.549这一项单独确认一遍因为它在参数菜单里并不起眼但一旦错了一整条链路全部白搭。4. 台达PLC端通讯格式、地址映射和程序写法4.1 PLC通讯初始化D1120、D1121、D1122台达DVP-24ES作为Modbus主站通讯初始化的核心工作是设置内置RS-485口COM2的协议格式。PLC侧有几个特殊寄存器需要关注D1120用于设置通讯格式D1121用于设置PLC自身站号D1122用于设置通讯超时时间。我的初始化程序在WPLSoft里是这样写的; 上电初始化段 LD M1002 MOV H0087 D1120 MOV K1 D1121 MOV K50 D1122M1002是RUN后第一次扫描ON的触点用它来执行初始化最合适。H0087这个常数在不同批次机型上对应的含义略有差异在我手头这台后期固件的24ES上代表的是Modbus RTU模式、8位数据、偶校验、1位停止位、9600bps。如果你的PLC手册上H0087的定义不同请以随机手册为准关键是保证最终组合结果和E700的Pr.118、Pr.119、Pr.120完全一致。D1122设成K50代表通讯应答超时时间在50ms左右这个值不能太小因为E700的Pr.123默认等待时间为0但是如果现场总线繁忙或者从站响应偏慢50ms是比较安全的余量。超时时间太短会让主站误判通讯故障太长则会拖慢轮询节奏。4.2 三菱Modbus地址在台达PLC里的表达这里必须说清楚一个最核心的概念寄存器地址偏移。E700的Modbus寄存器表里40001对应输出频率监视40002对应输出电流监视40009对应运行指令40010对应频率设定。这个“40xxx”是三菱手册里给用户看的通俗叫法实际在Modbus协议帧里访问的寄存器地址是40001对应的十六进制偏移量0x000040010对应的偏移量是0x0009算法很简单寄存器号减去40001。台达的ADPRW指令里使用的就是这种十六进制偏移地址。举个例子我要读E700的输出频率三菱手册地址40002在ADPRW指令里就要写H0001因为40002减40001等于1。而台达早期的MODRD/MODWR指令则可以直接写H40002这种三菱风格地址这就是两种指令在地址表达上的最大差别。我在实际项目中主要用ADPRW指令因为它的参数结构更清晰读回来的数据可以直接指定存放在哪个D寄存器里不需要像MODRD那样还要去系统缓冲区倒腾数据。如果你的24ES固件版本较老不支持ADPRW改用MODRD/MODWR也完全可以功能码和地址逻辑都一样只是数据存放位置要以手册为准。4.3 梯形图示例启动、停止、反转、读频率和电流下面这段程序是我的完整通讯逻辑按照台达WPLSoft的指令表格式写在下面。X0正转启动X1停止X2反转X3频率设定D10里存放的是频率值乘以100的结果D0和D1分别存放读回来的输出频率和输出电流。; 周期读每300ms读一次E700的40002输出频率和40003输出电流 LD T0 ADPRW K1 H03 H0001 K2 D0 OUT T0 K30 ; 正转启动X0按下沿 LDP X0 MOV K1 D20 ADPRW K1 H06 H0008 K1 D20 ; 停止X1按下沿 LDP X1 MOV K0 D20 ADPRW K1 H06 H0008 K1 D20 ; 反转启动X2按下沿 LDP X2 MOV K2 D20 ADPRW K1 H06 H0008 K1 D20 ; 频率设定X3按下沿D106000表示60.00Hz LDP X3 ADPRW K1 H06 H0009 K1 D10D20这个寄存器作为运行指令的数据缓冲非常关键。E700的运行指令寄存器40009对应的地址偏移是H0008数据含义是0停止1正转启动2反转启动4复位。每次按下按钮先把对应数值写入D20再用ADPRW把D20的内容发送到变频器。使用同一个D20作为缓冲能避免多次写入时数据互相覆盖的问题。读频率和电流的ADPRW指令放在定时器T0的周期循环里每隔300ms执行一次。这里要留意ADPRW是脉冲执行型指令在T0的常开触点驱动下每个扫描周期只有当T0输出的上升沿到来时才会执行一次。T0设置为K30在10ms时基下就是300ms一次这个轮询频率足够满足大多数显示和数据刷新需求也不会给485总线带来太大负担。如果你用的是老款MODWR/MODRD指令对应的写法是; 老款ES机型用MODRD读频率和电流三菱风格地址 LD T0 MODRD K1 H40002 K2 OUT T0 K30 ; 老款ES机型用MODWR写运行指令 LDP X0 MODWR K1 H40009 D20MODRD读回的数据会放到系统指定的数据缓冲区具体是D1050起始还是D1200起始得查你的机器手册。这也是我推荐能上ADPRW就上ADPRW的原因直接把读回的数据绑到D0和D1上程序阅读性和后续处理都方便得多。5. 联调过程一次成功的通讯和三次失败尝试5.1 上电后的第一轮测试怎么确认变频器“活着”接好线、配好参数、写进程序后第一件事不是让电机转而是确认主从站之间能不能“对话”。我习惯的做法是先用USB转RS-485串口助手绕过PLC直接给E700发一帧读命令验证从站响应。比如读40001寄存器运行状态监视发送的原始RTU帧是01 03 00 00 00 01 CRC_L CRC_H这里01是从站地址03是功能码读保持寄存器00 00是起始地址偏移00 01是读取数量最后两个字节是CRC16校验值。如果变频器参数全对它会回一帧01 03 02 00 01 CRC_L CRC_H表示运行状态寄存器的值是1管脚数据bit0为ON说明变频器正在正转或者至少状态位被置位了。如果返回的是异常帧比如01 83 02说明功能码或地址不对如果完全没有响应优先检查接线和Pr.117站号。这里有个小工具技巧串口助手里要选择Modbus RTU模式数据格式9600 8E1和变频器参数保持一致。能把这一帧通出来后面PLC的ADPRW指令本质上就是在重复做同样的事只是把从站地址、功能码、地址、CRC这些内容自动组帧发送了。5.2 串口助手抓帧把问题定位到“帧”这一层如果PLC程序写完后变频器还是不动作我强烈建议把串口助手接在PLC和E700之间监听总线上的数据。这一步能帮你确认到底是“PLC没发帧”还是“E700发了错误应答”两个方向的故障定位思路完全不同。我在实际调试里遇到过这么一次PLC侧D1120设的明明是H0087但抓到的帧里校验字节全是乱的数据帧本身看起来也怪怪。后来仔细翻手册才发现H0087在我这个机型上的排列组合是8位数据、偶校验、1停止位但E700这边Pr.119还是出厂默认的奇校验。两边校验方式不一致CRC计算自然也对不上虽然串口助手能看到帧但E700直接丢弃了。把那一个参数从Pr.1192改成Pr.1191之后通讯立刻恢复正常。另外一次是ADPRW地址写错。我用三菱手册里的寄存器号直接填了H0009去写频率结果写进去的频率值根本没变化。后来换算清楚才发现H0009对应的是三菱的40010也就是频率设定寄存器本身所以写是写进去了但E700那边的运行指令权和频率设定权没交出来变频器虽然收到了数据却不采纳。这提醒我程序通不上来的时候不要只顾着盯通讯帧变频器内部的“控制权归属”同样重要。5.3 故障排查清单遇到通讯问题按照下面这个顺序排查基本能把90%的问题控制在五分钟内找到现象可能原因处理步骤串口助手完全收不到应答接线极性反、站号0、PLC根本没发帧检查S/A、S-/B对应确认Pr.117不为0确认PLC程序里ADPRW被触发收到应答但CRC校验失败校验位不一致、线路干扰核对Pr.119和D1120的校验方式换屏蔽双绞线降低波特率频率写入了但电机不转Pr.551没设为1、Pr.79模式不对设Pr.5511Pr.79设为1确认运行指令寄存器写的是1或2电机转了但频率不对Pr.550没设为1、频率单位搞错设Pr.5501确认写入值频率×100通讯时通时断线缆过长、没有屏蔽、共地不良加终端电阻屏蔽层单端接地缩短走线距离面板无法启动电机Pr.791导致面板启停被禁用这是正常现象通讯控制时面板RUN键本来就不起作用D1129是台达PLC的通讯错误代码寄存器联调期间盯住它很有用。常见的错误代码包括0表示无错误1表示CRC校验错误2表示地址错误3表示功能码错误4表示数据错误11左右的值通常和超时有关。每次通讯执行后把D1129的值读出来看一眼再对照手册里错误代码表基本能定位问题方向。6. 实战之后的几个关键认知6.1 Modbus地址偏移是大多数通讯失败的根源这个坑我在前面已经提了好几次但值得单独拎出来再讲一遍因为它实在太典型了。三菱手册里写的40009、40010这种地址和你在台达ADPRW指令里填的H0008、H0009之间差着一个“40001基础偏移量”。有人直接在指令里填H40009结果访问的寄存器地址变成了偏移量0x4009这早就超出E700的寄存器映射范围了变频器收到后直接回异常帧。处理这类问题我有一个固定的换算习惯先把三菱手册里的寄存器号减掉40001得到偏移量再转成十六进制填进指令。比如40009减40001等于8转成十六进制就是H0008。这个习惯养成之后不管是台达、汇川还是其他PLC只要遇到类似地址映射问题都不会再犯迷糊。6.2 通讯中断后的安全处理不能省调试期为了省事Pr.122通讯检查时间我设成了0意思是变频器不监测通讯中断。这带来的后果是如果PLC和变频器之间的485线突然断了变频器并不会进入报警停机状态而是保持断线前的指令继续运行。这在运行人员不在场的情况下是有风险的。正式投入运行前我建议把Pr.122设成一个非零值比如设成1表示0.1秒具体单位以手册为准内收不到有效通讯帧变频器就会触发通讯异常报警并停机。同时把Pr.121重试次数设成1或2给偶发干扰留一点缓冲余量。这样配置之后通讯一旦真的中断系统会自动进入安全状态而不是让电机无指令地继续转下去。6.3 用通讯控制变频器急停永远要在硬接线上最后说一个听起来像废话但确实重要的事。PLC通过Modbus RTU给E700下发启停指令这只是“软控制”它不能替代急停回路。E700控制端子排上的MRS、RES等安全相关输入务必用硬接线接到急停按钮和接触器回路上。万一PLC跑飞、通讯卡死、程序逻辑出现意外硬接线的安全回路仍然能把电机停下来。这一点在我接触过的各种项目中反复被验证。通讯控制解决的是“自动化”安全回路解决的才是“保命”。千万别为了省几个端子少拉几根线把安全功能也交给485总线去承担。调试了这么多遍我个人最深的体会是Modbus RTU这种老协议最大的优点不是性能而是它把所有问题都摊在明面上。帧结构看得懂寄存器地址查得清参数表翻得到任何一个环节出错都能一步步定位。台达24ES和三菱E700的组合看似一个国产一个日系但只要把通讯格式、地址映射、控制权归属这三件事理顺跑起来和不分品牌的纯国产系统一样稳当。再往后你要是想加触摸屏、上位机或者远程监控这套通讯链路完全可以原样复用只要把主站地址的权限分配好就行。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑