网站首页 > 技术文章 正文
S7-1500作为智能IO设备和CP343-1的 Profinet 通信(S7-300做控制器)
S7-1500 支持智能 IO 设备功能,故可使用 S7-1500 作为智能 IO 设备和 CP343-1 的 Profinet 通信。本例中将 S7-300 做为控制器,连接作为智能 IO 设备的S7-1500 CPU 实现 Profinet 通信;下面详细介绍使用方法。
硬件:
- CPU 6ES7 513-1AL01-0AB0,V2.1
- CPU 314C-2ptp,V2.6 + CP343-1,V3.0
软件:
- Step7 V14
- Step7 V5.5 SP3
CP343-1 的 PN 接口连接 S7-1500 的 PN 接口,这种方式可以分2种情况来操作,具体如下:
1. 第一种情况(同一项目中操作)
CPU 314C 作为 controller,1500 作为 IO device,使用 Step7 V14 在一个项目中操作,详细步骤如下。
1.1 使用 Step7 V14 创建 S7-300 站
使用 STEP7 V14 创建一个新项目,并通过“添加新设备”组态 S7-300 站 PLC_1,选择 CPU 314C-2 ptp, 添加 CP343-1 ,设置 IP 地址。如图 1 所示。
图 1 在新项目中插入 S7-300 站
在“操作模式”选项中确认 CP343-1 的操作模式。 如图 2 所示。
图 2 选择 CP343-1 操作模式
1.2 使用 Step7 V14 创建 S7-1500 站
使用 STEP7 V14 创建一个新项目,并通过“添加新设备”组态 S7-1500 站 PLC_2,选择 CPU1500 ;设置 IP 地址,并确认设备名称,本示例中设备名称是plc_2。如图 3 所示。
图 3 在新项目中插入 S7-1500 站
S7-1500 作为 IO 设备,需要将其操作模式设置为 IO 设备,并将 IO 设备分配给控制器 PLC_1 。如图 4 所示。
图 4 S7-1500 设置为 IO 设备
接着,在“智能设备通信”的“传输区”创建 IO 通信区,控制器的 QB2~6 共计5个字节传送到 IO 设备的 IB2~6 ;控制器的 IB2~6 共计5个字节读取来自 IO 设备的 QB2~6 。如图 5 所示。
图 5 创建 IO 通信区
1.3 硬件组态下载,检查设备名称和 IP 地址是否正确
分别将 PLC_1 站和 PLC_2 站下载到各自的 PLC 中。
将软件切换到“网络视图”,找到 PN/IE 总线,查看设备名称是否正确。如图 6、7 所示。
图 6 网络视图
图 7 确认设备名称和 IP 地址
1.4 S7-300 编程
本例中,CP343-1 作为 IO 控制器,需要在 OB1 中编程调用 PNIO_SEND 和 PNIO_RECV 进行数据读写。如图 8 所示。
图 8 CPU314C 中编程
CALL “PNIO_SEND”
CPLADDR:=256// CP 模板起始地址
MODE:=0// 工作模式:当CP343-1仅作为IO控制器或IO设备时,设为0;当CP343-1同时作为IO控制器和IO设备时,设为1
LEN:=7// 要发送的数据区长度;该长度始终是从数据区地址0开始计算
SEND:=P#M100.0 BYTE 7// 发送数据区
IOCS:=P#M150.0 BYTE 10
// 每一用户数据字节传送一个状态位。长度信息取决于LEN参数中的长度。
以程序段1为例,共发送7个字节,每个字节需要1个比特位,所以共需要7位,即至少需要1字节。
DONE:=%M0.0// 为1时,无错误完成该作业
ERROR:=%M0.1// 为1时,有故障发生
STATUS:=%MW2// 状态代码
CHECK_IOCS:=%M0.3
// 0: 所有IOCS均设置为GOOD
// 1: 至少一个IOCS设置为BAD
CALL “PNIO_RECV”
CPLADDR:=256// CP 模板起始地址
MODE:=0// 工作模式:当CP343-1仅作为IO控制器或IO设备时,设为0;当CP343-1同时作为IO控制器和IO设备时,设为1
LEN:=7// 要接收的数据区长度;该长度始终是从数据区地址0开始计算
RECV:=P#M200.0 BYTE 7// 发送数据区
IOPS:=P#M250.0 BYTE 10
// 每一用户数据字节传送一个状态位。长度信息取决于LEN参数中的长度。
以程序段2为例,共接收7个字节,每个字节需要1个比特位,所以共需要7位,即至少需要1字节。
NDR:=%M1.0// 为1时,无错误完成该作业
ERROR:=%M1.1// 为1时,有故障发生
STATUS:=%MW4// 状态代码
CHECK_IOPS:=%M1.2
// 0: 所有IOPS均设置为GOOD
// 1: 至少一个IOPS设置为BAD
ADD_INFO:=%MW6// 附加诊断信息;具体请查看指令帮助信息
1.5 通讯测试
检查无错误后,下载 S7-300 的程序,分别给两个站点新建监控表,添加通信数据区,监控。如图 9 所示。
图 9 通信测试
1.6 地址对应关系的说明
图 10 地址对应关系
从图中可以看到,当 CP343-1 作为控制器时,其传送的地址需从0开始的。地址对应排列关系以逻辑地址大小为序。地址如果出现间隔时,如例子中,没有组态的地址区 IB0~2(QB0~1) 及其对应的 MB100~101(MB200~201) 也将被传送。
2. 第二种情况(不在同一项目中操作)
不在一个项目中的操作,即:CPU314C 作为 controller 使用 Step7 V5.5 编程;1500 作为 IO device,使用 Step7 V14 编程,详细步骤如下。
2.1 使用 Step7 V14 创建 S7-1500 站
使用 STEP7 V14 创建一个新项目,并通过“添加新设备”组态 S7-1500 站 IO-device ,选择 1500;设置 IP 地址,并确认设备名称,本示例中设备名称是io_device。如图 11 所示。
图 11 在新项目中插入 S7-1500 站
S7-1500 作为 IO 设备,需要将其操作模式设置为 IO 设备。如图 12 所示。
图 12 S7-1500 设置为 IO 设备,并创建 IO 通信区
接着,在“智能设备通信”的“传输区”创建 IO 通信区,控制器将传输5个字节到 IO 设备的 IB2~6 ;IO 设备将 QB2~6 共计5个字节传送给控制器。
2.2 导出 IO 设备的 GSD 文件
编译该项目,在“智能设备通信”属性的下方,找到并点击“导出”按钮,根据提示将 GSD 文件导出(注意不要修改设备名称)。如图 13 所示。
图 13 导出 IO 设备的 GSD 文件
2.3 使用 Step7 V5.5 创建 S7-300 站
使用 STEP7 V5.5 创建一个新项目,并组态 CPU 314C-2 ptp, 添加 CP343-1 ,设置 IP 地址,并确认设备名称,本示例中设备名称是PN-IO。如图 14 所示。
图 14 在新项目中插入 S7-300 站
在 Step7 V5.5 的硬件组态界面,通过“选项”进入“安装 GSD 文件...”界面, 在源路径选择 IO-device 的 GSD 文件存放路径。如图 15 所示。
图 15 Step7 V5.5 安装 IO-device 的 GSD 文件
2.4 在 Step7 V5.5 中组态 IO-device
首先,需要给 CP343-1 插入 Profinet IO 总线,在 CP343-1 的“PN-IO”上鼠标右键,选择“插入 Profinet IO 系统”。如图 16 所示。
图 16 插入 Profinet IO 系统
然后,从硬件目录路径:PROFINET IO --> Preconfigured Stations --> CPU 1500 --> IO-device 拖拽到 PN 总线上。如图 17 所示。
图 17 组态 IO-device
2.5 硬件组态下载,检查设备名称和 IP 地址是否正确
分别将 S7-300 站和 S7-1500 站下载到各自的 PLC 中。
将 STEP7 V14 软件切换到“网络视图”,找到 PN/IE 总线,查看设备名称是否正确。如图 18、19 所示。
图 18 网络视图
图 19 确认设备名称和 IP 地址
2.6 S7-300 编程
本例中,CP343-1 作为 IO 控制器,需要在 OB1 中编程调用 PNIO_SEND 和 PNIO_RECV 进行数据读写。如图 20 所示。
图 20 CPU314C 中编程
CALL “PNIO_SEND”
CPLADDR:=W#16#100// CP 模板起始地址
MODE:=B#16#0// 工作模式:当CP343-1仅作为IO控制器或IO设备时,设为0;当CP343-1同时作为IO控制器和IO设备时,设为1
LEN:=7// 要发送的数据区长度;该长度始终是从数据区地址0开始计算
SEND:=P#M100.0 BYTE 7// 发送数据区
IOCS:=P#M150.0 BYTE 10
// 每一用户数据字节传送一个状态位。长度信息取决于LEN参数中的长度。
以程序段1为例,共发送7个字节,每个字节需要1个比特位,所以共需要7位,即至少需要1字节。
DONE:=%M0.0// 为1时,无错误完成该作业
ERROR:=%M0.1// 为1时,有故障发生
STATUS:=%MW2// 状态代码
CHECK_IOCS:=%M0.3
// 0: 所有IOCS均设置为GOOD
// 1: 至少一个IOCS设置为BAD
CALL “PNIO_RECV”
CPLADDR:=W#16#100// CP 模板起始地址
MODE:=B#16#0// 工作模式:当CP343-1仅作为IO控制器或IO设备时,设为0;当CP343-1同时作为IO控制器和IO设备时,设为1
LEN:=7// 要接收的数据区长度;该长度始终是从数据区地址0开始计算
RECV:=P#M200.0 BYTE 7// 发送数据区
IOPS:=P#M250.0 BYTE 10
// 每一用户数据字节传送一个状态位。长度信息取决于LEN参数中的长度。
以程序段2为例,共接收7个字节,每个字节需要1个比特位,所以共需要7位,即至少需要1字节。
NDR:=%M1.0// 为1时,无错误完成该作业
ERROR:=%M1.1// 为1时,有故障发生
STATUS:=%MW4// 状态代码
CHECK_IOPS:=%M1.2
// 0: 所有IOPS均设置为GOOD
// 1: 至少一个IOPS设置为BAD
ADD_INFO:=%MW6// 附加诊断信息;具体请查看指令帮助信息
2.7 通讯测试
检查无错误后,分别给两个站点新建监控表,添加通信数据区,监控。如图 21 所示。
图 21 通信测试
2.8 地址对应关系的说明
图 22 地址对应关系
从图中可以看到,当 CP343-1 作为控制器时,其传送的地址需从0开始的。地址对应排列关系以逻辑地址大小为序。地址如果出现间隔时,如例子中,没有组态的地址区 IB0~2(QB0~1) 及其对应的 MB100~101(MB200~201) 也将被传送。
- 上一篇: c++使用iocp读写文件
- 下一篇: 网站推荐:5个奇奇怪怪的网站,摸鱼必备
猜你喜欢
- 2025-01-21 欧姆龙CP2E以太网通讯与数据采集
- 2025-01-21 网站推荐:5个奇奇怪怪的网站,摸鱼必备
- 2025-01-21 c++使用iocp读写文件
- 2025-01-21 配置CP343-1 Advanced作为IO Device需要注意什么
- 2025-01-21 再谈select, iocp, epoll,kqueue及各种I/O复用机制
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)