0

0

一个PLC用博图,一个PLC用STEP7,通讯怎么办?

絕刀狂花

絕刀狂花

发布时间:2025-04-26 14:36:21

|

963人浏览过

|

来源于php中文网

原创

s7-1200 与 s7-300 pn 之间的以太网通信可以通过 tcp 协议来实现,使用的通信指令是在双方 cpu 调用 t-block(tsend_c,trcv_c,tcon,tdiscon,tsend,trcv)指令来实现。通信方式为双边通信,因此 tsend 和 trcv 必须成对出现。

本案例也可以作为 S7-1200 与 S7-300 PN 之间的 TCP 通信的参考文档。

硬件和软件需求及所完成的通信任务

所需条件:

① S7-1200(CPU1215C DC/DC/DC,固件版本 V4.4)/S7-300(集成 PN 口,固件版本 V3.2)

② TIA STEP7 V16,STEP7 V5.6

所完成的通信任务:

① S7-1200 CPU 将通讯数据区 DB3 块中的 10 个字节的数据发送到 S7-300 CPU 的接收数据区 DB2 块中。

② S7-300 CPU 将通讯数据区 DB1 块中的 10 个字节的数据发送到 S7-1200 CPU 的接收数据区 DB4 块中。

S7-1200 与 S7-300(集成 PN 口)之间的 TCP 通信可以分为三种情况:

第一种情况:S7-1200 与 S7-300(集成 PN 口)在一个项目中操作(TIA STEP7 V16);

第二种情况:S7-1200 与 S7-300(集成 PN 口)不在一个项目中的操作(两个 TIA STEP7 V16 项目);

第三种情况:S7-1200 与 S7-300(集成 PN 口)不在一个项目中的操作(S7-1200 在 TIA STEP7 V16 项目中,S7-300 在 STEP7 V5.6 项目中)。

今天我们介绍第三种情况:S7-1200 与 S7-300(集成 PN 口)不在一个项目中的操作(S7-1200 在 TIA STEP7 V16 项目中,S7-300 在 STEP7 V5.6 项目中)。

01 创建 PLC 项目

创建 S7-1200 项目:

(1) 使用 STEP7 V16 软件新建一个项目并完成硬件配置,添加硬件并命名 PLC

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(2) 使用 CPU 属性中定义的时钟位,定义方法如下:

在“项目树” > “S7-1200” > “设备组态”中,选中 CPU,然后在下面的属性窗口中,“属性” > “系统和时钟存储器”下,将系统位定义在 MB1,时钟位定义在 MB0。系统位我们主要使用 M1.0;时钟位主要使用 M0.3,它是以 2Hz 的速率在 0 和 1 之间切换的一个位,可以使用它去自动激活发送任务。

(3) 在“设备视图”中点击 CPU 上代表 PROFINET 通信口的绿色小方块,在下方会出现 PROFINET 接口的属性,在“以太网地址”下分配 IP 地址为 192.168.0.2,子网掩码为 255.255.255.0。

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(4) 在 S7-1200 CPU 中调用发送通信指令,进入“项目树” > “PLC_1” > “程序块” > “OB1”主程序中,从右侧窗口“指令” > “通信” > “开放式用户通信”下调用“TCON”指令,创建连接

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(5) 定义 S7-1200 的“TCON”连接参数,S7-1200 的“TCON”指令的连接参数需要在指令下方的属性窗口“属性” > “组态” > “连接参数”中设置。

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(6) 调用“TSEND”在 OB1 内调用发送 10 个字节数据到 S7-300PN 中

进入“项目树” > “PLC_1” > “程序块” > “OB1”主程序中,从右侧窗口“指令” > “通信” > “开放式用户通信”下调用“TSEND”指令

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(7) 通过“项目树” > “PLC_1” > “程序块” > “添加新块”,选择“数据块”创建 DB 块,在 DB 块的“属性- > 常规- > 属性”中,取消勾选“优化的块访问”,点击“确定”键,定义发送数据区为 10 个字节的数组。

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(8) 进入“项目树” > “PLC_1” > “程序块” > “OB1”主程序中,从右侧窗口“指令” > “通信” > “开放式用户通信”下调用“TRCV”指令,配置接口参数

一个PLC用博图,一个PLC用STEP7,通讯怎么办?创建 S7-300 项目:

在 STEP7 V5.6 中创建一个项目并插入 CPU315-2PN/DP 站

(1) 在 PC 上打开 STEP7 V5.6,在“File”菜单中选择“New…”选项

(2) 在弹出的创建新项目窗口里输入项目名为“TCP_Server”,然后点击“OK”按钮

(3) 在 TCP_Server 下点击右键“Insert New Object”,选择“SIMATIC 300 Station”,

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(4) 双击“Hardware”打开硬件组态,

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(5) 插入 S7-300 插槽

(6) 插入 S7-300 CPU,与实际 PLC 一致

飞书多维表格
飞书多维表格

表格形态的AI工作流搭建工具,支持批量化的AI创作与分析任务,接入DeepSeek R1满血版

下载

(7) 在弹出的“Properties-Ethernet interface PN-IO”对话框的“Parmeters”选项卡中为以太网接口添加,设置 IP 地址 192.168.0.1 和子网掩码 255.255.255.0。

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(8) 点击“New...”新建子网

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(9) “New subnet Industrial Ethernet”对话框下 Name:Ethernet(1),

(10) 新建 Subnet 后,点击“OK”,

(11) 点击“Save and Compile”按钮。编译保存硬件组态信息

一个PLC用博图,一个PLC用STEP7,通讯怎么办?

02 TCP 通信向导组态

创建用于开放式 TCP/IP 通信的连接数据的向导(开放式通信向导)下载链接:https://www.php.cn/link/fc0aafd651946d038137a3b480c2e639

(1) 开始菜单中选择“SIMATIC”—“Open Communication Wizard”

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(2) 打开“Open Communication Wizard”,

(3) 选择 STEP 7 project,选择 TCP_Server 项目,选择 Block folder,选择项目下的 Blocks,点击 NEXT

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(4)选择“Connection type”—“TCP native”,点击“Next”

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(5) Connect name:“300_Client”。因为 S7 300 作客户端,因此选择“Active”,选择 User interface:CPU 314/315/317/ET200pro(IM154-8 CPU),

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(6) Communication parter B 的 IP 地址 192.168.0.2,点击“Next”,

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(7) Communication parter B 端口号:2000,点击“Next”,

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(8) Communication parter A,数据块 Name:DB10,点击“Next”,

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(9)依次点击 next /finish/是,完成配置。

一个PLC用博图,一个PLC用STEP7,通讯怎么办?

03 TCP 通信编程

(1) SIMATIC Manager—Blocks 下生成了 DB10

(2) 双击 OB1 进入,需要的功能块

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(3) 插入 FB65 TCON,添加背景 DB

(4) 打开 DB10,复制“OUCW_1”名称

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(5) “CONNECT”引脚输入 DB10,粘贴“OUCW_1”,正确填写 FB65 引脚

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(6) 添加 Bata Block,添加共享 DB1,作为发送数据区,添加变量,类型为数组,添加 10 个 BYTE 的数组变量

一个PLC用博图,一个PLC用STEP7,通讯怎么办?一个PLC用博图,一个PLC用STEP7,通讯怎么办?(7) 在 S7-300 项目的 Hardware 中,右键点击 CPU,选择 Object Properties- > Cycle/Clock Memory,勾选“Clock memory”,输入 Memory byte

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(8) 添加 FB63,背景数据块为 DB63,正确填写 FB63 引脚,其中 REQ 使用时钟存储器 M30.3,以 2Hz 的速率在 0 和 1 之间切换的一个位。

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(9)添加共享 DB2,作为接收数据区。添加变量,类型为数组。添加 10 个 BYTE 的数组变量。

一个PLC用博图,一个PLC用STEP7,通讯怎么办?(10)调用 FB64,背景数据块为 DB64,正确填写 FB64 引脚

一个PLC用博图,一个PLC用STEP7,通讯怎么办?

04 下载硬件组态及程序并监控通信结果

触发“TSEND_REQ”,发送 10 个字节数据给 S7-1200;触发“TRCV_EN_R”,接收到 S7-1200 发送过来的 10 个字节数据

一个PLC用博图,一个PLC用STEP7,通讯怎么办?

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1925

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

656

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2395

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

47

2026.01.19

go中interface用法
go中interface用法

本专题整合了go语言中int相关内容,阅读专题下面的文章了解更多详细内容。

78

2025.09.10

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2907

2024.08.16

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

38

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

83

2026.03.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 13.2万人学习

Vue 教程
Vue 教程

共42课时 | 9.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号