光伏逆变器出海和运维提效
手动部署
150
https://www.aliyun.com/solution/tech-solution/lteopisaoam
方案概览
光伏发电对于缓解能源短缺以及减少对化石能源的依赖具有非常重要的作用,具有清洁、可再生的优点。但是,由于光伏阵列常年暴露在户外,受多变环境(如雷雨天气、热循环、湿度、紫外线辐射、阴影等)影响,容易出现局部材料老化、裂纹、热斑、开路或者短路等各种故障,影响其使用寿命。集中式光伏电站中设备安装量大,但由于地处偏远地区,难以投入足够的人力、物力对电站的光伏设备进行定期全面的检查。如果不能及时对产生的故障进行诊断并处理,会显著降低光伏阵列的发电效率,且可能造成火灾等严重后果。分布式光伏安装分散,更加难以保证足够的人力进行后期维护,潜在的设备故障极大的降低了光伏发电的经济价值。因此本方案能在以下场景对用户提供帮助:
光伏阵列的的运行状态检测:识别出光伏阵列中的故障,触发告警,提醒电站的运维人员及时排查解决问题。
光伏电站的发电功率评估:可以发现可能的发电低效站点并进行预警,引导运维人员及时介入排查,避免经济损失扩大。
全球范围的设备稳定接入和设备数据安全:阿里云物联网平台支持全球多个地域内设备的就近接入、保证连接稳定性。同时,物联网平台通过了等保2.0版(三级等保),提供多重防护,保障设备数据安全。
方案架构
本技术方案的架构如下:
设备:设备上需要集成物联网平台的Link SDK,SDK会实现连接、上报、控制等能力。
物联网平台:设备和物联网平台进行连接后,会向物联网平台上报设备消息,物联网平台提供设备管理、设备运维、数据分析、智能运维等能力。
云服务器ECS:设备上报数据可以通过物联网平台实时流转到用户业务服务器,同时用户业务服务器也可以通过物联网平台对设备进行反向控制。
本方案的架构包括以下能力和云服务:
1个物联网平台企业版实例:标准型企业版实例支持MQTT、CoAP、HTTPS多种接入协议、多可用区互备、同城双活,提供全托管的企业级实例服务。
1个专有网络VPC和1台交换机:用于部署云服务器ECS和物联网无线连接服务。
2台ECS服务器:1台用于模拟设备上报数据,另1台作为业务服务器,接收设备上报的数据。
部署准备
10
开始部署前,请按以下指引完成账号申请、账号充值、RAM用户创建和授权。
准备账号
如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。
为阿里云账号充值。本方案的云资源支持按量付费,且默认设置均采用按量付费引导操作。如果确定任何一个云资源采用按量付费方式部署,账户余额都必须大于等于100元。
本方案的云资源中,物联网平台企业版实例使用包年包月的计费方式,ECS使用按量付费的计费方式。使用按量付费资源需要确保账号余额不少于100元。
以1000台光伏设备出海至沙特,每台设备30MB/月为例,10000元一次性费用(物联网卡费)+6000元左右/月起(物联网平台+物联网卡流量+ECS)。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能会导致费用发生变化,请以控制台显示的实际价格和最终账单为准。以下为本方案中需付费资源在美国(硅谷)地域的价格,仅供参考。
产品
计费项
单价
云服务器ECS
实例规格、系统盘和公网流量
实例0.334元/小时
系统盘0.042元/小时
公网流量0.8元/GB
物联网平台企业版实例
最低规格一个月1732元
创建用于方案部署的RAM用户。
规划网络和资源
20
网络规划
请参考表格中的说明和方案默认示例值为每个规划项做详细规划并在实际部署时将默认示例值修改为您的实际规划。
规划项 | 数量 | 说明 |
地域 | 1 | 您的云服务部署的地域。选择地域的基本原则请参见地域和可用区。 |
专有网络VPC | 1 | 在部署过程中新建一个VPC作为本方案的专有网络。 |
交换机 | 1 | 本方案需要至少1台交换机。 |
安全组 | 1 | 用于限制专有网络VPC下云服务器ECS的网络流入和流出规则。 |
规划云资源
请参考表格中的说明和方案默认示例值为每个规划项做详细规划并在实际部署时将默认示例值修改为您的实际规划。
规划项 | 数量 | 说明 |
云服务器ECS | 2 | 本方案需要2台ECS实例,一台模拟实际设备,另一台用于部署用户业务应用。 |
物联网平台企业版实例 | 1 | 本方案需要1个物联网平台企业版标准型实例,用于管理物联网设备。 |
部署资源
60
规划好资源后,请按照以下步骤部署方案中的所有资源。
1. 创建物联网平台实例
登录物联网平台控制台。
在实例概览页签的购买企业版实例卡片中,单击购买实例。
在实例购买页面,选择美国(硅谷)地域的标准型,然后根据您的业务需求选择实例下资源规格,并完成购买。
2. 创建专有网络VPC和交换机
云服务器ECS实例必须部署在专有网络VPC的交换机,因此,您需要创建1个专有网络VPC和1个交换机vSwitch。
登录专有网络管理控制台。
在顶部菜单栏,选择美国(硅谷)地域。
在左侧导航栏,单击专有网络。
在专有网络页面,单击创建专有网络。
在创建专有网络页面,配置1个专有网络和1台交换机。
项目
说明
示例值
VPC名称
建议您在部署过程中新建一个VPC作为本方案的专有网络。部署过程中填写VPC名称即可创建对应名称的VPC。
长度为2~128个字符,以英文大小字母或中文开头,可包含数字、下划线(_)和连字符(-)。
VPC_IoT
IPv4网段
在创建VPC时,您必须按照无类域间路由块(CIDR block)的格式为您的专有网络划分私网网段。阿里云VPC支持的网段信息请参见专有网络组成部分。
在网络规划时可以按照管理网段-开发网段-测试网段-生产网段等规则做好规划。网段一旦投入使用,调整过程复杂,因此规划十分重要。
192.168.0.0/16
Vswitch名称
建议您在部署过程中在新建的VPC内创建虚拟交换机。部署过程中填写交换机名称即可创建对应名称的虚拟交换机。
长度为2~128个字符,以英文大小字母或中文开头,可包含数字、下划线(_)和连字符(-)。
vsw_001
可用区
在规划的地域内选择1个可用区。
建议选择排序靠后的,一般此类可用区较新。新可用区资源更充沛,新规格也会在新的可用区优先上线。
可用区J
IPv4网段
每台虚拟交换机需要一个IPv4网段。
192.168.1.0/24
3. 创建安全组
您已经在1个专有网络VPC下创建1台交换机。接下来您需要创建1个安全组,用于限制该专有网络VPC下交换机的网络流入和流出。
在顶部菜单栏,选择美国(硅谷)地域。
在左侧导航栏,选择网络与安全>安全组。
在安全组页面,单击创建安全组。
在创建安全组页面,创建1个安全组。
项目
说明
示例值
名称
设置安全组的名称。
SecurityGroup_1
网络
选择之前规划的专有网络VPC。
VPC_IoT
安全组类型
本方案需从公网拉取博客网站服务镜像,因此选择普通安全组,以实现公网出方向所有地址可访问。实际部署时,您建议选择安全性更高的企业级安全组。
普通安全组
4. 创建云服务器ECS
您已经创建1个专有网络VPC及一个交换机vSwitch。接下来您需要在这个可用区下创建2个云服务器ECS实例,其中一台ECS实例模拟设备上报和接收数据,另一台ECS实例作为用户的服务端。
在顶部菜单栏,选择美国(硅谷)地域。
在左侧导航栏,选择实例与镜像>实例。
在实例页面,单击创建实例。
在云服务器ECS购买页面,创建1台云服务器ECS。
项目
说明
示例值
实例名称
长度为2~128个字符,以英文大小字母或中文开头,可包含大小写字母、中文、数字、半角句号(.)、下划线(_)、半角冒号(:)或短划线(-)。
APP001、APP02
可用区
本方案要求一台云服务器ECS实例与一个虚拟交换机位于同一可用区。
可用区J
支付方式
ECS实例的计费方式。
ECS计费的详细信息请参见ECS计费方式概述。
按量付费
实例规格
ECS的实例规格及内核、vCPU数量。关于ECS选型的最佳实践请参见选型最佳实践。
ecs.s6-c1m1.small
镜像
ECS的“装机盘”,为ECS实例提供操作系统、预装软件等。
Ubuntu
镜像版本
镜像的版本。
Ubuntu 20.04 64位
系统盘类型
硬盘类型。
ESSD云盘
系统盘容量
硬盘容量。
20 GiB
安全组
使用之前创建的安全组。
SecurityGroup_1
光伏逆变器出海和运维提效
30
1. 创建产品和设备
创建产品。
在实例概览页面,单击购买的实例。
在左侧导航栏,选择设备管理>产品,单击创建产品。
在新建产品页面,配置如下参数,单击确认。
产品名称:光伏逆变器
所属品类:自定义品类
节点类型:直连设备
联网方式:Wi-Fi
创建设备。
在左侧导航栏,选择设备管理>设备,单击创建设备。
在对话框中配置产品为光伏逆变器,DeviceName为device1,单击确认。
创建设备完成后,在弹出的添加完成对话框,单击前往查看,跳转到设备详情页面。
复制并保存设备证书(ProductKey、DeviceName和DeviceSecret)。设备证书是设备后续与物联网平台交流的重要凭证。
2. 设备接入物联网平台
设备可以用多种语言的SDK接入物联网平台。本方案以C语言Demo作为一个示例。其他语言的示例请参见Java Link SDK,Python Link SDK。
本方案操作步骤以普通用户权限为例。如果您在操作过程中涉及到管理员权限才能执行的操作,可尝试使用sudo
命令执行。
登录ECS实例。登录方式,请参见连接方式概述。
说明本示例的开发环境为Ubuntu,开发工具为GCC和Make,开发语言为C语言。
执行以下命令,安装GCC和Make。
sudo apt-get install gcc make
执行以下命令,获取Demo文件。
wget https://linkkit-export.oss-cn-shanghai.aliyuncs.com/quick_deploy/LinkSDKdemo.zip
执行以下命令,解压Demo文件。
unzip LinkSDKdemo.zip
打开
./LinkSDKdemo/demos/mqtt_basic_demo.c
文件,配置如下参数,然后保存文件。参数
示例
说明
PRODUCT_KEY
k00p********
您添加设备后,保存的设备证书信息您可在控制台中设备device1的设备详情页面查看。
DEVICE_NAME
device1
DEVICE_SECRET
b2e6e4f102458d84***
MQTT_HOST
iot-0***a.mqtt.iothub.aliyuncs.com
MQTT设备接入域名。您可在控制台中实例的实例详情页面,单击查看开发配置,查看MQTT的信息。
/* TODO: 替换为自己设备的设备证书 */ #define PRODUCT_KEY "${YourProductKey}" #define DEVICE_NAME "${YourDeviceName}" #define DEVICE_SECRET "${YourDeviceSecret}" /* TODO: 替换为自己实例的接入点 */ #define MQTT_HOST "${YourInstanceId}.mqtt.iothub.aliyuncs.com"
在SDK根目录
/LinkSDKdemo
下,执行make
命令,完成样例程序的编译。生成的样例程序
./output/mqtt-basic-demo
。make clean make
运行样例程序。
3. 服务端订阅设备消息
设备连接物联网平台后,数据直接上报至物联网平台,平台上的数据可以通过AMQP客户端流转至您的服务器。本方案中,使用一台ECS实例APP02
作为服务端。
为消息消费端配置消费组身份,用于企业服务器通过消费组获取转发的消息。
在左侧导航栏,选择
,单击消费组列表页签。单击创建消费组。
在创建消费组对话框中,设置消费组名称为光伏逆变器,单击确认。
创建消费组成功后,跳转到消费组详情页面。复制并保存消费组ID值,用于AMQP客户端接入。
为光伏逆变器产品配置服务端订阅,用于您的服务器直接订阅产品下多种类型的消息。
在左侧导航栏,选择
。在服务端订阅页面的订阅列表页签下,单击创建订阅。
在创建订阅对话框,设置参数后单击确认。
推送消息类型,选择设备上报消息、设备状态变化通知。消息类型说明,请参见配置AMQP服务端订阅。
执行以下命令,下载服务端订阅AMQP Demo文件。
说明本步骤的AMQP Demo文件使用Java语言。
wget https://linkkit-export.oss-cn-shanghai.aliyuncs.com/quick_deploy/amqp-demo.zip
执行以下命令,解压文件。
unzip amqp-demo.zip
在
src/main/java/com.aliyun.iotx.demo/AmqpClient.java
文件中,参照下表,修改JMS客户端接入物联网平台代码中的参数值。说明本Demo代码中,添加了结束程序的代码(
Thread.sleep(60 * 1000);
),即程序启动成功,运行一分钟后会结束。实际场景中,您可根据业务需求自行设置程序启动逻辑。参数
示例
说明
accessKey
LTAI4GFGQvKuqHJhFa******
登录物联网平台控制台,将鼠标移至账号头像上,然后单击AccessKey管理,获取AccessKey ID和AccessKey Secret。
accessSecret
iMS8ZhCDdfJbCMeA005sieKe******
consumerGroupId
VWhGZ2QnP7kxWpeSSjt******
已创建的光伏逆变器消费组ID。
iotInstanceId
iot-cn-6ja***
实例ID。
您可在物联网平台控制台的实例概览页面查看。
clientId
12345
客户端ID,可自定义,长度不可超过64个字符。建议设置为您的AMQP客户端所在服务器UUID、MAC地址、IP等唯一标识,方便您识别区分不同的客户端。
AMQP客户端接入成功后,在控制台的光伏逆变器的消费组详情页面,显示该参数。
connectionCount
4
启动AMQP客户端的连接数,最大不超过64个。用于实时消息推送的扩容。
消费组详情页面会以
${clientId}+"-"+数字
形式,显示连接的客户端。其中数字最小值为0。host
iot-***.amqp.iothub.aliyuncs.com
AMQP接入域名。
您可在控制台中实例的实例详情页面,单击查看开发配置,单击AMQP页签查看。
在
pom.xml
文件中,已添加相关Maven依赖。在amqp-demo
根目录执行以下命令,重新加载Maven变更,构建项目。在amqp-demo/target
目录下生成可部署的JAR包。mvn clean package
在
amqp-demo/target
目录执行以下命令,运行生成的JAR包。java -jar demo-0.0.1-SNAPSHOT-jar-with-dependencies.jar
4. 云端下发消息给设备
设备连接到物联网平台后,业务服务端可以通过物联网平台提供的云端API向设备发送指令。
本步骤基于Java SDK使用说明,调用Pub接口通过自定义Topic向设备发布消息。
在服务端订阅设备消息时下载的
amqp-demo/src/main/java/com/aliyun/iotx/demo/AmqpClient.java
文件中:在文件开头添加以下依赖。
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.iot.model.v20180120.PubRequest; import com.aliyuncs.iot.model.v20180120.PubResponse; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile;
在
processMessage
方法中添加以下代码块。try { DefaultProfile.addEndpoint("cn-shanghai", "cn-shanghai", "Iot", "iot.cn-shanghai.aliyuncs.com"); } catch (Exception e) { System.out.println("DefaultProfile exception"); } IClientProfile profile = DefaultProfile.getProfile("cn-shanghai", "${accessKey}", "${accessSecret}"); DefaultAcsClient defaultAcsClient = new DefaultAcsClient(profile); PubRequest pubRequest = new PubRequest(); pubRequest.setIotInstanceId("${instanceId}"); pubRequest.setProductKey("${productKey}"); // 要发送的消息主体。您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。注意您的设备收到的会是Base64解码后的数据。 pubRequest.setMessageContent("eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0="); // 发送给设备的topic,您可以自定义 pubRequest.setTopicFullName("/${productKey}/${deviceName}/user/get"); PubResponse response = null; try { response = defaultAcsClient.getAcsResponse(pubRequest); } catch (Exception e) { logger.error("执行失败:e:" + e.getMessage()); }
参数
示例
说明
accessKey
LTAI4GFGQvKuqHJhFa******
登录物联网平台控制台,将鼠标移至账号头像上,然后单击AccessKey管理,获取AccessKey ID和AccessKey Secret。
accessSecret
iMS8ZhCDdfJbCMeA005sieKe******
InstanceId
iot-cn-6ja***
实例ID。您可在控制台的实例概览页面查看。
productKey
k00p****
产品key,可以通过设备管理>设备详情页查看。
deviceName
device1
设备名称,可以通过设备管理>设备详情页查看。
在
amqp-demo
根目录执行以下命令,重新加载Maven变更,构建项目。在amqp-demo/target
目录下生成可部署的JAR包。mvn clean package
在
amqp-demo/target
目录执行以下命令,运行上一步骤生成的JAR文件。java -jar demo-0.0.1-SNAPSHOT-jar-with-dependencies.jar
5. 光伏智能运维
本步骤主要介绍如何在物联网平台,使用您的逆变器上报的I-V曲线数据来识别光伏组件故障,物联网平台提供了实时数据解析、离线SQL分析洞察工具来清洗原始I-V曲线数,让其更符合光伏智能运维算法的输入要求,同时提供的数据API可以通过HTTP接口调用获取这些分析后数据。
本案例以光伏逆变器数据举例,相关的数据结构如下。本方案以s0、s5两个故障举例。
故障编码
描述
s0
健康状态
s1
光伏阵列部分遮挡
s2
光伏阵列串联电阻老化
s3
光伏阵列模组短路
s4
光伏阵列并联电阻老化
s5
光伏阵列子串断路
数据预处理。如果设备上报的数据是JSON格式,请跳过这步前往下一步。如果设备上报的数据是
Protobuf
格式,需要转成JSON格式。在左侧导航栏,选择数据服务>数据解析。
单击新建解析,配置任务名称光伏逆变器。
单击操作列的查看进入任务编辑画布。
单击中间画布的源节点,在右侧面板配置如下信息,单击下一步。
数据源类型为IoT实例Topic。
所属实例、所属产品、所属设备为之前创建的物联网平台实例、云网关产品和全部设备。
配置Topic类型为自定义类型。
在Topic数据格式列表中选择ProtoBuf,配置以下信息,单击保存。
上传光伏逆变器的
.desc
文件,用于解析ProtoBuf格式数据。说明生成.desc文件的步骤,请参见附录:生成.desc文件。
选择消息类型后,上传二进制数据文件,配置样例数据。
单击校验解析,查看解析结果。若解析成功,可在解析预览中查看数据。若解析失败,则根据提示,修正样例数据后,重新校验。
单击源节点后面的加号,选择数据计算节点。单击数据计算节点,查看数据的所有字段。
说明数据节点的更多信息,请参见配置数据计算和数据过滤。
单击数据计算节点后的加号,选择目标节点。单击目标节点,选择提前创建好的自定义存储表光伏逆变器,保存转化成JSON格式后的ProtoBuf格式数据。
说明创建自定义存储表的步骤,请参见创建和管理自定义存储表。
配置完数据解析后,单击页面右上角的启动。启动自动更新为启动中。启动成功后,启动中自动更新为停止。请耐心等待。
说明启动数据解析任务时,系统会自动试跑校验该任务。若校验失败,需要根据提示修正配置后,重新启动。
订阅I-V曲线诊断算法。
创建和配置I-V曲线诊断算法实例。
在数据应用页面,选择数据智能 > 算法实例。
单击创建实例。配置实例名称为光伏逆变器数据,算法模板为光伏智能运维-IV曲线诊断。
单击确认,创建算法实例。创建实例预计需要花费3~5分钟。
创建完成后,选择数据智能 > 算法模板。
单击I-V曲线诊断后操作列的查看,单击创建阵列。
配置基本信息、品牌型号等参数。参数说明,请参见配置算法实例。
在算法实例详情页查看已添加的阵列。单击目标阵列右侧操作列的IV检测。
在右侧面板,配置检测数据的环境光强度、环境温度、采集时间、上传IV数据。
参数环境光强度、环境温度、采集时间取值范围和单位以页面输入框提示为准。
单击开始检测。检测完成后,页面弹出检测结果对话框,可查看诊断状态和对应可能性概率。IV曲线故障检测模型会推理阵列的状态,给出6个故障状态的可能性概率。
完成及清理
30
方案验证
设备接入
完成了配置后,您可查看设备的接入情况。
登录物联网平台控制台,在左侧导航栏,选择 ,找到设备,查看设备的状态和运行日志。
查看设备状态。设备状态显示为在线,则表示设备与物联网平台成功连接。
在设备详情页面,单击日志服务页签,查看设备上线、订阅Topic和上报消息的日志。
服务端订阅设备消息
运行示例代码后,返回类似如下信息,表示AMQP客户端已接入物联网平台并成功接收消息。
参数 | 说明 |
topic | 设备属性上报的Topic。 |
messageId | 消息的ID。 |
content | 消息的内容。 |
云端下发消息给设备
正常返回示例
{
"RequestId":"BB71E443-4447-4024-A000-EDE09922891E",
"Success":true,
"MessageId":889455942124347329
}
光伏智能运维
IV曲线故障检测模型会推理阵列的状态,给出6个故障状态的可能性概率。
下图是健康状态
npar_3_nser_9_n1211_s0
IV曲线数据的检测结果,推理健康状态概率是1.0。下图是光伏阵列子串断路
npar_3_nser_9_n1211_s5
IV曲线数据的检测结果,推理断路概率是0.88。
清理资源
在本方案中,您创建了2台云服务器ECS实例、1个交换机、1个专有网络VPC、1个物联网企业版实例。测试完方案后,您可以参考以下规则处理对应产品的实例,避免继续产生费用: