【笔记】两台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通信(入门) 文章目录 目录 文章目录 前言 一、通信 1.概念 2.PLC通信 1.串口 2.网口 …...
统一网关Gateway
为什么需要网关 网关功能: 身份认证和权限校验服务路由,负载均衡 根据请求判断找到对应的服务路由,然后服务可能有多个实例,这个时候网关就会做一个负载均衡去挑选一个实例调用.请求限流 限制请求的数量,这是微服务的…...
6、kubernetes(k8s)安装
本文内容以语雀为准 文档 等等,Docker 被 Kubernetes 弃用了?容器运行时端口和协议kubeadm initkubeadm config安装网络策略驱动使用 kubeadm 创建集群 控制平面节点隔离 持久卷为容器设置环境变量在CentOS上安装Docker引擎Pod 网络无法访问排查处理 说明 本文…...
python-批量下载某短视频平台音视频标题、评论、点赞数
python-批量下载某短视频平台音视频标题、评论数、点赞数前言一、获取单个视频信息1、获取视频 url2、发送请求3、数据解析二、批量获取数据1、批量导入地址2、批量导出excel文件3、批量存入mysql数据库三、完整代码前言 1、Cookie中文名称为小型文本文件,指某些网…...
【数据结构与算法】单链表的增删查改(附源码)
这么可爱的猫猫不值得点个赞吗😽😻 目录 一.链表的概念和结构 二.单链表的逻辑结构和物理结构 1.逻辑结构 2.物理结构 三.结构体的定义 四.增加 1.尾插 SListpushback 2.头插 SListpushfront 五.删除 1.尾删 SListpopback 2.头删 SListpo…...
华为OD机试 - 回文字符串
题目描述 如果一个字符串正读和反渎都一样(大小写敏感),则称它为一个「回文串」,例如: leVel是一个「回文串」,因为它的正读和反读都是leVel;同理a也是「回文串」art不是一个「回文串」,因为它的反读tra与正读不同Level不是一个「回文串」,因为它的反读leveL与正读不…...
C语言太简单?这14道C语言谜题,你能答对几个
14个C语言的迷题以及答案,代码应该是足够清楚的,而且有相当的一些例子可能是我们日常工作可能会见得到的。通过这些迷题,希望你能更了解C语言。 如果你不看答案,不知道是否有把握回答各个谜题?让我们来试试。 下面的…...
Benchmark测试——fio——源码分析
1. main 1.1 parse_options() 解析选项,更新数据结构 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 种方法
简介 平常在撰写论文时,会需要比较算法之间的计算时间。本篇文章给出几种测量 R 代码运行时间的方法。本文是小编学习过程中的笔记,主要参考博客1,2。 1. 使用 Sys.time() 小编通常使用 Sys.time() 函数来计算时间。首先记录当前运行时刻&…...
Qt 第9课、计算器中缀转后缀算法
计算器核心算法: 1、将中缀表达式进行数字和运算符的分离 2、将中缀表达式转换成后缀表达式 3、通过后缀表达式计算最后的结果 二、计算器中缀转后缀算法 计算器中缀转后缀算法的意义在于把中缀表达式转换成后缀表达式,能够更好地计算 算法的基本思路…...
docker的使用方法
docker技术 同一个操作系统内跑多套不同版本依赖的业务 docker可以使同一个物理机中进程空间,网络空间,文件系统空间相互隔绝 虚拟机弊端:每个需要安装操作系统,太重量级,资源需要提前分配好 部署程序 开发环境 win…...
Kafka(五)生产者向发送消息的执行流程
(1)生产者要往 Kafka 发送消息时,需要创建 ProducerRecoder,代码如下: 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版本 ,加入两个新产品: Medical Imaging Toolbox — 可视化、配准、分割和标注二维及三维医学图像Simscape Battery — 设计和仿真电池和储能系…...
PCI子系统
很多网络接口卡都是外围组件互联(Peripheral Compaonent Interconnect)设备,必须与Linux PCI子系统协同工作,并非所有的网络接口都是PCI设备,很多嵌入式设备的网络接口连接的就不是PCI总线,这些设备的初始化…...
Spring源码之IoC容器的Bean创建和依赖注入,DefaultListableBeanFactory容器为例
接上篇Spring源码之IoC容器初始化过程,以FileSystemXmlApplicationContext容器为例 因为FileSystemXmlApplicationContext使用的容器为DefaultListableBeanFactory,所以该篇基于DefaultListableBeanFactory的实现分析依赖注入过程。 目录获取Bean的总体流…...
解决小程序页面scroll-view块自身滑动问题
修改scroll-view的style样式 本来通过函数限制高度 style"margin-top:200rpx;"height: calc(100vh - 200rpx - env(safe-area-inset-bottom));会出现整个scroll-view块位置不固定滑动里面的内容后,自己本身在整个页面内上移,将样式改为&#…...
PowerCommand康明斯发电机控制屏维修HMI211
康明斯柴油发电机的监控系统分为普通机组控制屏和智能化机组控制界面。普通操作界面实用于普通的康明斯柴油发电机的控制,康明斯柴油发电机的起动与停止、供电与断电、状态调整等均由手动操作;自动化康明斯柴油发电机控制系统适合于智能化康明斯柴油发电…...
ELK + Kafka 测试
配置file beat输出到 Kafkalogstash服务器从kafka获取数据并输出到es集群在es集群上查看索引kibana界面添加索引查看数据1.配置file beat输出到 Kafka 1.1 Filebeat机器配置数据采集和输出目标 做好域名解析 # vim /usr/local/filebeat/filebeat.yml # 修改输出目标为kafka…...
迁移系统:换电脑或者硬盘转移磁盘文件的方法!
为什么要将操作系统迁移到新驱动? “将操作系统转移到新驱动您好,我刚刚为我的台式机订购了一个新的2TB希捷Barracuda硬盘,我想知道如何将我的Windows 10操作系统与我下载的其他一些软件一起转移过来。我使用新的/大的硬盘,然…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
