分享

S7-1500 PLC与S120的Modbus TCP通讯

 阿明哥哥资料区 2020-03-31
本文介绍S7-1500 PLC与S120变频器(控制单元为CU320-2 PN)通过Modbus TCP通讯,实现PLC对变频器的控制。PLC通过访问S120的寄存器,可实现对变频器的启停、正反转控制、速度给定、修改参数等功能。

表1-1  主要设备和软件

网络视图:

图 1-1 网络视图

1  S7-1500 Modbus TCP通讯概述

S7-1500 PLC 需要通过 TIA Portal 博途软件进行组态配置,从 TIA Portal V12 SP1 开始,软件中增加了 S7-1500 的 Modbus TCP 块库,用于 S7-1500 与支持Modbus TCP 的通信伙伴进行通信,通讯块分别为MB_CLIENT和MB_SERVER,如下图1-2所示,在与S120进行通讯过程中应用的块为MB_CLIENT,S7-1500作为Modbus TCP 客户端。

图1-2  Modbus TCP块

表1-2  通讯配置表

2  PLC组态和编程

打开TIA Portal V15新建一个项目,本例中命名为“S71500_S120_ModbusTCP”,在项目中添加CPU1513-1PN,为集成的 PROFINET 接口新建一个子网并设置 IP 地址,本例中为“192. 168. 133. 101”,如图 1-3 所示:

图 1-3  新建一个 S7-1500 项目并配置 IP 地址

在 CPU1513-1PN的 OB1 组织块中添加 Modbus TCP Client 功能块“MB_CLIENT”,软件将提示会为该 FB 块增加一个背景数据块,本例中为DB1 “MB_CLIENT_DB”,如图 1-4 所示:

图 1-4  添加“MB_CLIENT”功能块

同样在 CPU1513-1PN中添加一个全局数据块用于匹配功能块“MB_CLIENT”的管脚参数“CONNECT”,本例中为数据块 DB2 “MB_CLIENT_TCON”,打开该数据块,手动输入“TCON_IP_v4”的数据类型,并填写相应的初始值,如图 1-5 所示:

图 1-5  添加一个与管脚“CONNECT”匹配的全局数据块

创建一个全局数据块用于匹配功能块“MB_CLIENT”的管脚参数“MB _ DATA _ PTR”,本例中为 DB3 “MB_Client_Data”,用于存储 Modbus通信的各数据类型,需要注意的是该数据块必须为非优化数据块(支持绝对寻址),在该数据块的属性中不勾选“优化的块访问”选项,如图 1-6所示:

图 1-6  创建 用于存储 Modbus 通信数据的数据块

图 1-7  MB_CLIENT_Data内容

创建一个全局数据块用于匹配功能块“MB_CLIENT”的管脚参数“MB_MODE”、 “MB_DATA_ADDR”、 “MB_DATA_LEN”,本例中为DB4“MB_Client_Set”,用于存储Modbus通信的模式、起始地址以及通信数据长度,将该数据块配置为非优化数据块(支持绝对寻址),在该数据块的属性中不勾选“优化的块访问”选项,如图 1-8所示:

图 1-8  创建 用于存储 Modbus 通信设置的数据块

图 1-9  MB_CLIENT_Set数据块内容

对于功能块“MB_CLIENT”的参数管脚含义如表 1-3 所示:

表1-3  MB_CLIENT的管脚说明

详细情况请参考TIA软件帮助信息。

本例需要完成PLC控制变频器的启动、速度给定、状态反馈、修改加减速时间的操作,因而需要调用多个MB_CLIENT程序块,由于同一时间只能调用一个MB_CLIENT程序块,因此需要设置多个标志位来控制多个MB_CLIENT程序块的执行顺序。

程序段1:PLC启动时通过Initial_Call对所有MB_CLIENT完成通讯的标志位清零,如图1-10所示:

图 1-10  程序段1

程序段2:Initial_Call在第一个扫描周期为1,以后一直为0,PLC在第二个扫描周期检测到Initial_Call的下降沿后给M20.0(第一个MB_CLIENT的启动位)置1,如图1-11所示:

图 1-11  程序段2

程序段3:M20.0被置1后,调用第一个MB_CLIENT程序块,该程序块用于读取变频器的状态字(40110)和速度实际值(40111),读取的数据放到DB3.DBX0.0后的4个字节中,MB_CLIENT的模式及通信起始地址和通信字长度在DB4数据块中设置,如图1-12所示:

图 1-12  程序段3

程序段4:第一个MB_CLIENT程序块执行完成后,利用其DONE端子输出M20.2将M20.0清零,同时将第二个MB_CLIENT程序块的启动位M40.0置1,如图1-13所示:

图 1-13  程序段4

程序段5:M40.0被置1后,调用第二个MB_CLIENT程序块,该程序块用于写控制字(40100)和速度给定值(40101),要写的数据放到DB3.DBX20.0后的4个字节中,MB_CLIENT的模式及通信起始地址和通信字长度在DB4数据块中设置,如图1-14所示:

图 1-14  程序段5

程序段6:第二个MB_CLIENT程序块执行完成后,利用其DONE端子输出M40.2将M40.0清零,同时将第三个MB_CLIENT程序块的启动位M60.0置1,如图1-15所示:

图 1-15  程序段6

程序段7:M60.0被置1后,调用第三个MB_CLIENT程序块,该程序块用于修改加速时间(40322)和减速时间(40323),要写的数据放到DB3.DBX40.0后的4个字节中,MB_CLIENT的模式及通信起始地址和通信字长度在DB4数据块中设置,如图1-16所示:

图 1-16 程序段7

程序段8:第三个MB_CLIENT程序块执行完成后,利用其DONE端子输出M60.2将M60.0清零,同时将第一个MB_CLIENT程序块的启动位M20.0置1,这样就实现了对3个MB_CLIENT程序块的循环调用,如图1-17所示:

图 1-17  程序段8

程序配置完成后,下载项目到 CPU1513-1PN中。

3 S120中的配置

本例中S120的控制单元为CU320-2 PN,利用X150进行 Modbus TCP通讯,参数设置如下:(前提条件:S120已经正常调试,能够控制电机运行,S120的调试请参考调试手册)

  • 在驱动对象DO1中设置p2030 = 13(Modbus TCP);

  • 将现场总线监控时间P2040修改为0,不进行通讯监控;

  • 通过p8921 IP地址:192. 168. 133. 105;

  • 通过p8922设置标准网关:0.0.0.0或者192. 168. 133. 105(表明没有设置网关);

  • 通过p8923设置子网掩码255. 255. 255. 0;

  • 通过p8924设置DHCP模式,此处将其设置为0(DHCP Off);

  • 通过p8925=2将“激活并保存配置”设为接口配置。

本例中通过Modbus TCP控制VECTOR 02,在报文配置时将轴2配置到第一位,如图1-18所示,为方便参数设置将其报文配成标准报文1,如若控制其它轴,可以通过报文配置修改驱动对象的顺序来实现。

图 1-18  S120报文配置

4  控制启停和修改参数

利用监控与强制表启动变频器并给定速度,监控强制表如图1-19所示:

图 1-19  状态监控表

在DB3.DBW20中强制写入16#047E,变频器达到准备状态,状态返回到DB3.DBW0中显示16#EB31,当在DB3.DBW20中写入16#047F,在DB3.DBW22中写入1000后,变频器达到运行,状态返回DB3.DBW0显示16#EF37,实际速度DB3.DBW2中显示1000,如图1-20所示:

图 1-20  启动变频器给定速度

图 1-21  STARTER软件监控的控制字和速度给定

 修改P1120和P1121为20s,加、减速时间的比例系数为100,因此强制DB3.DBW40 = 2000,DB3.DBW42 = 2000,将P1120和P1121修改为20s,STARTER软件中显示参数值已经变为20s,如图1-22所示:

图 1-22  STARTER软件中的显示

至此,PLC通过Modbus TCP控制变频器的启动、速度控制以及修改加减速时间的实验已经全部完成。

【西家传动原创】

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多