当前位置: 首页 > news >正文

仿163源码交易平台宽屏整站源码 网站模板交易平台源码中国作文网官网

仿163源码交易平台宽屏整站源码 网站模板交易平台源码,中国作文网官网,wordpress数据库重置密码,网站开发工程师工资多少电力通信规约-104实战 概述 104规约在广泛应用于电力系统远动过程中,主要用来进行数据传输和转发,本文将结合实际开发实例来讲解104规约的真实使用情况。 实例讲解 因为个人技术栈是Java,所以本篇将采用Java实例来进行讲解。首先我们搭建一…

电力通信规约-104实战

概述

        104规约在广泛应用于电力系统远动过程中,主要用来进行数据传输和转发,本文将结合实际开发实例来讲解104规约的真实使用情况。

实例讲解

        因为个人技术栈是Java,所以本篇将采用Java实例来进行讲解。首先我们搭建一个springboot的基础工程,引入如下依赖:

<dependency>
    <groupId>org.openmuc</groupId>
    <artifactId>j60870</artifactId>
    <version>1.7.2</version>
</dependency>

        搭建好的项目之后我们进行核心类的设计,整体结构如下图所示:

        接下来我将详细讲解一些这些核心类的作用和核心方法代码的说明,首先我们需要实现采集通信连接管理的功能,因为我这边使用的技术栈是spring boot,要实现在程序启动之后就能够初始化连接,这里我通过实现CommandLineRunner接口的方式来实现的。如下是采集通道类中的核心实现代码:

for (AppConfig.IEC104ChannelConfig config : appConfig.getIec104channels()) {try {configs.add(config);IDataChannel<AppConfig.IEC104ChannelConfig> channel = new IEC104Channel();channel.init(config);channelMap.put(config.getId(), channel);channelStatusMap.put(config.getId(), false);iec104ChannelList.add((IEC104Channel) channel);} catch (Exception e) {log.warn("failed to create channel:{}", config, e);}
}

        这里考虑到多通道的情况,所以在此使用了循环初始化的方式来做,这里往下具体实现创建连接的方法如下:

/*** 创建连接* @throws IOException*/
public void connect() throws IOException {try {InetAddress addr = InetAddress.getByName(connInfo.host);ClientConnectionBuilder clientConnectionBuilder = new ClientConnectionBuilder(addr).setPort(connInfo.port);conn = clientConnectionBuilder.connect();conn.setId(config.getId());conn.setMaxMessageInMinutes(config.getMaxMessageInMinute());} catch (Exception e) {logger.warn("failed to connect host: {}, try to connect host2 :{}", connInfo, connInfo2, e);//尝试连接备用地址if (connInfo2 != null) {logger.info("try to connect backup host: {}", connInfo2);InetAddress addr = InetAddress.getByName(connInfo2.host);ClientConnectionBuilder clientConnectionBuilder = new ClientConnectionBuilder(addr).setPort(connInfo2.port);conn = clientConnectionBuilder.connect();conn.setId(config.getId());conn.setMaxMessageInMinutes(config.getMaxMessageInMinute());} else {throw e;}}
}

        上面展示的创建连接的方法有个比较特殊的实现,就是备用地址连接的逻辑,这里也是根据实际业务来考虑的,因为一般发送数据主站会提供两个地址,进行主备的考虑,这样做的目的为了采集链路的稳定。

        项目中还是实现了一个初始化数据的类 InitializeDataManager,这个类也需要在程序启动之后初始化的,所以也是通过实现CommandLineRunner接口的方式来实现的。做数据采集有一个很重要的环节就是对点,通俗来讲就是对方发过来的点位需要转换适配到我们的系统中,这里需要初始化我们需要的点位信息,所以定义了初始化数据的类。

        接下来讲解一下最关键的一个类,事件监听器IEC104ClientEventListener的实现,首先我们需要实现ConnectionEventListener接口,在ConnectionEventListener接口中定义了如下两个方法:

public interface ConnectionEventListener {void newASdu(ASdu var1, String var2);void connectionClosed(IOException var1);
}

        在IEC104ClientEventListener中重写了这两个方法,其中newASdu是监听数据事件的connectionClosed是处理连接关闭事件的。

        采集和监听部分设计完成之后,我们需要将采集的数据进行业务处理,这套系统开发的是采集光伏场站的数据,所以设计如下处理任务,分别用来采集逆变器,集电线的数据:

总结

        本文讲解了104在光伏场站采集场景中的具体实践案例,通过对104程序设计的讲解,希望能够帮助我们将104运用到实际场景中。

http://www.yayakq.cn/news/242760/

相关文章:

  • 盐山做网站价格wordpress引入外部js
  • 外贸互联网推广的抖音搜索优化
  • soho做网站要写品牌吗微信公众号转入公司网站建设
  • 新网站上线 怎么做seo网页设计培训 机构
  • 类似17做网店的网站网站开发软件系统
  • 网站备案的接入商优设网官方网
  • 网站内部数据搜索怎么做网站图片修改
  • 如何建设一免费的网站wordpress 权限修改
  • 手机上网网站建设企业网站需求文档
  • 怎么做网站评论免费晋江网站建设
  • 深圳vi设计公司全力设计班级优化大师官方免费下载
  • 如何自己制作免费网站建设网站是否需要一个主机
  • 龙江做网站ui设计培训班是坑吗
  • 网站搭建步骤无锡做智能网站
  • 网站建设后端技术如何给网站做宣传
  • 男人女人做那事网站网站策划资料方案
  • 宝山顺德网站建设提供秦皇岛网站建设
  • 网站注销主体注销国家企业信用信息公示系统换官网
  • 广东手机网站建设品牌网站平台建设方案
  • 牛商网网站模板深圳龙霸网站建设物三
  • 收录网站有哪些浦东新区专业网站建设
  • 中国银行门户网站石家庄网站优化推广
  • 网站建设类工作描述网站建设新闻发布
  • 长沙网站建设哪家公司好深圳南山住房和建设局网站
  • 昌吉网站建设公司有哪些网站可以做问卷调查
  • 廊坊专业网站制作服务花溪网站建设
  • 枣庄网站建设多少钱深圳市建设集团股份有限公司
  • 网站设计网站建设网站制作如何看出网站是用wordpress搭建
  • 上海英文网站建设公司网站通栏广告素材
  • 网站建设合同范本-经过律师审核蜂鸟影院高清免费观看