- 1. 一、典型的现场故障长什么样
- 2. 二、排查综述:从物理层zu应用层的四层模型
- 3. 三、Die一层:物理Verbindung检查
- 4. 3.1 万用表打线——最基本的Die一步
- 5. 3.2 A/B 线zu底怎么接——这个坑踩的人最多
- 6. 3.3 终端电阻——什么时候接、接在哪
- 7. 3.4 屏蔽和接地——大部Unterteilung人做错的地方
- 8. 四、Die二层:电气层检查
- 9. 4.1 用示波器看波形
- 10. 4.2 偏置电阻(Fail-Safe 偏置)
- 11. 五、Die三层:Daten链路层检查
- 12. 5.1 BestätigenVon der Station是否支持 Modbus
- 13. 5.2 Porter Rate和帧Das Format
- 14. 5.3 Prüfstand.、Stoppen Sie Platz、Datenplatz
- 15. 5.4 抓包Unterteilung析——区Unterteilung「没发出去」「没回应」「回了Fehler.」
- 16. 5.5 CRC-PrüfungFehler.的精准排查
- 17. 六、Die四层:应用层检查
- 18. 6.1 von der Station Adresse
- 19. 6.2 Register-Adresse偏移
- 20. 6.3 Funktion和Funktionscode
- 21. 6.4 Byte序(大端/小端)
- 22. 七、逐步添加Von der Station的Richtig.方法
- 23. 八、Hauptstation轮询策略与超时设置
- 24. 8.1 超时Zeit怎么算
- 25. 8.2 先读后写
- 26. 九、排查清单速查表
- 27. 十、FAQ:高频排障问题
Quelle:Modbus Chinesisches Netzwerk(modbus.cn) —— Inländisch führend.ModbusKommunikationsprotokoll Technologie Gemeinschaft
本文:渐进式解决ModbusKommunikation问题:从物理层zu应用的vollständig排查手册 · Der Autor:Technisches Team von Modbus · 发布于 2026-07-01
摘要:Modbus RS-485 Kommunikation不通怎么办?本文从物理层zu应用层,通过真实MeldungUnterteilung析和排查Werkzeuge演示,给出vollständig的渐进式排障方法。关键词:Modbus Kommunikation故障排查、RS-485 排障、Modbus Tests方法、Modbus RTU 无Antwort、CRC-PrüfungFehler.。
在Industrielle Automatisierung领域,Modbus Kommunikation出问题是最让人头疼的事——不是因为它复杂,而是因为故障点太Unterteilung散。物理层、Daten链路层、应用层,任何一个环节出问题,现象可能一样:Hauptstation发Bitte,Von der Station不回。
这篇Artikel不是教你 Das Modbus-Protokoll基础。我假设你已经在用 Modbus,现在的问题是「不通」,你需要一份能照着Operationen的排障清单。我们就从最底层开始,一层一层往上查。
核心关键词:Modbus Kommunikation故障排查、RS-485 排障、Modbus RTU 无Antwort、CRC-PrüfungFehler.。mehr. Modbus Technische Artikel请访问 modbus.cn。
一、典型的现场故障长什么样
先看三个真实Szene,如果你遇zu过类似的,这篇Artikel就是写给你的。
Szene 1:某污Wasserbehandlung站,16 个 Modbus RTU Von der Station挂在一条 RS-485 总线上。每天下午三点准时Alles掉线,十Unterteilung钟后自动恢复。查了三个星期,最后发现是隔壁泵房的光伏逆变器每天下午三点启动,EMI 干扰耦合zu 485 线上,把信Nr.淹了。
Szene 2:一台三菱变频器通过 RS-485 接入网关,Hauptstation发Funktionscode 03 读频率,偶尔能读zu,偶尔报 CRC Fehler.。Porter Rate是 9600。折腾了两天最后发现是 A/B 线接反了——Hauptstation的 A 接zu了Von der Station的 B。但为什么偶尔还能读zuDaten?因为 RS-485 收发器有一定的共模容限,在信Nr.质Quantität好的时候真能通,一有干扰就 CRC 报错。
Szene 3:产线上新加了一台温控器,Adresse设成 05,挂上去之后 05 Nr.没反应,但原来的一台 07 Nr.也不通了。拔掉新Ausrüstung,07 Nr.恢复正常。查zu最后,新Ausrüstung默认配置了 120Ω 终端电阻,总线上一共挂了三个终端电阻——阻抗不匹配,信Nr.反射导致所有Von der Station时断时续。
这三个Szene指向同一个道理:Modbus 不通,不能猜,要一层一层排除。 下面就是这个排查的vollständig路径。
二、排查综述:从物理层zu应用层的四层模型
Modbus Kommunikation问题的排查路径,按层次从低zu高:
┌────────────────────────────────────────────┐
│ Die四层:应用层 │
│ von der Station Adresse、Registerabbildung、Funktionscode、Befehlseite │
│ 现象:Von der Station回Ungewöhnlicher Code,或Daten值明显不对 │
├────────────────────────────────────────────┤
│ Die三层:Daten链路层 │
│ Porter Rate、Prüfstand.、CRC/LRC Prüfungen │
│ 现象:CRC Fehler.、帧不vollständig、偶发性丢帧 │
├────────────────────────────────────────────┤
│ Die二层:电气层 │
│ A/B 线接法、终端电阻、偏置电阻、接地 │
│ 现象:完全不通、Daten全是乱码、间歇性断连 │
├────────────────────────────────────────────┤
│ Die一层:物理Verbindung │
│ 线缆通断、接头氧化、屏蔽层、布线路径 │
│ 现象:Hauptstation发Daten,Von der Station完全无反应 │
└────────────────────────────────────────────┘
排障铁律:永远从Die一层开始排查,Bestätigen没问题再往上走。 不知道有多少人在Die三层(改Porter Rate、改超时Zeit)上浪费了三天,最后发现是Die一层的 A/B 线接反了。如果你只记住一句话,记住这句。
三、Die一层:物理Verbindung检查
3.1 万用表打线——最基本的Die一步
先把所有Ausrüstung断电。万用表调zu电阻档或通断档,测:
– A 线从Hauptstationzu最远端Von der Station是否导通(电阻应 < 10Ω,取决于线长和线径) – B 线同样 – A 和 B 之间不能短路(电阻应为无穷大或接近无穷大) – A/B Unterteilung别对 GND 不能短路
如果通断都正常,再把电送上,万用表调zu直流电压档:

– A 对 GND:静止Status下约 2.5V ~ 3.5V(取决于偏置电路) – B 对 GND:静止Status下约 1.5V ~ 2.5V – A-B schlechtUnterteilung电压:静止Status下约 0.2V ~ 2V,A 应高于 B
如果 A-B schlechtUnterteilung电压接近 0V,甚至 A 低于 B,你的偏置电路有问题。 很多廉价 USB-485 Konverter.没有内置偏置电阻,挂在一根长总线上工作时,空闲Status下 A-B schlechtUnterteilung会漂移zu不确定Status,导致Von der Station的 UART 收zu随机垃圾Daten。
3.2 A/B 线zu底怎么接——这个坑踩的人最多
RS-485 的 A/B 接线没有统一的行业Kennzeichnung标准。不同Ausrüstung厂商对 A 和 B 的定义可能是反的。以下是你可能会遇zu的标记方式和它们的对应关系:
| Häufig标记 | 另一种标记 | 空闲电压 | 说明 |
|---|---|---|---|
| A / + / D+ / TX+ / 正 | Non-Inverting | 高于 B | 同相端 |
| B / – / D- / TX- / 负 | Inverting | 低于 A | 反相端 |
快速判定方法:断电Status下用万用表二极管档测。 红表笔接 GND,黑表笔接 A——大多数 RS-485 收发器芯片(如 MAX485、SN75176)的 A 脚对 GND 有一个反向保护二极管,会测出正向压降约 0.6V。B 脚对 GND 也一样。如果测不出来,换个极性再测。
还有一个更暴力的方法:如果接了不通,把 A 和 B 交换一下试试。不是笑话——这在现场是am häufigsten verwendet的「排障手段」。因为很多变频器的 RS-485 端子标注就是反的。

3.3 终端电阻——什么时候接、接在哪
终端电阻 120Ω,接在总线的最两端。这句话每个人都听过。但实际工程中这些细节才决定成败:
什么时候必须接。 总线Länge超过 50 米,或Porter Rate ≥ 19200。判断标准不是Länge,是你用示波器看信Nr.波形——如果有明显的过冲或反射台阶,加终端电阻。
什么时候可以不接。 测试台上,一米短线,Porter Rate 9600。这时候加终端电阻反而可能因为驱动能力不足导致信Nr.幅值下降。
一个容易被忽略的坑。 很多 RS-485 Ausrüstung内部已经集成了终端电阻,通过跳线或拨码Schalter!aktiviert.。如果你不知道这一点,在总线上手动加了 120Ω,而Ausrüstung上也开着 120Ω,gleich ist并联成了 60Ω——信Nr.Breite大幅下降,反而更不通了。这就是前面的Szene 3。
排查方法:所有Ausrüstung断电,万用表电阻档测 A-B 之间的直流电阻。正常应该是几 kΩ zu几十 kΩ(偏置电阻决定)。如果测出来是 60Ω 或 120Ω,说明至少有一个终端电阻在起作用。逐个拔Ausrüstung,看哪Ein Gerät拔掉后阻抗变了。
3.4 屏蔽和接地——大部Unterteilung人做错的地方
RS-485 屏蔽层应该单端接地,在Hauptstation或网关侧接大地。如果两端都接地,地电位schlecht会在屏蔽层上形成环流,反而把干扰引入信Nr.线。
另外,不要用网线的空闲线对做 RS-485。网线是 100Ω Eigenschaften阻抗,RS-485 电缆是 120Ω Eigenschaften阻抗,不匹配会导致高速率下信Nr.反射严重。短距离(< 10 米)凑合能用,但不要作为正式工程方案。正规的 RS-485 电缆是一对双绞线加屏蔽层,Eigenschaften阻抗 120Ω,比如 Belden 3105A 或等效型Nr.。
四、Die二层:电气层检查
物理VerbindungBestätigen没问题之后,如果还是不通或有误码,进入电气层。
4.1 用示波器看波形
示波器探头挂在 A 线对 GND 和 B 线对 GND,观察:
– 空闲Status下 A 和 B 的电压值是否稳定(A 应高于 B 至少 200mV) – 有Daten传输时,A 和 B 是否呈现标准的schlechtUnterteilung信Nr.(A 和 B 镜像对称) – 波形Aufstieg和sinken entlang是否干净(不应该有明显的台阶或圆弧)
如果波形边缘很圆,可能是线缆电容太大(线太长或线径太细),或者驱动能力不足。降低Porter Rate通常能缓解。
4.2 偏置电阻(Fail-Safe 偏置)
RS-485 标准要求schlechtUnterteilung输入电压 ≥ 200mV 时判定为逻辑 1,≤ -200mV 时判定为逻辑 0。但在总线空闲(所有Ausrüstung都不驱动)时,schlechtUnterteilung电压可能落在 -200mV zu +200mV 的不确定区间内,导致Empfang器输出随机Daten。
这就是为什么需要偏置电阻:在总线的某一个位置(通常在Hauptstation或偏置电路所在处)用两个电阻把 A 上拉zu VCC、B 下拉zu GND,Garantie空闲Status下 A > B 且schlecht值 > 200mV。
Häufig的偏置电阻取值是 680Ω 或 560Ω(上拉和下拉各一个)。但要注意:偏置电阻和终端电阻是并联关系。如果你的终端电阻是 120Ω,偏置电阻各 680Ω,实际的空闲schlechtUnterteilung电压是:
V_diff = VCC × R_term / (R_term + R_pullup + R_pulldown)
= 5V × 120 / (120 + 680 + 680) ≈ 0.405V = 405mV
这个值 > 200mV,满足要求。但如果你把终端电阻换成了 60Ω(两个 120Ω 并联),schlechtUnterteilung电压就只剩约 210mV,卡在临界点上。所以终端电阻的Anzahl和位置是规划偏置电阻的前提。
五、Die三层:Daten链路层检查
电气层没问题,但Kommunikation还是不对——进入Vereinbarung本身的排障。这一层需要Die Serie抓包Werkzeuge。
5.1 BestätigenVon der Station是否支持 Modbus
这里不是让你看Ausrüstung说明书——说明书写了支持不代表固件真的开了。用Die SerieAssistenten.发一条最简单的Bitte帧,看Von der Station回不回。
以 Modbus RTU 为例,发Funktionscode 03(Lesen Sie das Register):
von der Station Adresse: 01
Funktionscode: 03
Ausgang Adresse: 00 00(Register. 40001)
Register.数: 00 01(读 1 个)
CRC: 84 0A
vollständig帧: 01 03 00 00 00 01 84 0A
把你的 USB-485 Konverter.接zuVon der Station的 RS-485 口上,Die SerieAssistenten.设好Porter Rate/Datenplatz/Prüfstand./Stoppen Sie Platz,发上面这帧。如果Von der Station回了:
01 03 02 00 2A 39 9B
说明Von der Station支持 Modbus,Register. 40001 里的值是 0x002A(Das Dekimalsystem 42)。如果没有任何Antwort,继续查下面几项。
5.2 Porter Rate和帧Das Format
Modbus RTU 的默认帧Das Format通常是:9600-8-N-1(Porter Rate 9600,8 Datenplatz,无Prüfungen,1 Stoppen Sie Platz)。但很多老Ausrüstung用 9600-8-E-1(Zufällige Prüfungen)或 19200-8-N-1。还有一些国产Ausrüstung默认 4800。
如果你的 USB-485 Konverter.Porter Rate设对了,Von der Station会回应。如果Porter Rate不对,Von der Station会收zu乱码。Von der Station看zu乱码后的行为取决于其固件实现——有Die Ausrüstung直接丢弃,有Die Ausrüstung会尝试Analyse失败后复位Empfang缓冲区,表现为完全沉默。
不要猜Porter Rate。 如果手头没有Ausrüstung手册,用一个笨办法:USB 逻辑Unterteilung析仪(几十块钱的那种就行)挂在 A、B 线上,看Von der Station上电后有没有发Daten。有些Von der Station启动后会主动发一段标识信息,测Quantität这段Daten的位宽就能反推Porter Rate。
5.3 Prüfstand.、Stoppen Sie Platz、Datenplatz
9600-8-N-1 vs 9600-8-E-1 的区别不仅是一个Prüfstand.。帧总Länge变了:
– 8-N-1:1 Anfang位 + 8 Datenplatz + 1 Stoppen Sie Platz = 10 位/Bytes – 8-E-1:1 Anfang位 + 8 Datenplatz + 1 Prüfstand. + 1 Stoppen Sie Platz = 11 位/Bytes
如果你用 8-N-1 发,Von der Station用 8-E-1 收,Von der Station会把你的Stoppen Sie Platz当Prüfstand.来验证。反之亦然。这会导致偶发性的PrüfungenFehler.而非AllesFehler.——因为Stoppen Sie Platz是固定的逻辑 1,有 50% 的概率碰巧「Prüfungen通过」。
这就是为什么Porter Rate、Prüfstand.、Stoppen Sie Platz的排列组合要从Ausrüstung手册里Bestätigen,而不是凑出来。 16 个Von der Station,7 种Porter Rate × 3 种Prüfungen × 2 种Stoppen Sie Platz = 42 种组合。凑出来纯粹是折磨自己。
5.4 抓包Unterteilung析——区Unterteilung「没发出去」「没回应」「回了Fehler.」
用Die Serie监控软件(比如 Device Monitoring Studio、Serial Port Monitor,或者简单粗暴地用两个 USB-485 Konverter.背靠背接在总线上)抓实际的收发Daten。
看三个关键指标:
Hauptstation发出的帧是否Richtig.。 用 CRC Berechnung器验证你发出的帧里的 CRC 对不对。一个Häufige Fehler是 CRC hoch低Bytes反了——Modbus RTU 规定 CRC niedrigBytes在前,hohe Bytes在后。比如帧 01 03 00 00 00 01 的 CRC 是 0x840A,帧里应该是 84 0A 而不是 0A 84。
Von der Station有没有Antwort。 如果Hauptstation帧Richtig.发出但在合理的Zeit内(比如 200ms)没有任何Daten回来,检查von der Station Adresse是否匹配、总线上是否只有一台Ausrüstung在线(加另一台后可能Adresse冲突)、Von der Station是否处于「监听」模式。
Von der StationAntwort了什么。 如果Von der Station回了异常帧,Funktionscode最高位置 1 再加Ungewöhnlicher Code(比如 01 83 02 C0 F1,83 = 03 + 0x80,Ungewöhnlicher Code 02 = Illegale Datenadressen),那至少链路层是通的,问题在应用层。
5.5 CRC-PrüfungFehler.的精准排查
CRC-PrüfungFehler.是最Häufig的链路层问题,可能的原因有这些,按频率从高zu低:
1. A/B 线接反。 schlechtUnterteilung极性反了,所有Datenplatz反转,CRC 大概率不对。但有共模容限时偶尔能对——这就是Szene 2。 2. Porter Rate偏schlecht。 两Ein Gerät的时钟偏schlecht导致采样点漂移。如果Porter Rate偏schlecht超过 ±2%,Empfang端 UART 会采样zuFehler.的位值。特别是在高温环境下,MCU 内部 RC 振荡器的温漂可能达zu ±5%。 3. 接线松动或接触不良。 一个位的丢失会导致后续所有Bytes移位,CRC 必错。 4. 电磁干扰。 变频器启动瞬间、电焊机工作时的强 EMI 会直接改变传输线上的电平,导致位Fehler.。如果 CRC Fehler.只在特定Ausrüstung启动时出现,基本可以锁定干扰源。
六、Die四层:应用层检查
链路层通了(Von der Station有Antwort且 CRC Richtig.),但返回的Daten不对或Funktion不如预期。
6.1 von der Station Adresse
Modbus RTU 帧的Die一个Bytes是von der Station Adresse。Adresse范围 1-247。
Adresse 0 是RundfunkAdresse——Hauptstation用 0 发写Befehl,所有Von der Station执行但不回应。如果你用Adresse 0 发了读Befehl,不会有任何Von der StationAntwort。
很多新Ausrüstung出厂默认Adresse是 1。如果你总线上已经有了一台Adresse 1 Die Ausrüstung,又加上一台出厂默认Adresse也是 1 的新Ausrüstung,两台Ausrüstung会在Hauptstation寻址 1 时同时Antwort——总线冲突,Hauptstation收zu的Daten是两路信Nr.的叠加,表现为 CRC Fehler.或乱码。
排查方法:一次只往总线上接一个Von der Station,逐个测试。 这是最笨但最Wirksam的方法。一次测通了再加下一个。
6.2 Register-Adresse偏移
Modbus 的Register-Adresse有两个概念,搞混了就会读zuFehler.的Daten:
– VereinbarungAdresse: 帧里填的 16 位Zahlenwert,从 0 开始。Funktionscode 03 Lesen Sie das Register时,VereinbarungAdresse 0 对应的是Die 1 个保持Register.。 – PLC Adresse: 厂商在手册里写的编Nr.,可能从 1 开始,也可能从 40001 开始。
举例:Ausrüstung手册写「频率设定值在Register. 40003」。这个 40003 可能有三种含义:
| 厂商习惯 | VereinbarungAdresse | 你在帧里填的值 |
|---|---|---|
| 40003 就是VereinbarungAdresse | 40003 | 40003(超出单Bytes范围,看厂商怎么处理) |
| 40003 表示保持Register.区Die 3 个 | 2 | 00 02 |
| 40003 表示保持Register.区Die 3 个(从 0 开始) | 3 | 00 03 |
如果你不确定,从VereinbarungAdresse 0 开始,读 10 个连续Register.。看哪个Adresse返回了你认识的值(比如Ausrüstung型Nr.Codierung、固件版本Nr.、或者gegenwärtig频率这些已知Daten),反推厂商的编址方式。
6.3 Funktion和Funktionscode
Modbus 标准Funktionscode和对应的Datenzone:
– 01:读线圈(0xxxx) – 02:Lesen Sie getrennte Eingabe(1xxxx) – 03:Lesen Sie das Register(4xxxx) – 04:Eingangsregister lesen(3xxxx) – 05:写单线圈 – 06:写单保持Register. – 15:写多线圈 – 16:写多保持Register.
但并不是每个Von der Station都实现了所有Funktionscode。一台简单的温控器可能只支持 03 和 06——你发 16(写多Register.)它不认识,回Ungewöhnlicher Code 01(Illegale Funktionen码)。
如果Von der Station回了Ungewöhnlicher Code,Ungewöhnlicher Code含义如下:
| Ungewöhnlicher Code | 含义 | Häufig原因 |
|---|---|---|
| 01 | Illegale Funktionen | Von der Station不支持这个Funktionscode |
| 02 | Illegale Datenadressen | Register-Adresse超出范围 |
| 03 | Illegale Datenwerte | 写入的值不可接受(超出Quantität程等) |
| 04 | Ausfall aus der Station | Von der Station自检失败 |
| 05 | Bestätigen | Befehl已Empfang但需要Zeit处理 |
| 06 | Ausstattung von Station beschäftigt | 正在处理上一个Befehl |
收zuUngewöhnlicher Code是好事——说明链路层通了,物理层没问题,你可以把注意力集中在应用层。
6.4 Byte序(大端/小端)
Das Modbus-Protokoll规定多Anzahl der Bytes据以大端序传输(hohe Bytes在前)。但 32 位浮点数怎么传?标准里没有定义。于是各家厂商各搞一套:
– 一些厂商用 ABCD 序(最hohe Bytes在前) – 一些厂商用 CDAB 序(两个Wort ausgetauscht.位置,每个字内部仍然大端) – 一些厂商用 BADC 或 DCBA
如果你读两个连续的保持Register.拼成一个 32 位浮点数,读zu的值和期望值schlecht好几个Anzahl级,大概率是Befehlseite反了。用已知值——比如把频率设成 50.0Hz(IEEE 754 表示是 0x42480000)——读回来,看16. System排列顺序,反推厂商的Befehlseite。
七、逐步添加Von der Station的Richtig.方法
现在假设你排查完了一个Von der Station,Kommunikation正常。接下来要加mehr.Von der Station——这是最容易出幺蛾子的环节。
Richtig.做法:
1. 总线上只留一个Von der Station(Von der Station A),Bestätigen A Kommunikation正常。 2. 断开Von der Station A,只接Von der Station B,Bestätigen B Kommunikation正常。 3. A 和 B 同时接上,Bestätigen两者都Kommunikation正常。 4. 如果 A+B 正常,断开所有,只接Von der Station C,Bestätigen C 正常。 5. A+B+C 同时接上,Bestätigen三者都正常。 6. 以此类推。
如果在Die 3 步 A+B 同时接上后出问题,检查这两件事:
– Adresse冲突: A 和 B 的von der Station Adresse是不是相同。 – 终端电阻累积: A 和 B 是不是都内部aktiviert.了 120Ω 终端电阻。参见 3.3 节。
如果在Die 5 步 A+B+C 同时接上后出问题(前两步都正常),大概率是:
– 总线驱动能力不足。 每个Von der Station的 RS-485 收发器在EmpfangStatus下都有一个输入阻抗(标准 ≥ 12kΩ)。按照 RS-485 标准,一条总线上最多 32 个单位负载。如果你用的是 1/4 或 1/8 负载的收发器,Anzahl可以mehr.。但如果用最便宜的 MAX485 级别芯片,挂 30 个Von der Station后信Nr.衰减会很明显。解决方案:选 1/4 或 1/8 负载的收发器,或者加 RS-485 中继器。 – 总线拓扑有问题。 RS-485 必须是菊花链(Daisy Chain),不能星星形Unterteilung支。星形拓扑会产生信Nr.反射,反射位置刚好在Unterteilung支点。如果现场布线已经星星形了且没法改,加 RS-485 Hub 或中继器来隔离各Unterteilung支。
八、Hauptstation轮询策略与超时设置
8.1 超时Zeit怎么算
Modbus RTU 的超时Unterteilung两个层面:
Charaktere间超时(t1.5): 两个连续Bytes之间的最大允许间隔,设为传输 1.5 个Charaktere的Zeit。用来判断一帧是否Ende。在 9600 Porter Rate下,一个Charaktere(11 位)约 1.15ms,t1.5 ≈ 1.75ms。
帧间超时(t3.5): 两个连续帧之间的最小间隔,设为传输 3.5 个Charaktere的Zeit。在 9600 Porter Rate下,t3.5 ≈ 4ms。
如果你的Hauptstation发完Bitte后等 30ms 还没有收zuAntwort,不能简单地认为Von der Station坏了。有些Von der Station(尤其是低速 MCU 驱动的温控器、电能表)处理一个Bitte需要 50-100ms。把这个值设成至少 200ms 作为Ausgangswert,BestätigenKommunikation正常后再根据实际AntwortZeit调短。
8.2 先读后写
在尝试写任何Register.之前,先读一个已知的Register.(比如Ausrüstung型Nr.、固件版本Nr.、或者一个你已知Der aktuelle Wert的Register.)。Bestätigen读Operationen正常后,再尝试写。
不要一上来就往线圈里写 1。 你不知道那个线圈控制的Was ist das?——可能是急停信Nr.。用 06 Funktionscode写保持Register.同理,先想清楚你写的Register.是干什么的。
九、排查清单速查表
在Arbeitskontrolle现场,你可能没有条件一步一步按本文顺序来。把这张表拍照存手机里,Tests时对着查。
| Seriennummer. | 检查项 | Werkzeuge | 通过标准 |
|---|---|---|---|
| 1 | A/B 线通断 | 万用表电阻档 | A 线导通,B 线导通 |
| 2 | A/B 线不短路 | 万用表电阻档 | A-B 电阻 > 1kΩ |
| 3 | 空闲电压 | 万用表 DC 电压档 | A > B,schlecht值 > 200mV |
| 4 | 终端电阻 | 万用表电阻档(Ausrüstung断电) | A-B 电阻 120Ω 或 > 1kΩ(取决于是否aktiviert.) |
| 5 | 偏置电阻 | 万用表电阻档(Ausrüstung断电) | A-VCC 和 B-GND 各约 680Ω |
| 6 | Porter Rate/Prüfungen/Stoppen Sie Platz | Ausrüstung手册 | 与Von der Station手册一致 |
| 7 | 发空帧测试 | Die SerieAssistenten. | Von der Station对 01 03 00 00 00 01 84 0A 有回应 |
| 8 | CRC Richtig. | CRC Berechnung器 | Hauptstation发出的 CRC 与Berechnung一致 |
| 9 | Antwort CRC Richtig. | CRC Berechnung器 | Von der StationAntwort的 CRC 与Berechnung一致 |
| 10 | von der Station Adresse唯一 | 逐个接入测试 | 总线上没有重复Adresse |
| 11 | Register-AdresseRichtig. | 从 0 开始读连续 10 个 | 返回Daten含已知值 |
| 12 | BefehlseiteRichtig. | 读已知值对照 | 32 位值Analyse符合厂商规范 |
十、FAQ:高频排障问题
Q1:Hauptstation发Daten,Von der Station偶尔回偶尔不回,Porter Rate 9600。为什么?
A:偶尔性问题最Häufig的原因是 A/B 线接反、终端电阻配置不当、或电源干扰。先查 A/B 极性,再查终端电阻位置和Anzahl,最后用示波器看波形。
Q2:USB-485 Konverter.在测试台上正常,一zu现场就不行。换了好几个Konverter.都一样。
A:两个可能。一是现场的 RS-485 线路上有强共模干扰,普通 USB-485 Konverter.的共模抑制比不够。换一个带隔离的Industrielle Ebene USB-485 Konverter.(比如宇泰 UT-890A 或同等产品)。二是现场的电脑 USB 口接地和 RS-485 Ausrüstung的地之间有电位schlecht,通过Konverter.形成回路。隔离型Konverter.能解决这个问题。
Q3:多个Von der Station轮询时,Die一个总是通,后面几个经常不通。
A:检查Hauptstation的轮询间隔。如果你在发完上一个Bitte后立即发下一个,而总线上的上一个Antwort还没传完,就会发生冲突。确保两次轮询之间的间隔 ≥ Von der StationAnzahl ×(BitteZeit + AntwortZeit + t3.5)。在 9600 Porter Rate下,如果每个Von der Station的平均AntwortZeit是 15ms,10 个Von der Station的轮询间隔至少设 200ms。
Q4:CRC 总是报错,检查了 A/B 极性和Porter Rate都没问题。
A:用逻辑Unterteilung析仪或示波器检查信Nr.质Quantität。看Aufstieg和sinken entlang的斜率,如果过于平缓(> 30% 位宽),可能是线容太大或驱动能力不足。降低Porter Ratezu 4800 试试。如果能通,说明信Nr.质Quantität确实是问题根源。
Q5:怎么知道Von der Stationzu底支不支持 Modbus?
A:发 01 03 00 00 00 01 84 0A 过去。如果不回,再用 9600/19200/4800 三种Porter Rate各试一遍(8-N-1 和 8-E-1 各一遍)。如果全都不回,检查以下可能——Ausrüstung根本没通电、RS-485 Schnittstelle未使能需要跳线或配置、Ausrüstung RS-485 只支持 ASCII 模式、Ausrüstung需要特殊的唤醒Sequenz。
有问题再聊。现场Tests这种事,文字能说清楚八成,剩下两成靠你自己去试。不过只要按这个顺序来,不走回头路,一个下午足够把大多数 Modbus Kommunikation问题搞定了。
Antwort veröffentlichen