一、什么是SCADA系统

SCADA(Supervisory监控 Control控制 And Data Acquisition数据收集)系统,即数据采集与监视控制系统,主要应用于电力、石油、化工、燃气等领域的数据采集与监视控制以及过程控制等领域。

以燃气场站为例,下图就是一个典型的天然气场站SCADA系统,通过这样系统监测着场站里各种压力、流量、温度等设备的数据运转是否正常。场站里的设备种类多、数量多,SCADA系统具有采集、控制分散;管理集中的“集散控制系统”的特征。SCADA可以理解为不同厂家的管理监控系统(上位)对控制部分(下位)的数据采集与监控管理。

Quartz Scheduler监控_数据

SCADA的产生应该是在上世纪80—90年代,当时各家自动控制系统相对独立,互相之间没有联络,这种垄断状况限制了自动化技术的发展,随着计算机技术的成熟,以计算机为基础的上位系统逐步发展起来,可以和各种厂家的控制部分去联络进行数据采集监控,从而打破当时各自动化厂商的垄断,这也使自动化技术逐步开放和发展起来。随着计算机与自动化技术的高速发展,各个系统都不再是独立系统,都纷纷推出各种接口功能去和其他系统去联络,这样就形成了这个控制系统的上位监控管理部分可以采集和监控别的控制系统的下位控制部分。

Quartz Scheduler监控_能源_02

二、SCADA简短的历史

随着遥测技术的出现,SCADA的发展可以追溯到二十世纪初。遥测涉及通过感测实时条件获得的数据的传输和采集。随着电力,电报,电话和无线通信技术的融合,遥控条件的监测变得可能。在上个世纪,更多的工业,如天然气,电力和水务公司,使用遥测系统来监测偏远地区的进程。

SCADA始于六十年代初,作为在主站和远程终端单元(RTU)站之间作为输入/输出(I / O)信号传输的电子系统。主站将通过遥测网络从RTU接收I / O传输,然后将数据存储在主机上。

在七十年代初期,开发了DCS(分布式控制系统)。 ISAS5.1标准将分布式控制系统定义为在功能集成的同时由一个子系统组成的系统,这些子系统可以在物理上分开并且彼此远离。大型制造商和工艺设备利用DCS主要是因为需要大量的模拟控制。

进一步开发使分布式控制系统能够使用比RTU更智能的可编程逻辑控制器(PLC)能够控制站点而不从主站获取方向。

在九十年代后期,SCADA与DCS之间的差异模糊。 SCADA系统具有DCS功能。 DCS具有SCADA功能。系统根据设计师内置的某些控制功能进行定制。现在随着互联网被更多地用作通信工具,一旦旧的遥测系统变得越来越先进,互连和可访问的控制功能。正在开发自动软件产品以利用互联网的互连性,某些门户可以连接到SCADA系统并下载信息或控制流程。

今天,良好的SCADA系统不仅可以控制流程,还可用于测量,预测,计费,分析和规划。今天的SCADA系统必须满足一个全新的控制自动化水平,与昨天的过时设备连接,灵活性足以适应未来的变化。

三、SCADA典型架构

典型的SCADA像下图,分为场站端和管理端。

场站端:主要是三部分:下位机、通信网络、上位机。

管理端:一般包括前置采集、SCADA应用。

Quartz Scheduler监控_Quartz Scheduler监控_03

场站端:

下位机:侧重采集和控制。一般由RTU和PLC组成。

通信网络:实现上、下位机之间数据交流。

上位机:侧重监控功能。一般由电脑和服务组成,主要起到远程监控、报警处理、数据存储以及与其他系统集合的作用。

管理端(也叫中心端)

前置采集:各种采集设备的协议解析、转换。

SCADA应用:设备数据存储、监控。

四、庖丁解牛看SCADA

接下来分块来说,SCADA中的各个部件:

4.1 场站端-传感器设备

按照检测参数主要分四大类:压力仪表、温度仪表、流量仪表、液位仪表

常用的压力测量仪表:1、弹簧管式压力表;2、远传压力测量仪表

常用的温度测量仪表:1、显示仪表:如:玻璃液体温度计、双金属温度计;2、远传仪表:热电偶、热电阻、半导体等组成的远传仪表。

常用的流量测量仪表:1、速度式流量计(如孔板、涡轮、超声波等);2、容积式流量计:椭圆齿轮流量计、腰轮流量计、刮板流量计等。

常用的液位测量仪表:1、浮子式液位计;2、差压式液位计。

I/O传输信号

模拟量信号:模拟量信号是一种连续变化的物理量,如电流、电压、温度、压力、位移、速度等。

数字量信号:在SCADA系统中,数字信号有编码数字(二进制或十进制)、开关量、脉冲序列等。例如:工控中,要对这些模拟量进行采集并送给PLC,必须要先对模拟量进行模数(A/D)转换。

Quartz Scheduler监控_网络_04

4.2 场站端-下位机

SCADA的下位机侧重现场仪表数据的采集和控制,典型有:PLC、RTU。

下位机功能

1、采集:下位机配置的各种输入设备(DI、AI等)进行数据采集。

2、控制:下位机配置的各种输出设备(DO、AO等)对现场设备进行控制。下位机接收上位机的监控,并向上位机传输各种现场数据。

指各种智能节点,各自都有自己独立的系统软件和应用软件,该节点可具备数据采集、设备或过程的控制功能,并将状态信号转换为数字信号。下位机通过各种通信方式传递到上位机系统,并且接受上位机的监控指令。典型的下位机包括RTU、PLC、PAC、智能仪表等。

4.2.1 场站端-下位机-PLC

Quartz Scheduler监控_Quartz Scheduler监控_05

可编程序控制器定名为Programmable Logic Controller(PLC)。 PLC的构成 :从结构上分,PLC分为固定式和组合式(模块式)两种。固定式PLC包括CPU板、I/O板、显示面板、内存块、电源等,这些元素组合成一个不可拆卸的整体。模块式PLC包括CPU模块、I/O模块、内存、电源模块、底板或机架,这些模块可以按照一定规则组合配置。可编程逻辑控制器实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同,基本组成如下图所示,基本构成详细描述如下:

Quartz Scheduler监控_Quartz Scheduler监控_06

对于燃气行业的站控,PLC/RTU 设备应支持标准 modbus RTU 或 标准 modbus TCP、 DNP3.0。

常见的PLC品牌有:西门子(Siemens)、西斯耐特(Sixnet)、恩畅(N-tron)、科洛理思(Korenix)等等,在燃气场站,西斯耐特(Sixnet)价格优势使用的较多。

4.2.2 场站端-下位机-RTU

RTU是Remote Terminal Unit(远程测控终端)的缩写,是对分布距离远,生产单位分散的生产系统的一种数据采集与监视控制系统。

Quartz Scheduler监控_网络_07

4.2.3 PLC和RTU的区别

虽然RTU和PLC在工程编程、数据采集和控制等方面很相似,但它们之间还是有很大区别的。

PLC一般主要用于 在场站内进行数据汇总和指令处理,主要应用于在室内环境。

RTU最显著的特点是远方功能, 即它与调度中心之间通过远距离信息传输所完成的监控功能。RTU 通常要具有优良的通讯能力和更大的存储容量,适用于更恶劣的温度和湿度环境,提供更多的符合专有标准的计算功能。

因此,PLC 是为满足传统工厂基础自动化的发展需求而设计和研发。而 RTU 是对传统PLC 在远程和分布式应用的产品补充,更适用于现代化新兴行业的分散监控的需求。

具体的一些对比如下:

1.RTU一般不受地理环境限制,可在室外现场测量点附近安装,一个RTU可以就地控制几个、几十个或几百个I/O测量点,因而它的适应恶劣环境能力强。其工作温度一般在-40~85;防护等级高,可用于潜水艇工作;一个电池组供电工作时间有时长达数月。PLC一般主要用于厂站内工业流水线的控制,系室内安装。工作环境温度要求0--55,空气湿度应小于85%。超过温度55,要安装风扇通风,高于温度60,要安装风扇或冷风机降温。

2.由于RTU不受工作环境约束,故要求其技术规格符合恶劣环境要求和特定要求。它的数据存储量大,模拟量采集能力强(最多24路),模拟功能远比PLC更强大。

3.RTU通信功能强大。由于RTU要将采集的模拟量、开关量、数字量信息最终传输给调度中心,而调度中心有时远隔千里之外,故要求它具有远程通讯功能。PLC虽然也有通讯功能,但仅限于厂站内部近距离传送数据,其通信功能与RTU相比稍逊一筹。

4.传统的RTU没有可编程运算功能,现在的RTU大都具备了可编程运算功能,还有PID控制功能或逻辑控制功能、流量累计功能等。由于是新兴技术,势必是较先进的技术。它具有梯形图和C语言编程,屏幕组态软件编程等技术,运算能力强,可带液晶显示,就地显示和控制。这一些都是PLC不能比拟的。

5.RTU与PLC使用功效也不尽相同。RTU具有远方功能、当地功能以及自检与自调功能。它与调度中心相距遥远,与调度中心计算机通过信道相连接;它的当地功能是指RTU通过自身或连接的显示、记录设备,就地实现对网络的监视和控制的能力;RTU的程序自恢复能力是指RTU在受到某种干扰影响而使程序“走飞”时,能够自行恢复正常运行的能力。PLC仅有当地功能。

4.3 上位机

上位机:通常具有友好的人机界面,通过网络从各下位机中采集数据,实现远程监视、控制功能。上位机侧重监控功能。上位机在工业控制当中又被称为HMI,就是一台计算机,只不过它的作用是监控现场设备的运行状态,当现场设备出现问题在上位机上就能显示出各设备之间的状态(如正常、报警、故障等)。HMI本质上是一个用户控制站,通常以触摸屏或者带按钮的屏幕出现。

SCADA和上位机HMI经常傻傻的分不清:推荐看一下老外的这个视频“SCADA与HMI区别”。

SCADA系统是许多软件、硬件的组合,包括传感器、RTU或PLC,来自这些系统的数据被发送到中央SCADA单元。HMI可以是SCADA的一部分,但SCADA不能是HMI的一部分。

Quartz Scheduler监控_能源_08

4.3.1 基于组态软件开发上位机

组态,是英文configure翻译过来的,configure也解释为配置、设置,那么组态软件的意思也就是配置软件,而不是单独编写计算机程序。。

简单理解,组态软件是用来开发人机界面的软件。现场的设备PLC,各种采集卡,各种仪表,这些设备都能产生数据,电脑可以通过串口,以太网或者专门的通信线路来获取这些数据。但是这些数据通常是不适合人类直接阅读和理解的,所以需要一个人机界面来展示这些数据,而组态软件的功能就是转化和展示这些数据。

可以理解,就是组态就像搭积木,摆好各个块后,在配置他们之间的关系。

典型的数据流图:

Quartz Scheduler监控_能源_09

4.3.1 常用的组态软件

国外:

GE的IFIX

西门子的WinCC

国内:

三维力控

北京亚控

4.4 通信协议:Modbus协议

工业控制下位机和上位机通信大部分采用的通信协议为Modbus。Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用PLC)可编程逻辑控制器)通信而发表。Modbus已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。 Modbus比其他通信协议使用的更广泛的主要原因有:

1、开源免费

2、易于部署和维护

3、报文简单紧凑

Modbus允许多个 (大约240个) 设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和远程终端控制系统(RTU)。

Quartz Scheduler监控_能源_10

MODBUS是基于串口的一种协议,它可以基于RS232,RS422,也可以基于RS485,是当初MODICON公司定义的PLC与计算机,PLC间的传输协议。后来成为了国际标准。

Quartz Scheduler监控_数据_11

Modbus协议版本

Modbus通信协议具有多个变种,Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本,其中最著名的是Modbus RTU,Modbus ASCII和Modbus TCP三种。在工业现场一般都是采用Modbus RTU协议,一般而言,大家说的基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。与Modbus RTU协议相比较,Modbus TCP协议则是在RTU协议上加一个MBAP报文头,并且由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码的,所以就常用一句比较通俗的话来说:Modbus TCP协议就是Modbus RTU协议在前面加上五个0以及一个6,然后去掉两个CRC校验码字节就OK。虽然这句话说得不是特别准确,但是也基本上把RTU与TCP之间的区别说得比较清楚了。

Modbus数据帧格式

Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。MODBUS协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网络上的MODBUS协议映射能够在应用数据单元(ADU)上引入一些附加域。

Quartz Scheduler监控_能源_12


先来简单分析一条MODBUS-RTU报文,例如:01  06  00 01  00 17  98 04


    从机地址       功能码          数据地址          数据         CRC校验


        01             06                00 01           00 17          98 04



先弄明白下面的东西。


1、报文


一个报文就是一帧数据,一个数据帧就一个报文: 指的是一串完整的指令数据,就像上面的一串数据。



2、CRC校验


意义:例如上面的  98 04  是它前面的数据(01 06 00 01 00 17)通过一算法(见附录2,很简单的)计算出来的结果,其实就像是计算累加和那样。(累加和:就是010600010017加起来的值,然后它的算法就是加法)。


作用:在数据传输过程中可能数据会发生错误,CRC检验 检测接收的数据是否正确。比如主机发出01 06 00 01 00 17 98 04,那么从机接收到后要根据01 06 00 01 00 17 再计算CRC校验值,从机判断自己计算出来的CRC校验是否与接收的CRC校验(98 04主机计算的)相等,如果不相等那么说明数据传输有错误这些数据不能要。



3、功能码


意义:modbus 定义。 作用:指示具体的操作。 最常用功能码:


下面“线圈”“寄存器”其实分别直的就是“位变量”“16位变量”


        01 (0x01)        读线圈


        02 (0x02)        读离散量输入


        03 (0x03)        读保持寄存器


        04(0x04)         读输入寄存器


        05 (0x05)        写单个线圈


        06 (0x06)        写单个寄存器


        15 (0x0F)        写多个线圈


        16 (0x10)        写多个寄存器



再一个示例: 读寄存器数据(此例中将当前积算仪显示的数据读出)


主站发送:


  17          03           00 00        00 10           46F0


地址     功能码     起始地址    寄存器数目   CRC校验码


从站响应:


  17       03             20        00 00 00 37 12 05 A0 43           00 00 00 37 12 05 A0 43


地址   功能码     接收字节数       工况累积量                               标况累积量


00 01 CB 6B        00 01 CB 89      00 00 14 00     00 00 65 53       BA 18


  工况流量             标况流量                温度                  压力             校验码