S7-300/400集成PN口 MODBUS TCP通讯(TIA)

描述

2.配置S7-300单站系统通过CPU集成PN口作为Client进行Modbus TCP通讯

下面以S7-300单站系统及Modbus Slave软件为例详细介绍如何将S7-300单站系统CPU的集成PN口配置为ClientModbus 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)

网线

若干

 

笔记本电脑

1

 

 

所用到软件如下表:

名称

订货号

STEP7 V16 Update3 组态编程软件

 

Modbus Slave免授权版本

可从网上免费获取

 

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

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

 

S7-300

 

新建S7-300 Station

打开设备视图,修改CPU的IP地址,本例中将CPUPNIP地址设为192.168.0.220如下图17所示:

 

S7-300

 

2 设备视图中设置CPUIP地址

2.3组态工艺对象

①选择添加工艺对象“Modbus”---"其他"---“MODBUS TCP”---"MB_PN_PARAM"

S7-300

新增工艺对象

②设置“连接设置”

连接ID:连接引用标识符(范围1~4095),在之后调用指令时会使用该参数

连接建立:PLC做MODBUS TCP客户端,选择主动。

远程IP地址:图中的IP地址(192.168.0.228)为 笔记本电脑的IP地址

本地设备ID:选择PLC的设备类型

本地端口:作为客户端,可不指定固定端口

伙伴端口:图中502端口为Modbus Slave的端口号

S7-300

组态工艺对象

③Modbus 设置“内部”

S7-300

组态工艺对象

③Modbus 设置“数据区域”

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

S7-300

组态工艺对象

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

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

S7-300

创建数据块

S7-300

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

S7-300

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

S7-300

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

S7-300

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

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

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

S7-300

12 创建存放授权码的数据块

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

2.6调用OB121

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

S7-300

13 调用OB121

2.7调用通信指令

调用MODBUS TCP指令(通信---其他---MODBUS_TCP---MODBUSPN),填写参数。

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

S7-300

14 调用“MODBUSPN”指令

2.8初始化指令

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

S7-300

15 初始化“MODBUSPN”指令

2.9通信测试

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

S7-300

16 通信测试示例

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

S7-300

17 通信测试示例

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

S7-300

18 通信测试示例

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

S7-300

19 通信测试示例

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

S7-300

20 通信测试示例

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

S7-300

21 通信测试示例

3.配置S7-300单站系统通过CPU集成PN口作为Server进行Modbus TCP通讯

下面以S7-300单站系统及ModScan32软件为例详细介绍如何将S7-300单站系统CPU的集成PN口配置为ServerModScan32作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)

网线

若干

 

笔记本电脑

1

 

    

所用到软件如下表:

名称

订货号

STEP7 V16 Update3 组态编程软件

 

ModScan32 免授权版本

可从网上免费获取

 

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

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

 

S7-300

 

22 新建S7-300 Station

打开设备视图,修改CPU的IP地址,本例中将CPUPNIP地址设为192.168.0.220如下图17所示:

 

S7-300

 

23 设备视图中设置CPUIP地址

3.3组态工艺对象

①新增工艺对象,选择“Modbus”---"其他"---“MODBUS_TCP”---"MB_PN_PARAM"

S7-300

24 新增工艺对象

②设置“连接设置”

连接ID:连接引用标识符(范围1~4095),在之后调用指令时会使用该参数

连接建立:PLC做MODBUS TCP服务器,选择被动。

远程IP地址:可以指定或者不指定连接伙伴的IP地址。

本地设备ID:选择PLC的设备类型

本地端口:指定固定端口

伙伴端口可不指定

S7-300

25 组态工艺对象

③Modbus 设置“内部”

S7-300

26 组态工艺对象

④Modbus 设置“数据区域”

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

S7-300

27 组态工艺对象

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

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

S7-300

28 创建数据块

S7-300

29 创建存放MODBUS 线圈数据的数据块

S7-300

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

S7-300

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

S7-300

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

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

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

S7-300

33 创建存放授权码的数据块

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

3.6调用OB121

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

S7-300

34 OB121

3.7调用通信指令

调用MODBUS TCP指令(通信---其他---MODBUS_TCP---MODBUSPN),填写参数。

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

S7-300

35 调用“MODBUSPN”指令

3.8初始化指令

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

S7-300

36 初始化“MODBUSPN”指令

3.9建立和客户端的连接

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

S7-300

37 建立和客户端的连接

3.9通信测试

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

S7-300

38 通信测试示例

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

S7-300

39 通信测试示例

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

S7-300

40 通信测试示例

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

S7-300

41 通信测试示例

 


审核编辑 :李倩

 


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分