### 基于S7-300/400以太网通讯模块CP Modbus TCP通讯快速入门 #### Modbus TCP通讯概述 ##### 1.1 通讯所使用的以太网参考模型 MODBUS/TCP是MODBUS系列通讯协议的一个变种,专门设计用于管理和控制自动化设备,并支持在使用TCP/IP协议的"Intranet"和"Internet"环境中传输MODBUS报文。在Modbus TCP传输过程中采用了TCP/IP以太网参考模型中的五层结构: 1. **物理层**:提供设备之间的物理接口,与市场上常见的介质/网络适配器兼容。 2. **数据链路层**:将信号格式化成携带源地址和目的地址的数据帧。 3. **网络层**:实现基于32位IP地址的IP报文封装。 4. **传输层**:确保数据的可靠传输,包括错误检测、数据重传、端口服务和传输调度。 5. **应用层**:MODBUS协议报文在此层被处理。 ##### 1.2 Modbus TCP数据帧 MODBUS数据在TCP/IP以太网上的传输采用特定的数据帧格式,支持Ethernet II和802.3两种帧格式。Modbus TCP数据帧通常包含报文头、功能代码和数据三部分。其中,MBAP报文头(MBAP, Modbus Application Protocol)分为四个域,共7个字节。 ##### 1.3 Modbus TCP使用的通讯资源端口号 在MODBUS服务器中,通常默认使用端口502进行通信。而在MODBUS客户端程序中,可以设置任意端口进行通信,为了避免与其他通讯协议发生冲突,建议从端口2000开始使用。 ##### 1.4 Modbus TCP使用的功能代码 MODBUS TCP使用不同的功能代码来定义具体的操作命令,这些功能代码可以分为以下几类: 1. **公共功能代码**:这些代码已经定义好并保证其唯一性,由MODBUS组织认可。 2. **用户自定义功能代码**:这类代码分为两个区间,即65~72和100~110,无需官方认可,但不保证唯一性。如果希望转变为公共代码,则需要提交RFC认可。 3. **保留功能代码**:某些公司为了兼容某些传统设备会使用这些代码,它们不应用于公共场合。 根据应用的深度,可以将功能代码进一步划分为三个类别: 1. **类别0**:客户机/服务器最小可用子集,包括读取多个保持寄存器(fc.3)和写入多个保持寄存器(fc.16)的功能。 2. **类别1**:扩展了类别0的功能,例如增加读取多个离散输入(fc.2)和写单个线圈(fc.5)等操作。 3. **类别2**:包括所有MODBUS标准功能代码,提供更全面的功能支持。 #### SIMATIC S7 Modbus TCP通讯概述 ##### 2.1 概述 SIMATIC S7系列PLC(Programmable Logic Controller,可编程逻辑控制器)支持通过以太网通讯模块CP343/443-1实现MODBUS/TCP通讯。这种通讯方式使得S7-300/400 PLC能够与第三方设备通过MODBUS协议进行数据交换。 ##### 2.2 CP343-1或CP443-1做Modbus TCP通讯的使用限制 尽管CP343-1和CP443-1支持MODBUS/TCP通讯,但在实际应用中存在一定的限制条件,例如最大连接数、最大数据量等,这些限制可能会对通讯性能产生影响。 #### 配置CP343-1作为Server进行Modbus TCP通讯 ##### 3.1 例子中使用的硬件设备及软件 本节将介绍如何配置CP343-1作为MODBUS/TCP服务器,并通过Modscan32软件进行测试。所使用的硬件设备包括SIMATIC S7-300 CPU、CP343-1以太网通讯模块等,软件方面则使用STEP 7进行硬件组态和编程,Modscan32用于模拟第三方设备进行测试。 ##### 3.2 通过Step 7 / HW及Modscan32软件组态 在STEP 7中创建一个新的项目,添加S7-300 CPU和CP343-1模块。然后,配置CP343-1的通讯参数,包括IP地址、子网掩码等。接着,使用Modscan32软件配置MODBUS/TCP连接,指定服务器的IP地址和端口号。通过Modscan32发送请求测试是否能成功读取或写入保持寄存器。 ##### 3.3 FB100 (FBMODBUS)读写保持寄存器通讯测试 FB100 (FBMODBUS)是一个用于实现MODBUS功能的S7功能块。通过该功能块可以实现读取和写入保持寄存器的功能。在本例中,可以通过编写相应的OB块来调用FB100,从而完成与Modscan32之间的数据交互。 ##### 3.4 FB101 (FBMODB4)读写输入保持寄存器通讯测试 类似地,FB101 (FBMODB4)也可以用于实现MODBUS功能,特别是用于读取和写入输入寄存器。同样地,通过编写OB块调用FB101,可以在S7-300 PLC和Modscan32之间进行数据交换。 #### 配置CP343-1作为Client进行Modbus TCP通讯 ##### 4.1 例子中使用的硬件设备及软件 本节将介绍如何配置CP343-1作为MODBUS/TCP客户端,并通过Modbus Slave软件进行测试。硬件设备与上一节相同,软件方面则使用Modbus Slave来模拟服务器。 ##### 4.2 通过Step 7 / HW及Modbus Slave软件组态 在STEP 7中配置CP343-1作为MODBUS/TCP客户端,并指定服务器的IP地址和端口号。然后,使用Modbus Slave软件配置MODBUS/TCP服务器,指定服务器的IP地址和端口号。通过编写相应的OB块调用FB100或FB101功能块,测试是否能成功读取或写入保持寄存器。 ##### 4.3 FB100 (FBMODBUS)读写保持寄存器通讯测试 与作为服务器时类似,FB100 (FBMODBUS)在这里也用于实现读取和写入保持寄存器的功能。通过编写OB块调用FB100,测试是否能成功与Modbus Slave软件进行数据交互。 ##### 4.4 FB101 (FBMODB4)读输入寄存器通讯测试 同样地,FB101 (FBMODB4)可以用于实现读取输入寄存器的功能。通过编写OB块调用FB101,测试是否能成功读取Modbus Slave中的数据。 #### CP进行Modbus TCP通讯使用总结及相关注意事项 在使用S7-300/400的CP343-1或CP443-1模块进行MODBUS/TCP通讯时,需要注意以下几点: 1. **硬件配置**:确保正确配置了硬件设备,包括CPU、CP模块等。 2. **软件组态**:正确配置STEP 7中的硬件组态和通讯参数。 3. **功能块编程**:合理利用FB100和FB101功能块,实现数据的读写操作。 4. **第三方软件测试**:使用Modscan32或Modbus Slave等软件进行测试,验证通讯功能的正确性。 通过以上步骤,可以有效地实现基于S7-300/400的CP343-1或CP443-1模块进行MODBUS/TCP通讯的目的,并为后续的应用开发打下坚实的基础。
- 粉丝: 0
- 资源: 12
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助