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