### 基于面向对象协议的智能电能表主站动态库接口设计说明 #### 一、概述 本文档旨在详细介绍一种基于面向对象协议的智能电能表主站动态库接口设计方法。此设计方法主要应用于智能电网系统中的电能表与主站之间的通信过程,通过对智能电能表主站远程动态库接口进行详细的设计和说明,实现安全高效的数据交换。该文档不仅包括了接口设计的基本原理,还涵盖了具体的操作流程以及常见问题的解决方案。 #### 二、面向对象协议简介 面向对象协议是一种广泛应用于现代信息技术领域的通信协议。它通过定义一组抽象的对象来组织和管理数据,使得数据传输更加高效和安全。在智能电能表的应用场景中,面向对象协议能够有效地支持各种复杂的数据交互需求,并确保数据的安全性和完整性。 #### 三、动态库接口设计说明 动态链接库(Dynamic Link Library,DLL)是一种可执行文件格式,用于存储Windows操作系统中的多个程序可以共享的代码和数据。在本设计方案中,我们利用动态链接库来实现智能电能表主站与电能表之间的数据交换功能。 ##### 3.1 会话密钥协商 会话密钥协商是建立安全通信通道的第一步,通过此步骤双方可以协商出一个会话密钥,用于后续的数据加密和解密。其主要过程如下: - **函数名**:`Obj_Meter_Test_InitSession` - **参数说明**: - `InKeyState`:电表密钥状态,0表示测试密钥状态,1表示正式密钥状态。 - `InEsamId`:根据`InKeyState`的不同,代表的是Esam序列号或表号,长度为8字节。 - `InAMCTR`:应用会话协商计数器,长度为4字节。 - `ucFLG`:保留字段。 - `OutRand1`:会话协商随机数1,长度为16字节。 - `OutSessionData`:会话协商数据,长度为32字节。 - `OutMAC`: 会话协商MAC,长度为4字节。 - **返回值**:0表示成功,其他值表示错误。 ##### 3.2 会话密钥协商验证 会话密钥协商验证是对上一步骤生成的会话密钥进行验证的过程,以确保双方协商的会话密钥一致且有效。 - **函数名**:`Obj_Meter_Test_VerifySession` - **参数说明**: - `InKeyState`:电表密钥状态,0表示测试密钥状态,1表示正式密钥状态。 - `InEsamId`:根据`InKeyState`的不同,代表的是Esam序列号或表号,长度为8字节。 - `InRand1`:会话协商随机数1,长度为16字节。 - `InSessionData`:会话协商数据,长度为48字节。 - `InMAC`:会话协商MAC,长度为4字节。 - `OutSessionIV`:会话密钥初始向量,长度为177字节。 - **返回值**:0表示成功,其他值表示错误。 #### 四、数据抄读 数据抄读是指主站从智能电能表中读取实时或历史数据的过程。这一步骤对于监控电网运行状态至关重要。 - **函数名**:`Obj_Meter_Test_ReadData` - **参数说明**: - 入参包括电表ID、需要读取的数据类型等。 - 出参为读取到的数据内容。 - **返回值**:0表示成功,其他值表示错误。 #### 五、电表主动上报 在某些特定情况下,例如电能表检测到异常情况时,需要主动向主站发送数据。这种机制能够及时地向主站报告异常情况,提高系统的响应速度。 - **函数名**:`Obj_Meter_Test_ReportData` - **参数说明**: - 入参包括电表ID、上报的数据类型及内容等。 - **返回值**:0表示成功,其他值表示错误。 #### 六、钱包操作 钱包操作主要涉及与智能电能表中内置的钱包模块相关的功能,如充值、查询余额等。 - **函数名**:`Obj_Meter_Test_WalletOp` - **参数说明**: - 入参包括电表ID、操作类型(充值、查询余额等)、金额等。 - **返回值**:0表示成功,其他值表示错误。 #### 七、获取读ESAM指令 ESAM(Embedded Security Application Module,嵌入式安全应用模块)是智能电能表中用于安全认证的重要组成部分。获取读ESAM指令是指主站向电能表发送读取ESAM数据的请求。 - **函数名**:`Obj_Meter_Test_GetReadESAMCmd` - **参数说明**: - 入参包括电表ID等。 - **返回值**:0表示成功,其他值表示错误。 #### 八、验证读ESAM数据 验证读ESAM数据是在获取到ESAM数据后,对其进行验证的过程,确保数据的有效性和安全性。 - **函数名**:`Obj_Meter_Test_VerifyReadESAMData` - **参数说明**: - 入参包括电表ID、ESAM数据等。 - **返回值**:0表示成功,其他值表示错误。 #### 九、设置ESAM参数 设置ESAM参数是指主站向电能表发送设置ESAM相关参数的命令。 - **函数名**:`Obj_Meter_Test_SetESAMParams` - **参数说明**: - 入参包括电表ID、需要设置的参数等。 - **返回值**:0表示成功,其他值表示错误。 #### 十、获取下发参数数据 获取下发参数数据是指主站向电能表发送获取特定参数的命令。 - **函数名**:`Obj_Meter_Test_GetDownloadParamsData` - **参数说明**: - 入参包括电表ID、需要获取的参数类型等。 - **返回值**:0表示成功,其他值表示错误。 #### 十一、密钥更新 密钥更新是指在一定周期内,主站向电能表发送更新密钥的命令,以保证通信的安全性。 - **函数名**:`Obj_Meter_Test_UpdateKeys` - **参数说明**: - 入参包括电表ID、新的密钥等。 - **返回值**:0表示成功,其他值表示错误。 #### 十二、获取电能表任务数据 获取电能表任务数据是指主站从电能表中获取正在进行的任务的相关数据。 - **函数名**:`Obj_Meter_Test_GetMeterTaskData` - **参数说明**: - 入参包括电表ID等。 - **返回值**:0表示成功,其他值表示错误。 #### 十三、验证会话数据 验证会话数据是指主站在收到电能表发送的数据后,对数据进行验证的过程,确保数据的完整性和有效性。 - **函数名**:`Obj_Meter_Test_VerifySessionData` - **参数说明**: - 入参包括电表ID、会话数据等。 - **返回值**:0表示成功,其他值表示错误。 #### 十四、获取随机数 获取随机数是指主站向电能表发送获取随机数的命令,用于加密和解密过程中的密钥生成。 - **函数名**:`Obj_Meter_Test_GetRandomNumber` - **参数说明**: - 入参包括电表ID等。 - **返回值**:0表示成功,其他值表示错误。 #### 十五、获取广播数据 获取广播数据是指主站向电能表发送获取广播数据的命令。 - **函数名**:`Obj_Meter_Test_GetBroadcastData` - **参数说明**: - 入参包括电表ID等。 - **返回值**:0表示成功,其他值表示错误。 #### 十六、上报数据返回加密 上报数据返回加密是指电能表接收到主站的数据后,对其进行加密处理,然后返回给主站的过程。 - **函数名**:`Obj_Meter_Test_EncryptReportData` - **参数说明**: - 入参包括电表ID、待加密的数据等。 - **返回值**:0表示成功,其他值表示错误。 #### 十七、软件比对 软件比对是指主站与电能表之间进行软件版本比对的过程,以确保电能表软件的正确性和兼容性。 - **函数名**:`Obj_Meter_Test_SoftwareCompare` - **参数说明**: - 入参包括电表ID等。 - **返回值**:0表示成功,其他值表示错误。 #### 十八、常用操作流程举例说明 为了更好地理解上述接口的具体应用,下面提供了一些常见的操作流程示例。 ##### 18.1 密钥更新 密钥更新的操作流程如下: 1. **初始化会话**:调用`Obj_Meter_Test_InitSession`函数完成会话密钥协商。 2. **验证会话**:调用`Obj_Meter_Test_VerifySession`函数完成会话密钥协商验证。 3. **更新密钥**:调用`Obj_Meter_Test_UpdateKeys`函数完成密钥的更新。 #### 十九、附录 ##### 19.1 操作模式 操作模式主要包括测试模式和正式模式。测试模式主要用于开发和调试阶段,而正式模式则用于实际部署和运行阶段。 ##### 19.2 常见错误码 常见错误码包括但不限于: - **0x0001**:无效的输入参数。 - **0x0002**:电表未响应。 - **0x0003**:通信失败。 - **0x0004**:会话密钥协商失败。 - **0x0005**:数据校验失败。 通过本文档的介绍,我们可以了解到智能电能表主站动态库接口设计的核心内容和技术细节,这对于深入理解和掌握智能电网系统的运行机制具有重要的参考价值。
2025-03-28 11:35:18 595KB 面向对象协议
1
随着电网建设的逐步完善, 相应的电力配电装置得到了迅猛的发展,电能表的准确度等级越来越高,对电能表现场校验仪的要求也随之提高,电能表现场校验仪电能指标一般要求达到0.05 级,功能上要有谐波分析、错误接线判断、向量图显示、更正系数计算等,另外所测数据要求被保存并能上传到PC机供管理应用,还要求携带方便,体积小、功耗低,因此采用ARM和CP2102技术就能很好的满足设计要求。   一、硬件原理   硬件由模拟输入通道、采样保持电路、A/D转换器、CP2102数字信号处理器、ARM及其外围器件组成。输入通道中,三相电压直接接入,经过精密电阻分压取样到A/D转换器。电流采样分为经内附精密互感器、
1
随着电网建设的逐步完善, 相应的电力配电装置得到了迅猛的发展,电能表的准确度等级越来越高,对电能表现场校验仪的要求也随之提高,电能表现场校验仪电能指标一般要求达到0.05 级,功能上要有谐波分析、错误接线判断、向量图显示、更正系数计算等,另外所测数据要求被保存并能上传到PC机供管理应用,还要求携带方便,体积小、功耗低,因此采用ARM和CP2102技术就能很好的满足设计要求。   一、硬件原理   硬件由模拟输入通道、采样保持电路、A/D转换器、CP2102数字信号处理器、ARM及其外围器件组成。输入通道中,三相电压直接接入,经过精密电阻分压取样到A/D转换器。电流采样分为经内附精密互感器、
1
用户卡、ESAM信息交换过程 利用离散因子从ESAM模块获取随即数1和密码1 向用户卡发复位指令并获取离散因子,选择电表应用目录文件 利用从ESAM模块获取的随机数,从用户卡获取密码2 比较密码1和密码2是否一致 从用户卡获取随机数2 利用离散因子和随机数2从ESAM模块获取加密信息1 向用户卡发加密信息1,用户卡权限认证 从ESAM模块获取随机数3 利用随机数3,从用户卡读取文件数据与MAC 数据与MAC送ESAM卡,完成对应文件的写操作 从用户卡获取随机数3 利用随机数3,从ESAM模块读取返写信息文件数据与MAC 数据与MAC送用户卡,完成返写操作 用户卡ESAM ESAM 用户卡
2022-11-17 13:30:21 2.67MB 国网智能电能表
1
远程数据回抄测试 测试项目 用数据回抄功能回抄电能表ESAM内的数据。 测试方法步骤 发起回抄电能表ESAM文件命令,依次明文+MAC读出文件的数据; 将读取的每个文件的明文+MAC数据分别送到主站; 主站通过密码机验证MAC是否正确; 主站按照规范所定ESAM结构核对数据是否正确。 要求 读出的数据结构必须符合规范规定,数据也必须正确。 传回的MAC值也必须正确。
2022-11-15 23:38:31 2.67MB 国网智能电能表
1
单相智能电能表(2020版)通用技术规范
2022-09-30 14:48:40 391KB 技术规范
1
OIML R46国际建议智能电能表设计原版翻译中文文档,超高清。 《有功电能表》是由国际法制计量组织(OIML)修订完成的电能表国际建议,内容涵盖电能表计量技术规范、计量控制和性能试验、试验报告等内容,规定了标准的适用范围、术语定义和电能表技术要求,规范了电能表型式评价要求、试验方法以及试验报告的一般原则、基本流程和报告格式等。
2022-09-23 15:39:12 1.04MB OIML R46 国际建议 最新智能电能表设计
1
单片机智能电能表设计说明.doc
2022-07-17 16:00:17 537KB 互联网
1
人工智人-家居设计-基于NEC单片机的单相智能电能表设计.pdf
2022-07-14 09:04:19 2.7MB 人工智人-家居
人工智人-家居设计-基于FPGA的智能电能表动态误差测试激励信号产生与分析.pdf
2022-07-13 11:04:05 8.12MB 人工智人-家居