自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (1)
  • 收藏
  • 关注

原创 Modbus调试工具和源码分享

深入学习Modbus通信协议,研究它的框架源码还是有必要的,框架源码是NModbus.dll类库的源码,里面包含Modbus RTU、Modbus TCP、Modbus ASCII的实现,数据类型包含了输入寄存器、保持寄存器、线圈等等,非常全面,并且有测试案例,下面是源码截图。支持的数据类型有01、02、03、04、05、06、15、16。如果是调试Modbus TCP,这个工具可以不用,如果是通过串口调试Modbus RTU,需要用到虚拟串口工具,推荐使用:vspd虚拟串口工具。软件:计算器、串口工具。

2024-09-27 12:14:45 857

原创 轻松搞定IEC104协议-源码分享

Visual studio开发工具,Common文件夹存放公用类,IEC104文件夹存放104协议逻辑实体,Tools为工具,ZZH是Socket相关类,Form1是主窗体。其实网络通信协议很简单,就是两部分组成(网络通信+协议),IEC104也不例外,简单来说就是IEC104=Socket+协议,搞懂这个,你就能搞懂大部分的网络通信协议。上面代码是数据解析方法,由于没有数据库操作,解析之后的数据存放在Hashtable中,如果想扩展数据库操作,可以在这里修改或直接从Hashtable中获取。

2024-06-19 16:36:37 3321

原创 电力IEC104规约协议解读(含源码下载)

说明:文章大部分内容参考自网络,填写原创是因为转载只能填写一个连接主要参考文章:https://www.cnblogs.com/meandme/p/10112380.htmlhttps://blog.csdn.net/chenyitao736866376/article/details/99120024http://www.myexception.cn/c-sharp/1801406.htmlhttp://www.doc88.com/p-096107619768.html(参考的较.

2020-10-14 13:45:48 38259 15

原创 OPC取数OPCAutomation.dll的使用以及注意事项

OPC取数OPCAutomation.dll的使用以及注意事项,项目使用的是Winform+C#,从美卓maxDNA OPCServer取数,接口机系统是Win7,工控机是Win Server2003,

2016-11-22 15:00:36 41170 30

原创 367.1协议,电表和主站之间的桥梁

摘要:Q/GDW10376.1-2019是国家电网制定的电力采集系统通信标准,规范主站与采集终端间的数据传输。该协议支持数据采集(电表读数、功率等参数)、远程控制(费控、负荷管理)及多种通信方式(主从问答/终端上报)。兼容智能电表(DL/T645)、断路器等设备接入,应用于电表数据采集、事件上报和远程费控等场景,替代早期2013版协议并优化通信规则。

2025-08-01 14:32:25 151

原创 学习DLT698进阶三,读分帧

DLT698学习大纲涵盖了从基础到进阶的多个层次,包括读规约文档、电表地址、电能量数据、历史数据、事件、分帧、操作方法请求等。重点在于分帧处理,由于DLT698的报文长度通常超过DLT645,当APDU数据组帧长度超过最大帧长度时,需采用分帧传输。分帧传输规则包括分帧标志位的设置、逐条确认、超时处理、校验验证、缓冲区管理和错误处理等。分帧传输可由服务器或客户机任意一侧发起,适用于主动或被动数据服务。分帧报文解析时,需确保报文完整,去掉帧头、分帧格式域和帧尾后组合解析。

2025-05-09 09:46:15 1024

原创 学习DLT698进阶二,电表的事件

DLT698学习大纲涵盖了从基础到进阶的电表数据读取与处理技能,包括规约文档理解、电表地址读取、电能量数据获取、历史数据查询、事件读取、分帧处理、操作方法请求等。编程部分涉及请求报文构建与面向对象编程实现报文解析。应用部分则包括基于串口和TCP的连接模式。此外,文章详细介绍了电表中的各种事件,如失压、欠压、过压、断相等,以及它们的原因和影响。通过DLT698协议,可以读取电表事件,但需注意不同协议下的数据标识差异。文章还提供了请求和应答报文的示例,展示了如何通过协议读取电表事件。

2025-05-09 09:44:25 990

原创 学习DLT698进阶一,根据时间区间读历史数据

DLT698协议学习大纲涵盖了从基础到进阶的多个阶段,包括规约文档阅读、电表地址读取、电能量数据获取、历史数据读取、事件读取、分帧读取、操作方法请求等。编程部分涉及请求报文构建和面向对象编程实现报文解析。应用方面包括基于串口和TCP的通信模式,以及电表和集中器的读取。DLT698协议与DLT645协议相比,功能更复杂强大,但不包含负荷记录。DLT698协议通过冻结数据读取历史数据,存储时间较长,满足读取指定时间区间和间隔的电流或电压数据的需求。分钟冻结功能可实现这一需求,通过设置间隔和选择器,读取时间和电压

2025-05-09 09:41:46 645

原创 学习DLT698基础,读电能量数据

学会读电能量数据,就能应对90%的业务场景,通常在项目中,使用最多的是读电表的(正向有功总电能、反向有功总电能、尖峰平谷费率),在DLT698协议中,电能量接口类包含组合有功、正向有功(ABC相正向有功)、反向有功(ABC相反向有功)、组合无功、象限无功、正反相视在电能等电能量数据。请求的是高精度电能量数据,从响应报文能看出是小数点后四位,这里面返回了6条数据,其中第一条是正向有功总电能,后面五个是费率,不用纠结为什么会有5个,而不是尖峰平谷4个,电表支持20多个费率,计费规则也有很多。

2025-04-23 13:57:01 1023

原创 DLT698和DLT645协议读电表地址

要读任意一个电表的数据,首先要关注的不是电表的地址,而是电表所支持的通信协议,验证电表所支持的通信协议只需要两步,使用RS485或红外正确连接电表,并打开串口,发送DLT645广播指令和DLT698广播指令,如果都无数据返回,切换波特率再次尝试,如果还是没有数据返回,说明电表不支持标准协议或者通信接口故障。不管是485接口还是红外接口,在确定接口和模块没问题的情况下,如果两个波特率都无法读到数据,请查看电表说明书

2025-04-15 09:49:17 1567

原创 流量积算仪数据采集

以青岛自动化仪表有限公司(青流仪表)的产品为例,设备型号有LXB-3C、 LXB-3E、 LXB-3E1、 LXB-4F,其中LXB-3C是最老的设备,其次是LXB-3E,最新的应该是LXB-4F,最新的设备支持历史曲线查看和画面组态,支持的协议也比较多。由于设备厂家提供的相关资料比较少,在网上也很难查到,在实际测试的时候,也是根据相关经验一点一点琢磨出来的。同步字(7F) 设备地址(01) 命令长度(01) 命令(01) SUM校验和。如下图所示青流的LXB-4F类型的流量积算仪设备。

2024-01-26 15:34:57 333

原创 详细解读电力DLT698.45-2017通信规约--正向有功总电能

DLT698-2017是面向对象的通信协议这篇文章以集中器和主站通信为例,介绍怎么读取正向有功总电能,并详细解读发送和接收到的报文;文章介绍怎么通过集中器读电表的数据。我们在用DLT645-2007规约的时候,想要读正向有功总电能直接根据对象标识(00010000)就可以了,非常简单快捷;但是在DLT698-2017里面,需要先找到 "电能量的接口类",然后根据类的定义读相关属性,每个属性根据索引ID来区分。

2023-12-07 16:28:45 10394 3

原创 什么是RS485通信

一条485总线最多可以带多少台设备呢,理论上有64台、128台、256台(最多),主要取决于控制器通讯芯片和485转换芯片,如果数据量较大,并且对通讯时间有要求,建议每条总线上的设备控制在20台或10台以内。485是半双工通讯,半双工就是设备在同一时刻要么处于收数据状态,要么处于发数据状态,不允许同时收发数据,如RS-485是一种通讯接口标准果你连的设备很多,每台设备的寄存器地址也很多,那么这个通讯周期就会很长。通讯线缆建议采用屏蔽双绞线,普通没有双绞的电线也能用,只是可能会产生干扰。

2023-11-20 21:38:19 451

原创 威胜WFET2000s电能量数据采集终端-WF102协议报文解读

WF102协议是威胜自己的私有协议,参考了国际标准IEC870-5-102的1996版协议。小头菜查找相关资料,发现威胜2000s采集终端功能挺多,但是售价比普通透传DTU贵了 N 倍。经过几天的研究发现,2000s终端最多可接入100多个电表,485端口最多可扩展 8 路。

2023-11-16 16:44:05 1591

原创 维思通Vestor厂级监控信息系统简介

华电天仁维思通vestor实时库在国电某电厂使用过,简单说一下 1. 首先需要导入RTDBInterface.dll 2. 连接数据库的时候,注意用户名密码的配置和所需dll的路径等问题 3. 读数的时候需要注意集合的使用主要是注意以上几点,有偿服务可联系微信 xiaoyiyz ...

2018-06-05 16:59:01 2091

原创 MODBUS简介

简介Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误

2017-12-11 17:08:55 1713 1

转载 微软消息队列-MSMQ

MSMQ是微软消息队列的英文缩写。那么什么是消息队列?这些介绍网上一大片这里就不多说了。本文对于大虾级的人物来说这只是小玩意而已,对于初学者来说这文章还是有一定的帮助,希望路过的大虾们别笑话我班门弄斧。一、MSMQ介绍和安装消息队列      关于MSMQ详细的介绍请大家向http://www.baidu.com/或http://www.g.cn/等专家咨询。      使用消息队

2017-08-21 15:48:56 1978

原创 WPF Chart AreaSeries绘制阴影

WPF项目,Chart用的是 System.Windows.Controls.DataVisualization.Toolkit自己公司的系统,之前有一版是用Winform做的,现在应技术要求做一版WPF的Winform Chart绘制阴影可参考 http://blog.csdn.net/xiaoyiyz/article/details/48023205 首先看看WPF做出来的

2017-04-17 18:02:48 2488

转载 .NET中使用Redis (二)

很久以前写了一篇文章 .NET中使用Redis 介绍了如何安装Redis服务端,以及如何在.NET中调用Redis读取数据。本文简单介绍如何设计NoSQL数据库,以及如何使用Redis来存储对象。和传统的关系型数据库不同,NoSQL大部分都是以键值对存储在内存中的,我们不能直接把RDBMS里面的一些做法直接移植到NoSQL中来,一个最主要的原因是,在NoSQL中缺少RDBMS中的一些诸如j

2017-03-06 23:22:18 563

转载 .NET中使用Redis (一)

Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博、Github、StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/。最近项目中需要使用Redis,这里简单记录一下Redis的安装,以及如何在.NET中使用Redis。Redis安装与启动1. 下载RedisRedis本身没有提供Window

2017-03-06 23:21:20 1836

转载 win7 64位安装redis 及Redis Desktop Manager使用

写基于dapper的一套自动化程序,看到 mgravell 的另一个项目,StackExchange.Redis,之前在.NET上用过一段时间Redis,不过一直是其它的驱动开发包,这个根据作者介绍,是个高性能的线程安全的.NET c#开发redis客户端的库。说的很吊,不过我确信mgravell出品的东西都是精品。说多无益,先把redis在win上的开发环境搭一下。redis官方没有

2017-03-06 23:19:48 438

原创 SIS系统openPlant实时数据库的操作

给电厂做的项目,需要从SIS取数,之前做过很多厂的SIS都是PI实时数据库,这个厂用的是上海麦杰的openPlant,取数方式大同小异,但是感觉openplant要比PI快很多,用着很顺手,上千个点秒级取数 相当给力;还接触过一个厂的SIS用的是华电天仁VeStore,但是没有取数操作过;下面看看对openplant的操作private int m_port = 8200;

2016-11-22 15:44:04 10024

原创 Spring MVC入门

教你创建一个简单的SpringMVC项目首先创建一个Java web项目,然后引入SpringMVC所需要的jar包,或者创建一个maven webapp项目也可以。创建好以后开始配置springMVC1. 首先配置 springMVC 的 Servlet 负责请求分发,在web.xml中配置 SpringMVC org.springframew

2016-07-19 11:12:20 2311

原创 解决asp.net FileUpload控件无法获取完整路径的问题 - 无序修改浏览器参数

尝试了很多办法,都不能获取到文件的完整路径    //string pName = Server.MapPath(this.FileUpload1.PostedFile.FileName); //获取项目服务端的路径            //string fileNameNo = Path.GetFileName(FileUpload1.PostedFile.FileName); //获

2016-07-15 09:52:45 4216

原创 SSM框架 Spring MVC对静态资源的访问 图片等

错误信息[org.springframework.web.servlet.PageNotFound] - No mapping found for HTTP request with URI [/test/Images/image_01.jpg] in DispatcherServlet with name 'SpringMVC'SSM项目,找不到图片文件的URI,而且报错,没

2016-05-27 10:39:49 18554

原创 C#获取计算机硬件信息(CPU,网卡,硬盘,内存等)

using System;using System.Collections.Generic;using System.Linq;using System.Management;using System.Text;namespace Formular{ /// /// Author ZZH /// /// 获取计算机硬件信息 ///

2016-05-06 23:12:46 11574

转载 Spring 注解 javax.annotation.Resource和@Autowired

@Resource和@Autowired两者都是做bean的注入使用。其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入。但是Spring支持该注解的注入。共同点:两者都可以写在字段和setter方法上。两者如果都写在字段上,就不需要写写setter方法。不同点如下:先来说一说@Autowired

2016-04-20 16:30:58 16234

转载 SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。这次,先说说三大框架整合过程。个人认

2016-04-20 11:26:11 677

转载 SSM框架——使用MyBatis Generator自动创建代码

这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy到项目工程中即可。           使用自动生成有很多方式,可以在eclipse中安装插

2016-04-19 16:35:09 629

转载 使用maven创建web项目

目前做的项目使用的是MAVEN来管理jar包,这也是我第一次接触maven,感觉非常好,再也不用一个一个去添加和下载jar包了,直接在maven配置文件中配置就可以了,maven可以帮助我们自动下载。非常方便。之前比较忙没时间整理,现在整理一下,记录下来,加深印象。当然我们使用maven也只是最基本的,很多其他功能都没有使用到,本篇仅介绍如何创建一个maven项目,不做其他。 

2016-04-19 10:09:03 464

转载 MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建

1.JDK的安装       首先下载JDK,这个从sun公司官网可以下载,根据自己的系统选择64位还是32位,安装过程就是next一路到底。安装完成之后当然要配置环境变量了。———————————————————————————————————————————————————1.1新建变量名:JAVA_HOME   变量值:E:\Java\jdk1.6.0_43(

2016-04-18 16:09:43 826

转载 JDK各个版本的新特性jdk1.5-jdk8

JDK各个版本的新特性  对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。JDK1.5新特性: 1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这

2016-04-18 14:09:06 656

转载 字符串匹配算法---KMP算法

转自:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html转自:http://www.cnblogs.com/c-cloud/p/3224788.html1.kmp算法的原理:  字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"B

2016-04-13 13:32:52 407

原创 Winform实现后台推送,数据跨线程实时刷新控件

1. 用委托事件实现数据实时推送并刷新页面,适用于前台和后台松耦合但没有分布式部署的情况。2. 首先定义一个全局的委托事件public class Notice { public delegate void MessageRecieved(DataTable dt);//定义委托 public static event MessageRecie

2016-03-07 15:18:11 7427

原创 .NET程序连接OPC Server时出错 对 COM 组件的调用返回了错误 HRESULT E_FAIL

最近在给鹿华系统做升级,为了实时性和稳定性,程序直接从DCS取数,程序是.NET开发的,调用OPC的DLL是OPCDAAuto.dll系统装的是Windows Server 2003 R2,配置好DCOM,初次尝试成功连接OPCServer,程序10秒取数一次,在运行30小时后就再也连不上OPCServer了 错误如下对 COM 组件的调用返回了错误 HRESULT E_FAIL

2016-03-02 15:52:08 11468 1

转载 实时数据库简介和比较---PI

实时数据库是数据库系统发展的一个分支,它适用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,实时数据库系统的主要内容包括:实时数据库模型;实时事务调度:包括并发控制、冲突解决、死锁等内容;容错性与错误恢复;内存组织与管理;访问准入控制;I/O与磁盘调度;主内存数据库系统;不精确计算问题;放松的可串行化问题;实时SQL;实时事务的

2016-02-24 00:08:51 23193 3

转载 Java(.NET)经典排序算法之选择排序

一、算法原理对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元

2016-01-22 11:36:47 583

转载 Java(.NET)经典排序算法之冒泡排序

转自:http://blog.csdn.net/ouyang_peng/article/details/46540497冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢

2016-01-11 15:58:14 1024

转载 Java(.NET)经典排序算法之归并排序

转自 【http://blog.csdn.net/ouyang_peng】一、归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并过程为:比较a[i]

2015-12-29 18:16:42 495

转载 Java(.NET)经典排序算法之快速排序

转自【http://blog.csdn.net/ouyang_peng】一、算法思想     快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。(1) 分治法的基本思想     分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递

2015-12-28 15:58:39 1080

.net reactor 5.0破解版--de4net无法破解

亲测可用,更少的积分换更好用的工具

2016-06-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除