使用两台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的星三角降压启动程序的启动和停止。
总结
以上就是这篇笔记的全部内容啦!如果有错误或者不足之处欢迎大家指出!谢谢!