ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

M580与ATV930以太网通讯实战:从端口识别到寄存器读写

M580与ATV930以太网通讯实战:从端口识别到寄存器读写

简介:以施耐德M580可编程逻辑控制器与ATV930系列变频器为对象,围绕Modbus TCP/IP和Ethernet/IP两种工业以太网通讯方式,整理出一份从设备认识、接线、参数配置到实验操作全流程的指导文档;压缩包内含一个docx格式文件,大小约三点五五兆字节,携带方便,该实验指南已有四千四百零八人学习参考。文档结构完整,依次包含实验目的、设备清单、准备工作、实验内容和注意事项五个部分,实验目的部分明确解读了Modbus TCP/IP与Ethernet/IP的实现原理及区别,设备清单部分则列出了M580 PLC(BME H58 2040)、ATV930变频器(U07M3)、网络电缆和Mini USB接口电缆等具体型号,并详细介绍了M580 CPU正面和背面的LED诊断显示面板、Mini USB接口、RJ45以太网连接端口、双重连接端口、SFP光纤插座、SD卡插槽以及A/B/清除旋转开关等部件的用途,同时说明了ATV930控制模块上拨码开关和扩展插槽的位置。在变频器参数设置环节,结合SoMove软件演示了在完整设置菜单中将参考频率通道1设为嵌入式以太网、控制模式配置为组合通道模式,以及为变频器分配固定IP地址、子网掩码和网关地址的操作;实验正文分别针对两种协议给出了多种实现方法,例如通过读写功能块实现数据交互,同时涵盖新建工程、硬件组态、解锁安全、设置IP地址、添加DTM连接等关键步骤;文末还总结了使用DTM在线修改时必须使用网线连接、区分RJ45端口用途等注意事项,并强调参数修改后需对变频器断电重新送电才能生效,可有效减少调试中的常见错误,适合自动化工程师、电气维修人员及工业自动化专业学生作为实验参考。

1. M580 与 ATV930 以太网通讯:先认清端口和寄存器再动手

M580 与 ATV930 的以太网通讯实验,是不少人接触 PLC 与变频器以太网联调的第一课。指导书给出的路径很清晰:Modbus TCP/IP 和 Ethernet/IP,两条线都能实现对变频器的启停控制和转速给定。但这个实验真正考验人的地方不在协议本身,而在三个容易被忽略的细节:ATV930 上有三个长得一样的 RJ45,只有中间那个是网口;M580 自带以太网口在软件里的地址是 0.0.3,不是 0.0.0;变频器 IP 参数改完必须断电重启才能生效。把这些细节搞清楚,后面用 READ_VAR、WRITE_VAR 还是 DTM 浏览器,都只是套参数的事。这套内容适合正在做 M580 网关联调、ATV930 变频器以太网控制的电气工程师和调试员。

2. 硬件准备与变频器参数:BME H58 2040 和 ATV930 的网口识别

2.1 BME H58 2040 端口布局:为什么自带以太网口是 0.0.3

拿到 BME H58 2040 先别急着插线,把 CPU 上的接口认一遍能省很多事。指导书里给了一张端口功能表,我在实际联调中也习惯按这个顺序核对:

编号接口在以太网通讯实验中的角色
1LED 诊断显示面板看运行状态、故障代码
2Mini USB 接口下载程序、连接 PLC 编程软件
3RJ45 以太网连接端口常规以太网通讯入口
4RJ45 以太网双重连接端口支持分布式设备、RIO 子站,也可用于本实验
5SFP 插座热备链路用的铜缆或光纤模块
6热备状态链路 LED热备状态显示
7SD 存储卡插槽程序与数据备份
8A/B/清除旋转选择开关热备时指定 CPU 为 A 或 B,或清除应用

做以太网通讯实验,网线插 3 或 4 都可以,但软件寻址时不能按直觉来。Control Expert 里对 M580 自带以太网口做通讯寻址,用的地址是 ADDM('0.0.3{IP}'),而不是我们习惯的 0.0.0。原因在于 M580 的嵌入式以太网口不是挂在某个机架插槽上的模块,它在系统编址里被固定安排在第三个通道位置。如果按“机架号+位置号+通道号”去填 0.0.0,功能块会在通讯超时后报错,而且这种错很难从表象看出来,因为 CPU 的以太网口本身是亮的,容易让人误以为地址没问题。

我一般会在新建项目后顺手做一个硬件检查:先看 CPU 正面以太网口旁边有没有 IP 地址标签,再对照 Control Expert 里以太网配置界面的 “IP 主地址” 是否一致。这个环节别跳过,后面所有 READ_VAR、WRITE_VAR 的 ADDR 参数都依赖这个地址。

2.2 ATV930 控制模块上的三个 RJ45:控制面板、以太网、Modbus RTU

ATV930 控制模块正面有三个 RJ45,单独看长得一模一样,但功能完全不同。指导书里说得非常明确:1 号口用于控制面板连接,2 号口是两个以太网通讯端口,4 号口是 Modbus RTU 通讯口。

这个区分在实际操作里非常容易翻车。第一次做的时候,如果顺手把网线插到 1 号口,SoMove 会一直找不到变频器,控制面板也可能失去响应。正确的接线方式是一头插到 BME H58 2040 的 3 号或 4 号 RJ45,另一头插到 ATV930 的 2 号口中任意一个,两个口是并联的,随便接哪个都行。

PC 和 PLC 之间用 Mini USB 电缆连接。这里有一个前置条件需要注意:如果后面打算用 DTM 浏览器添加设备,并且要在 PLC 在线状态下修改变频器的 DTM 参数,PC 和 PLC 必须通过网线连接,不能只靠 Mini USB。这是指导书特别标注的,也是我在现场经常被同事问到的一点。Mini USB 只负责编程下载,不能承担 DTM 在线修改的以太网通道。

2.3 变频器通讯参数设置:SoMove 里的四步

变频器侧必须先把控制通道和 IP 参数配好,否则 PLC 发再多的 Modbus 请求也是白费。打开 SoMove,在“参数列表”里选择“完整设置”,按下面四步操作:

第一步,进入“命令和参考”,把“参考频率通道 1”设置为“嵌入式以太网”。这一步决定给定频率从哪里来,如果不改,变频器仍然按照面板电位计或者端子给定去运行,PLC 给的转速自然不起作用。

第二步,在同一个界面里把“控制模式配置”设置为“组合通道模式”。组合通道模式意味着控制字和参考频率可以分别来自不同通道,适合用以太网同时做启停命令和速度给定。

第三步,进入“通信”下的“端口-Modbus TCP/以太网 IP”,在“常规设置”里把“IP 分配模式”改为“固定地址”,然后填入 IP 地址 192.168.1.99、子网掩码 255.255.255.0、网关地址 192.168.1.1。

第四步,在“协议和变频器配置文件”里选择本实验要用的协议,Modbus TCP/IP 或者 Ethernet/IP 二选一。

参数设置汇总如下:

参数路径设置值说明
命令和参考 > 参考频率通道 1嵌入式以太网频率给定来源切换到以太网
命令和参考 > 控制模式配置组合通道模式控制字与给定可分离
通信 > 端口-Modbus TCP/以太网 IP > 常规设置IP 分配模式 = 固定地址避免 DHCP 导致地址漂移
通信 > 端口-Modbus TCP/以太网 IP > 常规设置IP = 192.168.1.99,掩码 = 255.255.255.0,网关 = 192.168.1.1网段必须与 PLC 一致
通信 > 端口-Modbus TCP/以太网 IP > 协议和变频器配置文件按实验选择 Modbus TCP/IP 或 Ethernet/IP切换协议时先断电

2.4 断电重启与 PC 地址规划

通讯参数写入变频器后,需要把变频器断电再重新送电,参数才会实际生效。这个动作不能省。SoMove 里写的 IP 分配模式、固定 IP 这类配置,往往是在变频器启动阶段加载的,运行中直接改不会立即生效,甚至会让你误判成网线或端口的问题。

PC 的网卡地址也要提前规划好。我会把 PC 网卡固定到 192.168.1.100,子网掩码 255.255.255.0,网关不用填。然后先用 ping 把三层连通性验证一遍,再进 PLC 编程软件,避免后面把“网线没插好”和“程序配置错误”混在一起排查。

# Windows 下先把网卡固定到实验网段,再做连通性检查 ping 192.168.1.9 # PLC 的 IP,按实际工程设置 ping 192.168.1.99 # ATV930 的 IP

正常情况下,两个 IP 都能 ping 通。如果 PLC 的 ping 不通,先看 Control Expert 里以太网口是否解锁安全、IP 是否分配;如果变频器 ping 不通,多半是上一步断电重启没做,或者网线插到了 1 号口。

3. Modbus TCP/IP 之 I/O Scanner 映射:用 READ_VAR / WRITE_VAR 驱动变频器运转

3.1 I/O Scanner 默认映射:状态字、输出转速、控制字、给定转速

M580 和 ATV930 走 Modbus TCP/IP 时,最省事的做法是把变频器挂到 CPU 的 I/O Scanner 上。I/O Scanner 相当于一个自动轮询表,它会周期性地把输入寄存器和输出寄存器同步到 PLC 的内存里,不需要你在程序里逐个地址去读。

ATV930 被识别到 I/O Scanner 后,默认的输入寄存器有两个数据:状态字和输出转速。默认的输出寄存器也有两个:控制字和给定转速。这四个数据在 Control Expert 动态数据表里的对应关系如下:

PLC 变量内容说明
%MW0状态字反映变频器当前运行状态
%MW1输出转速变频器实际输出的转速值
%MW10控制字PLC 下发启动、停止、方向等命令
%MW11给定转速PLC 下发的转速设定值

做实验之前,先在 Control Expert 菜单“工具”→“项目设置”→“变量”里勾选三个选项:“直接以数组变量表示”、“允许动态数组(ANY_ARRAY_XXX)”、“禁用数组大小兼容性检查”。这一步很多人会漏掉,漏掉之后,后面功能块里用 %MW0:2 这种写法时,编译会报数组长度不匹配之类的错误。这三个选项的作用是让 M580 能用连续内存块做读写交换,属于功能块通信的前置条件。

3.2 Control Expert 工程预配置:三个复选框和一个 IP

新建项目时选择 CPU 型号 BME H58 2040,双击“项目浏览器”中的“项目”打开硬件组态,再双击 CPU 上的以太网端口进去配置。以太网配置界面里有几个标签页,操作顺序建议按下面来。

先进入“安全”标签,点击“解锁安全”,把服务和访问控制打开。不解锁的话,外部设备无法通过以太网访问 CPU,READ_VAR 和 WRITE_VAR 发出去的报文会被直接丢弃。

再进入“IP 配置”标签,把 IP 主地址设置为 192.168.1.9,子网掩码设置为 255.255.255.0,网关地址设置为 192.168.1.1。在“IP 地址 A”和“IP 地址 B”里分别填 192.168.1.11 和 192.168.1.12,这两个是交换机或冗余链路的备用地址,本实验不用深究,但最好按指导书填上,避免后面改动配置时漏掉。

IP 配置完成后,在“程序”→“任务”→“MAST”→“段”上新建一个段,命名为 ModbusTCP,语言选择 LD。这里用梯形图还是结构化文本不影响功能块本身,我习惯在 LD 里放功能块,因为现场同事看着更直观。

3.3 功能块引脚参数:ADR、OBJ、NUM、NB、RECP/EMIS、GEST

在 LD 段里添加 READ_VAR 和 WRITE_VAR 功能块,用 %S6 秒脉冲接到两个功能块的 EN 脚,让它们每个周期自动执行一次。功能块的引脚参数可以直接抄指导书,但每个引脚的含义必须清楚,否则改一个地址就不知道该动哪里。

(* 段名 ModbusTCP,语言 LD,这里用 ST 伪代码展示引脚对应关系 *) (* 读 ATV930 状态字和输出转速 *) READ_VAR( EN := %S6, (* 秒脉冲,周期性触发 *) ADR := ADDM('0.0.3{192.168.1.99}'), OBJ := '%MW', (* 对象类型是内存字 *) NUM := 0, (* I/O Scanner 读区起始偏移 *) NB := 2, (* 读 2 个字 *) RECP := %MW0:2, (* 读到的数据送到 %MW0、%MW1 *) GEST := %MW100:4 (* 交换管理区,必须 4 个字 *) );
(* 写 ATV930 控制字和给定转速 *) WRITE_VAR( EN := %S6, ADR := ADDM('0.0.3{192.168.1.99}'), OBJ := '%MW', NUM := 0, (* I/O Scanner 写区起始偏移 *) NB := 2, (* 写 2 个字 *) EMIS := %MW10:2, (* 发送数据取自 %MW10、%MW11 *) GEST := %MW104:4 (* 交换管理区,与读块分开 *) );

逐个参数说:

ADR 是子站地址,两个功能块都写 ADDM('0.0.3{192.168.1.99}')。ADDM 是寻址命令,0.0.3 指定的是 M580 自带的以太网口,192.168.1.99 是 ATV930 的 IP。这里 0.0.3 是 M580 的特殊编址,不是机架号加插槽号的常规写法。

OBJ 是对象类型,这里固定用 '%MW',意思是读写对象是 PLC 的保持性寄存器区。

NUM 是起始地址。在 I/O Scanner 映射方式下,读和写都从 0 开始,因为 I/O Scanner 的输入区、输出区默认从偏移 0 开始排列。

NB 是读写数量。ATV930 默认输入寄存器有状态字和输出转速两个,输出寄存器有控制字和给定转速两个,所以数量都是 2。

RECP 是接收地址,读块用 %MW0:2,意思是把读到的两个寄存器按顺序放到 %MW0 和 %MW1。

EMIS 是发送地址,写块用 %MW10:2,意思是把 %MW10 和 %MW11 里的数据发出去。

GEST 是交换数据管理区,必须定义 4 个字。读块用 %MW100:4,写块用 %MW104:4,两块分开,避免交换数据互相覆盖。如果把两个功能块的 GEST 写成同一块,通讯会随机报错,而且错误位置不好定位。

3.4 动态数据表验证:控制字 6→7→F,状态字跟着变

程序写完后,点击“生成”里的“重新生成所有项目”做一次全量编译,然后通过“PLC”→“连接”→“将项目传输到 PLC”下载程序,再点击“PLC”→“运行”。下载完成后,在“项目浏览器”里右键“动态数据表”,新建数据表,添加 %MW0、%MW1、%MW10、%MW11 四个变量。

右键把 %MW0 和 %MW10 的显示格式改成 16 进制,%MW1 和 %MW11 保持十进制就行。然后点击“修改”,把 %MW11 的值改成 1500,对应 1500 rpm 的给定转速。

接下来把 %MW10 的值按顺序改成 6、7、F。每改一次,观察 %MW0 的 16 进制值尾数变化:依次从 50 变为 31、33、37,同时 %MW1 的值从 0 逐步爬升到 1500。这说明变频器已经收到控制字和给定,并进入运行状态。%MW10 里的 6、7、F 其实就是控制字的不同状态组合,最关键的几位是启动、使能和方向控制。到这一步,Modbus TCP/IP 的 I/O Scanner 通路就算打通了。

3.5 扩展:通过 SoMove 改 I/O Scanner 地址

如果需要监视更多数据,比如母线电压、输出电流,可以通过 SoMove 编辑 I/O Scanner 内的地址。打开 SoMove 的参数列表,找到 I/O Scanner 配置,把要监视的寄存器地址加到输入映射表里,把要下发的寄存器加到输出映射表里。改完之后,程序里的 NB、RECP、EMIS 必须跟着改。

举例来说,如果输入区从 2 个字扩成 4 个字,READ_VAR 的 NB 要改成 4,RECP 要从 %MW0:2 改成 %MW0:4。如果输出区多了一个加速时间给定,WRITE_VAR 的 NB 要改成 3,EMIS 要改成 %MW10:3。这个对应关系不复杂,但最容易漏改,漏改后数据会整体错位,看着像是通讯数据混乱,实际上是映射长度没对上。

4. 直接读写变频器寄存器:跳过 I/O Scanner,更接近 Modbus 本相

4.1 为什么需要跳过 I/O Scanner

I/O Scanner 方式适合常规控制,但它有一个限制:映射表是固定的,或者说是由 SoMove 侧预先定义的。如果你只想临时读一个状态字、一个故障码,不想去动 I/O Scanner 配置,直接用 READ_VAR 和 WRITE_VAR 对变频器寄存器地址读写反而更灵活。

这种做法的本质是走标准 Modbus 的寄存器地址,不再经过 I/O Scanner 的映射中转。它更接近协议底层,也更能帮助理解 ATV930 的寄存器分布。

4.2 在 SoMove 里设置 Modbus 通讯格式

跳过 I/O Scanner 之前,需要在变频器侧设置 Modbus 通讯格式。打开 SoMove 的“参数列表”,在通信配置里找到 Modbus 相关的设置项,把变频器 Modbus 地址设置为 3,波特率设置为 19200 bps,格式设置为 8E1,也就是 8 个数据位、偶校验、1 个停止位。

这里有个细节需要注意,8E1 是很多变频器默认使用的 Modbus 串口格式,但 ATV930 在以太网通路上的 Modbus TCP/IP 并不直接受这个串口格式影响。设置它的真正意义在于,当你要在 ADR 里追加从站地址时,变频器的 Modbus 从站身份必须有一个明确编号,而地址 3 就是这个编号。同时,如果你后续需要通过网关转串口,或者用其他 Modbus 主站访问,19200 8E1 也是一个兼容性很好的配置。

4.3 修改功能块参数:ADDM 追加从站地址,NUM 指向寄存器

程序侧只有两处必须改。第一处是 ADR,第二处是 NUM、NB、RECP、EMIS。

ADR 需要从 ADDM('0.0.3{192.168.1.99}') 改成 ADDM('0.0.3{192.168.1.99}3'),也就是在 IP 地址后面直接追加一个数字 3,这个 3 就是刚才在 SoMove 里设置好的变频器 Modbus 地址。很多第一次上手的人会漏掉这个后缀,结果就是功能块全部显示通讯超时,因为主站拿不到准确的从站单元地址。

(* 直接读变频器 3201 状态字,放到 %MW0 *) READ_VAR( EN := %S6, ADR := ADDM('0.0.3{192.168.1.99}3'), (* 末尾的 3 是 Modbus 从站地址 *) OBJ := '%MW', NUM := 3201, (* ATV930 状态字寄存器地址 *) NB := 1, RECP := %MW0:1, GEST := %MW100:4 ); (* 直接写 8501 控制字和 8502 给定转速 *) WRITE_VAR( EN := %S6, ADR := ADDM('0.0.3{192.168.1.99}3'), OBJ := '%MW', NUM := 8501, (* 控制字起始地址,8502 是给定转速 *) NB := 2, EMIS := %MW10:2, GEST := %MW104:4 );

读块里,NUM 改成 3201,这是 ATV930 的状态字寄存器地址,NB 改成 1,只读一个状态字,RECP 改成 %MW0:1,把读到的值单独放到 %MW0。写块里,NUM 改成 8501,因为 8501 是控制字寄存器,8502 紧跟其后是频率给定寄存器,所以 NB 保持 2,EMIS 保持 %MW10:2,用 %MW10 存放控制字、%MW11 存放转速给定。

通过动态数据表修改 %MW11 为 1500,再把 %MW10 按 6、7、F 的顺序修改,同样能实现变频器启动和提速,现象与 I/O Scanner 方式完全一致。区别在于,这次的数据不是经过映射表自动搬移的,而是功能块直接对寄存器发起的读写请求。

4.4 两种方式的取舍

特性I/O Scanner 方式直接寄存器方式
配置复杂度低,映射表自动同步中,需要熟悉寄存器地址
数据刷新方式主站周期轮询功能块按 EN 触发
适合场景常规启停、速度给定、持续监视读故障码、读自定义参数、临时调试
扩展性修改映射后要同步修改程序改 NUM 即可,无需动映射表
排错难度地址错位时不明显从站地址漏写时直接超时

我一般会这样选:做正式项目用 I/O Scanner,因为它有确定的刷新周期,数据一致性更好;做临时诊断或者查故障码,用直接寄存器方式,因为只要知道寄存器地址,读起来更直接,不需要去动变频器的映射配置。

5. 避坑与排查:以太网通讯实验中最常见的五个翻车点

5.1 插错 RJ45 口,变频器面板无响应

现象:网线插到变频器后,SoMove 搜索设备一直超时,控制面板也不亮。

原因:ATV930 上有三个 RJ45,1 号口是控制面板专用,4 号口是 Modbus RTU,只有 2 号的两个端口才是以太网通讯口。插到 1 号口后,网口链路根本不会建立。

解决:把网线换到 2 号口的任意一个端口即可。判断方法是看对应 RJ45 的指示灯是否亮起,不亮就说明插得不对。

5.2 IP 配置后给变频器上电,还是不通

现象:SoMove 里 IP 地址已经配置成 192.168.1.99,断电重新上电后 ping 依然不通。

原因:SoMove 写入参数后没有真正断电,只是点击了停止或者复位按钮。部分网口配置在启动阶段才加载,运行中写入后仍使用旧配置。

解决:断开变频器主电源,等 LED 完全熄灭后重新送电。注意断电要断主回路电源,不是只断控制电源。

5.3 PC 能连 PLC,但 DTM 的变频器节点无法在线修改

现象:PC 通过 Mini USB 连接 PLC 后,功能块可以正常执行,但在 DTM 浏览器里想在线修改 ATV930 的参数一直提示不可用。

原因:DTM 在线编辑需要走以太网通道,Mini USB 只承担编程下载的职责,不能作为 DTM 的在线数据通道。指导书里明确写了,添加 DTM 并在线修改变频器时,PC 和 PLC 必须通过网线连接。

解决:给 PC 加一根网线连到 BME H58 2040 的 RJ45 口,把 PC 网卡固定到 192.168.1.100/24,然后再打开 DTM 浏览器进行在线修改。

5.4 READ_VAR 的 ADDR 一直是 0.0.0,导致通讯超时

现象:功能块没有报语法错误,但每次执行都超时,GEST 管理区里的错误代码反正不是正常值。

原因:M580 自带以太网口的软件地址是 0.0.3,不是按机架加插槽推测出来的 0.0.0。ADR 如果填成 ADDM('0.0.0{192.168.1.99}'),报文发不出去,CPU 根本找不到对应的网络通道。

解决:把 ADR 改为 ADDM('0.0.3{192.168.1.99}')。如果变频器侧设置了 Modbus 从站地址,还要在 IP 后追加地址数字,比如 ADDM('0.0.3{192.168.1.99}3')。

5.5 普通网线干扰导致运行中偶发掉线

现象:变频器空载时通讯正常,一带负载就会出现偶发的通讯报警,频率不定,重启后又恢复。

原因:实验环境里用的是普通网线,距离近、现场电磁干扰小,问题不明显。但如果在配电柜旁边走线,或者网线跟动力电缆同槽,普通网线的抗干扰能力不够支撑长时间运行。

解决:现场应用按指导书建议换成超六类网线,并且与动力线分开走线槽。同时检查 P C 网卡是否开启了节能模式,有时候掉线不是线的锅,而是网卡节能把链路休眠了。

6. 用 DTM 浏览器把 Modbus 设备变成在线的变量表

前面两章用的都是功能块方式,适合理解协议过程。如果你更关心调试效率,可以用 DTM 浏览器的方式来做,这也是指导书里安排的第二条 Modbus TCP/IP 通路。

在 Control Expert 里点击菜单栏“工具”,在下拉菜单中选择“DTM 浏览器”。在 DTM 浏览器中右键添加一个 Modbus Device 设备,填入名称和 IP 地址 192.168.1.99,协议选 Modbus TCP/IP。添加成功后,DTM 会自动把 ATV930 挂到 M580 的以太网口下面,并生成对应的 I/O Scanner 映射。这个过程不需要手动写 READ_VAR 和 WRITE_VAR,变量是自动生成的,调试时直接在变量表里读写即可。

这个方式最实用的场景是排查故障码。变频器报警后,你需要在 DTM 设备树下找到状态字和故障码寄存器,直接在线查看数值,再对照 ATV930 手册里的寄存器定义来定位故障原因。相比功能块方式,省去了在动态数据表里人肉核对地址的时间。

但 DTM 方式有一个硬性前提,PC 和 PLC 必须通过网线连接。指导书里特别强调了这一点,我在项目里也验证过,只插 Mini USB 时,DTM 里的变频器节点能看到但无法在线操作,功能块的读写却不受影响。这个区别容易让人以为 DTM 坏了,其实只是通道问题。

我个人更推荐把 DTM 方式和功能块方式结合使用:用 DTM 做参数监视、故障排查,用 READ_VAR、WRITE_VAR 做程序里的正式控制逻辑。这样既保留了程序的可读性,又能在调试阶段快速拿到变频器内部数据。

最后分享一个习惯。从那以后我每次做 M580 与 ATV930 的通讯实验,都强制把“端口核对—断电重启—IP 连通性测试”这三件事走一遍,再进程序填功能块参数。顺序不乱,Modbus TCP/IP 基本半小时内能通;顺序乱了,就很容易陷入“哪里都像是对的,哪里都不通”的僵局。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进