用户用电信息采集系统是通过对配电变压器和终端用户的用电数据的采集和分析,实现用电监控、推行阶梯定价、负荷管理、线损分析,最终达到自动抄表、错峰用电、用电检查(防窃电) 、负荷预测和节约用电成本等目的。建立全面的用户用电信息采集系统需要建设系统主站、传输信道、采集设备以及电子式电能表(即智能电表) 。

电力线载波传输
依靠电线来传输数据,他一般只能用于同一变压器的回路内,传输到终端,终端再无线发送,发送到电力局的电力计量系统;
这种方式都是在电表的下口有一个模块,也就是电力载波模块,电路中数据处理完成以后就传输给电力载波模块,模块处理完数据以后再传输到终端,最后依靠无线发射器传输给电力终端或者是电力计量部门;
这种方式现在也很常用,例如共用配电站、临时变压器、公共计量箱的计量方式基本都是采用这种方式进行计量;这种方式无法实现用户自己在网上自己缴费,只能去电力局买电。
RS-485传输
它可以实现用户远程缴费即网络自助缴费,供电局的系统收到用户网路支付信息,就可以给用户充值,充值完成以后再把信息发送到用户所在小区的集中器;
这种数据传输的RS485通讯方式,都是依靠我们的三大运营商的GPRS或者是CDMA网络,传输的数据再依靠RS-485下发到电表,这样整个数据传输就完成了。
所以说,智能电表无论是是电力线载波方式接收和传输数据还是RS485通讯,他们都是不需要网线的,所以他们都是终端的无线传输。
部分常用电能信息采集协议
通信架构
该网络平台信息交换模型,上层由程序、数据存储器和数据交换平台构成,下层 是数据节点群体,当中的每个节点一般电脑当做载体。
客户机与服务器之间进行数据交换,通过协议可以实时采集数据,物理通道一般由通信线等进行直接操作。

客户机和服务器在开始通信前,之间的通信信道必须先完成连通,简称预连接。预连接建立后,默认具有一个最低权限的应用连接,客户机和服务器之间可直接进行数据交换。当客户机需要得到较高权限的服务器服务时,客户机必须发起建立较高权限的应用连接。

DL/T645报文帧结构

DLT645协议的数据帧每帧的开始都固定为0x68,作为数据的起始符方便接收方做数据解析。
地址域是用来表示电表地址,低位在前,高位在后;在485总线上可能挂着多个645设备,要找到指定的设备,必须要根据设备的地址查找。每台设备出厂会有自己的地址,也可以修改设备的通信地址。
1个字节,例如读取数据的控制码为0x11(00010001),读取通讯地址的控制码为0x13(00010011)。

1个字节,表示数据域的字节数,读取数据时L
数据域为变长,字节数由数据长度L决定,传输时候。发送方需要加0x33,接收方需要减去0x33。

1个字节,采用算术和进行校验(即将校验码前的全部数据每两个字节转换成十进制数后相加,之后对256取余,得到的数在转换成十六进制后即为校验码)。
645报文解读如下:

DL/T698.45协议思想
采用的面向对象具有互操作性的数据传输协议,包括通信架构、数据链路层、应用层、以及接口类及其对象和对象标识。
思考过程更趋近于人的自然思维,从而利于业务描述和业务扩展。

帧结构

Client-APDU定义:

读取请求的数据类型(GET-Request)

OAD(对象描述符)
控制类对象标识及对应接口类定义:

控制类对象标识定义:

以单相表为例,单相表主要功能:
设计分成三部分,分别是通信链路层设计、通信应用层设计、数据安全设计。
链路层:
1、根据通信配置参数完成端口的初始化配置,通信状态初始化为准备接收状态, 初始化相关计数器及数据缓冲区指针。
2、链路层数据传输及控制子模块负责通信数据收发控制、各类超时处理。无通信数据接收时定时初始化通信端口。
3、完成698协议帧的解析及应答功能。
应用层:
1、根据协议查找结果,对协议数据对象列表中的数据进行读写操作,同时作 相应的数据格式转换处理。
2、对于显示模块输出显示信息数据及显示格式。
3、应用层参数合法性检查模块主要是为了检验参数是否符合规则
安全设计:
1、明文+随机数抄读模块
2、应用连接模块
3、密文+MAC方式传输模块
详情请见DL/T698.45规约文档。
在主站和采集终端,采集终端与电能表,主站与电能表之间,通过传输报文来实现信息的交互。为了方便查看报文传递的信息,使用编解码程序将报文转换成JSON后做可视化展示,方便查看和操作。
实现思路:
将报文按结构分割开,每一部分处理好(如数据减0x33、起始符和结束符匹配、校验码计算等),根据控制域定义解析报文相关属性,再根据数据标识(645)或者对象标识(698.45)解析报文数据域。每部分解析后根据预先定义好的JSON结构赋值到对应的字段上即可。
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
我无法运行Spring。这是错误日志。myid-no-MacBook-Pro:myid$spring/Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/sid.rb:17:in`fiddle_func':uninitializedconstantSpring::SID::DL(NameError)from/Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/li
尝试通过SSL连接到ImgurAPI时出现错误。这是代码和错误:API_URI=URI.parse('https://api.imgur.com')API_PUBLIC_KEY='Client-ID--'ENDPOINTS={:image=>'/3/image',:gallery=>'/3/gallery'}#Public:Uploadanimage##args-Theimagepathfortheimagetoupload#defupload(image_path)http=Net::HTTP.new(API_URI.host)http.use_ssl=truehttp.verify
一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su
TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是
一、RIPV2协议简介 RIP(RoutingInformationProtocol)路由协议是一种相对古老,在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP采用距离向量算法,是一种距离向量协议。RIP-1是有类别路由协议(ClassfulRoutingProtocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(DiscontiguousSubnet)。RIP-2是一种无类别路由协议(ClasslessRoutingProtocol),支持路由标记,在路由策略中可根据路由标记对
开门见山|拉取镜像dockerpullelasticsearch:7.16.1|配置存放的目录#存放配置文件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/config#存放数据的文件夹mkdir-p/opt/docker/elasticsearch/node-1/data#存放运行日志的文件夹mkdir-p/opt/docker/elasticsearch/node-1/log#存放IK分词插件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/plugins若你使用了moba,直接右键新建即可如上图所示依次类推创建
文章目录概念索引相关操作创建索引更新副本查看索引删除索引索引的打开与关闭收缩索引索引别名查询索引别名文档相关操作新建文档查询文档更新文档删除文档映射相关操作查询文档映射创建静态映射创建索引并添加映射概念es中有三个概念要清楚,分别为索引、映射和文档(不用死记硬背,大概有个印象就可以)索引可理解为MySQL数据库;映射可理解为MySQL的表结构;文档可理解为MySQL表中的每行数据静态映射和动态映射上面已经介绍了,映射可理解为MySQL的表结构,在MySQL中,向表中插入数据是需要先创建表结构的;但在es中不必这样,可以直接插入文档,es可以根据插入的文档(数据),动态的创建映射(表结构),这就
我有以下文件结构:执行.rb图书馆我的类(class).rb在execute.rb我有下面的代码:#!/usr/bin/rubyrequire'lib/my_class'my_object=MyClass.newmy_object.some_method这是my_class.rb的代码:classMyClassdefsome_methodputs'OK'endend所以,我尝试运行execute.rb:rubyexecute.rb但是我收到这个错误:/home/vagrant/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/ru
HTTP缓存是指浏览器或者代理服务器将已经请求过的资源保存到本地,以便下次请求时能够直接从缓存中获取资源,从而减少网络请求次数,提高网页的加载速度和用户体验。缓存分为强缓存和协商缓存两种模式。一.强缓存强缓存是指浏览器直接从本地缓存中获取资源,而不需要向web服务器发出网络请求。这是因为浏览器在第一次请求资源时,服务器会在响应头中添加相关缓存的响应头,以表明该资源的缓存策略。常见的强缓存响应头如下所述:Cache-ControlCache-Control响应头是用于控制强制缓存和协商缓存的缓存策略。该响应头中的指令如下:max-age:指定该资源在本地缓存的最长有效时间,以秒为单位。例如:Ca