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

news/2024/4/25 22:30:25/文章来源:https://blog.csdn.net/weixin_67913271/article/details/129238483

使用两台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的星三角降压启动程序的启动和停止。


总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_74971.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时间颗粒度选择(通过选择时间范围和颗粒度展示选项)

<template><div><el-time-selectplaceholder"起始时间"v-model"startTime":picker-options"startPickerOptions"change"changeStartTime"></el-time-select><el-time-selectplaceholder"结束时间&quo…

想招到实干派程序员?你需要这种面试法

技术招聘中最痛的点其实是不精准。技术面试官或CTO们常常会向我们吐槽&#xff1a; “我经常在想&#xff0c;能不能把我们项目中的代码打印出来&#xff0c;作为候选人的面试题的一部分&#xff1f;” “能不能把一个Bug带上环境&#xff0c;让候选人来试试怎么解决&#xf…

mysql中用逗号隔开的字段作查询用(find_in_set的使用)

mysql中用逗号隔开的字段作查询用(find_in_set的使用) 场景说明 在工作中&#xff0c;经常会遇到一对多的关系。想要在mysql中保存这种关系&#xff0c;一般有两种方式&#xff0c;一种是建立一张中间表&#xff0c;这样一条id就会存在多条记录。或者采用第二种方式&#xff…

【数据结构必会基础】关于树,你所必须知道的亿些概念

目录 1.什么是树 1.1浅显的理解树 1.2 数据结构中树的概念 2.树的各种结构概念 2.1 节点的度 2.2 根节点/叶节点/分支节点 2.3 父节点/子节点 2.4祖先节点/子孙节点 2.5兄弟节点 2.6树的度 2.7节点的层次 2.8森林 3. 如何用代码表示一棵树 3.1链式结构 3.1.1 树节…

Gitea Windows环境下服务搭建

前言&#xff1a;这篇文章没有去分析各大平台的优劣势&#xff0c;仅教学大家搭建一个属于自己的git代码管理器&#xff0c;主要作用在局域网内&#xff0c;办公电脑搭建一个简单的Gitea代码管理器。数据库使用SQLite3&#xff0c;环境是windows10。如果不是这个环境的话&#…

@Import注解的原理

此注解是springboot自动注入的关键注解&#xff0c;所以拿出来单独分析一下。 启动类的run方法跟进去最终找到refresh方法&#xff1b; 这里直接看这个org.springframework.context.support.AbstractApplicationContext#refresh方法即可&#xff0c;它下面有一个方法 invoke…

Node下载阿里OSS存储文件【不知目录结构】

前言&#xff1a;前端传模型ID&#xff0c;后台根据ID去阿里OSS存储下载对应文件&#xff08;不知文件内部层级结构&#xff0c;且OSS只能单个文件下载&#xff09;&#xff0c;打包成zip字节流形式返回给前端下载。 需求分析&#xff1a; 生成OSS文件关系树Node做文件下载存…

kafka(一) 的架构,各概念

Kafka架构 Kafak 总体架构图中包含多个概念&#xff1a; &#xff08;1&#xff09;ZooKeeper&#xff1a;Zookeeper负责保存broker集群元数据&#xff0c;并对控制器进行选举等操作。 &#xff08;2&#xff09;Producer&#xff1a; 生产者负责创建消息&#xff0c;将消息发…

【神经网络】LSTM为什么能缓解梯度消失

1.LSTM的结构 我们先来看一下LSTM的计算公式&#xff1a; 1.遗忘门&#xff1a; 2.输入门&#xff1a; 3.细胞状态 4.输出门 2.LSTM的梯度路径 根据LSTM的计算公式&#xff0c;可以得出LSTM的cell state与、、都存在计算关系&#xff0c;而、、的计算公式又全部都与有关&#x…

RPC异步化原理

深入RPC&#xff0c;更好使用RPC&#xff0c;须从RPC框架整体性能考虑问题。得知道如何提升RPC框架的性能、稳定性、安全性、吞吐量及如何在分布式下快速定位问题。RPC框架如何压榨单机吞吐量&#xff1f; 1 前言 TPS一直上不去&#xff0c;压测时CPU压到40%&#xff5e;50%就…

bug的创建和等级

1.如何合理的创建一个bug 创建bug的要素 &#xff1a;问题的版本&#xff0c;发现问题的环境&#xff0c;发现问题的步骤&#xff0c;预取结果&#xff0c;实际结果。 eg&#xff1a; 1.问题的版本&#xff1a;谷歌浏览器108版本 2.发现问题的环境&#xff1a;windows11家庭版…

CHAPTER 2 CentOS的日志系统(日志工具)

日志工具2.1 rsyslogd(syslogd)2.1.1 介绍2.1.2 语法2.1.3 配置文件syslog.conf2.1.4 syslog.conf的配置规则2.1.5 示例2.2 logrotate2.2.1 介绍2.2.2 配置文件2.2.3 示例一2.2.4 示例二2.3 dmesg2.3.1 命令简介2.3.2 使用示例2.4 关于重启/死机的日志2.4.1 last2.4.2 日志查看…

HTML#5表单标签

一. 表单标签介绍表单: 在网页中主要负责数据采集功能,使用<form>标签定义表单表单项: 不同类型的input元素, 下拉列表, 文本域<form> 定义表单<input> 定义表单项,通过typr属性控制输入形式<label> 为表单项定义标注<select> 定义下拉列表<o…

工程机械焊接件焊接结构件三维扫描检测外观质量控制-CASAIM三维扫描检测仪

焊接已发展为制造业中的一种重要的加工方法&#xff0c;广泛应用于航空、航天、冶金、石油、汽车制造以及国防等领域。工程机械焊接件品种繁多、几何形状复杂&#xff0c;焊接件质量的好坏将直接影响到产品的使用寿命长短。对焊缝表面尺寸测量及评定表面焊缝缺陷时&#xff0c;…

叠氮试剂79598-53-1,6-Azidohexanoic Acid,6-叠氮基己酸,末端羧酸可与伯胺基反应

●中文名&#xff1a;6-叠氮基己酸●英文名&#xff1a;6-Azidohexanoic Acid&#xff0c;6-Azidohexanoic COOH●外观以及性质&#xff1a;西安凯新生物科技有限公司供应的6-Azidohexanoic Acid浅黄色或者无色油状&#xff0c;叠氮化物可使用铜催化的Click化学与末端炔烃共轭&…

一文了解 requestAnimationFrame

requestAnimationFrame 的基本使用 requestAnimationFrame 是什么 window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画&#xff0c;并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数&#xff0c;该回调函数会在浏…

腾讯前端二面常考vue面试题(附答案)

虚拟DOM真的比真实DOM性能好吗 首次渲染大量DOM时&#xff0c;由于多了一层虚拟DOM的计算&#xff0c;会比innerHTML插入慢。正如它能保证性能下限&#xff0c;在真实DOM操作的时候进行针对性的优化时&#xff0c;还是更快的。 MVVM的优缺点? 优点: 分离视图&#xff08;V…

MK60DX256VLQ10(256KB)MK60DN256VLQ10 Kinetis K60 MCU FLASH

MK60DX256VLQ10(256KB)MK60DN256VLQ10 Kinetis K60 MCU 32BIT 256KB FLASH 144LQFP【说明】Kinetis K6x MCU系列是一个可扩展的组合&#xff0c;具有不同级别的集成&#xff0c;提供丰富的模拟、通信、定时和控制外设套件&#xff0c;以适应广泛的需求。应用楼宇自动化控制器人…

数仓基础与hive入门

目录1、数仓数据仓库主流开发语言--SQL2、Apache Hive入门2.1 hive定义2.2 为什么使用Hive2.3 Hive和Hadoop关系2.4 场景设计&#xff1a;如何模拟实现Hive功能2.5 Apache Hive架构、组件3、Apache Hive安装部署3.1 metastore配置方式4、Hive SQL语言&#xff1a;DDL建库、建表…

【谷歌grc】recaptcha browser-error 错误

grc 谷歌人机验证错误 https://www.google.com/recaptcha/api/siteverif 返回错误信息 browser-error [{"success": false,"error-codes": ["browser-error"] }]之前都是调通能用的&#xff0c;突然之间就不能用了&#xff0c;查了半天也没有找…