首页 理论教育 Modbus TCP通信示例步骤详解

Modbus TCP通信示例步骤详解

时间:2023-07-01 理论教育 版权反馈
【摘要】:本示例中使用了两个S7-1200CPU,CPU之间采用ModbusTCP通信。CPU1为Modbus TCP客户端,其IP地址为192.168.0.215;CPU2为ModbusTCP服务器,其IP地址为192.168.0.217。本例中可以通过监控CPU2的I0.0~I0.7与Q0.0~Q0.7状态是否相反来判断ModbusTCP通信状态。在网络视图中,选择相应的CPU,并“转至在线”模式,在“连接”选项卡中可以对ModbusTCP连接进行诊断,相关操作步骤参考图7-15。示例程序请参见随书光盘中的例程目录《Modbus TCP》。

Modbus TCP通信示例步骤详解

本示例中使用了两个S7-1200CPU,CPU之间采用ModbusTCP通信。CPU1为Modbus TCP客户端,其IP地址为192.168.0.215;CPU2为ModbusTCP服务器,其IP地址为192.168.0.217。通信任务是ModbusTCP客户端读取ModbusTCP服务器Modbus地址10001~10008(I0.0~I0.7)数据,并将读取到8位数据取反后写入到ModbusTCP服务器Modbus地址00001~00008(Q0.0~Q0.7)。

1.CPU1编程组态

(1)设备组态

使用TIA博途软件创建新项目,并将CPU1215C作为新设备添加到项目中。在设备视图的巡视窗口中,将CPU属性作如下修改:

•在“PROFINET接口”属性中,为CPU“添加新子网”,并设置IP地址(192.168.0.215)和子网掩码(255.255.255.0)。

•在“系统和时钟存储器”属性中,激活“启用时钟存储器字节”,并设置“时钟存储器字节的地址(MBx)”。

(2)程序编程

步骤一:在程序块添加一个数据块“MyModbusTcp”,并在数据块中定义一个数据类型为TCON_IP_v4变量“Connect”,该变量将用于定义通信连接,S7-1200CPU作为ModbusTCP客户端时,需要指定ModbusTCP服务器侧的IP地址和通信端口,变量的定义请参考图7-43。

978-7-111-58391-2-Chapter07-60.jpg

图7-46 MB_CLIENT指令的第一次调用

步骤二:在主程序OB1中,需要调用两次“MB_CLIENT”指令,“MB_CLIENT”指令的第一次调用用于读取ModbusTCP服务器Modbus地址10001~10008数据。该“MB_CLI-ENT”指令参数REQ的触发可使用“MB_CLIENT”背景数据块中静态变量Connected的上升沿信号,如图7-46所示。

步骤三:第一次调用“MB_CLIENT”指令的DONE或ERROR状态位,复位,该“MB_CLIENT”指令的REQ触发位,并置位第二次调用“MB_CLIENT”指令的参数REQ;当第一次调用“MB_CLIENT”指令的执行无错误时,将接收到的Modbus TCP数据取反。程序如图7-47所示。

978-7-111-58391-2-Chapter07-61.jpg

图7-47 复位第一个MB_CLIENT指令的REQ

步骤四:在主程序OB1中,第二次调用“MB_CLIENT”指令,本次调用用于写入数据到ModbusTCP服务器Modbus地址00001~00008。本条“MB_CLIENT”指令的DONE或ERROR状态位复位该“MB_CLIENT”指令的REQ触发位,并置位第一次调用“MB_CLIENT”指令的参数REQ,程序如图7-48所示。

978-7-111-58391-2-Chapter07-62.jpg

图7-48 MB_CLIENT指令的第二次调用

(3)下载组态和程序(www.xing528.com)

CPU1的组态配置与编程已经完成,只需将其下载到CPU即可。

2.CPU2编程组态

(1)设备组态

使用TIA博途软件创建新项目,并将CPU1217C作为新设备添加到项目中。在设备视图的巡视窗口中,将CPU属性作如下修改:

•在“PROFINET接口”属性中,为CPU“添加新子网”,并设置IP地址(192.168.0.217)和子网掩码(255.255.255.0)。

(2)程序编程

步骤一:在程序块添加一个数据块“MyModbusTcp”,并在数据块中定义一个数据类型为TCON_IP_v4变量“Connect”,该变量将用于定义通信连接,S7-1200 CPU作为ModbusTCP服务器时,需要指定本地的通信端口,变量的定义请参考图7-45。

步骤二:在主程序OB1中,需要调用“MB_SERVER”指令,用于处理Modbus TCP客户端的连接请求、接收和处理Modbus请求,并发送Modbus应答报文,如图7-49所示。

(3)下载组态和程序

CPU2的组态配置与编程已经完成,只需将其下载到CPU即可。

3.通信状态测试

将两个CPU站点组态配置和程序分别下载到CPU1和CPU2后,即可开始对通信状态进行测试。本例中可以通过监控CPU2的I0.0~I0.7与Q0.0~Q0.7状态是否相反来判断ModbusTCP通信状态。

在网络视图中,选择相应的CPU,并“转至在线”模式,在“连接”选项卡中可以对ModbusTCP连接进行诊断,相关操作步骤参考图7-15。

示例程序请参见随书光盘中的例程目录《Modbus TCP》。

978-7-111-58391-2-Chapter07-63.jpg

图7-49 调用MB_SERVER指令

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈