西门子S7-300TCP开放式通信实例 点击:3227 | 回复:22



大连德嘉工控

    
  • [版主]
  • 精华:7帖
  • 求助:2帖
  • 帖子:676帖 | 1135回
  • 年度积分:383
  • 历史总积分:7194
  • 注册:2009年2月24日
发表于:2019-05-27 14:03:47
楼主

书接前好几回,前面写了各种西门子PLC连接的例子,今天我们来连接一下S7-300 PN的,由于S7-300 PN做Modbus TCP比较复杂,可能这篇文章占得篇幅要比较大了,下面我准备占楼分发。

这里面有几个要点,我先提前介绍一下

1、使用以太网通讯就涉及到S7-300的以太网配置,本文中将详细介绍。

2、西门子有Modbus TCP的向导,但是收费,需要购买授权,所以我没用,我使用了标准TCP/IP的开放式通信向导。
  这就涉及到开放式通信向导的安装及配置,本文将详细介绍。

3、向导配置成功后,还需要在S7-300中编写通讯程序以完成TCP/IP数据收发,本文将详细介绍

4、使用标准的TCP/IP就意味着你需要做增加Modbus TCP功能,所以对Modbus协议的具体内容还是多
  少需要先了解一下的。具体的Modbus协议规范请自行学习。(因为涉及到协议的东西一两篇文字介绍不清楚,
  网上相关资源又很丰富,我就不在这里赘述了)

5、整个调试过程您可能需要很多调试软件,如NetAssist,Modbus Poll,Modbus Slave等,请自行下载

所用设备如下:

1、Modbus TCP/Modbus RTU模块(168含税
2、济南智泽4入2出的开关量模块
3、S7-300 315-2 PN/DP

硬件连接图示如下:

QQ截图20190527131618.jpg

参数设置如下:


1、济南智泽4入2出的开关量模块默认的通讯参数为:9600,n,8,1,这里我就不做修改了,因为很多厂家的产品也都是这个默认参数

2、Modbus TCP/Modbus RTU模块参数设置如下图:

2.jpg

1)、转换器IP

3.jpg

2)、转换器Modbus RTU设置

4.jpg

我们的设备设置到此结束,就这么简单,没什么可说的了,下面进行复杂的西门子S7-300的设置(功能强大就伴随着使用复杂,没办法)



1分不嫌少!



大连德嘉工控

  • [版主]
  • 精华:7帖
  • 求助:2帖
  • 帖子:685帖 | 1135回
  • 年度积分:411
  • 历史总积分:7222
  • 注册:2009年2月24日
发表于:2019-05-27 14:13:04
1楼

首先第一点,我们先来安装和配置一下S7-300 PN的PN口

1)、设置网络接口

1、设置电脑本地网卡IP地址如下图:

1.1.jpg

2、在电脑上打开 STEP 7 V5.5,展开菜单栏“PLC”,单击 “编辑以太网节点”。

1.2.jpg

3、弹出“编辑Ethernet节点”对话框,点击“浏览”。

1.3.jpg

4、在“浏览网络”对话框中选择您要编辑的设备,点击确认

1.4.jpg5、在工作区输入IP地址:192.168.130,子网掩码:255.255.255.0,点击“分配IP组态”。

1.5.jpg

6、操作成功后可显示成功提示消息,如果失败也没关系,你可以通过硬件组态来设置IP地址,重新下载PLC程序即可。
(因为我发现西门子的有些设置总是莫名其妙的失败,并且找不到原因)

2)、创建 PLC 项目

1、打开 STEP7 V5.5。在 “文件” 菜单中选择 “新建…” 选项。

1.6.jpg

2、在弹出的创建新项目窗口里输入项目名为“Modbus_TCP_Client”,然后点击“确定”按钮。

1.7.jpg

3、在Modbus_TCP_Client下点击右键“插入新对象”,选择“SIMATIC 300 站点”。

1.8.jpg4、双击“硬件”打开硬件组态,插入 S7-300 插槽。

1.9.jpg5、插入S7-300 CPU,与实际PLC一致: 6ES7 315-2EH13-0AB0 V2.6。

1.10.jpg6、在弹出的“属性-Ethernet接口”对话框的“参数”选项卡中为以太网接口添加,设置IP地址192.168.1.30和子网掩码255.255.255.0 。并点击“新建”按钮。

1.11.jpg

7、在弹出“新建子网”对话框中,点击“确定”,返回到“属性-Ethernet接口”后继续点击“确定”

1.12.jpg

1.13.jpg

8、最后点击“保存和编译”按钮。编译保存硬件组态信息

1.14.jpg

大连德嘉工控

  • [版主]
  • 精华:7帖
  • 求助:2帖
  • 帖子:685帖 | 1135回
  • 年度积分:411
  • 历史总积分:7222
  • 注册:2009年2月24日
发表于:2019-05-27 14:37:13
2楼

第三点,S7-300的TCP通信编程

1、查看 SIMATIC Manager—Blocks 下生成了 DB1。

3.1.jpg2、双击 OB1进入,程序中共需要的FB63、FB64、FB65、FB66,4个功能块。

3.2.jpg

3.3.jpg

3、插入 FB65 TCON

3.4.jpg4、添加背景DB65。

3.5.jpg5、显示 FB65,背景数据块为 DB65。

3.6.jpg6、打开DB1,复制“OUCW_1”名称。

3.7.jpg7、“CONNECT”引脚输入DB1. 粘贴“OUCW_1”

3.8.jpg3.9.jpg8、正确填写 FB65 引脚。

3.10.jpg9、添加共享 DB11,作为发送数据区。

3.11.jpg

10、打开DB11,添加变量,类型为数组。

3.12.jpg11、添加100个 BYTE 的数组变量。

3.13.jpg12、添加 FB63,背景数据块为DB63,正确填写 FB63 引脚。

3.14.jpg13、添加共享 DB12,作为接收数据区。

3.15.jpg

14、添加变量,类型为数组。

3.12.jpg15、添加100个 BYTE 的数组变量。

3.13.jpg16、添加 FB64,背景数据块为DB64,正确填写 FB64 引脚。

3.16.jpg17、添加 FB66,背景数据块为DB66,正确填写 FB66 引脚。

3.17.jpg18、返回 SIMATIC Manager 主界面,下载项目到 PLC

3.18.jpg

大连德嘉工控

  • [版主]
  • 精华:7帖
  • 求助:2帖
  • 帖子:685帖 | 1135回
  • 年度积分:411
  • 历史总积分:7222
  • 注册:2009年2月24日
发表于:2019-05-27 14:39:01
3楼

第四点,下面要进行Modbus TCP的通讯测试了,这里我就发一条指令,并且我直接在数据表中做的,没有写梯形图程序,因为前面已经写的太多了,这里就算抛砖引玉吧,知道了原理其他程序您自己做起来就容易了。

1、在SIMATIC Manager 中,Blocks 下插入变量表“Variable Table”。

4.1.jpg

2、添加变量。触发“TCON_REQ ”。

4.2.jpg3、我们再下两段小程序,来控制Modbus TCP的发送及改变发送的数据

4.3.jpg4.4.jpg这里需要说明一下,MB100我做了时钟存储器,使用M100.5和M100.7来产生1S和2S的脉冲信号

4.5.jpg

至此,所有的配置及程序都处理完成,小模块的灯也会每隔1秒翻转一次

4.6.jpg

scbvc@163.com

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 49回
  • 年度积分:0
  • 历史总积分:81
  • 注册:2005年10月31日
发表于:2019-08-05 20:49:14
4楼

学习了 谢谢楼主分享 正好需要

晨羽远

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 13回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2013年12月15日
发表于:2019-09-23 23:06:38
5楼

很好很好很好

Mr李先生

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 59回
  • 年度积分:33
  • 历史总积分:137
  • 注册:2019年3月27日
发表于:2019-09-24 13:44:31
6楼

谢谢分享 谢谢分享 谢谢分享 谢谢分享

过客一号

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1060回
  • 年度积分:0
  • 历史总积分:227
  • 注册:2017年6月09日
发表于:2019-10-11 12:38:52
7楼

好资料,感谢分享!

小_君_

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 174回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2018年7月17日
发表于:2019-12-25 15:52:02
8楼

好资料,感谢分享!

爆羊

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 128回
  • 年度积分:3
  • 历史总积分:54
  • 注册:2019年5月22日
发表于:2020-01-14 15:09:50
9楼

好久没有用了,都差点忘记了,谢谢你的资料让我想起来很多!

cxl19880417

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 100回
  • 年度积分:87
  • 历史总积分:164
  • 注册:2016年12月06日
发表于:2020-02-13 14:57:07
10楼

好东西,拜读了

jinxing13456789

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 42回
  • 年度积分:45
  • 历史总积分:51
  • 注册:2013年9月12日
发表于:2020-02-20 14:39:42
11楼

是这样的啊?不是吧

xiaoli杰

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 32回
  • 年度积分:0
  • 历史总积分:51
  • 注册:2019年12月05日
发表于:2020-03-20 16:53:39
12楼

学习一下。学习一下。

kingbird4444

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 38回
  • 年度积分:20
  • 历史总积分:51
  • 注册:2016年5月27日
发表于:2020-05-03 11:10:19
13楼

西门子有Modbus TCP的向导,但是收费,需要购买授权,所以我没用,我使用了标准TCP/IP的开放式通信向导。

天寒星宇

  • 精华:1帖
  • 求助:0帖
  • 帖子:1帖 | 46回
  • 年度积分:48
  • 历史总积分:51
  • 注册:2011年11月23日
发表于:2020-07-06 12:04:46
14楼

Modbus TCP/Modbus RTU

moonsuperstar

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 30回
  • 年度积分:53
  • 历史总积分:53
  • 注册:2013年3月11日
发表于:2020-08-05 14:34:51
15楼

学习一下 谢谢楼主

一紧张就乱来

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 178回
  • 年度积分:0
  • 历史总积分:92
  • 注册:2010年7月01日
发表于:2020-08-11 11:28:12
16楼

学习了 谢谢楼主分享

jaktt

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 24回
  • 年度积分:39
  • 历史总积分:50
  • 注册:2016年4月26日
发表于:2020-09-09 21:37:28
17楼

谢谢,楼主!!感谢分享给大家。

懒猫很懒

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:14
  • 历史总积分:64
  • 注册:2017年11月02日
发表于:2020-11-05 11:33:34
18楼

有学到一招,感谢楼主

Cheart

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 112回
  • 年度积分:168
  • 历史总积分:168
  • 注册:2020年9月02日
发表于:2020-11-14 14:33:40
19楼

天道酬勤

yancheng_123

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 699回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2017年3月17日
发表于:2020-11-15 08:03:37
20楼

fxq199210


相关主题

官方公众号

智造工程师