我们在以PLC为核心的实际控制项目中,绝大多数情况都离不开触摸屏或上位机的配合,因为我们使用PLC做控制,主要的是处理一些模拟量,这些模拟量就是我们要监控的,设备上的压力,温度,流量等这些数值,然后通过这些检测到的数值,再根据一些条件控制设备上的电动阀,风机,水泵等。但这些数值我们直接从PLC上是看不到的,想要看到这些数值,就要使用触摸屏或工控机(其实就是电脑)。
首先需要说明一点,这篇文章只是阐述触摸屏的大致的工作原理和流程,不是一步一步教你怎么使用触摸屏(以后会写实际操作的文章),我认为在使用和操作触摸屏以前,明白它的原理和工作流程更重要。
如下面的图1,当我们把触摸屏和PLC连接起来以后,在触摸屏上就能看到我们想看的数据了。除了数据还能通过触摸屏控制现场设备上的各种被控对象。比如我们在触摸屏上组态一个开关,只要触摸屏上点击一下这个开关,就可以让现场设备上的一个电机启动。
那触摸屏和PLC通讯的原理是什么样的呢?看下面的图2,这是一个真实的触摸屏的正面和背面,正面不用说了,就是显示面。主要看一下背面,有3个接口。
1,电源接口:给触摸屏供电的,电压多数都是DC24V。触摸屏的参数标签上都有标明。
2,组态下载接口:就是我们通过触摸屏厂家提供的组态软件,在电脑上把我们想要的画面和功能都设计完成后,通过此接口下载到触摸屏上。各个触摸屏厂家都有各自的软件,是不通用的,但没关系,原理都是一样的,只要学会一种,其他的只要熟悉一下软件界面就可以了。
3,通讯接口:这个接口就是和PLC通讯用的,接口的形式主要分为RS232 ,RS485 ,以太网这3种(不明白什么是232和485的可以看看我前面的文章,有专门介绍),这里需要注意的是,这个接口的形式必须和PLC的接口形式是一样的。图2中的触摸屏品牌是昆仑通泰的,它的这个接口是RS485的,所以当和PLC连接时,PLC的接口也必须是RS485的。
看完了触摸屏的外部,接下来我们看一下触摸屏的内部,看下面的图3,是我自己制作的触摸屏内部的一个内部示意图,可能不太全面严谨,但重要的部分已经画出来了,只要你能理解就OK了。
触摸屏的内部大致可以分为:通讯接口单元,驱动单元,内存变量单元,显示单元。除了显示单元,其他3个单元在触摸屏的内部我们是看不见的。
1,通讯接口单元:这个单元主要负责把驱动单元打包好的数据包,发送到触摸屏背面的通讯接口,再由通讯接口发送给PLC,这些过程我们是不用干预的,触摸屏会自己完成。我们要做的就是,选择一个驱动单元里的驱动,说白了就是告诉触摸屏它要发送哪个驱动数据包。,
2,驱动单元:这一单元里存放了许多和PLC连接的通讯文件,一个文件对应一种通讯协议(对通讯协议不懂的也看我以前文章),我们把这些文件叫做驱动。也就是说一个驱动对应一种通讯协议,比如说西门子S7-200PLC使用PPI通讯协议,那么触摸屏厂家就会编写一个能和西门子S7-200PLC PPI通讯协议,通讯的文件,然后放在驱动单元。
举例,比如当我们的触摸屏想要和西门子200的PLC连接时,我们就在触摸屏里选择PPI驱动。想要和西门子300的PLC连接,选择MPI(MPI是西门子300PLC的通讯协议)驱动就可以了。 这些驱动文件都是触摸屏厂家提前写好的,我们只能选择不能更改。可见触摸屏里面的驱动越多,我们可以选择的PLC品牌或通讯协议的范围就越广。现在成熟的触摸屏厂家内置的驱动,基本都能覆盖市面上常用的PLC和通讯协议。
所以当我们手上有一款触摸屏,想要选择一个PLC做通讯时,一定要看看你的触摸屏里有没有,可以和这个PLC通讯的驱动。
3,内存变量单元:这一单元也是触摸屏厂家内置的,它实际上就是一块存储区,它里面可以存放各种各样的数据,存放的数据类型大致可以分为数值型,开关型,字符型,特殊型。
比如我们想要在触摸屏上显示一个锅炉的水温,那么我们就在触摸屏的内存变量单元,新建一个变量,这个变量的名字叫"锅炉水温"(名字随便取),数据类型选择数值型。那么触摸屏就会自动在内存单元,分配一小块区域给"锅炉水温"这个变量。当触摸屏和PLC通讯时,就会把从PLC读到水温数据存放到这一小块区域,也就是"锅炉水温"这个变量。当我们需要显示多个数据时,只要新建多个变量就可以了。看到这里你可能还是有点不太理解,没关系,等一会我按照下面的图4系统的说一下你就明白了。
4,显示单元:这个单元就好理解了,只要是我们在触摸屏画面上能看到的东西都是在显示单元。就依上面的"锅炉水温"为例,我们想要显示锅炉的水的温度,只要在触摸屏的显示单元上,画一个显示框的部件(这个部件每个触摸屏都有,直接拖到画面就行),然后把这个部件和上面新建的"锅炉水温"这个变量连接起来就行了。
上面分别把各个单元讲完了,最难理解就是驱动单元和内存变量单元。大家可能还不太明白,下面我就按照图4,系统的再说一下你就能理解了。
图4要实现的功能是,触摸屏和西门子S7-200PLC连接,1,在触摸屏上可以显示PLC里的一个压力数值,。2,可以通过触摸屏上的一个开关部件,控制PLC里的一个开关量。
第一步,我们先在触摸屏里选择驱动,因为是和西门子S7-200PLC连接,所以我们在驱动单元里就要选择"西门子S7-200 PPI通讯驱动"。驱动选择完成后,触摸屏就会把所选择的驱动和通讯接口单元,还有内存变量单元自动连接起来。我们再来看一下这个驱动的内部(图4中桔色的部分),里面有许多地址V0.0 VB10 VW10等,这些地址是和PLC里的地址一一对应的,里面的数据和状态也是和PLC里相同的。比如PLC里的VD10里的数据是123.5的话,那么触摸屏驱动里的VD10里的数据也是123.5。这样触摸屏里就有数据了,但是这些数据现在还是不能显示出来,因为这些数据还没有传到显示单元。要怎么做才行呢?
第二步,我们在内存变量单元,新建一个变量叫"储罐压力",这个变量我们把它和驱动单元里的VD10连接起来,这样"储罐压力"这个变量里就会有数据123.5了。但现在数据还是不能显示出来,因为还没有传到显示单元。
最后一步,我们在显示单元,放置一个具有显示功能的显示部件,然后把这个显示部件和内存变量单元中的"储罐压力"这个变量,连接起来就可以。这样我们就能看到123.5这个数据了。看起来挺复杂,其实这中间我们要做的就是,通过一个新建的变量,把这几个单元连接起来就行了,其他的事情都是触摸屏自动完成的。
理解了触摸屏数值显示的工作流程,开关量的也就简单了,在显示单元放一个开关部件,然后新建一个变量,把这个变量和驱动单元还有显示单元连接起来就行了。至于触摸屏是怎么把这些数据传给PLC的,那就不用管了,这些事通讯接口单元会帮你完成。
图5就是整体的连接示意图,这是最基本的组合方式,通过这种PLC+触摸屏的组合方式,实现了真正的人机对话,PLC内部的数据我们可以一目了然,通过在触摸屏上增加几个开关部件,就可以减少实际开关的使用,从而降低实际开关触点接触不良,对控制系统造成的影响,也提高了系统的稳定性。