2.配置S7-300单站系统通过CPU集成PN口作为Client进行Modbus TCP通讯
下面以S7-300单站系统及Modbus Slave软件为例,详细介绍如何将S7-300单站系统CPU的集成PN口配置为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) |
网线 |
若干 |
|
笔记本电脑 |
1 |
所用到软件如下表:
名称 |
订货号 |
STEP7 V16Update3 组态编程软件 |
|
Modbus Slave免授权版本 |
可从网上免费获取 |
2.2 S7-300单站系统与Modbus Slave软件组态
打开TIA软件,新建一个工程项目文件,命名为“PN_MODBUS TCP Client”,在项目下插入一个S7-300站,如下图1所示:
图1新建S7-300 Station
打开设备视图,修改CPU的IP地址,本例中将CPU的PN口IP地址设为192.168.0.220,如下图17所示:
图3新增工艺对象
②设置“连接设置”
连接ID:连接引用标识符(范围1~4095),在之后调用指令时会使用该参数
连接建立:PLC做MODBUS TCP客户端,选择主动。
远程IP地址:图中的IP地址(192.168.0.228)为 笔记本电脑的IP地址
本地设备ID:选择PLC的设备类型
本地端口:作为客户端,可不指定固定端口
伙伴端口:图中502端口为Modbus Slave的端口号
图4组态工艺对象
③Modbus 设置“内部”
图5组态工艺对象
③Modbus 设置“数据区域”
下图中设置了4个Modbus数据区域
图6组态工艺对象
2.4根据工艺对象中创建的数据区域添加数据块
根据步骤3.3工艺对象中设置的数据区域,添加四个数据块,如下图所示
图7创建数据块
图8创建存放MODBUS 线圈数据的数据块
图9创建存放MODBUS 数字量输入类型的数据块
图10创建存放MODBUS 保持寄存器数据的数据块
图11创建存放MODBUS 输入寄存器据的数据块
2.5创建具有可用于授权的注册表项的数据块
创建授权密钥数据块DB3(名称REG_KEY),选择类型为“全局DB”,打开该DB块,创建变量“REG_KEY”,数据类型为“String[17]”,如图所示:
图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,如下图所示:
图13调用OB121
2.7调用通信指令
调用MODBUS TCP指令(通信---其他---MODBUS_TCP---MODBUSPN),填写参数。
为了在通信故障时查找原因,编写程序段2捕获错误代码。
图14调用“MODBUSPN”指令
2.8初始化指令
创建启动组织块OB100(名称COMPLETE RESTART),语言为“STL”,打开该OB块,置位初始化位输入管脚寄存器,如图所示:
图15初始化“MODBUSPN”指令
2.9通信测试
示例1:客户端读取服务器【 数字量输入】,偏移量3,长度为2的数据
图16通信测试示例
示例2:客户端读取服务器【输入寄存器】,偏移量0,长度为3的数据
图17通信测试示例
示例3:客户端读取服务器【线圈寄存器】,偏移量0,长度为8的数据
图18通信测试示例
示例4:客户端读取服务器【保持寄存器】,偏移量0,长度为3的数据
图19通信测试示例
示例5:客户端写入数据到服务器【保持寄存器】,偏移量5,长度为5的数据
图20通信测试示例
示例6:客户端写入数据到服务器【线圈寄存器】,偏移量0,长度为8的数据
图21通信测试示例
3.配置S7-300单站系统通过CPU集成PN口作为Server进行Modbus TCP通讯
下面以S7-300单站系统及ModScan32软件为例,详细介绍如何将S7-300单站系统CPU的集成PN口配置为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) |
网线 |
若干 |
|
笔记本电脑 |
1 |
所用到软件如下表:
名称 |
订货号 |
STEP7 V16Update3 组态编程软件 |
|
ModScan32免授权版本 |
可从网上免费获取 |
3.2 S7-300单站系统与ModScan32软件组态
打开TIA软件,新建一个工程项目文件,命名为“PN_MODBUS TCP Server”,在项目下插入一个S7-300站,如下图所示:
图22新建S7-300 Station
打开设备视图,修改CPU的IP地址,本例中将CPU的PN口IP地址设为192.168.0.220,如下图17所示:
图23设备视图中设置CPU的IP地址
3.3组态工艺对象
①新增工艺对象,选择“Modbus”---"其他"---“MODBUS_TCP”---"MB_PN_PARAM"
图24新增工艺对象
②设置“连接设置”
连接ID:连接引用标识符(范围1~4095),在之后调用指令时会使用该参数
连接建立:PLC做MODBUS TCP服务器,选择被动。
远程IP地址:可以指定或者不指定连接伙伴的IP地址。
本地设备ID:选择PLC的设备类型
本地端口:指定固定端口
伙伴端口:可不指定
图25组态工艺对象
③Modbus 设置“内部”
图26组态工艺对象
④Modbus 设置“数据区域”
下图中设置了4个Modbus数据区域
图27组态工艺对象
3.4根据工艺对象中创建的数据区域添加数据块
根据步骤3.3工艺对象中设置的数据区域,添加四个数据块,如下图所示
图28创建数据块
图29创建存放MODBUS 线圈数据的数据块
图30创建存放MODBUS 数字量输入类型的数据块
图31创建存放MODBUS 保持寄存器数据的数据块
图32创建存放MODBUS 输入寄存器据的数据块
3.5创建具有可用于授权的注册表项的数据块
创建授权密钥数据块DB3(名称REG_KEY),选择类型为“全局DB”,打开该DB块,创建变量“REG_KEY”,数据类型为“String[17]”,如图所示:
图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,如下图所示:
图34OB121
3.7调用通信指令
调用MODBUS TCP指令(通信---其他---MODBUS_TCP---MODBUSPN),填写参数。
为了在通信故障时查找原因,编写程序段2捕获错误代码。
图35调用“MODBUSPN”指令
3.8初始化指令
创建启动组织块OB100(名称COMPLETE RESTART),语言为“STL”,打开该OB块,置位初始化位输入管脚寄存器,如下图所示:
图36初始化“MODBUSPN”指令
3.9建立和客户端的连接
按照如下设置,使能服务器端,并使用ModScan32建立连接
图37建立和客户端的连接
3.9通信测试
示例1:客户端读写服务器【 线圈寄存器 】,偏移量0,长度为10的数据
图38通信测试示例
示例2:客户端读取服务器【 数字量输入寄存器 】,偏移量0,长度为10的数据
图39通信测试示例
示例3:客户端读写服务器【 保持寄存器 】,偏移量0,长度为10的数据
图40通信测试示例
示例4:客户端读取服务器【 模拟量输入寄存器 】,偏移量0,长度为10的数据
图41通信测试示例
审核编辑 :李倩
-
TCP
+关注
关注
8文章
1345浏览量
78909 -
S7-300
+关注
关注
8文章
225浏览量
34194
原文标题:S7-300/400集成PN口 MODBUS TCP 通讯(TIA)
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论