什么是ModBus TCP?
ModBus TCP是一种基于TCP/IP协议的工业网络通信协议,常用于工业自动化和控制系统。它是ModBus协议的一个变种,ModBus协议最初由Modicon(现在是施耐德电气的一部分)在1979年开发。
以下是ModBus TCP的一些主要特征:
-
基于TCP/IP:ModBus TCP使用以太网和TCP/IP协议进行通信,这使得它能够在现有的以太网络基础设施上运行,具有高传输速度和广泛的兼容性。
-
客户端-服务器模型:ModBus TCP采用客户端-服务器模型。客户端发送请求,服务器处理请求并返回响应。客户端和服务器之间的通信通过TCP端口502进行,这是ModBus TCP的默认端口。
-
数据表示:ModBus协议使用简单的数据表示方法,支持多种数据类型,如位(线圈和离散输入)、16位寄存器(保持寄存器和输入寄存器)。这些数据类型被映射到以太网帧中进行传输。
-
应用层协议:ModBus TCP位于OSI模型的应用层,其消息结构与传统的ModBus RTU(基于串行通信)类似,只是在以太网上传输。
-
无缝集成:由于ModBus TCP与ModBus RTU共享相同的功能码和数据格式,它们可以在一个混合网络中无缝集成,使得现有的ModBus设备可以轻松过渡到以太网络。
TCP/IP协议
TCP/IP(传输控制协议/互联网协议,Transmission Control Protocol/Internet Protocol)是一组网络通信协议,用于在计算机网络中实现数据传输和通信。TCP/IP协议族是互联网和大多数局域网(LAN)所使用的基础协议。以下是TCP/IP协议的一些关键概念和组成部分:
1. TCP/IP 协议模型
TCP/IP协议模型分为四个层次,每一层都有其特定的功能:
-
应用层(Application Layer):
- 提供用户直接使用的网络服务,如HTTP(用于网页浏览)、FTP(文件传输)、SMTP(电子邮件传输)、DNS(域名解析)等。
-
传输层(Transport Layer):
- 负责端到端的数据传输和流量控制。
- TCP(Transmission Control Protocol):提供可靠的、面向连接的数据传输,确保数据按顺序到达且无错误。
- UDP(User Datagram Protocol):提供无连接的、尽力而为的数据传输,适用于需要快速传输且容忍丢包的应用,如视频流和在线游戏。
-
网络层(Internet Layer):
- 负责数据包在网络中的路由选择和转发。
- IP(Internet Protocol):是核心协议,负责将数据包从源地址传送到目标地址。IP地址标识网络上的设备。
- ICMP(Internet Control Message Protocol):用于发送错误消息和网络诊断信息,如ping工具。
-
链路层(Link Layer):
- 负责在物理网络媒介上传输数据帧。
- 包括以太网、Wi-Fi等具体的物理和数据链路层协议。
2. TCP/IP 协议的工作原理
TCP(传输控制协议)
- 连接建立:TCP使用三次握手建立连接,确保双方都准备好发送和接收数据。
- 数据传输:数据被分割成小的数据包(段),每个段都有一个序列号。TCP确保所有段按序到达,重传丢失的段,并通过校验和检查数据完整性。
- 连接终止:通过四次握手终止连接,确保所有数据都被成功传输。
IP(互联网协议)
- 路由选择:IP负责根据目标IP地址选择最佳路径,将数据包从源地址传送到目标地址。
- 分片和重组:当数据包超过网络MTU(最大传输单元)时,IP会将其分片传输,并在目标处重新组装。
3. TCP/IP 协议的优势
- 互操作性:TCP/IP是一个开放的标准协议,广泛支持多种硬件和操作系统,确保不同设备间的互操作性。
- 可伸缩性:TCP/IP可以支持从小型局域网到全球互联网的各种规模的网络。
- 可靠性:TCP协议提供了可靠的数据传输机制,确保数据在不丢失、不重复的情况下传输。
- 灵活性:通过分层设计,TCP/IP协议可以适应各种不同的网络技术和应用需求。
总之,TCP/IP协议是现代计算机网络和互联网的基础,它提供了一个标准化的框架,使得不同设备和系统之间能够高效、可靠地进行通信。
客户端-服务器模型
客户端-服务器模型(Client-Server Model)是一种网络架构模型,其中任务或工作量在服务提供者(服务器)和服务请求者(客户端)之间分配。该模型广泛应用于网络和分布式计算中。以下是该模型的基本概念和工作原理:
基本概念
-
客户端(Client):
- 客户端是发起请求的实体,可以是计算机、应用程序或设备。客户端向服务器请求资源或服务,并处理服务器返回的响应。
- 客户端通常具有用户界面,允许用户与系统进行交互。
-
服务器(Server):
- 服务器是响应请求的实体,通常是高性能计算机或专门的软件程序。服务器处理客户端的请求,执行必要的计算或操作,并将结果返回给客户端。
- 服务器可以提供多种服务,如文件存储、数据库访问、网页服务等。
工作原理
-
请求和响应:
- 客户端通过网络向服务器发送请求。请求包含所需服务的详细信息,如资源地址、参数等。
- 服务器接收到请求后,处理请求并生成响应。响应包含所需的数据或操作结果,然后通过网络发送回客户端。
-
连接管理:
- 客户端和服务器之间可以通过多种方式建立连接,常见的有短连接和长连接。
- 短连接:每次请求响应完成后,连接即关闭。如HTTP/1.0协议。
- 长连接:连接在多个请求响应之间保持打开状态,提高效率。如HTTP/1.1及其后的版本。
优势和应用
优势
-
分工明确:
- 服务器专注于提供和管理资源或服务,客户端专注于用户交互和请求发起。
- 资源集中管理,便于维护和更新。
-
可扩展性:
- 服务器可以集中处理大量请求,通过添加更多服务器实现系统的水平扩展。
- 客户端数量增加时,不需要修改服务器端的设计,只需增加硬件资源即可。
-
安全性:
- 服务器可以集中管理安全策略和数据保护措施,提高系统的整体安全性。
应用
-
Web应用:
- 浏览器(客户端)向Web服务器发送请求,服务器返回网页内容。
- 例如,用户访问网站时,浏览器发送HTTP请求,Web服务器处理请求并返回HTML页面。
-
电子邮件:
- 邮件客户端(如Outlook、Gmail)向邮件服务器(如SMTP、IMAP服务器)发送和接收电子邮件。
- 服务器存储和管理邮件,客户端提供用户界面进行邮件操作。
-
文件共享:
- 客户端通过文件传输协议(如FTP)向文件服务器请求下载或上传文件。
- 服务器管理文件存储和访问权限。
-
数据库访问:
- 应用程序(客户端)向数据库服务器发送SQL查询请求,服务器处理查询并返回结果。
- 例如,企业内部系统查询客户数据。
图示
Client Server
+----------------+ +----------------------+
| User Interface| <---> | Application Services |
| | <--- | |
| | ---> | |
+----------------+ +----------------------+
在客户端-服务器模型中,客户端和服务器通过网络进行通信,完成任务的分配和协作。这个模型在现代计算中广泛应用,支持从简单的网页浏览到复杂的企业级应用系统。
OSI(开放系统互连,Open Systems Interconnection)模型是一个标准化的网络通信框架,旨在使不同系统之间的互连和通信更加顺畅。OSI模型由国际标准化组织(ISO)在1984年制定,并分为七个层次,每个层次都有特定的功能和协议。以下是OSI模型的七层结构及其功能:
OSI 模型的七层结构
-
物理层(Physical Layer):
- 功能:负责在物理媒体上发送和接收原始的比特流(0和1)。包括物理连接、信号传输、比特同步等。
- 协议和设备:网线、光纤、电缆、集线器、网络接口卡(NIC)。
-
数据链路层(Data Link Layer):
- 功能:负责在物理层上提供可靠的数据传输,包括帧的组装、地址命名、错误检测和纠正。
- 子层:逻辑链路控制(LLC)和媒体访问控制(MAC)。
- 协议和设备:以太网、Wi-Fi、交换机、桥接器。
-
网络层(Network Layer):
- 功能:负责路由选择和逻辑地址的管理,将数据包从源节点传送到目的节点。
- 协议和设备:IP(互联网协议)、路由器。
-
传输层(Transport Layer):
- 功能:提供端到端的通信服务,包括数据分段、传输控制、错误检测和纠正、流量控制等。
- 协议:TCP(传输控制协议)、UDP(用户数据报协议)。
-
会话层(Session Layer):
- 功能:管理会话和连接,提供建立、维护和终止通信会话的机制。
- 功能:会话管理、同步、对话控制。
-
表示层(Presentation Layer):
- 功能:负责数据的格式化、编码和解码,确保不同系统之间的数据兼容性。
- 功能:数据压缩、加密/解密、格式转换。
-
应用层(Application Layer):
- 功能:提供直接为用户或应用程序使用的网络服务和接口。
- 协议和应用:HTTP、FTP、SMTP、DNS、Telnet。
OSI 模型的功能和意义
1. 标准化
OSI模型提供了一个标准化的框架,使不同制造商和开发者可以创建互操作的硬件和软件。
2. 模块化
通过分层设计,OSI模型使得网络通信可以模块化。每一层独立工作且与上下层通信,使得开发和故障排除更加简便。
3. 可互换性
协议和技术可以在特定层进行替换或升级,而不会影响整个系统的其余部分。
4. 教育和理解
OSI模型提供了一个清晰的网络通信结构,使学生和工程师能够更好地理解和学习网络概念和协议。
5. 故障排除
分层模型使网络故障排除更为系统化,可以逐层检查和解决问题,定位具体的故障位置。
OSI模型与TCP/IP模型
尽管OSI模型是一个理论模型,但在实际应用中,TCP/IP协议族更为广泛使用。TCP/IP模型有四层(有时分为五层),如下所示:
- 网络接口层(Network Interface Layer)(对应OSI的物理层和数据链路层)
- 互联网层(Internet Layer)(对应OSI的网络层)
- 传输层(Transport Layer)(与OSI的传输层相对应)
- 应用层(Application Layer)(对应OSI的会话层、表示层和应用层)
尽管TCP/IP模型更为实际,但OSI模型的分层思想和结构化方法仍然是理解和设计网络系统的重要基础。
OSI模型七层图示
+---------------------------+
| 7. 应用层 (Application) |
+---------------------------+
| 6. 表示层 (Presentation) |
+---------------------------+
| 5. 会话层 (Session) |
+---------------------------+
| 4. 传输层 (Transport) |
+---------------------------+
| 3. 网络层 (Network) |
+---------------------------+
| 2. 数据链路层 (Data Link)|
+---------------------------+
| 1. 物理层 (Physical) |
+---------------------------+
通过理解和应用OSI模型,我们可以更好地设计、实现和维护复杂的网络系统,提高网络通信的效率和可靠性。
Modbus TCP设备编辑器
单击网络组态中的PLC设备,会显示PLC内部所支持的主/从站的使能窗口,如下图所示,单击窗口中的复选框按钮来使能CPU所支持的主/从站功能(如下图),再从视图右侧的“网络设备列表”中双击“MODBUS_TCP”将从站添加到网络中。
Modbus TCP组态配置示例
此时,在界面左侧视图中将出现ModbusTCP组态配置对应设备树。如下:
主站设定
帧间隔指主站接收上一个响应数据帧到下一个请求数据帧之间等待的时间间隔。这个参数可用于调节数据交换率。
主站中添加从站
添加从站的设定
注意:从站使能变量,若要启用图示中的从站,需要对SM3001变量置True。
其中,端口、从站地址、超时时间一般不用特别设置,IP根据从站的实际地址设置即可。
从站的通讯设定
这个部分的设定方式和RTU中设定时一样的,这里不重复说明。
本地从站的设定
与前面主站中的从站设定不同,本地从站的设定的意思是将PLC作为从站使用。我们在与HMI通信当中提到过,与HMI通讯是一种典型的PLC作为从站使用的实例。
本地从站设定的部分很少,按图示所示:
Modbus TCP常见故障
Modbus TCP主站连接Modbus TCP从站时发生的主要故障如下:
1:Modbus TCP主站连接Modbus TCP从站配置IP不正确,导致主站与从站通信无法建立。
2:Modbus TCP主站访问Modbus TCP从站非法地址,返回错误应答。
3:Modbus TCP主站操作Modbus TCP从站写寄存器,但是Modbus TCP从站该寄存器只支持读不支持写操作,Modbus TCP主站会收到Modbus TCP从站返回的出错应答。
要判定通讯故障是哪些原因造成的,可以通过返回的错误帧进行判定。
通讯帧格式说明
如果要特别读取SM、SD等区的话,可以参考帮助手册,其他的通讯方式同RTU,这里不展开说明了。