1、Computer Era No.12 20230 引言SCADA系统是以计算机为基础实现了生产过程控制与调度自动化的系统,可应用于电力、冶金、石油、化工、燃气、铁路等领域的数据采集与监视控制,以及过程控制等诸多领域。现有的SCADA系统大多采用传统的C/S模式来保证数据的及时性和安全性。随着“十四五”时期现代能源体系建设不断推进,传统的C/S模式已经不能满足多节点、分布式部署及海量数据的要求,因此,对传统SCADA系统进行改造与优化以满足新的需求,成为了迫切需要解决的问题。1 新一代自动化SCADA系统架构建设的必要性中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要 将
2、“加快数字化发展 建设数字中国”单列成篇,提出“以数字化转型整体驱动生产方式、生活方式和治理方式变革”,为新时期数字化转型指明了方向。面向“十四五”,各省市陆续发布了数字化转型发展规划,提出数字化发展目标和举措,全面推进信息技术在国民经济和社会发展各领域的广泛应用,加快数字化发展。随着数字化转型的加快,现有SCADA系统已经不能满足生产力的发展的要求,存在一些缺陷或问题。依赖性强:系统设计与实现通常是基于特定行业和场景的需求,因此系统的集成和扩展都需要高度的定制化开发,这使得系统的依赖性相对较强。可扩展性差:系统集成及扩展需要定制化开发,DOI:10.16644/33-1094/tp.2023
3、.12.038基于分布式微服务架构的新一代自动化SCADA系统的研究与开发蔡雷鸣,孙常浩,于丽丹(国电南京自动化股份有限公司,江苏 南京 210000)摘要:为了构建新一代自动化的SCADA系统,分析了水电自动化、轨道综合监控系统和新一代集控站设备监控系统的需求,在原有自动化SCADA软件平台的基础上,基于微服务架构、分布式技术,研究新一代自动化SCADA系统的关键技术应用与开发。该系统已经应用于多个专业现场,系统稳定可用,为各个专业现场提供了一整套强大、通用、稳定的支撑和服务。关键词:远程过程调用;微服务;数据采集与监视控制系统;分布式中图分类号:TP391文献标识码:A文章编号:1006-
4、8228(2023)12-175-05Research and development of new generation of automated SCADA systembased on distributed microservice architectureCai Leiming,Sun Changhao,Yu lidan(Guodian Nanjing Automation CO.LTD.,Nanjing,Jiangsu 210000,China)Abstract:In order to build a new generation of automated SCADA system
5、s,the needs of hydropower automation,track integratedmonitoring system,and new generation of centralized control station equipment monitoring system are analyzed.On the basis oftheoriginalautomatedSCADAsoftwareplatform,thekeytechnologydevelopmentandapplicationofthenewgenerationautomation SCADA syste
6、m is studied based on microservice architecture and distributed technology.The system has been applied toa number of professional sites,and it is stable and available,providing a complete set of strong,universal and stable support andservices for various professional sites.Key words:remote procedure
7、 call(RPC);microservice;supervisory control and data acquisition(SCADA)system;distributed收稿日期:2023-08-28作者简介:蔡雷鸣(1984-),男,江苏南京人,本科,助理工程师,主要研究方向:计算机信息技术,工业自动化,电力监控。175计算机时代 2023年 第12期因此系统的可扩展性相对较差,新的功能和模块的添加比较困难和耗时。历史数据存储周期短:传统的单机数据存储已经不能满足秒级采样数据转换为历史存储的需求。用户体验有待提升:系统的操作和管理比较繁琐,对用户体验的要求还有待提升。综上所述,现有S
8、CADA系统在现有的工业自动化控制系统中已经达到了相当的成熟度,但是也存在一些问题和不足之处,需要进一步的改进和创新。因此,亟需建设一款以采用神经网络、大数据3、分布式1以及微服务2等技术的新一代自动化SCADA系统。2 基于分布式微服务架构的新一代自动化SCADA系统2.1 系统架构基于分布式微服务架构的新一代自动化SCADA系统1,系统架构如图1所示。图1基于微服务架构新一代自动化SCADA系统2.2 架构介绍系统采用“平台+应用+专业应用”、“总线+RPC+微服务2+分布式存储”的架构模式。系统平台层在整个体系结构中处于核心地位,其设计是否合理将直接影响整个系统的结构、开放性和集成能力。
9、对系统平台进行进一步的分析,又可将其归纳为通用支撑层、基础服务层。通用支撑层包含异构数据库、时序库,通信、互连、转换以及一系列网络跨区支撑,通用的日志记录和通用的配置文件访问。基础服务层包括状态服务、分层分布式实时库、文件服务、分布式时序数据库、数据同步服务,它依赖于通用支撑层实现,支持异构环境中的动态量测、节点状态、文件的交互,并且具有适当的安全级别和可管理性,提供对实时数据、文件和状态的同步的支持。状态服务提供节点、设备、进程等信息的查询、订阅等功能,提供进程间(包括网络各节点进程间)状态数据的传输以及关于系统、机器、模块运行状态监视维护的公共服务,其作为状态发布者和状态使用者间的桥梁,为
10、状态发布及各个应用的容错切换提供支持。分层分布式实时库为各个模块提供适当的数据访问服务,使符合应用规范的模块能随时修改和增加实时数据。分布式时序数据库作为量测的历史存储,提供了秒级响应和动态扩容的支撑。应用平台层提供整个体系结构中的应用功能,通过平台实现监控系统中大部分通用应用功能。在本项目中,应用平台层之间各个子模块之间的耦合关系尽量松,做到无明显的继承,这样既能提高系统的稳定性,又能兼顾系统运行效率。应用平台层包括管理模块、通用模块,包括通用的图形绘制、SCADA、FEP、人机界面等基础应用功能。专业应用层指的是各自子系统专用应用功能,比如水电自动化中的水电监控、轨道自动化中的ATS、17
11、6Computer Era No.12 2023配网自动化中的FA等。专业应用功能以应用平台层的基础应用功能为支撑,同时结合各自专业的特点进行了功能上的扩展和延伸,以满足本专业领域的特定需求。3 关键技术点3.1 基于ICE和SpringCloud的微服务架构改造ICE(Internet Communications Engine)是一种面向对象的中间件,用于构建面向服务的建构(SOA)应用程序。它提供了一种简单、高效、可扩展的通信框架,支持多种编程语言和平台。Spring Cloud 是一个基于 Spring Boot 的微服务架构开发工具集,提供了一系列用于构建微服务的解决方案,如服务注册
12、发现、配置中心、负载均衡、熔断器等。原SCADA系统的部分功能已经成熟,为了减小改造的工作量和复用的原则,在原先C+提供的动态库功能的基础上,使用ZeroICE技术将原有的C+动态 库 改 造 为 RPC Server 端,使 用 SpringBoot 集 成ZeroICE形成RPC Client,最终通过SpringCloud将整体结合形成以RestFul方式提供数据服务的微服务架构2,去中心化,实现微服务2注册与发现、服务调用、服务熔断、负载均衡,如图2所示。图2基于ICE和SpringCloud的微服务架构实现步骤如下:首先,使用C+实现ICE服务端应用程序,将原先的SCADA的系统功能
13、形成服务应用,如实时库进程、告警进程等。使用 Java 实现对应服务进程的 ICE 客户端部分。创建自定义的ICE客户端启动器,将ICE客户端的配置信息进程到Spring Boot配置文件中。这样可以在Spring Boot应用程序中方便地使用ICE客户端提供的和服务端之间的通信功能。服务注册与发现:将 ICE 客户端服务注册到Spring Cloud的服务注册中心,以便于其他微服务发现并调用。通过实现及定义的服务注册与发现逻辑,将ICE客户端服务的信息注册到服务注册中心。配置中心:将ICE客户端服务的配置信息集成到Spring Clound的配置中心,统一管理和动态更新配置信息。负载均衡与熔
14、断器:使用Spring Cloud提供的负载均衡和熔断器组件,为ICE客户端服务提供负载均衡和容错能力。监控与追踪:将ICE客户端服务的监控数据集成到Spring Cloud监控平台,以便于实时监控服务的运行状况。同时使用Spring Cloud提供的分布式追踪组件,对ICE客户端服务的调用链进行追踪。3.2 基于时序库的历史量测数据分布式存储技术现有传统关系型数据库已经不能满足数据存取的性能要求。例如某个调度中心现有遥信遥信总量为10万测点,预计未来两年总量将达到60万测点,测点数量将是现有数据总量的六倍。按照一般电厂遥测占总测点数量五分之一的比例,当变化即存储的时间间隔达到秒级时,对数据库
15、硬件和吞吐性能以及存储策略将是一个极大的考验。因而引入时序数据库,并自研分布式技术,通过动态添加节点,根据算法统一调度存储节点的方式,实现数据库容量的动态扩容和缩容。基于时序库的历史量测数据分布式存储架构设计如图3所示。图3基于时序库的历史量测数据分布式存储架构该分布式技术包含节点选举机制(Fast LeaderElection)、缓存机制、哈希算法(CRC16)、虚拟节点分区映射(Partition-Hash)方法4-5、心跳检测。采用如下方案及步骤:177计算机时代 2023年 第12期步骤 1 运用选举机制(FastLeaderElection)、心跳检测将应用部署至同一网段下多个时序库
16、服务器节点中运行,保持各个节点的通讯正常,形成应用服务集群。步骤2 采用虚拟节点分区映射(Partition-Hash)方法4-5结合哈希算法(CRC16)4-5做虚拟分区的划分,并将虚拟分区节点平均分配给物理的时序库服务器节点。步骤3 将分区信息存入缓存,并同步至应用服务各个节点。步骤4 数据请求应用接口时,按照对应的量测点ID 为 KEY 在缓存进行分区查找,确认所属分区后,定位至实际物理节点,进行实际物理节点的写入或者读取。步骤1具体包括:运运用选举机制、心跳检测将应用部署至同一网段下多个时序库服务器节点中运行,保持各个节点的通讯正常,形成应用服务集群:选举机制(FastLeaderEl
17、ection)应用服务存在两种服务器角色分别是 Leader,Follower。若进行 Leader选举,则至少需要二台机器,如果Leader 宕机,就剩下一台,无法选举。这里选取三台机器组成的服务器集群为例。名称解释如下:SID:服务器IDTID:事务ID选举流程具体为:每个应用Server发起一个投票;接受到其他服务端实例发来的选票;校验处理选票;统计每一次选票;同步服务端实例状态。选举流程如图4所示。心跳检测客户端与服务端之间的连接是基于TCP长连接,Client 端连接 Server 端默认的 10031 端口,也就是session会话。从第一次连接建立开始,客户端开始会话的生命周期,
18、客户端向服务端的ping包请求,每个会话都可以设置一个超时时间。Leader服务器再运行期间定时进行会话超时检查,根据时间间隔,单位是毫秒,默认值是 1000毫秒,每隔 毫秒进行一次会话超时检查。客户端会在会话超时过期范围内向服务器发送请求(包括读和写)或者 ping 请求,俗称心跳检测完成会话激活,从而来保持会话的有效性。图4选举流程图心跳检测流程如图5所示。图5心跳检测流程图步 骤 2 具 体 包 括:采 用 虚 拟 节 点 分 区 映 射(Partition-Hash)方法结合哈希算法(CRC16)做虚拟分区的划分,并将虚拟分区节点平均分配给实际的时序库服务器节点。虚拟分区初始化4-5初
19、始化1024个节点,可自定义配置。同时意味着改分布式集群最大扩容到1024个节点。partition-hash=CRC16(key)mod 1024178Computer Era No.12 2023 实体节点映射初始化根据所有应用节点的SID进行排序,对1024虚拟分区节点的子集进行平均分配。原理如图6所示。图6映射原理步骤3具体包括:将分区信息存入缓存,并同步至应用服务各个节点,具体为:Leading在启动和动态增减时序库服务器时,发起节点分配流程,并同步至Following节点中,Following节点缓存至本地。同步流程如图7所示。图7同步流程步骤4具体包括:数据请求应用接口时,按照对
20、应的量测点ID为KEY在缓存进行分区查找,确认所属分区后,定位至实际物理节点,进行实际物理节点的写入或者读取。具体为:Hash分区计算请求传入查询SQL和ID值,当前节点的应用服务根据CRC16(ID)&0 x400计算获取值。获取映射主机根据计算值,查询缓存中主机分配的虚拟分区节点的Hash值分区范围,获取主机位置。时序库服务根据主机位置,将ID,SQL作为入参,使用JDBC连接时序库进行读取和写入操作。请求操作流程如图8所示。图8请求操作流程4 场景应用4.1 轨道目前系统满足满足EN50126、EN50128、EN50129系列国际标准要求,高可用、透彻感知、广泛互联、深入智能。应用于轨
21、道工程,具备辅助行车指挥、辅助车辆管理、无人驾驶(UTO)。采用GoA4(最高级别)全自动无人驾驶技术。通过了法国必维检验集团的SIL2功能安全认证。4.2 发电覆盖锅炉、汽轮机等主辅设备,实现超超临界火电机组全厂一体化控制。实现17000-23000个数据点亚秒级刷新,全部计入历史数据库。将传统 SCADA系统的分钟级历史数据存储升级至支持大于 20000点/秒的高性能历史数据库,支持国产软硬件的 DCS系统。应用于660MW超超临界机组DCS系统和1000MW超超临界机组DCS系统。4.3 配电网系统采集对象多(配电终端 5000台及 50个变电站),实现专网和公网多种采集模式共存(跨隔离
22、安全接入),基于平台的分布式部署,实现分级管理维护(市、县公司分级管理),实现分布式FA功能。基于平台的标准性,实现图模库一体化建模及外部系统信息导入建模、全网模型拼接与抽取。应用增量配电网项目。5 结论及展望本文设计和研发了新一代自动化SCADA系统,(下转第183页)179Computer Era No.12 20232.2 系统实现本系统在DELL Precision3571移动工作站开发、运行,平台配置为CPU:i7-12700H、主频2.3GHz、内存16GB,操作系统Windows 10,开发语言、工具主要采用 Python3.8+Pycharm2020.1+OpenCV3.4+P
23、yQt5.9+Mysql 5.7.31。输入合法用户名和密码后,进入系统主界面。在系统主界面设置题号及分值,然后选择答题卡录入方式,如以“从文件夹导入”为例,依次从文件夹录入答案答题卡和学生答题卡后,点击“完成录入”按钮,系统将自动完成评分,如图7所示。图7设置题目分值及录入答题卡最后点击“导出成绩”按钮,系统将对成绩做平均值等简单统计。3 结论本文采用均值滤波、二值化算法、形态学处理、Hough变换检测、Canny边缘检测等机器视觉技术,实现了答题卡学号、答案选项等关键信息提取。基于软件工程的思想,通过Python、PyQt5、OpenCV、Pycharm等工具、库,设计并实现了界面友好、功
24、能灵活的答题卡自动评分系统,为后续开发答题卡智能化综合阅卷系统提供了思路或借鉴。本文答题卡自动评分系统对光照比较敏感,后续将进一步优化本系统答题卡识别算法,提升算法的鲁棒性。参考文献(References):1 高强,黄宇飞,潘俊.基于SVG的可定制答题卡生成系统设计与实现J.软件,2023,44(3):84-89.2 林恒青,戴立庆.基于局部自适应阈值分割和Hough变换的答题卡识别算法J.桂林航天工业学院学报,2021,26(3):280-286.3 程淑红,尚果超.基于视觉的答题卡自动评分系统设计J.计量学报,2018,39(6):804-810.4 郝平.图像处理耦合模板定位的答题卡识
25、别研究与应用J.计算技术与自动化,2015,34(4):105-109.5 韦溢辉,刘汉英.基于 OpenCV 的答题卡生成及批阅分析系统J.电脑知识与技术,2020,16(29):23-27.6 要曙丽,王少荣,盖孟等.一种答题卡客观题识别算法J.图学学报,2019,40(5):900-907.7 李清.基于图像识别的网上阅卷系统的设计实现与优化D.吉林:东北师范大学,2013.8 关世奎.基于计算机视觉的智能辅助阅卷系统设计与开发D.北京:北京工业大学,2020.9 吴翔,夏英杰,李金屏.一种答题卡的自动阅读方法J.济南大学学报(自然科学版),2014,28(4):246-250.使用微服
26、务架构和分布式时序库改造实现了系统的去中心化和大数据存储,使整个系统易于开发和维护,按需伸缩。并应用于轨道、发电等领域。实现了系统平台化、服务化,极大地提高了工作效率。未来随着逐步智能化。该系统后续还需要增加容器化的支撑,使之具备现场快速部署的能力。参考文献(References):1 许洪强.大电网调控系统业务中台设计与研究J.电网技术,2022,46(6).2 尧正国.基于大数据与微服务设计的配网运行监控 App设计应用研究J.决策探索(中),2019,No.630(10):73-73.3 杨强,张钧鸣.基于微服务架构的大数据应用开发创新实践J.电力大数据,2019,22(3):71-76.4 余芸.基于一致性Hash的电力企业MDS集群高质量元数据管理模型J.自动化技术与应用2020(3):174-177,181.5 李宁.基于一致性Hash算法的分布式缓存数据冗余J.软件导刊,2016,15(1):47-50.(上接第179页)CECE183