案例:两台SMART进行MODBUS TCP通信,附程序

[复制链接]
查看17262 | 回复0 | 2024-10-19 09:44:44 | 显示全部楼层 |阅读模式
Modbus TCP通信结合了TCP通信和Modbus RTU通信的优点,西门子编程软件提供了免费的通信库,使Modbus TCP通信变得非常简单方便。

本文给大家介绍两台西门子SMART ST30进行modbus tcp以太网通信程序的编写。

要求如下:

1、将客户端的VW100开始的10个字写到服务器的VW50开始的十个字中。

2、将服务器的VW100开始的10个字中的数据读取到客户端的VW50开始的10个字中。

一、首先编写客户端的程序,以太网通信属于全双工通信模式,通信双方都可以发送数据和接收数据,而且发送和接收都可以同时进行,在本例中,发送数据程序和读取数据程序写到一个PLC中。





在MODBUS_CLIENT程序中,

EN:使能;

Req:发送通信请求,ON允许通信,OFF禁止通信;

Connect:建立连接,ON连接,OFF断开;

IPAddr1-4设置的是服务器的IP地址;

IP_PORT指的是客户端尝试连接、且随后使用 Modbus TCP 进行通信的服务器的端口号;

RW指示该操作是读还是写;

Addr指的是要读或者是写的服务器的起始地址;

COUNT:个数;

DataPtr指客户端的起始地址。

二、服务器程序如下:



IP_Port:服务器物理端口号;

MaxIQ:开放可访问IQ点数量;

MaxAI:开放可访问AI数量;

MaxHold:开放可访问V区字数,不能与库存储区分配地址产生重叠;

HoldStart:V区开放起始地址。

Holdstart:保持区起始地址。即MODBUS地址40001对应的VW地址。&VB0则表示40001代表VW0,&VB100则表示40001代表VW100。

注意:一台服务器不能连接多台客户端,但是服务器又可以作为客户端与其它服务器通信。每台服务器只能定义一个端口,不同服务器的端口可以相同。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则