• {{item.name}}
SIMATIC S7-400系列 {{item.name}}
{{item2.name}}
更多

S7-300/400以太网模块CPx43-1 MODBUS TCP 通讯(TIA)

star star star star star
0 分
  • 软件编程
  • 通信(通讯)
  • S7-300/400
发布时间:2024年04月25日
  • 0
  • 41
S7-300/400以太网模块CPx43-1 MODBUS TCP 通讯(TIA)

S7-300/400以太网模块CPx43-1 MODBUS TCP 通讯(TIA)

下面章节将介绍如何使用TIA Portal配置S7-300/400单站系统通过CPx43-1 PN口与第三方模拟软件进行Modbus/TCP进行通讯的详细步骤

1.使用说明

本文档配置方法需要TIA Portal版本至少是STEP7 V15.1

若软件版本为V15及以下时,参考:

链接:https://support.industry.siemens.com/cs/cn/zh/view/109751178

2.配置CP343-1作为 Modbus TCP Client 与通信伙伴建立通讯

下面以CP343-1及Modbus Slave软件为例,详细介绍如何将CP343-1 配置为Client,Modbus Slave作为Server进行Modbus TCP通讯。

2.1 硬件设备及软件

本例中所用的硬件设备如下表:

名称
数量
订货号
S7-300电源模块PS 307 10A
1
6ES7307-1KA02-0AA0
S7-300 CPU317-2PN/DP
1
6ES7317-2EK14-0AB0(V3.2)
CP343-1
1
6GK7343-1GX31-0XE0
网线
若干

笔记本电脑
1

所用到软件如下表:

名称
订货号
STEP7 V16 Update3 组态编程软件

Modbus Slave免授权版本
可从网上免费获取

2.2 S7-300单站系统与Modbus Slave软件组态

打开TIA软件,新建一个工程项目文件,命名为“CP_MODBUS TCP Client”, 在项目下插入一个S7-300站,如下图1所示:

图1 新建S7-300 Station

打开设备视图,添加CP343-1,并设置CP343-1的IP地址,本例中将CP343-1的PN口IP地址设为192.168.0.221,如图所示:

图2设备视图中设置CP343-1的IP地址

2.3 组态网络视图

使用CP343-1做MODBUS TCP通信前,首先要创建CP343-1和MODBUS TCP服务器的TCP连接

步骤①:添加TCP连接

图3 添加TCP连接

步骤②:设置通信伙伴方的IP地址

TCP连接属性---常规---填写伙伴方的IP地址(此处为MODBUS TCP服务器的IP地址)

图4 TCP连接参数设置

步骤③:设置本地ID

TCP连接属性---本地ID

此处的“本地ID” 和“ LADDR”,在之后的配置MODBUS TCP工艺对象时,对应连接设置中的“连接ID”和“梯级”

图5 TCP连接参数设置

步骤④:勾选“主动建立连接”

TCP连接属性---特殊连接属性,CP343-1做TCP的客户端时,需要勾选“主动建立连接”

图6 TCP连接参数设置

步骤⑤:CP343-1作为客户端和服务器TCP通信,必须要指定服务器的IP地址和端口号。

TCP连接属性---地址详细信息,设置伙伴方的IP地址和端口号

图7 TCP连接参数设置

TCP连接属性---选项,默认设置

图8 TCP连接参数设置

2.4 组态工艺对象

配置完TCP连接后,接下来需要新增工艺对象,

步骤①:新增工艺对象

选择“Modbus”---"通信处理器"---“MODBUS_TCP”---"MB_CP_PARAM"。

图9 新增工艺对象

步骤②:设置“连接设置”

连接设置:连接ID,梯级这两个参数 查看2.3章节TCP连接参数中的“本地ID”

图10 组态工艺对象

步骤③:设置“Modbus设置”---“内部”

“SIMATIC S7是服务器”选项默认不勾选;“单次写入”选项根据Modbus TCP 服务器对于功能代码的要求而定,默认情况下不勾选。

图11 组态工艺对象

步骤④:设置“Modbus设置”---“数据区域”

Modbus 设置---数据区域:下图中设置了4个Modbus数据区域

图12 组态工艺对象

2.5 根据工艺对象中创建的数据区域添加数据块

根据步骤3.4工艺对象中设置的数据区域,添加四个数据块,如下图所示

图13 创建数据块

图14 创建存放MODBUS 线圈数据的数据块

图15 创建存放MODBUS 数字量输入类型的数据块

图16 创建存放MODBUS 保持寄存器数据的数据块

图17 创建存放MODBUS 输入寄存器据的数据块

2.6 创建具有可用于授权的注册表项的数据块

创建授权密钥数据块DB3(名称REG_KEY),选择类型为“全局DB”,打开该DB块,创建变量“REG_KEY”,数据类型为“String[17]”,如图所示:

图18 创建存放授权码的数据块

授权密钥的获取方法,参考:http://www.ad.siemens.com.cn/productportal/Prods/published/Comm/Comm_9.4/Comm_9.4.html

2.7 调用OB121

由于在获取授权密钥前,“MODBUSCP”指令是无授权状态,会使CPU报错而停机。而为了读取CPU 的“IDENT_CODE”码,需要CPU运行起来,则必须添加编程错误组织块OB121,如下图所示:

图19 OB121

下图为CPU诊断信息,若MODBUS TCP没有授权的情况下使用,会报错误“16#A090”和“读取时发生区域长度错误”,若调用了OB121,可避免CPU停机。

图20 CPU诊断信息

2.8 调用通信指令

调用MODBUS TCP指令(通信---通信处理器---MODBUS TCP---MODBUSCP),填写参数。

为了在通信故障时查找原因,编写程序段2捕获错误代码。

图21 调用“MODBUSCP”指令

2.9 初始化指令

创建启动组织块OB100(名称COMPLETE RESTART),语言为“STL”,打开该OB块,置位初始化位输入管脚寄存器,如下图所示:

图22 初始化“MODBUSCP”指令

2.10 通信测试

示例1:客户端读取服务器【 数字量输入】,偏移量2,长度为2的数据

图23 通信测试示例

示例2:客户端读取服务器【输入寄存器】,偏移量0,长度为3的数据

图24 通信测试示例

示例3:客户端读取服务器【线圈寄存器】,偏移量0,长度为8的数据

图25 通信测试示例

示例4:客户端读取服务器【保持寄存器】,偏移量0,长度为3的数据

图26 通信测试示例

示例5:客户端写入数据到服务器【保持寄存器】,偏移量5,长度为5的数据

图27 通信测试示例

示例6:客户端写入数据到服务器【线圈寄存器】,偏移量0,长度为8的数据

图28 通信测试示例

3.配置CP343-1作为 Modbus TCP Server 与通信伙伴建立通讯

下面以S7-300单站系统及ModScan32软件为例,详细介绍如何将CP343-1PN口配置为Server,ModScan32作为Client进行Modbus TCP通讯。

3.1例子中使用的硬件设备及软件

本例中所用的硬件设备如下表:

名称
数量
订货号
S7-300电源模块PS 307 10A
1
6ES7307-1KA02-0AA0
S7-300 CPU317-2PN/DP
1
6ES7317-2EK14-0AB0(V3.2)
CP343-1
1
6GK7343-1GX31-0XE0
网线
若干

笔记本电脑
1

所用到软件如下表:

名称
订货号
STEP7 V16 Update3 组态编程软件

ModScan32免授权版本
可从网上免费获取

3.2 S7-300单站系统与ModScan32软件组态

打开TIA软件,新建一个工程项目文件,命名为“CP_MODBUS TCP Server”, 在项目下插入一个S7-300站,如下图所示:

图29 新建S7-300 Station

打开设备视图,增加CP343-1,修改CP343-1的IP地址,本例中将CP343-1的IP地址设为192.168.0.221,如下图17所示:

图30 设备视图中设置CP343-1的IP地址

3.3 组态网络视图

使用CP343-1做MODBUS TCP通信前,首先要创建CP343-1和MODBUS TCP服务器的TCP连接

步骤①:添加TCP连接

图31 添加TCP连接

步骤②:常规

TCP连接属性---常规---填写伙伴方的IP地址(伙伴的IP地址也可以不指定)

图32 TCP连接设置

步骤③:设置本地ID

TCP连接属性---本地ID

此处的“本地ID” 和“ LADDER”,在之后的配置MODBUS TCP工艺对象时,对应连接设置中的“连接ID”和“梯级”

图33 TCP连接设置

步骤④:特殊连接属性

TCP连接属性---特殊连接属性,CP343-1做TCP的服务器时,不需要勾选“主动建立连接”

图34 TCP连接设置

步骤⑤:地址详细信息

TCP连接属性---地址详细信息,设置伙伴方的IP地址和端口号

CP343-1作为服务器端和客户端TCP通信时,客户端的IP地址和端口号也可以不指定,需要注意,不能仅指定端口号或者IP地址。

图35 TCP连接设置

TCP连接属性---选项,默认设置

图36 TCP连接设置

3.4 组态工艺对象

配置完TCP连接后,接下来需要新增工艺对象,

步骤①:新增工艺对象

新增工艺对象,选择“Modbus”---"通信处理器"---“MODBUS TCP”---"MB_CP_PARAM"。

图37 新增工艺对象

步骤②:设置“连接设置”

连接设置:连接ID,梯级这两个参数 查看3.3章节TCP连接参数中的“本地ID”

图38 组态工艺对象

步骤③:设置“Modbus设置”---“内部”

勾选“SIMATIC S7是服务器”选项;“单次写入”选项根据Modbus TCP 服务器对于功能代码的要求而定,默认情况下不勾选。

图39 组态工艺对象

步骤④:设置“Modbus设置”---“数据区域”

下图中设置了4个Modbus数据区域

图40 组态工艺对象

3.5 根据工艺对象中创建的数据区域添加数据块

根据步骤3.4工艺对象中设置的数据区域,添加四个数据块,如下图所示

图41 创建数据块

图42 创建存放MODBUS 线圈数据的数据块

图43 创建存放MODBUS 数字量输入类型的数据块

图44 创建存放MODBUS 保持寄存器数据的数据块

图45 创建存放MODBUS 输入寄存器据的数据块

3.6 创建具有可用于授权的注册表项的数据块

创建授权密钥数据块DB3(名称REG_KEY),选择类型为“全局DB”,打开该DB块,创建变量“REG_KEY”,数据类型为“String[17]”,如图所示:

图46 创建存放授权码的数据块

授权密钥的获取方法,参考:http://www.ad.siemens.com.cn/productportal/Prods/published/Comm/Comm_9.4/Comm_9.4.html

3.7 调用OB121

由于在获取授权密钥前,“MODBUSCP”指令是无授权状态,会使CPU报错而停机。而为了读取CPU 的“IDENT_CODE”码,需要CPU运行起来,则必须添加编程错误组织块OB121,如下图所示:

图47 OB121

3.8 调用通信指令

调用MODBUS TCP指令(通信---通信处理器---MODBUS TCP---MODBUSCP),填写参数。

为了在通信故障时查找原因,编写程序段2捕获错误代码。

图48 调用“MODBUSCP”指令

3.9 初始化指令

创建启动组织块OB100(名称COMPLETE RESTART),语言为“STL”,打开该OB块,置位初始化位输入管脚寄存器,如图所示:

图49 初始化“MODBUSCP”指令

3.10 建立和客户端的连接

按照如下设置,使能服务器端,并使用ModScan32建立连接

图50 建立和客户端的连接

3.11 通信测试

示例1:客户端读写服务器【 线圈寄存器 】,偏移量0,长度为10的数据

图51 通信测试示例

示例2:客户端读取服务器【 数字量输入寄存器 】,偏移量0,长度为10的数据

图52 通信测试示例

示例3:客户端读写服务器【 保持寄存器 】,偏移量0,长度为10的数据

图53 通信测试示例

示例4:客户端读取服务器【 模拟量输入寄存器 】,偏移量0,长度为10的数据

图54 通信测试示例


剩余80%未阅读,请登录查看大全章节内容

  • 评论
更多
  • 分享

    扫码分享

0元领课点我

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。