基于Modbus协议的光伏电站控制系统的设计与实现
2021-07-02俞昊
俞 昊
(上海电气分布式能源科技有限公司,上海 201199)
0 引 言
随着时代的发展,自然资源的使用量越来越大,一些不可再生资源存在有限性。对此,为了加快社会的发展,开发新能源显得具有重要意义。为了推动社会的可持续运作,新能源的开发项目越来越多,开发过程的核心在于经济性和环保性。基于此,太阳光伏电站具有得天独厚的优势,如具有获取容易、污染小以及广泛分布等特点。但为了能够有效进行开发应用光伏电站控,仍需要科学合理地规划设计,注重协议的可靠。本文基于Modbus协议论述光伏电站控制系统的设计与实现,希望能够为有关单位提供参考。
1 Modbus通信协议规范
1.1 网络体系结构
结合Modbus TCP协议分析,其网络体系结构主要分为网络层、传输层以及应用层,如图1所示。网络层能够从报文中提取通信设备在网络层的信息,分析字段信息,并将特征描述出来,如N=(SIP,DIP),以SIP为通信设备的源址,DIP为IP地址。传输层在网络通信交互过程中负责将数据进行可靠地传递,该环节的作用为提取传输层中的源端口号、目的端口号以及序列号。应用层为协议数据传输的中心部分,主要作用是提取Modbus应用层的信息,深度检测模块解析后的数据流[1]。
1.2 Modbus串行链路分析
对于Modbus模型来说,数据源信息在其代码部分封装,书写一次的这类代表可实现重复利用,如手机移动端、电脑网页的不同视图,能够顺利获取重用性更高的代码。具体串行链路分析中,主要对Modbus应用层报文进行分析,统计每个字节的大小。与此同时,可以将各类协议字段的字节大小以S向量给予标志,如长度、线圈、功能码、协议标志符、单元标志符以及事务处理标志符等,通过这种处理方式便能够得到同一数据包内的各个字段语法关系。
对于工业总线通信来说,其中的关键当属串行Modbus通信协议,需得到数据交互模型的支持,模型为主从式Slave-Master。一般情况下的物理通信模式接口与协议可选择RS485和RS232,Slave通信请求能够由Master节点提供支持,最大数量为247个[2]。设计应用过程中,多采用标准的32接口支持模式,这种协议具有方便和简洁优势,数据交互的质量在工业总线物理链路下能够实现长足提升,同时取能够得更快的速率。
1.3 Modbus/TCP链路分析
分析Modbus/TCP链路,结合流量相位差特性可以得到Modbus TCP网络流量中主、从通信数据包具有相位特性。在封装处理通信协议数据包环节,在数据包分割技术支持下,以太网TCP/IP可分割协议数据包为多个数据段,MBAP数据段标记能够由协议技术Modbus/TCP提供。数据段如果所处的Modbus协议数据包相同,则可通过复合式数据结构完成结构定义统一[3]。因此,在处理单元PDU/ADU的过程中,技术应用还需要关注标记单元MBAP的针对性处理。Modbus/TCP协议技术数据包处理模型如图2所示。
图2 Modbus/TCP协议技术数据包处理模型
常规网络通信状态下,会计算Response数据包和Query数据包之间的间隔时间,分析得到同一功能行为中的数据包周期。在数据平台中,不同类簇的功能行为存在不同的相位特性,利于提高检测精度。
2 系统总体方案概述
在设计光伏电站环节,生产和运维管理的实现离不开运维管理平台支持,为了实现设计目的,需要给予科学合理的规划设计,能够满足大量数据的传输,配备多种功能模块。运维管理平台能够显示电站实时动态等各类信息,如汇流箱、光伏组件、逆变器、辐射强度以及发电量统计等实时运行的重要设备状态。结合具体数据,操作人员则能够对电站的运行状态给予监测,快速、准确地判定故障,及时给予维修和处理等。
2.1 系统功能需求分析
2.1.1 采集质量检查功能需求
光伏电站控制系统硬件系统与网络结构具有复杂性,对此在电力电流等相关数据的采集过程中,很容易因各类非计划因素出现用电信息异常、错误等问题。为了避免这些问题的发生,需要在设计中注重方法,按照现场实际条件统筹考虑,确保采集的准确性和稳定性[4]。
2.1.2 设备监测管理功能需求
系统设备运行时,元件和设备的数量相对较多,对此为了实现设备状况的实时监测和科学管理,应给予实时监测管理。进行系统信息的采集需要对设备数据进行建模,并建立设备之间的关联。
2.1.3 手动采集管理功能需求
系统运行中,除了自动采集数据外,还应设置手动采集方式,可以在系统采集异常或验证数据的准确性上提供另一种备选方案。
2.1.4 数据收集功能需求
针对光伏电站的建设而言,应具备数据收集功能,以能够实现及时的数据分析,形成分析结果,作出相关反应,确保系统的运行稳定、安全。由于电站设备数量较多,产生的数据也具有多元化特征,对此应进行数据的分类采集和处理[5]。为了确保电站所处的环境具有健康特性,还需要对环境给予监测,包括环境温度、湿度、风向变化以及辐射强度等。相关数据采集过程,都可以结合现代化自动监测设备,形成数据,输送到数据处理中心,再做相关逻辑对比,发出相对应的信号。
2.1.5 数据服务功能需求
电站运行过程中,数据服务是重要的一环,对电站的运行质量具有重要影响。为了能够实现数据的可靠运输,设有数据服务器负责接收电站数据,提供数据访问服务,数据服务层对外主要展示数据,为实现对系统稳定运行的维护,内部数据需得到数据调度、数据组织模型以及存储策略等功能的支持。
2.1.6 数据的在线实时展示功能需求
光伏电站系统基于大量数据的分析、对比,确保系统自动化运行的稳定、可靠。电站运行过程中也会产生大量的数据,对于电站的长久稳定运行具有重要意义。具体而言,结合电站设备管理系统,可以实时分析数据,结合统计图对比分析,利于加强对电站运行状态的了解。具体而言,查询统计数据过程中能够细致展示设备的实时数据和环境数据,同时也能够展示历史数据,以此开展针对性对比,可供管理者针对提供的信息更好地决策,电站的安全稳定运行也能够更好得到保障[6]。此外,还需要做好技术履历和状态管理工作,以此管理电站智能设备,并保证查询能够基于区域进行,即可直观了解详细设备信息。大幅降低日常生产中管理员在设备维护方面耗费的时间和精力。
2.1.7 App视频实时监控功能需求
光伏电站通常会建设在人烟稀少的区域,以确保安全,而且为了确保光伏电站的运行安全,进行实时的视频监督也具有十分重要的意义。与此同时,结合现代化通信技术,采用App方式进行监控变得可行。在光伏电站应用该系统设备,有利于维护电站的运行稳定、健康可持续,避免发生有关问题。如结合App软件,工作人员可以随时查看每个监控位置,进行记录和跟踪,确保巡检质量。
2.2 系统的总体设计
光伏电站系统的总体设计过程中,主要结合6种元器件,具体为光伏组件、汇流箱、配电柜、逆变器、变压器以及蓄电池。系统工作流程如图3所示。
图3 光伏电站发电系统流程图
2.3 数据采集子系统的设计方案
在Modbus通信方案设计环节,通信功能的科学设计极为关键,具体涉及现场硬件与采集点设备的Modbus通信功能以及各个通信节点与Web服务器的以太网通信功能[7]。具体设计采用串行Modbus协议和Modbus/TCP协议,在协议约束下,通信数据包格式能够有效规范,同时存在没有固定要求的底层物理通信介质,发送前和接收后的数据包仅需要满足协议规范要求即可发挥预期效果,具体处理需结合协议的数据域帧格式与头部格式进行。
2.4 数据处理子系统设计方案
光伏电站涉及的设备较多,形成的数据分为多种,相关数据的有效收集需要子系统的合理发挥作用。收集过程主要结合各个传感器,通过已构建好的网络收集、转换以及处理各类数据,实现对系统的控制分析。对于数据处理子系统,在采集数据环节,依托网络技术和通信技术以及现场安装的传感器和通信设备即可实现数据的远程采集和自动记录存储。数据库的分析也能够依托数据库高效开展,这对工作效率提升能够带来积极影响,数据分析人员的工作效率和质量也能够随之有效提升。
2.5 远程控制子系统设计方案
控制系统不仅要服从电网的电调指令,并从现场的实际情况出发,以并网点的电表作为实际值,以电调指令作为目标值,根据两者的差值,进行不间断地修正。使实际值在规定的时间周期内逐渐逼近目标值,并达到最后的收敛,保证其满足目标值的合理偏差。
2.6 通信模块设计方案
虽然Modbus通信报文比较通俗易懂,但是很多设备制造商提供的Modbus协议都会有稍许的出入。有些起始地址不是从默认的“0”地址开始,而有些数据的格式,高低字节会互相颠倒,特别是长整型数据,有ABCD、BADC、CDAB以及DCBA这4种。更有甚者,通信的帧序号只能计数到128。为此需要设计一个能兼容上述情况,并根据不同设备的Modbus“变种”协议进行可配置的通信采集模块。
3 系统设计
3.1 实时缓存设计
光伏电站中的设备仅仅能采集到数据,远远无法满足统计分析和远程控制的要求。每一种设备之间都有一定的层次关系和逻辑关系。需要将“共性”和“个性”数据融合在一起,组成一个新的数据模型。在这个新的数据模型中包含了不同种类的设备,和同一种类下的多个设备。每一次的数据采集都是维护了该数据模型最新的数据库快照。同时该数据模型提供了统一的对外访问接口,其他子系统可以按照不同的业务需求和权限进行数据的读写。按照系统的存储机制,可以定期将缓存的数据批量导入到数据库中作为数据持久化的基础,实时缓存起到了一个承上启下的作用[8]。
3.2 数据采集子系统软件设计
为了提高采集系统的采集频率,同时又要满足采集系统的可靠性,采集子系统需要设计成多线程的模式。每一个采集线程负责管理某一个具体设备的通信交互,需要具有断线重连的机制。另外需要有一个守护进程来管理采集线程,当采集线程出现奔溃或者异常的时候能够重新启动。最后采集线程需要和实时缓存中的模型对应,将采集的数据映射到模型中。
3.3 数据处理子系统软件设计
数据处理系统按照不同的数据维度、数据内容以及类型,采用了和采集子系统类似的多线程的模式。每一个线程只负责一个维度或者类型的数据加工、重组与统计。对于很多的历史数据,无需每一次都从数据库中进行查询,直接从数据处理子系统中就可以获得。
3.4 远程控制子系统软件设计
控制子系统是光伏系统中最重要的环节,由于需要24 h不间断地运行,因此对其稳定性、可靠性以及实时性提出了很高的要求[9]。针对这种特殊的应用,需要将此子模块设置成主从热备的方案,主从两套系统可以同时收到电调指令,但是同一时刻只能有一套系统发出调整指令。当其中一套系统出现故障,由另一套备用系统来接管,并发出调整指令,同时重启故障系统,重启成功后作为备用系统互为冗余。
4 系统功能测试与验证
光伏设备运维平台系统的设计是以电站运营需求作为出发点,同时利用MVC的设计模式,控制平台中的模型层、视图层以及控制层,这样的分离方式缩小了成本的预算,平台具有了更高的扩展性。当电站在需求上发生了变化时可以实现对功能的及时调整,经过测试系统性能后,得到的检测结果使得系统各个模块之间工作都十分顺畅。所抓取的数据准确性较高,数据的输出也具有较高的合理性。
原先的海外光伏电站项目,由于信息的不对称,90%以上的监控软件都是由国内的少数几家电企垄断。特别是最近几年带有储能的光伏项目居多,根据电站的规模,采集的点位数量往往在50 W以上,需要加装大量的通信管理机,从成本和实时性上不能满足项目的需求[10]。而在项目周期上来说,可以将系统的调试周期缩短到两周,缺少了额外的采集装置,实时性上也得到了极大地提升。
5 结 论
系统的后期调试部分与之前的项目相比周期得到了缩短,资金的投入也较少,实时性也得到了提高。例如,在平台中的故障管理模块中,对定位、检测以及类别检测都进行了分开计算,研制出了适合光伏电站设备运维的平台算法,不仅可以实现对光伏信息化的管理及对故障的判断,而且提高了判断的准确性,使得光伏电站的运行情况可以被更加直观地展现,同时可以及时准确地了解出现故障的位置,排除了运行过程中危险因素,保证了光伏电站的安全运行。随着技术的不断发展,光伏电站诊断算法会更加智能化,而且智能化诊断算法的种类也会随之增加,越来越多的新型算法会推动光伏电站得到更好发展。