S7-1200和CP343-1的Profinet通信方法

cp343-1(6gk7343-1ex30-0xe0) 或 cp343-1 advanced(6gk7343-1gx30/1gx31-0xe0) 或 cp343-1 lean(6gk7343-1cx10-0xe0) 支持 i device 模式,故可使用 cp343-1 作为智能 io 设备和 s7-1200 做 profinet 通信。本例中将 s7-1200 做为控制器,连接作为智能 io 设备的 cp343-1 实现 profinet 通信;下面详细介绍使用方法。
硬件:
cpu 1217c dc/dc/dc,v4.4
cpu 314c-2 pn/dp,v3.3 + cp343-1 standard(6gk7343-1ex30-0xe0) ,v3.0
软件:
tia step7 v17
step7 v5.6 sp2
cp343-1 的 pn 接口连接 s7-1200 的 pn 接口,这种方式可以分 3 种情况来操作,具体如下:
第一种情况:s7-1200 与 cp343-1 在一个项目中操作(tia step7 v17)
第二种情况:s7-1200 与 cp343-1 不在一个项目中的操作(两个 tia step7 v17 项目)
第三种情况:s7-1200 与 cp343-1 不在一个项目中的操作( s7-1200 在tia step7 v17 项目中,cp343-1 在 step7 v5.6 项目中)
1. 第一种情况(s7-1200 与 cp343-1 在同一 tia 项目中)
cpu1217c 作为 io 控制器,cp343-1 作为 io 设备,使用 tia step7 v17 在一个项目中操作,详细步骤如下。
1-1 使用 step7 v17 创建 s7-1200 站
使用 step7 v17 创建一个新项目,并通过“添加新设备”组态 s7-1200 站 plc_1,选择 cpu 1217c,添加子网并设置 ip 地址,确认设备名称,本示例中 s7-1200 设备名称是 plc_1。如图 1 所示。
图 1 在新项目中插入 s7-1200 站
组态 s7-1200plc 后,默认为 io 控制器模式,无需设置。如图 2 所示。
图 2 s7-1200的操作模式
1-2 使用 step7 v17 创建 s7-300 站
使用 step7 v17 创建一个新项目,并通过“添加新设备”组态 s7-300 站 plc_2,选择 cpu314c-2 pn/dp v3.3 和 cp343-1 v3.0;对 cp343-1 分配子网并设置 ip 地址,并确认设备名称,本示例中 cp343-1 设备名称是 plc_2.cp343-1_1 。如图 3 所示。
图 3 在新项目中插入 s7-300 和 cp343-1
cp343-1 作为 io 设备,需要将其操作模式设置为 io 设备,将 io 设备分配给控制器 plc_1。
在“智能设备通信”的“传输区”创建 io 通信区,控制器的 qb2~7 共计 6 个字节传送到 io 设备的接收块中偏移量数据 0~5 ;控制器的 ib2~7 共计 6 个字节读取 io 设备的发送块中偏移量数据 0~5 ,如图 4 所示。
图 4 设置 cp343-1 为 io 设备和智能设备通信传输区域
之后分别将 plc_1 站和 plc_2 站硬件组态编译下载到各自的 plc 中。
1-3 s7-300 编程
本例中,cp343-1 作为 智能 io 设备,要在 ob1 中编程调用 pnio_send 和 pnio_recv 进行数据读写。如图 5 所示。
图 5 cpu314c-2 pn/dp 中编程
指令管脚参数说明:
call “pnio_send” //调用 pnio_send
cpladdr :=w#16#100 // cp 模板 io起始地址
mode :=b#16#0 // 工作模式:当 cp343-1 仅作为 io 控制器或 io 设备时,设为 0;当 cp343-1 同时作为 io 控制器和 io 设备时,设为 1
len :=6 // 要发送的数据区长度;该长度始终是从数据区地址0开始计算
send :=p#m100.0 byte 6 // 发送数据区
iocs :=p#m120.0 byte 1 // 每一用户数据字节传送一个状态位。长度信息取决于 len 参数中的长度。
以程序段 1 为例,共发送 6 个字节,每个字节需要 1 个位,所以共需要 6 位,即至少需要 1 字节。
done :=%m130.0 // 为 1 时,无错误完成该作业
error :=%m130.1 // 为 1 时,有故障发生
status :=%mw132 // 状态代码
check_iocs :=%m130.2 // 0: 所有 iocs 均设置为 good
// 1: 至少一个 iocs 设置为 bad
call “pnio_recv” //调用 pnio_recv
cpladdr :=w#16#100 // cp 模板 io起始地址
mode :=b#16#0 // 工作模式:当 cp343-1 仅作为 io 控制器或 io 设备时,设为 0;当 cp343-1 同时作为 io 控制器和 io 设备时,设为 1
len :=6 // 要接收的数据区长度;该长度始终是从数据区地址 0 开始计算
recv :=p#m200.0 byte 6 // 发送数据区
iops :=p#m220.0 byte 1 // 每一用户数据字节传送一个状态位。长度信息取决于 len 参数中的长度。
以程序段 2 为例,共接收 6 个字节,每个字节需要 1 个位,所以共需要 6 位,即至少需要 1 字节。
ndr :=%m230.0 // 为 1 时,无错误完成该作业
error :=%m230.1 // 为 1 时,有故障发生
status :=%mw232 // 状态代码
check_iops :=%m230.2 // 0: 所有 iops 均设置为 good
// 1: 至少一个 iops 设置为 bad
add_info :=%mw234 // 附加诊断信息;具体请查看指令帮助信息
注意:cpladdr 是 cp343-1 的 io 地址的起始地址,如图 6 所示。指令中使用 w#16#100,即 256。
图 6 cp343-1 地址
1-4 通讯测试
检查无错误后,下载 s7-300 的程序,分别给两个站点新建监控表,添加通信数据区,监控。如图 9 所示。
图 7 通信测试
1-6 地址对应关系的说明
图 8 地址对应关系
从图中可以看到,当 cp343-1 作智能 io 设备时,传输区块中的偏移量默认从 0 开始,无法修改。地址对应排列关系以逻辑地址大小为序。
2. 第二种情况( s7-1200 与 cp343-1 在不同tia项目中)
在不同项目中的操作,即:1217c 作为 io 控制器,cp343-1 作为 io 设备在两个 tia 项目操作,详细步骤如下。
2-1 使用 step7 v17 创建 s7-300 站
s7-300 站点创建和第一种情况-->1-2 使用 step7 v17 创建 s7-300 站章节内容相同,不再赘述。
2-2 配置智能设备通信传输区并导出gsd 文件
cp343-1 作为 io 设备,需要将其操作模式设置为 io 设备,将 io 设备分配选择未分配。在“智能设备通信”的“传输区”创建 io 通信区,io 数据长度分别为6个字节,如图 9 所示。
图 9 设置 cp343-1为 io 设备和智能设备通信传输区域
编译该项目,在“智能设备通信”属性的下方,找到并点击“导出”按钮,根据提示将 gsd 文件自由选择路径导出(注意不要修改设备名称)。如图 10、11 所示。
图 10 导出 cp343-1的 gsd 文件
图 11 导出 cp343-1 的 gsd 文件
2-3 使用 step7 v17 创建 s7-1200 站
s7-1200 站点创建和第一种情况-->1-1 使用 step7 v17 创建 s7-1200 站章节内容相同,不再赘述。
在 tia 内导入 cp343-1 的 gsd 文件,路径为“选项”-->“管理通用站描述文件(gsd)”。在源路径选择 io-device 的 gsd 文件存放路径,选择并安装 gsd 文件。如图 12、13 所示。
图 12 tia 内安装 gsd 文件
图 13 选择并安装 gsd 文件
2-4 在s7-1200 中组态 io-device
在网络视图内,硬件目录中找到导入的 cp343-1 ,然后拖拽到网络视图内。点击 cp343-1 网口拖拽到 cpu 1217c 网口上,将 cp343-1 分配给io 控制器 cpu 1217c 。如图 14 所示。
图 14 io 控制器项目内组态 io 设备
在网络视图内,双击 cp343-1 查看 io 地址分配情况。如图 15 所示。
图 15 io 设备的 io 地址分配情况
2-5 硬件组态下载,检查设备名称和 ip 地址是否正确
分别将 s7-300 站和 s7-1200 站下载到各自的 plc 中。
将 tia 软件转至在线状态,在网络视图查看站点通信状况。若在线站点显示,则表示通信正常。如图 16 所示。
图 16 tia 在线查看网络状态
2-6 s7-300 编程
s7-300 编程 和第一种情况-->1-3 s7-300 编程 章节内容相同,不再赘述。
2-7 通讯测试
检查无错误后,分别给两个站点新建监控表,添加通信数据区,监控。如图 17 所示。
图 17 通信测试
2-8 地址对应关系的说明
当 cp343-1 作智能 io 设备时,传输区块中的偏移量默认从 0 开始,无法修改。在 io 控制器 s7-1200 plc 侧导入 gsd 文件后, io 设备对应主站的 io 地址可在网络视图内双击 io 设备查看。如图 15 所示。
本例中,io 设备传输区对应 io 控制器 ib68~ib73 和 qb68~qb73。对应关系为:
s7-1200 plc 的 ib68~ib73 s7-300 plc 的 mb100~mb105;
s7-1200 plc 的 qb68~qb73 s7-300 plc的 mb200~mb205。
3. 第三种情况(s7-1200 在 tia 项目中,cp343-1 在 step7 项目)
1217c 作为 io 控制器,使用 step7 v17 编程;cp343-1 作为 io 设备 使用 step7 v5.6 编程,详细步骤如下。
3-1 使用 step7 v5.6 创建 s7-300 站
使用 step7 v5.6 创建一个新项目,并组态 cpu 314c-2 pn/dp, 添加 cp343-1 ,设置 ip 地址并添加子网,并确认设备名称,本示例中设备名称是 pn-io 。如图 18 所示。
图 18 在新项目中插入 s7-300 站
3-2 配置智能设备通信传输区并导出 gsd 文件
cp343-1 作为 io 设备需设置 io 设备模式。在 pn-io 中,选择 i-device 页,勾选 i-device mode,并在“智能设备通信”的“传输区”创建 io 通信区,io 数据长度分别为 6 个字节,如图 19、20、21 所示。
图 19 设置 cp343-1 为 io 设备和智能设备通信传输输出区域
图 20 设置 cp343-1 为 io 设备和智能设备通信传输输入区域
图 21 智能设备通信传输区域配置完成
cp343-1 智能设备传输区域配置完毕后,生成并导出 gsd 文件。如图 22 所示。
图 22 生成 cp343-1 的 gsd 文件
生成 gsd 文件后,点击导出并选择目标路径,如图 23 所示。
图 23 导出 cp343-1 的 gsd 文件
3-3 使用 step7 v17 创建 s7-1200 站
s7-1200 站点创建及 gsd 导入方法和第二种情况-->2-3 使用 step7 v17 创建 s7-1200 站 章节内容相同,不再赘述。
3-4 在s7-1200 中组态 io-device
在网络视图内,硬件目录中找到导入的 cp343-1,然后拖拽到网络视图内。点击 cp343-1 网口拖拽到 cpu 1217c 网口上,将 cp343-1 分配给 io 控制器 cpu 1217c。如图 24 所示。
图 24 io 控制器项目内组态 io 设备
在网络视图内,双击 cp343-1 查看 io 地址分配情况。如图 25 所示。
图 25 io 设备的io地址分配情况
3-5 硬件组态下载,检查设备名称和 ip 地址是否正确
分别将 s7-300 站和 s7-1200 站下载到各自的 plc 中。
将 tia 软件转至在线状态,在网络视图查看站点通信状况。若在线站点显示,则表示通信正常。如图 26 所示。
图 26 tia 在线查看网络状态
3-6 s7-300 编程
本例中,cp343-1 作为 智能 io 设备,要在 ob1 中编程调用 pnio_send 和 pnio_recv 进行数据读写。如图 27 所示。
图 27 cpu314c-2 pn/dp 中编程
指令管脚参数说明:
call “pnio_send” //调用 pnio_send
cpladdr :=w#16#100 // cp 模板 io起始地址
mode :=b#16#0 // 工作模式:当 cp343-1 仅作为 io 控制器或 io 设备时,设为0;当 cp343-1 同时作为 io 控制器和 io 设备时,设为 1
len :=6 // 要发送的数据区长度;该长度始终是从数据区地址0开始计算
send :=p#m100.0 byte 6 // 发送数据区
iocs :=p#m120.0 byte 1 // 每一用户数据字节传送一个状态位。长度信息取决于len 参数中的长度。
以程序段 1 为例,共发送 6 个字节,每个字节需要 1 个位,所以共需要 6 位,即至少需要 1 字节。
done :=%m130.0 // 为 1 时,无错误完成该作业
error :=%m130.1 // 为 1 时,有故障发生
status :=%mw132 // 状态代码
check_iocs :=%m130.2 // 0: 所有 iocs 均设置为 good
// 1: 至少一个 iocs 设置为 bad
call “pnio_recv” //调用 pnio_recv
cpladdr :=w#16#100 // cp 模板 io起始地址
mode :=b#16#0 // 工作模式:当 cp343-1 仅作为 io 控制器或 io 设备时,设为0;当 cp343-1 同时作为 io 控制器和 io 设备时,设为 1
len :=6 // 要接收的数据区长度;该长度始终是从数据区地址 0 开始计算
recv :=p#m200.0 byte 6 // 发送数据区
iops :=p#m220.0 byte 1 // 每一用户数据字节传送一个状态位。长度信息取决于len 参数中的长度。
以程序段2为例,共接收 6 个字节,每个字节需要 1 个位,所以共需要 6 位,即至少需要 1 字节。
ndr :=%m230.0 // 为 1 时,无错误完成该作业
error :=%m230.1 // 为 1 时,有故障发生
status :=%mw232 // 状态代码
check_iops :=%m230.2 // 0: 所有 iops 均设置为 good
// 1: 至少一个 iops 设置为 bad
add_info :=%mw234 // 附加诊断信息;具体请查看指令帮助信息
注意:cpladdr是 cp343-1 的 io 地址的起始地址,如图 28 所示。指令中使用 w#16#100,即256。
图 28 cp343-1 起始地址
3-7 通讯测试
检查无错误后,分别给两个站点新建监控表,添加通信数据区,监控。如图 28 所示。
图 29 通信测试
3-8 地址对应关系的说明
当 cp343-1 作智能 io 设备时,传输区块中的偏移量默认从 0 开始,无法修改。在 io 控制器 s7-1200 plc 侧导入 gsd 文件后, io 设备对应主站的 io 地址可在网络视图内双击 io 设备查看。如图25 所示。
本例中, io 设备传输区对应 io 控制器 ib68~ib73 和 qb68~qb73 。对应关系为:
s7-1200 plc 的 ib68~ib73 s7-300 plc 的 mb100~mb105;
s7-1200 plc 的 qb68~qb73 s7-300 plc 的 mb200~mb205。


解读无人机躲闪术:机器学习让我战胜击剑高手
如何计算室内室外全彩LED显示屏屏体的面积
realme X50干不过红米K30 红米有一个压倒性的优势
关于正激变压器有哪些必须知道的?
华为5G Book RRU满足5G网络部署需求,助力中国电信完成城市5G全覆盖
S7-1200和CP343-1的Profinet通信方法
中国移动基于面向 5G 及数据中心的高速光引擎建设项目
警用无人机应用场景和特点
TM52F1363为面包机提供MCU解决方案,内置LCD驱动器和A/D转换器
创新的板对板产品BergStak 连接器
什么是电源?电源是如何进行分类的?
通用芯片和嵌入式芯片有什么区别
索尼Xperia 1国行版本正式发布搭载骁龙855平台支持后置三摄
利用NVIDIA Volta将文本实时生成自然语音
让医疗行业更智能,我们是认真的
2019新松公司成功举办 Djitt博士等嘉宾和230多家企业观看新产品
区块链技术应用解决方案_数字资产系统开发
海兴电力与Arm合作将为客户打造出全栈式的物联网解决方案
降压DC-DC 宝砾微PL88104 封装SOT23-6L
51单片机优缺点及应用领域介绍