2、PLC硬件选型与通信接口:主流PLC品牌的Modbus支持情况、RS232/RS485/以太网接口选择

做PLC与Modbus设备通信,第一步就是选硬件。这一步要是走偏了,后面调试能让你怀疑人生。我这些年见过太多人,程序写得漂漂亮亮,结果发现PLC压根不支持Modbus,或者接口类型对不上,最后只能加模块、换方案,工期和预算全打水漂。

所以这一章,咱们就聊聊主流PLC品牌对Modbus的支持情况,以及RS232、RS485、以太网这三种接口到底该怎么选。说白了,就是帮你把硬件选型的坑提前填上。

2.1 西门子PLC的Modbus支持情况

西门子PLC在国内工业现场占有率很高,但它的Modbus支持情况有点「分裂」——不同系列差别很大。

S7-1200系列

S7-1200从固件版本4.0开始,原生支持Modbus TCP。你只需要在TIA Portal里调用MB_CLIENT或MB_SERVER指令就行,不需要额外硬件。我个人习惯用MB_CLIENT做主站,配合一个DB块做数据映射,非常方便。

但要注意,S7-1200的RS485接口是选配的,需要加装CM1241通信模块。这个模块支持Modbus RTU,不过价格不便宜。我在一个水处理项目里用过,当时客户非要省这个模块钱,结果用第三方网关,通信老是掉线,最后还是老老实实加了CM1241。

关键点:S7-1200做Modbus TCP主站/从站都行,但Modbus RTU必须加通信模块。

S7-1500系列

S7-1500的Modbus支持更全面。它本体自带以太网口,Modbus TCP直接可用。而且它的CM PtP模块支持RS232和RS485,Modbus RTU也能搞定。我记得有个汽车零部件产线项目,用了S7-1516做主站,下面挂了20多个Modbus RTU从站(温控器、变频器),跑了一年多没出过问题。

S7-200 SMART系列

这个系列比较特殊。它本体自带一个RS485口,支持Modbus RTU主站和从站。编程时用库指令就行,很简单。但它的以太网口不支持Modbus TCP,只能走西门子自己的S7协议。如果你想用Modbus TCP,得加CP243-1以太网模块。说实话,这个设计有点坑,我建议你直接考虑S7-1200。

西门子系列 Modbus TCP Modbus RTU 需要额外硬件?
S7-1200 支持(固件≥4.0) 支持(需CM1241) RTU需要
S7-1500 支持 支持(需CM PtP) RTU需要
S7-200 SMART 不支持(需CP243-1) 支持(本体RS485) TCP需要

2.2 三菱PLC的Modbus支持情况

三菱PLC在中小型项目中很常见,尤其是FX系列。它的Modbus支持思路和西门子不太一样——三菱更倾向于用专用指令和模块来实现。

FX3U / FX5U系列

FX3U本身不带以太网口,但可以通过FX3U-232ADP或FX3U-485ADP模块扩展RS232或RS485接口。然后使用RS指令(无协议通信)来实现Modbus RTU。说白了,就是自己拼报文、算CRC。嗯,这里要注意,三菱的RS指令是半双工的,你得自己控制收发切换。

FX5U就好多了。它本体自带以太网口,支持Modbus TCP(通过SLMP或专用FB)。而且它的RS485接口也是标配,可以直接用Modbus RTU。我在一个包装机械项目里用过FX5U,下面挂了6台伺服驱动器(Modbus RTU),通信周期5ms,很稳。

我的经验:三菱FX3U做Modbus RTU时,建议用专用功能扩展板(如FX3U-485-BD),比用ADP模块更稳定,而且编程更简单。

Q系列 / L系列

Q系列和L系列属于中大型PLC,Modbus支持很完善。QJ71MB91是专用的Modbus接口模块,支持RTU和ASCII模式。L系列则可以通过以太网模块(如LJ71E71-100)走Modbus TCP。不过这些模块价格不菲,一般用在比较重要的场合。

2.3 欧姆龙PLC的Modbus支持情况

欧姆龙PLC的Modbus支持,我个人觉得是三个品牌里最「省心」的。它的CP系列和NJ/NX系列对Modbus的集成度很高。

CP1H / CP1L系列

CP1H本体自带一个RS485口,支持Modbus RTU主站和从站。你只需要在CX-Programmer里配置一下串口参数,然后调用MB_MASTER或MB_SLAVE指令就行。不需要额外硬件,也不需要自己拼报文。我记得第一次用CP1H做Modbus RTU时,从配置到通信成功只花了半小时,当时还怀疑是不是哪里没设对——结果就是那么简单。

不过CP1H的以太网口是选配的(CP1W-CIF41),而且不支持Modbus TCP,只能走FINS协议。如果你想用Modbus TCP,建议直接上NJ系列。

NJ / NX系列

NJ和NX系列是欧姆龙的旗舰产品,Modbus TCP和RTU都原生支持。NJ的以太网口可以直接做Modbus TCP服务器或客户端。NX系列更灵活,可以通过NX-ECC模块扩展各种通信接口。我在一个半导体设备项目里用过NX1P2,下面挂了30多个Modbus RTU从站(流量计、压力传感器),用NX-ADB模块做RS485转接,通信非常稳定。

欧姆龙系列 Modbus TCP Modbus RTU 特点
CP1H 不支持 支持(本体RS485) 配置简单,无需额外硬件
NJ/NX 支持 支持 集成度高,适合复杂系统

2.4 RS232 / RS485 / 以太网接口选择

接口选型是门学问。选对了,通信稳如老狗;选错了,天天跑现场擦屁股。下面我结合项目经验,说说这三种接口该怎么选。

RS232:短距离、点对点

RS232是串口通信的老前辈了。它的优点是简单、成本低,但缺点也很明显:传输距离短(一般不超过15米),而且只能点对点通信(一个主站只能带一个从站)。

什么时候用RS232?我个人习惯是:当设备就在PLC旁边(比如同一个电柜里),而且只有一台从站设备时,用RS232最省事。我曾经在一个实验室项目里,用RS232连接PLC和一台分析仪器,距离不到3米,跑Modbus RTU,从来没出过问题。

注意:RS232的电压电平是±12V,和TTL电平不兼容。如果你自己焊线,千万别搞混了。我曾经见过有人把RS232直接接到单片机的TX/RX上,结果烧了IO口。

RS485:长距离、多节点

RS485是工业现场的主力接口。它的传输距离可以达到1200米(加中继器还能更远),而且支持多节点(一个主站可以带32个从站,用中继器可以扩展到256个)。

RS485是差分信号传输,抗干扰能力强。我在一个钢铁厂项目里,PLC和变频器之间距离有800多米,用的就是RS485,走Modbus RTU,通信速率9600bps,运行了两年没掉过线。

但RS485有个坑:终端电阻。如果通信线超过100米,或者节点数超过10个,必须在总线两端各加一个120Ω的终端电阻。否则信号反射会导致通信错误。我曾经在一个污水处理项目里,调试了整整两天才发现是终端电阻没加——嗯,从那以后我每次布线都会检查这个。

以太网:高速、灵活

以太网接口(Modbus TCP)是现在的主流选择。它的传输速率高(100Mbps甚至1Gbps),而且可以组网,一个PLC可以同时和几十个设备通信。而且以太网线缆(超五类或六类)成本很低,布线也方便。

什么时候用以太网?我建议:只要条件允许,优先选以太网。尤其是当设备数量多、数据量大、或者需要远程监控时,以太网的优势非常明显。我在一个智能仓储项目里,用了S7-1200做Modbus TCP主站,下面挂了40多个扫码枪和RFID读写器,通信周期10ms,数据吞吐量很大,但从来没出过瓶颈。

选型建议:
  • 设备在同一个电柜内,只有1-2台从站 → RS232
  • 设备分散在车间,距离几十到几百米,从站数量≤32 → RS485
  • 设备数量多、数据量大、需要远程访问 → 以太网(Modbus TCP)

2.5 知识体系图:PLC硬件选型与通信接口

下面这张图总结了本章的核心内容。你可以把它当作选型时的快速参考。

PLC硬件选型与通信接口知识体系 西门子 三菱 欧姆龙 S7-1200 S7-1500 S7-200 SMART FX3U/FX5U Q系列/L系列 CP1H/CP1L NJ/NX系列 通信接口选择 RS232 距离≤15米 点对点通信 RS485 距离≤1200米 多节点(≤32) 以太网 高速(100Mbps+) 灵活组网 选型口诀:近距离点对点用RS232,远距离多节点用RS485, 高速灵活用以太网。品牌选型看具体系列,别想当然。

2.6 避坑指南

最后,分享几个我踩过的坑,希望能帮你省点时间。

我曾经... 在一个项目中选了S7-200 SMART做Modbus TCP主站,结果发现它本体以太网口不支持Modbus TCP,只能走S7协议。最后紧急加了CP243-1模块,工期延误了3天。所以选型前一定要查清楚具体型号的通信能力。
我的建议:如果你不确定某个PLC是否支持Modbus,直接去官网下载该型号的通信手册。别信销售说的「应该支持」——我吃过这个亏。

好了,这一章的内容就到这里。硬件选型是基础,基础打牢了,后面写程序、调通信才能顺风顺水。下一章咱们会聊具体的通信参数配置,包括波特率、数据位、校验位这些,到时候见。


专注资料整理