当前位置: 首页 > news >正文

【笔记】两台1200PLC进行S7 通信(1)

使用两台1200系列PLC进行S7通信(入门)

文章目录

目录

文章目录

前言

一、通信

1.概念 

2.PLC通信 

1.串口 

2.网口                                                                                                                               

二、两台1200进行S7通信

1.硬件部分

2.软件部分

1.组态 

2.指令(s7通信协议)

 3.下载时可能遇到的问题 

 4.控制I/O 

3.小案例 

1.将200+100的计算结果由第一个plc传入到第2个plc中。

2.使用第一台plc的输入(I点),来控制第二台plc的星三角降压启动程序的启动和停止。

总结


前言

这篇文章和大家一起来学习西门子1200PLC的s7通信,文章包括通信的概念,通信协议,通信步骤以及通信案例。


一、通信

1.概念 

电力线通信(Power Line Communication,英文简称PLC)技术是指利用电力线传输数据和媒体信号的一种通信方式 [1] 。该技术是把载有信息的高频加载于电流然后用电线传输接受信息的适配器再把高频从电流中分离出来并传送到计算机或电话以实现信息传递。------电子发烧友

2.PLC通信 

这里我们所要做的就是PLC 通信,前提是两个或两个以上的硬件设备才可以进行通信连接;通信可以是:PLC<-->PLC、PLC<-->触摸屏、 PLC<-->变频器、PLC<-->驱动器、PLC<-->仪表,也可以是触摸屏<-->仪表,变频器等; PLC分为硬件部分和软件部分,硬件就是我们的PLC或其他设备,软件部分就是使用通信协议来进行编写程序。                                                                          简单来说:通信就是将多台PLC联系起来,可以实现相应信息的传递和接收从而进行一系列控制,例:前面我们所使用的到的是一个PLC,然后对它进行控制;当我们通信之后,只需要控制一个主站控制器(plc),其他的控制器(plc)都可以由主站控制器(plc)来进行控制。                           plc通信有网口串口之分

1.串口 

串口按照电气标准及协议来分包括:RS-422、RS-485、RS-232-C。 (相关含义大家可以在网上看一下)     

对应的串口通信协议也有好几种:像S7-200的PPI通信协议、MPI、DP、MODBUS、USS通信协议等。

2.网口                                                                                                                               

网口的话就是我们在与plc连接时所用的网线对应的接口:网线一般都是RJ45网线 。

网口的通信协议有:S7通信协议、开放式以太网TCP等。




 

二、两台1200进行S7通信

 下面进入文章的主题部分:使用两台1200plc进行S7通信;注:(S7通信:是西门子公司专门为西门子系列plc或其它设备所做的一个通信协议,较与TCP要简单一些)

1.硬件部分

两台1215c dcdcdc plc(其它类型也都可以),一台电脑(PC),一个交换机,3个网线;

 首先将两台plc接好线,可以参考接线图:

 然后将网线接好,下面是大致示意图:

 两台plc网线进交换机,再一个网线接电脑,将3者连接起来。

2.软件部分

硬件连接好后就是软件部分,我们在博图里面再进行组态;

1.组态 

 1.创建新项目,添加两台与硬件型号相同的PLC;

 2.双击plc1,进入属性,勾选下面这三个选项。(连接机制和时钟脉冲),然后编译,第2台plc一样要勾选。

 

 3.双击设备和网络,进入后可以看到我们组态的两个plc,在网络视图里面;

4.点击下图位置,可以拉出一个黑线,将它拉到第2台plc上;

5,连上之后是绿色的一个线; 

 

 6,点击连接,在旁边选择s7连接;

 

7.选择后再次拖动鼠标将两个plc连接起来;(和上面一样) 

 

如下图就是连接完成的样子: 

 8.连好后双击s7_连接_1,找到属性,可以看到连接路径和IP地址;


2.指令(s7通信协议)

软件组态完成后,下面就是指令部分啦!

1.找到put指令(向远程CPU写入数据),这一个放在我们的第一个plc中:

 2.调出指令后点击右上角第2个,我们来对它进行设置:点击伙伴选择第2个plc;

 

 3.连接参数设置好后,指令ID会自动写上去,我们要写的是另外的3个参数;

 4.第一个REQ是脉冲触发端,用时钟脉冲就可以;第3个ADDR_1是指向伙伴CPU用来写入数据;第4个SD_1是指向本地CPU是要发送的数据;右侧的是完成位和错误位,这里可以先不写;知道引脚含义后,我们可以用一个plc发送数据,一个接收数据,来看通信是否完成。

这里我们在plc1中新建一个DB数据块用来发送数据,在plc2中建一个数据块来接收数据,(注:发送接收数据我们要将DB的优化块访问关掉,因为我们要发送的是DB块里的一部分数据,而不是全部)

 这里我们发送一个或多个字节(byte)的数据,建立一个byte类型的数组,用来存放我们的数据;

 好的这里数据我们建立好了,但是我们要怎么在put指令中表示我们要发送这6个数据呢!那么这里就用到了指针(从谁开始,指向这一块区域,属于间接寻址)

这里,P#是表示指针,DB2就是我们建立的DB块,DBX0.0是表示从DB块的第一个数据开始,BYTE是我们的数据类型,6就是结束的那一个,从第1个开始向后数6个数据结束。 

 这里我们写好本地的数据,伙伴的数据也就是我们要写进去的数据,所以这里和本地的一样;

 5.我们第1台已经将数据传过去啦,如果要看到我们还要在第2台那里接送一下数据才可以!

 接收指令GET(从远程CPU读取数据)

 6.这里步骤和上面基本相同,我们要接收数据,也需要建一个数据块来接收并且类型和空间也要相同(可以多但不能少,否则会导致数据溢出)

plc2的伙伴就是plc1

 

 写好后我们对两个plc进行编译然后下载到设备,分别将两台plc下进去;

 7.下载好后打开监视我们可以试一试啦!


 3.下载时可能遇到的问题 

 第一次通信可能会有一些问题导致我们无法下载,如图:(一些常见的问题)

1: 无法下载

 如果下载不进去,提示伙伴未响应,那么是两台plc没有连接上。如果网络视图是下图这样是没有连接上的,需要再次用鼠标点击左下角连接到右下角的

 错误的连接:

错误的连接

 正确的连接:

 2:两台plc地址相同

 如下图:

解决办法: 

 这个可以先断电其中一台plc,将第1台先下载进去,然后再开启第2台plc进行下载(前提是以太网地址不是相同的)


 4.控制I/O 

 前面我们完成了2个plc的数据传输,难道通信只能传数据吗!当然不是!数据传输只是其一!

下面我们来看一下如何用1台plc的输入来控制另一台的输出呢!这里我们直接看:

SD_1本地CPU要发送的数据是一个M点,指向伙伴CPU是一个Q点,意思就是用第一个plc的M点来控制第二个plc的一个Q点。

 效果:

 

 



 

3.小案例 

1.将200+100的计算结果由第一个plc传入到第2个plc中。

2.使用第一台plc的输入(I点),来控制第二台plc的星三角降压启动程序的启动和停止。


总结

以上就是这篇笔记的全部内容啦!如果有错误或者不足之处欢迎大家指出!谢谢!

相关文章:

【笔记】两台1200PLC进行S7 通信(1)

使用两台1200系列PLC进行S7通信&#xff08;入门&#xff09; 文章目录 目录 文章目录 前言 一、通信 1.概念 2.PLC通信 1.串口 2.网口 …...

统一网关Gateway

为什么需要网关 网关功能&#xff1a; 身份认证和权限校验服务路由&#xff0c;负载均衡 根据请求判断找到对应的服务路由&#xff0c;然后服务可能有多个实例&#xff0c;这个时候网关就会做一个负载均衡去挑选一个实例调用.请求限流 限制请求的数量&#xff0c;这是微服务的…...

6、kubernetes(k8s)安装

本文内容以语雀为准 文档 等等&#xff0c;Docker 被 Kubernetes 弃用了?容器运行时端口和协议kubeadm initkubeadm config安装网络策略驱动使用 kubeadm 创建集群 控制平面节点隔离 持久卷为容器设置环境变量在CentOS上安装Docker引擎Pod 网络无法访问排查处理 说明 本文…...

python-批量下载某短视频平台音视频标题、评论、点赞数

python-批量下载某短视频平台音视频标题、评论数、点赞数前言一、获取单个视频信息1、获取视频 url2、发送请求3、数据解析二、批量获取数据1、批量导入地址2、批量导出excel文件3、批量存入mysql数据库三、完整代码前言 1、Cookie中文名称为小型文本文件&#xff0c;指某些网…...

【数据结构与算法】单链表的增删查改(附源码)

这么可爱的猫猫不值得点个赞吗&#x1f63d;&#x1f63b; 目录 一.链表的概念和结构 二.单链表的逻辑结构和物理结构 1.逻辑结构 2.物理结构 三.结构体的定义 四.增加 1.尾插 SListpushback 2.头插 SListpushfront 五.删除 1.尾删 SListpopback 2.头删 SListpo…...

华为OD机试 - 回文字符串

题目描述 如果一个字符串正读和反渎都一样(大小写敏感),则称它为一个「回文串」,例如: leVel是一个「回文串」,因为它的正读和反读都是leVel;同理a也是「回文串」art不是一个「回文串」,因为它的反读tra与正读不同Level不是一个「回文串」,因为它的反读leveL与正读不…...

C语言太简单?这14道C语言谜题,你能答对几个

14个C语言的迷题以及答案&#xff0c;代码应该是足够清楚的&#xff0c;而且有相当的一些例子可能是我们日常工作可能会见得到的。通过这些迷题&#xff0c;希望你能更了解C语言。 如果你不看答案&#xff0c;不知道是否有把握回答各个谜题&#xff1f;让我们来试试。 下面的…...

Benchmark测试——fio——源码分析

1. main 1.1 parse_options() 解析选项&#xff0c;更新数据结构 1.1.1 fio_init_options() 1.1.2 fio_test_cconv(&def_thread.o) <cconv.c> 1.1.2.1 convert_thread_options_to_cpu() 传递options给数据结构 1.1.3 parse_cmd_line() switch语句多路选择&am…...

测量 R 代码运行时间的 5 种方法

简介 平常在撰写论文时&#xff0c;会需要比较算法之间的计算时间。本篇文章给出几种测量 R 代码运行时间的方法。本文是小编学习过程中的笔记&#xff0c;主要参考博客1&#xff0c;2。 1. 使用 Sys.time() 小编通常使用 Sys.time() 函数来计算时间。首先记录当前运行时刻&…...

Qt 第9课、计算器中缀转后缀算法

计算器核心算法&#xff1a; 1、将中缀表达式进行数字和运算符的分离 2、将中缀表达式转换成后缀表达式 3、通过后缀表达式计算最后的结果 二、计算器中缀转后缀算法 计算器中缀转后缀算法的意义在于把中缀表达式转换成后缀表达式&#xff0c;能够更好地计算 算法的基本思路…...

docker的使用方法

docker技术 同一个操作系统内跑多套不同版本依赖的业务 docker可以使同一个物理机中进程空间&#xff0c;网络空间&#xff0c;文件系统空间相互隔绝 虚拟机弊端&#xff1a;每个需要安装操作系统&#xff0c;太重量级&#xff0c;资源需要提前分配好 部署程序 开发环境 win…...

Kafka(五)生产者向发送消息的执行流程

&#xff08;1&#xff09;生产者要往 Kafka 发送消息时&#xff0c;需要创建 ProducerRecoder,代码如下&#xff1a; ProducerRecord<String,String> record new ProducerRecoder<>("CostomerCountry","Precision Products","France&q…...

华为OD机试模拟题 用 C++ 实现 - 简易压缩算法(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 最多获得的短信条数(2023.Q1)) 文章目录 最近更新的博客使用说明简易压缩算法题目输入输出示例一输入输出说明示例二输入输出说明示例三输入输出说明...

MATLAB R2022b 安装教程

MATLAB R2022b 安装教程MathWorks 于2022年9月发布了 MATLAB 和 Simulink 产品系列的最新版本 Matlab R2022b版本 &#xff0c;加入两个新产品&#xff1a; Medical Imaging Toolbox — 可视化、配准、分割和标注二维及三维医学图像Simscape Battery — 设计和仿真电池和储能系…...

PCI子系统

很多网络接口卡都是外围组件互联&#xff08;Peripheral Compaonent Interconnect&#xff09;设备&#xff0c;必须与Linux PCI子系统协同工作&#xff0c;并非所有的网络接口都是PCI设备&#xff0c;很多嵌入式设备的网络接口连接的就不是PCI总线&#xff0c;这些设备的初始化…...

Spring源码之IoC容器的Bean创建和依赖注入,DefaultListableBeanFactory容器为例

接上篇Spring源码之IoC容器初始化过程&#xff0c;以FileSystemXmlApplicationContext容器为例 因为FileSystemXmlApplicationContext使用的容器为DefaultListableBeanFactory&#xff0c;所以该篇基于DefaultListableBeanFactory的实现分析依赖注入过程。 目录获取Bean的总体流…...

解决小程序页面scroll-view块自身滑动问题

修改scroll-view的style样式 本来通过函数限制高度 style"margin-top:200rpx;"height: calc(100vh - 200rpx - env(safe-area-inset-bottom));会出现整个scroll-view块位置不固定滑动里面的内容后&#xff0c;自己本身在整个页面内上移&#xff0c;将样式改为&#…...

PowerCommand康明斯发电机控制屏维修HMI211

康明斯柴油发电机的监控系统分为普通机组控制屏和智能化机组控制界面。普通操作界面实用于普通的康明斯柴油发电机的控制&#xff0c;康明斯柴油发电机的起动与停止、供电与断电、状态调整等均由手动操作&#xff1b;自动化康明斯柴油发电机控制系统适合于智能化康明斯柴油发电…...

ELK + Kafka 测试

配置file beat输出到 Kafkalogstash服务器从kafka获取数据并输出到es集群在es集群上查看索引kibana界面添加索引查看数据1.配置file beat输出到 Kafka 1.1 Filebeat机器配置数据采集和输出目标 做好域名解析 # vim /usr/local/filebeat/filebeat.yml # 修改输出目标为kafka…...

迁移系统:换电脑或者硬盘转移磁盘文件的方法!

为什么要将操作系统迁移到新驱动&#xff1f; “将操作系统转移到新驱动您好&#xff0c;我刚刚为我的台式机订购了一个新的2TB希捷Barracuda硬盘&#xff0c;我想知道如何将我的Windows 10操作系统与我下载的其他一些软件一起转移过来。我使用新的/大的硬盘&#xff0c;然…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...

文件上传漏洞防御全攻略

要全面防范文件上传漏洞&#xff0c;需构建多层防御体系&#xff0c;结合技术验证、存储隔离与权限控制&#xff1a; &#x1f512; 一、基础防护层 前端校验&#xff08;仅辅助&#xff09; 通过JavaScript限制文件后缀名&#xff08;白名单&#xff09;和大小&#xff0c;提…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...