2、通信协议基础:OSI七层模型与TCP/IP四层模型、串行通信(RS-232/485)与以太网通信、同步与异步通信

各位好,我是老张。在SCADA这行摸爬滚打十几年,我最大的感触就是——通信协议是系统的命脉。你想想看,现场几百个仪表、PLC、RTU,要是通信出了岔子,整个监控画面就是一片死灰。今天咱们就来啃啃这块硬骨头,把通信协议的基础彻底捋清楚。

2.1 OSI七层模型:通信界的通用语言

OSI七层模型,说白了就是国际标准化组织给通信系统画的一张「施工蓝图」。从上到下分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。每一层只干自己的活,只跟上下层打交道。

我个人习惯把七层模型想象成「快递发货」的过程:

  • 应用层:你下单买东西,这就是应用层。SCADA里的Modbus、DNP3都在这一层。
  • 表示层:把数据翻译成双方都能懂的格式。比如加密、压缩。
  • 会话层:建立和管理通信会话。谁先说话、谁先停,它说了算。
  • 传输层:保证数据可靠到达。TCP就在这里干活。
  • 网络层:负责寻址和路由。IP地址就是它的杰作。
  • 数据链路层:把数据打包成帧,加上MAC地址。以太网交换机主要干这个。
  • 物理层:负责传输比特流。网线、光纤、RS-485线缆都在这一层。

重要提示:实际工程中,我们很少直接操作七层模型。但理解它,能帮你快速定位问题。比如通信时断时续,大概率是物理层或数据链路层的问题;数据乱码,可能是表示层或应用层的问题。

我在项目中遇到过一件事:一个水厂项目,上位机跟PLC通信总是丢包。排查了三天,最后发现是网线水晶头接触不良。你看,物理层的问题,折腾到应用层去了。所以啊,遇到通信故障,先从底层查起。

2.2 TCP/IP四层模型:工业互联网的基石

OSI七层模型太理想化了,实际工业场景里,TCP/IP四层模型才是主流。它把七层压缩成了四层:应用层、传输层、网络层、网络接口层。

为什么工业现场偏爱TCP/IP?原因很简单:

  • 简洁高效:四层结构,开销小,适合实时控制。
  • 跨平台:Windows、Linux、嵌入式系统都能跑。
  • 路由能力强:支持大规模组网,一个SCADA系统管几百个站点没问题。
OSI七层 TCP/IP四层 SCADA常用协议
应用层、表示层、会话层 应用层 Modbus TCP、DNP3、OPC UA
传输层 传输层 TCP、UDP
网络层 网络层 IP、ICMP
数据链路层、物理层 网络接口层 以太网、Wi-Fi、串口

经验之谈:做SCADA系统集成时,我建议优先选TCP/IP协议。原因很简单——调试方便。用Wireshark抓个包,哪一层出问题一目了然。串口通信要抓包,还得专门买个串口分析仪,麻烦得很。

2.3 串行通信:RS-232与RS-485

串行通信,说白了就是一根线传数据,一次传一个比特。虽然速度比不上以太网,但在工业现场,它依然是主力。为什么?因为简单、可靠、抗干扰能力强。

2.3.1 RS-232:老当益壮的点对点通信

RS-232是最早的串行通信标准之一。它的特点是:

  • 点对点:一台设备只能跟一台设备通信。
  • 传输距离短:一般不超过15米。
  • 电压摆幅大:±12V,抗干扰能力还行。

我曾经在一个老旧的水电站项目里,看到PLC还在用RS-232跟触摸屏通信。距离只有3米,跑9600波特率,稳得很。但你要是想拉个100米,那还是趁早换RS-485吧。

2.3.2 RS-485:工业现场的多点通信之王

RS-485是我个人最喜欢的串行通信标准。它的优势很明显:

  • 多点通信:一条总线可以挂32个节点(理论上最多256个)。
  • 传输距离远:1200米没问题,加中继器还能更远。
  • 差分信号:抗共模干扰能力强,适合工业现场。

避坑指南:我曾经在一个污水处理厂吃过亏。RS-485总线挂了15个仪表,通信时好时坏。排查到最后,发现是终端电阻没加。记住:RS-485总线两端必须加120Ω终端电阻,否则信号反射会让你怀疑人生。

RS-485的接线也有讲究:

  • 用双绞线,最好是屏蔽双绞线。
  • A线接正,B线接负,别搞反了。
  • 屏蔽层单端接地,不要两端都接。

2.4 以太网通信:SCADA系统的高速公路

现在的新项目,基本都上以太网了。为什么?速度快、组网灵活、调试方便。100Mbps起步,千兆以太网也常见。而且支持TCP/IP协议栈,跟上位机、云平台对接毫无压力。

工业以太网跟普通办公以太网有啥区别?我总结了几点:

  • 物理层更皮实:工业级交换机支持宽温、防尘、防震。
  • 协议更实时:比如EtherCAT、PROFINET,延迟能做到微秒级。
  • 冗余设计:支持环网、双网冗余,断一条线不影响通信。

嗯,这里要注意:工业以太网虽然好,但也不是万能药。如果现场环境特别恶劣(强电磁干扰、振动大),串口通信反而更靠谱。我见过一个钢厂,以太网交换机被电磁干扰搞得频繁重启,最后老老实实换回了RS-485。

2.5 同步通信与异步通信

这个问题,很多刚入行的朋友容易搞混。我简单说说:

2.5.1 异步通信:靠起始位和停止位对齐

异步通信,说白了就是「各说各的,靠约定对齐」。每个字符前面加一个起始位,后面加一个停止位。接收方靠检测起始位来同步时钟。

  • 优点:实现简单,成本低。
  • 缺点:效率低,因为每个字符都要加额外开销。
  • 典型应用:RS-232、RS-485的Modbus RTU。

2.5.2 同步通信:靠时钟信号对齐

同步通信,发送方和接收方共享一个时钟信号。数据连续传输,没有起始位和停止位。

  • 优点:效率高,适合大数据量传输。
  • 缺点:实现复杂,需要额外的时钟线。
  • 典型应用:SPI、I2C、HDLC。

关键区别:异步通信靠「约定」同步,同步通信靠「时钟」同步。在SCADA系统里,90%的串口通信都是异步的。为什么?因为现场设备时钟很难统一,异步通信更灵活。

我记得有一次调试一个光伏电站的通信系统,逆变器用的是同步通信协议,上位机用的是异步通信。折腾了两天,最后加了一个协议转换器才搞定。所以啊,选型的时候一定要看清楚设备支持的通信方式。

2.6 小结

通信协议基础,说白了就是搞清楚「数据怎么传、传多远、传多快」。OSI七层模型帮你理解通信的层次结构,TCP/IP四层模型是实际工程的主力。串行通信适合远距离、抗干扰要求高的场景,以太网通信适合高速、大数据量的场景。同步和异步通信,选哪个取决于你的时钟同步能力和成本预算。

下一章,咱们聊聊Modbus协议——SCADA系统里最常用的通信协议。到时候我会分享一些实战中的调试技巧和踩坑经验,敬请期待。