一提到Modbus通信,大家肯定首先会想到Modbus RTU通信,即串口485通信。其实Modbus通信还包括以太网TCP通信功能。与Modbus RTU相比,Modbus TCP要方便得多,毕竟以太网通信肯定比串口更加方便。接下来就为大家详细解析一下Modbus TCP通信。接项目外包、运动控制、过程控制 欢迎广大需要合作厂家、个人来谈合作! Modbus TCP 是通过工业以太网 TCP/IP 网络传输的 Modbus 通信。S7-200 SMART 采用客户端-服务器架构,Modbus 客户端设备通过该架构与 Modbus 服务器的设备发出 TCP/IP 连接请求,服务器将响应客户端的请求。如果请求有效,则服务器将响应该请求;如果请求无效,服务器则会回复错误消息。 S7-200 SMART 支持做 Modbus TCP 的客户端或者服务器,可以实现 PLC 之间通信,也可以实现与支持此通信协议的第三方设备通信。通信伙伴数量比较多的时候,可以使用交换机,扩展以太网接口。 STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令。安装软件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 项目树中“指令”文件夹的“库”文件夹中。如图Modbus TCP库指令所示。 客户端配置与实现方法 1、系统块中设置客户端的IP地址,以确保IP地址设置无误。此步骤为可选,如果确定IP地址设置无误,可忽略此步骤。设置方法如图所示。
2、在项目树的左侧找到库文件夹,在里面找到Modbus TCP客户端指令MBUS_CLIENT,然后拖动到程序段中。
3、配置指令参数 4、程序块具体参数详细解释介绍
参数及类型 | 数据类型 | 说明 |
---|
Req | IN | BOOL | =1:表示向服务器发送Modbus 请求 |
---|
Connect | IN | BOOL | =1:尝试与分配的IP地址及端口号建立连接; =0:尝试断开已经建立的连接,忽略Req的任何请求 |
---|
IPAddr1-4 | IN | BYTE | 填写 Modbus TCP 服务器的IP地址IPAddr1-4为高到低字节 |
---|
IP_Port | IN | BYTE | 填写Modbus TCP 服务器的端口号 |
---|
RW | IN | BYTE | 指定操作模式 =0:读;=1写 |
---|
Addr | IN | DWORD | 要进行读写的参数的 Modbus 起始地址 |
---|
Count | IN | INT | 要进行读写的参数数据长度; 数字量输入/输出Count=1表示1 bit,最大1920位 对于模拟量输入和保持寄存器,最大 Count 值为 120 字。 |
---|
DataPtr | IN_OUT | DWORD | 数据寄存器地址指针,指向本地用于读/写操作的数据地址区域的首地址 |
---|
Done | OUT | BOOL | TRUE:以下任一条件时为真:客户端已与服务器建立连接;客户端已与服务器断开连接;客户端已接收 Modbus 响应;发生错误 FALSE:客户端正忙于建立连接或等待来自服务器的 Modbus 响应。 |
---|
Error | OUT | BOOL | 出现错误,仅一个周期有效 |
---|
5、鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器
6、在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5000开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址
7、编译项目,下载程序。
8、关于Modbus地址与CPU中数据区域地址对应关系说明
功能码(十进制) | 功能描述 | RW | Addr | Count | CPU地址 |
---|
01 | 读数字量输出 位 | 0 | 00001-09999 | 1-1920 位 | Q0.0-1151.7 |
---|
02 | 读数字量输入 位 | 0 | 10001-19999 | 1-1920 位 | I0.0-1151.7 |
---|
03 | 读寄存器 字 | 0 | 40001-49999 400001-465535 | 1-120 字 | V区 |
---|
04 | 读模拟量输入 字 | 0 | 30001-39999 | 1-120 字 | AIW0-AIW110 |
---|
05 | 写数字量输出 单个位 | 1 | 00001-09999 | 1位 | Q0.0-Q1151.7 |
---|
06 | 写寄存器 单个字 | 1 | 40001-49999 400001-465535 | 1个字 | V区 |
---|
15 | 写数字量输出 多个位 | 1 | 00001-09999 | 1-1920 位 | Q0.0-1151.7 |
---|
16 | 写寄存器 多个字 | 1 | 40001-49999 400001-465535 | 1-120 字 | V区 |
---|
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |