面向对象的用电信息数据交换协议

国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802

前言:

排版 by Dr_Ting
公众号:庭说
移步 tingtalk.me 获得更友好的阅读体验

Q/GDW XXXX-201X《面向对象的用电信息数据交换协议》是根据《国家电网公司关于下达 2017 年度公司第一批技术标准制修订计划的通知》(国家电网科﹝2017﹞72 号)的要求,制订面向对象的用电信息数据交换协议。

  • 本标准依据GB/T 1.1-2009给出的规则起草。
  • 本标准由国家电网公司营销部提出并负责解释。
  • 本标准由国家电网公司科技部归口。

范围

本标准规定了用电信息数据交换协议的通信架构、数据链路层、应用层、接口类与对象标识。

本标准适用于用电信息采集系统主站(以下简称“主站”)、采集终端、电能表之间采用点对点、多点共线及一点对多点通信方式的通信数据交换。

规范性引用文件

下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

  • GB/T 16262.1-2006 信息技术 抽象语法记法(ASN.1) 第 1 部分 基本记法规范
  • GB/T 17966-2000 微处理器系统的二进制浮点运算
  • CJ/T 188-2004 户用计量仪表数据传输技术条件
  • DL/T 645-2007 多功能电能表通信协议
  • DL/T 790.6-2010 采用配电线载波系统的配电自动化 第 6 部分 A-XDR 编码规则

术语、定义和缩略语

术语和定义

面向对象的用电信息数据交换协议

object oriented electic data exchange protocol

基于面向对象建模方法建立的一套适用于用电信息采集系统的互操作性协议。面向对象建模以接口类实现继承关系,以对象来封装数据及操作,以对象为互操作的基本要素。

对象标识

object identification

标识终端中对象唯一名称的编码。

逻辑名

logical name

用于标识接口类的实例,它是接口类的第一个属性,它的值与对象标识一致。

类标识码

class id

用于区别对象接口类的标识码,即接口类的名称。

服务器地址

server address

客户机/服务器(Client/Server)访问模型中的服务器(Server)的通信地址。

逻辑地址

logic address

终端的服务器模型中逻辑设备的地址。

客户机地址

client address

客户机/服务器(Client/Server)访问模型中的客户机(Client)的通信地址。

主站访问采集终端时,采集终端为服务器,主站为客户机;主站访问电能表时,电能表为服务器,主站为客户机;采集终端访问电能表时,电能表为服务器,采集终端为客户机。

采集启动时标

acquisition start time

启动一次采集任务时的设备时钟当前值,其值只与启动时刻有关,与执行的时间长短无关。

注:acquisition [ˌækwi'ziʃn](知识、技能等的)获得,得到

采集成功时标

acquisition time

客户机成功接收到服务器响应时的设备时钟当前值。

采集存储时标

acquisition storage time

采集到的数据进行存储的时间。

采集规则

acquisition rules

描述采集终端采集的数据的内容及其对应关系。

组地址

group address

具有某一相同属性的设备群组编码,如属于同一行业,同一变电站,同一线路,可以响应同一个命令。

通配地址

the wildcard address

在十进制编码表示的地址码中出现一位或多位采用了通配符的地址码。

注:wildcard 通配符。

消息鉴别码

message authentication code

用于鉴别消息的完整性固定长度认证标识。

注:authentication [ɔː,θentɪ'keɪʃən] 证明;鉴定;证实

符号和缩略语

符号和缩略语 全文 表示
A Address 地址域
ACD Ask Call Demand 请求访问标志
AD Acquired Data 采集数据
APDU Application Layer Protocol Data Unit 应用层协议数据单元
A-XDR Adapted Extended Data Representation 可调整的扩展数据表示
B Binary 二进制
CA Client Address 客户机通信地址
CSD Column Selection Descriptor 列选择描述符
DAR Data Access Result 数据访问结果
DIR Direction 传输方向位
ESAM Embedded Secure Access Module 嵌入式安全控制模块
FCS Frame Check Sum 帧校验
H Hex 十六进制
HCS Head Check Sum 帧头校验
IC Interface Class 接口类
LSB Least Significant Bit 最低有效位
MAC Message Authentication Code 消息鉴别码
MS Meter Set 电能表集合
OAD Object Attribute Descriptor 对象属性描述符
OI Object Identify 对象标识
OMD Object Method Descriptort 对象方法描述符
PIID Priority and Invoke ID 序号及优先标志
PIID-ACD Priority and Invoke ID with ACD 带请求访问标志的序号及优先标志
PRM Primary Request Message 启动标志位
RCSD Record Column Selection Descriptor 记录列选择描述符
RN Random Numbers 随机数
ROAD Record Object Attribute Descriptor 记录型对象属性描述符
RSD Record Selection Descriptor 记录选择描述符
SA Server Address 服务器通信地址
SC Scrambling Code 扰码
TI Time Interval 时间间隔
TSA Target Server Address 目标服务器地址
∷= 定义为

注 1: attribute ['ætribju:t] 属性;性质;特征;Patience is one of the most important attributes in a teacher.

注 2: invoke [ɪnˈvəʊk] 提出或授引……以支持或证明

通信架构

信息交换模型

客户机和服务器的应用进程分别位于不同的设备,它们的信息交换
借助于通信协议实现。信息交换模型如下图:

信息交换模型
信息交换模型

客户机和服务器的应用使用最高层协议的服务,所以应用层是唯一包含服务组件的协议层,应用层协议数据单元(APDU)通过数据链路层协议传输帧的链路用户数据域传输。

面向应用连接的数据交换

本标准是面向应用连接的数据交换协议,数据交换过程如下图:

面向应用连接的数据交换过程
面向应用连接的数据交换过程

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

请求/响应类型的数据交换

本标准支持客户机应用进程向服务器应用进程提出服务请求,服务器应用进程向客户机应用进程提供远程服务响应。

请求/响应类型数据交换
请求/响应类型数据交换

通知/确认类型的数据交换

本标准支持服务器应用进程根据客户机预先定制的主动上报内容,向客户机应用进程提供远程主动上报数据服务,客户机应用进程向服务器应用进程回复服务确认。

通知/确认类型的数据交换
通知/确认类型的数据交换

服务器模型

  • 逻辑设备 0
    • 应用连接对象 0(预先建立的)
    • 应用连接对象 1
    • 应用连接对象 n
    • 其他接口类对象 1
    • 其他接口类对象 2
    • 其他接口类对象 n
  • 逻辑设备 1
  • 逻辑设备 2
  • 逻辑设备 3

物理设备由若干逻辑设备(最多 4 个)构成,每个逻辑设备由若干可访问的接口类对象构成,包括一个预先建立的应用连接对象、若干个应用连接对象、若干个其他接口类对象。

  • 逻辑设备 0 为必须具备的逻辑设备
    • 对于带交采的终端
      • 逻辑设备 0 为终端设备
      • 逻辑设备 1 为交采设备
    • 对于单芯片电能表,只有一个逻辑设备 0
    • 对于双芯片电能表
      • 逻辑设备 0 为数据管理设备
      • 逻辑设备 1 为计量设备
  • 预先建立的应用连接对象为逻辑设备必须具备的对象
  • 应用连接对象为可选对象,根据访问权限所需进行增加
  • 其他接口类对象为可选对象,根据设备功能所需进行增加

数据链路层

帧结构

采用异步式传输帧结构,帧格式如下:

| 传输帧格式 | 字节数 |
| --------- | ---- | ---- |
| 起始字符(68H) | |
| 长度域 L | 2 |
| 控制域 C | 1 |
| 地址域 A | 可变 |
| 帧头校验 HCS | 2 |
| 链路用户数据 | |
| 帧校验 FCS | 2 |
| 结束字符(16H) | |

长度域 L

长度域 L 由 2 字节组成,采用 BIN 编码。

用户数据长度由 bit 0 ~ bit 13 组成,是传输帧中除起始字符和结束字符之外的帧字节数。

控制域 C

控制域格式定义

控制域 C 为 1 个字节:

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
传输方向位 DIR 启动标志位 PRM 分帧标志位 保留 扰码标志位 功能码 功能码 功能码

传输方向位及启动标志位

  • 传输方向位:DIR=0 表示此帧是由客户机发出的;DIR=1 表示此帧是由服务器发出的
  • 启动标志位:PRM=1 表示此帧是由客户机发起的;PRM=0 表示此帧是由服务器发起的

传输方向位 DIR 和启动标志位 PRM 组合意义:

DIR PRM 组合意义
0 0 客户机对服务器上报的响应
0 1 客户机发起的请求
1 0 服务器发起的上报
1 1 服务器对客户机上报的响应

分帧标志位

  • 分帧标志位为 1,表示此帧链路用户数据为 APDU 片段,收齐所有片段按片段序号合并后为完整 APDU
  • 分帧标志位为 0,表示此帧链路用户数据为完整 APDU

扰码标志位

  • 扰码标志位为 1,表示此帧链路用户数据为扰码编码格式,发送时链路用户数据按字节加 33H
  • 扰码标志位为 0,表示此帧链路用户数据为默认编码格式,链路用户数据不加 33H
  • 响应数据帧扰码编码格式应与请求/上报数据帧扰码编码格式一致

功能码

功能码采用 BIN 编码:

功能码 服务类型 应用说明
0 保留
1 链路管理 链路连接管理(登录,心跳,退出登录)
2 保留
3 用户数据 应用连接管理及数据交换服务
4~7 保留

地址域 A

地址域 A 由可变字节数的服务器地址 SA、和 1 字节的客户机地址 CA 组成。

服务器地址 SA

服务器地址定义

服务器地址由地址类型、逻辑地址、地址长度 N 及其 N 个字节地址组成。

服务器地址第一个字节:

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
地址类型 地址类型 逻辑地址 逻辑地址 地址长度 N 地址长度 N 地址长度 N 地址长度 N
  • bit0…bit3:为地址的字节数,取值范围:0~15,对应表示 1~16 个字节长度
  • bit4…bit5:为逻辑地址
  • bit6…bit7:为服务器地址的地址类型
    • 0 表示单地址
    • 1 表示通配地址
    • 2 表示组地址
    • 3 表示广播地址
单地址

当服务器地址 SA 的地址类型为单地址时,其地址长度为可变长度,字节数由地址长度域表示,最长 16 字节,对应取值范围为1…99999999999999999999999999999999,0 保留。

采用压缩 BCD 码的方式,即每字节二进制高低各 4 位分别编码表示两个 0 到 9 的十进制数,高位在前,低位在后:

  • bit7…bit4 对应十进制高位
  • bit3…bit0 对应十进制低位

当服务器地址的十进制位数为奇数时,最后字节中的十进制低位(即 bit3…bit0)为 FH 时,表示为无效。比如单地址 123456789 的排列:

第 1 字节 第 1 字节 第 2 字节 第 2 字节 第 3 字节 第 3 字节 第 4 字节 第 4 字节 第 5 字节 第 5 字节
1 2 3 4 5 6 7 8 9 F
通配地址

当服务器地址的地址类型为通配地址时,其地址长度为可变长度,编码方式同单地址。

通配符对应十进制按位使用,即通配地址的某些十进制位为 AH,表示该位可为 0 到 9 的任意值,同时,凡不大于传输帧中通配地址所能表示的最大值的,且符合通配地址要求的服务器地址被选中。

比如:通配地址=12345678A,表示服务器地址不大于 999999999 的且符合 123456780…123456789 的服务器都需响应。

第 1 字节 第 1 字节 第 2 字节 第 2 字节 第 3 字节 第 3 字节 第 4 字节 第 4 字节 第 5 字节 第 5 字节
1 2 3 4 5 6 7 8 A F
组地址

当服务器地址 SA 的地址类型为组地址时,编码方式同单地址。组地址对系统中凡是属于该群组的服务器都有效,但都无需回答。

广播地址

当服务器地址 SA 的地址类型为广播地址时,广播地址=AAH。广播地址对系统所有服务器都有效,但都无需回答。

客户机地址 CA

客户机地址 CA 用 1 字节无符号整数表示,取值范围 0…255,值为 0 表示不关注客户机地址。

帧头校验 HCS

帧头校验 HCS 为 2 字节,是对帧头部分除起始字符和 HCS 本身之外的所有字节的校验。

链路用户数据

链路用户数据包含一个完整的应用层协议数据单元(APDU)字节序列或 APDU 的分帧片段。

帧校验 FCS

帧校验 FCS 为 2 字节,是对整帧除起始字符、结束字符和 FCS 本身之外的所有字节的校验。

字节格式

帧的基本单元为 8 位字节。链路层传输顺序为低位在前,高位在后;低字节在前,高字节在后。

传输规则

字节规则

传输规则包括:

  • 采用串行通信方式实现本地数据传输时,在发送数据时,在有效数据帧前加 4 个 FEH 作为前导码
  • 线路空闲状态为二进制 1
  • 帧的字符之间无线路空闲间隔;两帧之间的线路空闲间隔最少需 33 位
  • 如帧头校验 HCS 和帧校验 FCS 检出了差错,两帧之间的线路空闲间隔最少需 33 位
  • 接收方校验:
    • 对于每个字符:校验起动位、停止位、偶校验位
    • 对于每帧:
      • 检验帧头中的起始字符和帧头校验 HCS
      • 识别长度 L
      • 每帧接收的字符数为长度域 L+2
      • 帧校验 FCS
      • 结束字符
      • 校验出一个差错时,线路空闲间隔(帧的字符之间无线路空闲间隔;两帧之间的线路空闲间隔最少需 33 位)
    • 若这些校验有一个失败,舍弃此帧;若无差错,则此帧数据有效

分帧规则

分帧规则概述

当一个完整的应用层协议数据单元长度超过发送帧最大尺寸时,可采用分帧传输。分帧数据接收端应对分帧传输进行逐条确认。采用分帧传输时,控制域中分帧标志位置 1。

分帧传输格式定义

分帧传输时,链路层的链路用户数据为分帧传输帧。分帧传输帧格式定义如下:

分帧格式域
APDU 片段
APDU 片段
……
APDU 片段

分帧传输的确认帧仅包含分帧格式域,不含 APDU 片段

分帧格式域定义

分帧格式域为 2 字节,按位或位的组合使用。

  • bit0…bit11:表示分帧传输过程的帧序号,取值范围 0…4095,循环使用
  • bit12…bit13:保留
  • bit15=0,bit14=0:表示分帧传输数据起始帧
  • bit15=1,bit14=0:表示分帧传输确认帧(确认帧不包含 APDU 片段域)
  • bit15=0,bit14=1:表示分帧传输最后帧
  • bit15=1,bit14=1:表示分帧传输中间帧

分帧传输交换规则

分帧数据交换,可用于服务器或客户机任意一侧,可用于主动发起的数据服务或者被动应答的数据服务,分帧传输的数据内容,不可自解析,必须收齐所有数据块,组合后,才可得到完整的一个 APDU 应用数据单元。

由服务器或客户机启动传输的数据分帧传输时序如下:

服务器或客户机启动传输的数据分帧传输时序
服务器或客户机启动传输的数据分帧传输时序

服务器响应客户机请求的数据分帧传输时序如下:

服务器响应客户机请求的数据分帧传输时序序
服务器响应客户机请求的数据分帧传输时序序

分帧传输格式域包含分帧序号(block)、分帧类型(type)。

  • 分帧的第一帧数据,block=0,type=0
  • 分帧的最后一帧,block=N(N为实际包序号),type=1,分帧传输完毕
  • 分帧传输确认,type=2,block 为最近一次收到正确的帧序号
  • 对方在接收到该确认报文后应准备并传输下一个数据块,此数据块包含分帧序号 block=上次正确发送的帧序号 +1,这样数据块的交换和确认应正常继续下去,直到发送完最后一个数据块,在接收到最后一个数据块后,分帧传输过程完成。

应用层

应用层服务规范

应用层服务概述

应用层服务对象组件

应用层服务对象是构成客户机和服务器应用层的主要组件,它使用数据链路层提供的服务,服务规范包含客户机和服务器应用进程在各自应用层的逻辑接口,并向应用进程提供服务。客户机和服务器的应用服务对象都包括预连接、应用连接和数据交换三个必备组件。

预连接

预连接服务适用于交换网络传输信道,如以太网、GPRS 等,当其完成物理连接,建立透明通道后,需要在此通道上建立预连接并进行管理。

预连接对应客户机和服务器各自应用层提供的服务如下:

  • 客户机应用层服务:LINKLINKLINKLINK(.indication,.response)
  • 服务器应用层服务:LINKLINKLINKLINK(.request,.confirm)

预连接服务(LINK)由服务器发起,客户机响应,其包括:

  • 登录:在完成物理连接,建立透明通道后,服务器应用进程按预连接配置参数向指定客户机发出登录请求,客户机应用进程给予确认,完成预连接

  • 心跳:服务器采用“心跳”的方式来保证预连接通道处于活动状态

  • 退出登录:在建立预连接后,不允许服务器主动断开。若要变更,需重新配置服务器预连接参数,服务器在重启后生效;或接收到客户机执行“复位”方法后,向原客户机发出退出登录指示,然后再按照新配参数执行新的预连接登录。

对于本地通信信道,如 RS485、红外等,当物理连接建立时,默认预连接的通道即存在,不需要额外的建立以及预连接管理。

应用连接

应用连接窗口

为访问服务器的接口类对象,首先要建立一个应用连接,并创建一个可以相互通信的语境。这个语境主要包含:应用语境的信息、使用身份验证机制的信息,以及其他需要的信息,这些信息包含在“应用连接”的接口类对象中。

服务器可以授予不同的访问权限给应用连接,访问权限涉及一组接口类对象,这组对象可以在给定的应用连接内被访问,即可视对象。

客户机可以通过读取应用连接对象的“可访问对象列表”属性而获得可视对象列表,即应用连接窗口,并利用应用连接对象所提供的方法,在已建立的应用连接内获得当前语境等更多的信息。

在预连接通道上,默认具有一个最低权限级别的应用连接窗口,即“预建立的应用连接窗口”,在此窗口内,客户机不需要进行应用连接协商以及安全认证等便可访问该应用连接窗口的内容。

建立和断开应用连接

建立应用连接(CONNECT),由客户机向服务器发起,用于确认客户机和服务器双方通信的应用语境,包含协议一致性、功能一致性以及安全认证等内容。

服务器可同时支持若干个应用连接,互不干扰,但对同一个客户机,同时仅支持一个应用连接,当同一个客户机再次请求建立应用连接时,服务器如接受了客户机的再次请求,则前一个应用连接自动失效。

断开应用连接(RELEASE)用于正常断开一个已经建立的应用连接。由于不允许服务器提出正常断开应用连接的请求,所以 RELEASE.request 服务只能由客户机提出,并且通常情况下,服务器不得拒绝此请求。

每一个应用连接在建立过程中,可以协商应用连接的静态超时时间,当连续无通信时间达到静态超时时间后,服务器将使用 RELEASE.notification 通知客户机,应用连接失效将被断开,此服务不需要客户机做任何响应。

应用连接对应客户机和服务器各自应用层提供的服务见下表:

服务名称 客户机应用层服务 服务器应用层服务
客户机建立应用连接 CONNECT(.request,.confirm) CONNECT(.indication,.response)
客户机断开应用连接 RELEASE(.request,.confirm) RELEASE(.indication,.response)
超时断开应用连接 RELEASE(.notification)

注:indication [ˌɪndɪˈkeɪʃn] n. 指示;象征;表明;标示

预连接时建立的应用连接

预连接时建立的应用连接不需要使用 CONNECT 服务,即认为 CONNECT 已经完成,因此,预连接时建立的应用连接可以看成是在客户机和服务器之间完成预连接时应用连接已经存在,任何时候它都不能被断开,仅具有最低权限级别,窗口内容由服务器定义。

这种应用连接简化了客户机和服务器之间数据交换,省掉了建立和断开应用连接阶段,仅有数据交换阶段。当客户机需要得到较高权限的服务器服务时,客户机必须发起建立较高权限的应用连接。

数据交换

数据交换服务是用于客户机和服务器之间的数据交换,是通过逻辑名引用来访问接口对象的属性或方法。数据通信服务对应客户机和服务器各自应用层提供的服务见下表。

服务名称 客户机应用层服务 服务器应用层服务
读取 GET(.request,.confirm) GET(.indication,.response)
设置 SET(.request,.confirm) SET(.indication,.response)
操作 ACTION(.request,.confirm) ACTION(.indication,.response)
上报 REPORT(.indication,.response) REPORT(.notification,.confirm)
代理 PROXY(.request,.confirm) PROXY(.indication,.response)

这些服务可分为两种通信类型:请求/响应类型、通知/确认类型:

  • 请求/响应类数据交换服务是:读取(GET)、设置(SET)、操作(ACTION)、代理(PROXY)
  • 通知/确认类数据交换服务是:上报(REPORT)

请求/响应类数据交换服务是通过客户机和服务器应用进程之间的数据交换来提供并完成的,即:客户机应用进程通过调用应用层的某个服务请求 XX.request,服务器应用层接收到客户机请求后向服务器应用进程发出服务指示 XX.indication,然后应用进程通过调用服务 XX.response 以响应客户机请求,客户机应用层接收到服务器响应后向客户机应用进程返回服务确认 XX.confirm。其服务顺序见下图。

请求/响应类型的服务顺序
请求/响应类型的服务顺序

对于请求/响应类数据通信服务,在通信语境商定后,客户机和服务器的数据通信服务集是完全对等互补的,即:服务集相同,只是 XX.request 服务换成了 XX.indication 服务,XX.response 服务换成了 XX.confirm 服务。因此:

  • 一个 XX.request 的 APDU 与一个 XX.indication 的 APDU 对等
  • 一个 XX.response 的 APDU 与一个 XX.confirm 的 APDU 对等

通知/确认类数据交换服务也是通过客户机和服务器应用进程之间的数据交换来提供并完成的,即:在客户机向服务器定制了主动上报的情况下,服务器应用进程通过调用应用层服务 YY. notification,客户机应用层接收到服务器上报后向客户机应用进程发出服务指示 YY.indication,然后客户机应用进程通过调用服务 YY.response 向服务器予以确认响应,服务器应用层接收到客户机确认响应后向服务器应用进程返回服务确认 YY.confirm。其服务顺序见下图。

通知/确认类型的服务顺序
通知/确认类型的服务顺序

对于通知/确认类数据通信服务,在通信语境商定后,客户机和服务器的数据通信服务集也是完全对等互补的,即:服务集相同,只是 YY.notification 服务换成了 YY.indication 服务,YY.response 服务换成了 YY.confirm 服务。因此:

  • 一个 YY. notification 的 APDU 与一个 YY.indication 的 APDU 对等
  • 一个 YY.response 的 APDU 与一个 YY.confirm 的 APDU 对等

有关传输的时间标签

时间标签用于传输的时序和时效性判断,其包括一个开始发送时间和一个允许传输延时时间。

允许传输延时时间,是指从开始发送至对方接收到能解析的完整的应用层数据单元之间所允许的传输延时时间。

对于请求/响应类数据交换服务,时间标签由客户机产生,随请求传送给服务器,服务器据此判决收到的请求的时序和时效性,如判别有效,响应收到的请求,并在响应中将接收到的时间标签返回客户机。

对于通知/确认类数据通信服务,时间标签由服务器产生,随通知传送给客户机,客户机据此判决收到的通知的时序和时效性,如判别有效,确认收到的通知,并在确认中将接收到的时间标签返回服务器。

时效性判断规则:在时间标签中允许传输延时时间大于零的前提下,如果接收方的当前时间与时间标签中的开始发送时间之间的时差大于时间标签中的允许传输延时时间,则放弃处理;反之,则处理。

有关服务器信息上报

服务器上报服务

服务器上报服务(REPORT)是通过“注册-通知-撤销注册”的机制给客户机提供的一种系统级服务。客户机可通过 GET 服务查询出服务器支持的可注册后上报的服务集(如事件或定时数据上报等),并可根据系统需求通过 SET 服务以自定义形式注册部分或全部服务。注册成功后,服务器在检测到上报条件满足时(如产生了事件或定时上报时间到等),通过 REPORT.notification 服务及时通知客户机。

该服务默认对远程通道有效,本地通道提供同样服务应由服务器界面提供相关信息指示,并经配置后使用。

服务器 APDU 的跟随上报信息域

服务器应用层协议数据单元(APDU)中的可选的跟随上报信息域,是当系统不适合或服务器不支持上报服务(REPORT)时,用于作为 ACD 标志事件上报方式的补充,以实现更及时上报客户机注册的上报信息。

该域同样默认对远程通道选择性有效,本地通道提供同样服务应由服务器界面提供相关信息指示,并经配置后使用。

预连接

LINK.request 服务

本服务由服务器应用进程调用,用于向远方客户机应用进程提出登录、心跳或退出登录三类预连接请求。用原语 LINK.request 表示,其服务语义和参数说明如下。

  • 请求类型 —— 登录、心跳退出
  • 心跳周期 —— 两次心跳请求的时间隔
  • 请求时间 —— 请求时服务器的时钟时间

LINK.indication 服务

本服务由客户机应用层调用,用于向客户机应用进程指示接收到远方服务器提出的预连接请求。用原语 LINK.indication 表示,服务参数同 LINK.request。

LINK.response 服务

本服务由客户机应用进程调用,用于向服务器应用进程响应预连接请求。用原语 LINK.response 表示,其服务语义和参数说明如下:

  • 请求类型 —— 登录、心跳、退出登录
  • 结果 —— 用于表明请求是否成功或失败及其原因
  • 请求时间 —— 即为 LINK.request 的“请求时间”
  • 收到时间 —— 为接收到 LINK.indication 的时间
  • 响应时间 —— 为发出 LINK.response 的时间
  • 时间可信度 —— 用于表明客户机时钟的准确性

LINK.confirm 服务

本服务由服务器应用层调用,用于向服务器应用进程指示接收到预连接请求的响应。用原语 LINK.confirm 表示,服务参数同LINK.response。

建立应用连接

CONNECT.request 服务

本服务由客户机应用进程调用,用于向远方服务器的应用进程提出建立应用连接请求。用原语 CONNECT.request 表示,其服务语义和参数说明如下:

服务语义:

  • 期望的应用层协议版本号
  • 期望的协议一致性块
  • 期望的功能一致性块
  • 客户机发送帧最大尺寸
  • 客户机接收帧最大尺寸
  • 客户机接收帧最大窗口尺寸
  • 客户机最大可处理 APDU 尺寸
  • 期望的应用连接超时间
  • 认证机制信息
    • 公共连接 —— 不需要安全机制
    • 一般密码 —— 使用明文密码
    • 对称加密 —— 使用 ESAM 对称加密进行安全认证,并建立会话密钥
    • 数字签名 —— 使用 ESAM 非对称加密进行安全认证,并建立会话密钥

CONNECT.indication 服务

本服务由服务器应用层调用,用于向服务器应用进程指示接收到远方客户机提出的建立应用连接的请求。用原语 CONNECT.indication 表示,服务参数同 CONNECT.request。

CONNECT.response 服务

本服务由服务器应用进程调用,用于向客户机应用进程返回请求结果。用原语 CONNECT.response 表示:

服务原语:

  • 服务器厂商版本信息
  • 商定的应用层协议版本号
  • 商定的协议一致性块
  • 商定的功能一致性块
  • 服务器发送帧最大尺寸
  • 服务器接收帧最大尺寸
  • 服务器接收帧最大窗口尺寸
  • 服务器最大可处理 APDU 尺寸
  • 商定的应用连接超时间(单位:秒)
  • 认证响应

CONNECT.confirm 服务

本服务由客户机应用层调用,用于向客户机应用进程指示接收到建立应用连接请求的响应。用原语 CONNECT.confirm 表示,服务参数同 CONNECT.response。

断开应用连接

RELEASE.request 服务

本服务由客户机应用进程调用,用于向远方服务器的应用进程提出断开应用连接请求。用原语 RELEASE.request 表示。

RELEASE.indication 服务

本服务由服务器应用层调用,用于向服务器应用进程指示接收到远方客户机提出的断开应用连接的请求。用原语 RELEASE.indication 表示,服务参数同RELEASE.request。

RELEASE.response 服务

本服务由服务器应用进程调用,用于向客户机应用进程返回请求结果。用原语 RELEASE.response 表示,其服务语义和参数说明如下:

  • 结果:请求的结果,通常情况下,服务器不得拒绝此请求

RELEASE.confirm 服务

本服务由客户机应用层调用,用于向客户机应用进程指示接收到断开应用连接请求的响应。用原语 RELEASE.confirm 表示,服务参数同 RELEASE.response。

RELEASE.notification 服务

本服务由服务器应用进程调用,用于通知客户机应用进程连接因超时而失效将被断开,此服务不需要客户机做任何响应。用原语 RELEASE.notification 表示,其服务语义及其参数说明如下:

  • 应用连接建立时间:建立应用链接时的终端时间
  • 服务器当前时间:发出连接断开的终端时间

读取

GET.request 服务

本服务由客户机应用进程调用,用于向远方服务器的应用进程请求服务器的若干个接口类对象的所有属性值。用原语 GET.request 表示,其服务语义和参数说明如下:

服务原语:

GET.request
(
 请求类型,
 对象属性描述符,
 {对象属性描述符, }
 数据块序号
)

参数说明:

  • 请求类型:用于区分不同的读取请求,为以下几种类型

    1. 读取一个对象属性
    2. 读取若干个对象属性
    3. 读取一个记录型对象属性
    4. 读取若干个记录型对象属性
    5. 读取分帧响应的下一个数据块,仅在被请求的数据响应不能在一个 GET.response APDU 中传输时才使用
  • 对象属性描述符

    • 仅当“请求类型”为 仅当“请求类型”为第 1 种至第 4 种时才出现
    • 用于表明要读取的对象属性,分为一般型和记录型两种
  • 数据块序号

    • 用于表明正确接收到的最近一次数据块序号,仅当“请求类型” 为第 5 种是才出现

GET.indication 服务

本服务由服务器应用层调用,用于向服务器应用进程指示接收到远方客户机 GET.request 服务请求。用原语 GET.indication 表示,服务参数同 GET.request。

GET.response 服务

本服务由服务器应用进程调用,用于对应 GET.indication 向客户机应用进程返回请求结果。用原语 GET.response 表示,其服务语义和参数说明如下:

服务原语:

GET.GET.GET.GET. response (响应类型,读取结果,{读取结果,}数据块序号)

参数说明:

  • 响应类型:用于表明响应是否包含对应 GET.request 服务调用的响应,或只包含服务调用的部分响应,对应请求类型,响应类型分为以下几种类型

    1. 读取一个对象属性的响应
    2. 读取若干个对象属性的响应
    3. 读取一个记录型对象属性的响应
    4. 读取若干个记录型对象属性的响应
    5. 分帧响应一个数据块,分帧方式按请求对象属性分成能自解释的若干独立响应,且这一类根据 GET.request 请求类型还分为一般、记录两种对象属性。
  • 读取结果

    • 用于表明读取请求的响应结果,包括对象属性描述符及其数值
    • 对象属性为一般型、记录型两种
    • 如“读取结果”的编码形式不适合在一个 APDU 中传输,则它应采用分帧响应,即“响应类型”为第 5 种
  • 数据块序号

    • 用于表明本 APDU 中数据块的序号
    • 仅在“响应类型”为第 5 种时出现

GET.confirm 服务

本服务由客户机应用层调用,用于向客户机应用进程指示接收到服务器 GET.response APDU。用原语 GET.confirm 表示,服务参数同 GET.response。

设置

SET.request 服务

本服务由客户机应用进程调用,用于向远方服务器的应用进程设置服务器的若干个接口类对象的一个或所有的属性值。用原语 SET.request 表示,其服务语义和参数说明如下:

服务原语:

SET.request (请求类型,对象属性描述符及其数值,{对象属性描述符及其数值, }对象属性描述符,{对象属性描述符, })

参数说明:

  • 请求类型:用于区分不同的设置请求,分为以下几种类型

    1. 设置一个对象属性请求
    2. 设置若干个对象属性请求
    3. 设置后读取若干个对象属性请求
  • 对象属性描述符及其数值:用于表明要设置的对象属性及其数值

  • 对象属性描述符:仅当“请求类型”为第 3 种时才出现,用于表明在设置后要读取的对象属性,对象属性仅为一般型

SET.indication 服务

本服务由服务器应用层调用,用于向服务器应用进程指示接收到远方客户机 SET.request 服务请求。用原语 SET.indication 表示,服务参数同SET.request。

SET.response 服务

本服务由服务器应用进程调用,用于对应 SET.indication 向客户机应用进程返回请求结果。用原语SET.response表示,其服务语义和参数说明如下:

服务原语:

SET.response(响应类型,设置结果,{设置结果, }读取结果,{读取结 果, })

参数说明:

  • 响应类型:用于表明响应所对的 SET.request 服务的请求类型,对应请求类型,响应类型分为以下几种

    1. 设置一个对象属性的确认信息
    2. 设置若干个对象属性的确认信息
    3. 设置若干个对象属性的确认信息以及读取若干个对象属性的响应
  • 设置结果:用于表明设置的执行结果,包括对象属性描述符及其结果

  • 读取结果:仅在“响应类型”为第 3 种时出现,用于表明设置后读取属性的响应结果,包括设置后读取的对象属性描述符及其数据,对象属性仅为一般型

SET.confirm 服务

本服务由客户机应用层调用,用于向客户机应用进程指示接收到服务器 SET.response APDU。用原语 SET.confirm 表示,服务参数同 SET.response。

操作

ACTION.request 服务

本服务由客户机应用进程调用,用于调用远方服务器应用进程中的若干个接口类对象的若干个方法。用原语 ACTION.request 表示,其服务语义和参数说明如下:

服务原语:

ACTION.request(请求类型,对象方法描述符及参数,{对象方法描述符及参数, }对象属性描述符,{对象属性描述符, })

参数说明:

  • 请求类型:用于区分不同的操作请求,为以下几种类型

    1. 操作一个对象方法请求
    2. 操作若干个对象方法请求
    3. 操作若干个对象方法后读取若干个对象属性请求
  • 对象方法描述符:用于表明要操作的对象方法

  • 对象属性描述符:仅当“请求类型”为第 3 种时才出现,用于表明操作执行后要读取的对象属性,对象属性仅为一般型

ACTION.indication 服务

本服务由服务器应用层调用,用于向服务器应用进程指示接收到远方客户机 ACTION.request 服务请求。用原语 ACTION.indication 表示,服务参数同 ACTION.request。

ACTION.response 服务

本服务由服务器应用进程调用,用于对应 ACTION.indication 向客户机应用进程返回请求结果。用原语 ACTION.response表示,其服务语义和参数说明如下:

服务原语:

ACTION.response (响应类型,操作结果,{操作结果, }读取结果,{读取结果, })

参数说明:

  • 响应类型:用于表明响应所对应的 ACTION.request 服务的请求类型,对应请求类型,响应类型分为以下几种类型

    1. 操作一个对象方法响应
    2. 操作若干个对象方法响应
    3. 操作若干个对象方法后读取若干个对象属性的响应
  • 操作结果:用于表明调对象方法的执行结果,包括对象方法描述符及其结果

  • 读取结果:仅在“响应类型”为第 3 种时出现,用于表明操作执行后要读取的对象属性的响应结果,包括对象属性描述符及其数据,对象属性仅为一般型

ACTION.confirm 服务

本服务由客户机应用层调用,用于向客户机应用进程指示接收到服务器 ACTION.response APDU。用原语 ACTION.confirm 表示,服务参数同 ACTION.response。

上报

REPORT.notification 服务

本服务由服务器应用进程调用,用于向远方客户机应用进程上报信息,该信息是由客户机通过注册方式预定的。用原语 REPORT.notification 表示,其服务语义和参数说明如下:

服务原语:

REPORT.notificationR(通知类型,对象属性描述符及其数值,{对象属性描述符及其数值, })

参数说明:

  • 通知类型:用于区分不同的上报通知,为以下几种类型

    • 上报若干个对象属性
    • 上报若干个记录型对象属性
  • 对象属性描述符及其数值:用于表明上报的信息

REPORT.indication 服务

本服务由客户机应用层调用,用于向客户机应用进程指示接收到远方服务器 REPORT.notification 服务通知。用原语 REPORT.indication 表示,服务参数同 REPORT.notification。

REPORT.response 服务

本服务由客户机应用进程调用,用于对应 REPORT.indication 向服务器应用进程返回确认结果。用原语 REPORT.response 表示,其服务语义和参数说明如下:

服务原语:

REPORT.response(响应类型,确认结果,{确认结果, })

参数说明:

  • 响应类型:用于表明响应所对的 REPORT.indication 服务的通知类型,对应通知类型,响应类型分为以下几种

    • 上报若干个对象属性的响应
    • 上报若干个记录型对象属性的响应
  • 确认结果:用于表明上报的确认结果,为被确认的对象属性描述符,对象属性为一般型和记录型 2 种

REPORT.confirm 服务

本服务由服务器应用层调用,用于向服务器应用进程指示接收到客户机 REPORT.response APDU。用原语 REPORT.confirm表示,服务参数同REPORT.response。

代理

PROXY.request 服务

本服务由客户机应用进程调用,用于向远方服务器(代理服务器)的应用进程提出代理请求。用原语 PROXY.request 表示,其服务语义和参数说明如下:

服务原语:

PROXY.request(请求类型,目标服务器地址 /端口,{目标服务器地址, }对象属性描述符,{对象属性描述符, }对象属性描述符及其数值,{对象属性描述符及其数值, }对象方法描述符,{对象方法描述符, }代理相关参数,{代理相关参数, }{透明命令,})

参数说明:

  • 请求类型:用于区分不同的代理请求,为以下几种类型

    1. 代理读取若干个服务器的若干个对象属性
    2. 代理读取一个服务器的记录型对象属性
    3. 代理设置若干个服务器的若干个对象属性
    4. 代理设置后读取若干个服务器的若干个对象属性
    5. 代理操作若干个服务器的若干个对象方法
    6. 代理操作后读取若干个服务器的若干个对象方法和属性
    7. 代理透明转发命令
  • 目标服务器地址:用于表明代理的目标服务器地址,如 PROXY.request 的目标服务器地址采用了通配地址,响应时要分解为确定的服务器单地址,即 PROXY.response 的目标服务器地址皆为单地址

  • 对象属性描述符:用于表明要代理读取的对象属性

    • 当“请求类型”为 1、4、6 时,对象属性仅为一般型
    • 当“请求类型”为 2 时,对象属性为记录型
  • 对象属性描述符及其数值:用于表明要代理设置的对象属性,仅当“请求类型” 为3、4 时才出现,对象属性仅为一般型

  • 对象方法描述符:用于表明要代理操作的对象方法,仅当“请求类型”为5、6 时才出现

  • 代理相关参数:与代理请求相关的所需参数

PROXY.indication 服务

本服务由服务器应用层调用,用于向服务器应用进程指示接收到远方客户机 PROXY.request 服务请求。用原语 PROXY.indication 表示,服务参数同 PROXY.request。

PROXY.response 服务

本服务由服务器应用进程调用,用于对应 PROXY.indication 向客户机应用进程返回代理请求的代理执行结果。用原语 PROXY.response 表示,其服务语义和参数说明如下:

服务原语:

PROXY.response (响应类型,目标服务器地址/端口 ,{目标服务器地址, }读取结果,{读取结果, }设置结果,{设置结果 ,}操作结果,{操作结果, })

参数说明:

  • 响应类型:用于表明响应所对的 PROXY.request 服务的请求类型,对应请求类型,响应类型分为以下几种类型

    • 1 代理读取若干个服务器的若干个对象属性的响应
    • 2 代理读取一个服务器的一个记录型对象属性的响应
    • 3 代理设置若干个服务器的若干个对象属性的确认
    • 4 代理设置后读取若干个服务器的若干个对象属性的确认和响应
    • 5 代理操作若干个服务器的若干个对象方法的确认
    • 6 代理操作后读取若干个服务器的若干个对象方法和属性的确认和响应
    • 7 代理透明转发命令的响应
  • 目标服务器地址:用于表明代理的目标服务器地址

  • 读取结果:当“响应类型”为 1、2、4、6 时才出现,用于表明代理读取请求的响应结果,包括对象属性描述符及其数值,对象属性对应请求类型为一般型或记录型 2 种

  • 设置结果:仅当“响应类型”为 3、4 时才出现,用于表明代理设置的执行结果,包括设置的对象属性描述符及其结果,对象属性仅为一般型

  • 操作结果:仅在“响应类型”为 5、6 时出现,用于表明代理操作对象方法的执行结果,包括对象方法描述符及其操作结果

PROXY.confirm 服务

本服务由客户机应用层调用,用于向客户机应用进程指示接收到服务器 PROXY.response APDU。用原语 PROXY.confirm 表示,服务参数同 PROXY.response。

应用层协议规范

建立/断开应用连接的协议

建立应用连接

建立应用连接是本标准的关键组件,建立应用连接借助于 CONNECT.request /.indication/.response /.confirm 服务。

客户机应用进程应首先调用 CONNECT.request 请求服务,调用该服务前,本标准所需的预链接已经建立。基于预链接的低层连接,客户机应构造一个 CONNECT-Request APDU。该 CONNECT-Request APDU 是发送给服务器应用层的第一个报文。

服务器应用层从接收到的 CONNECT-Request APDU 中提取出来的适当参数调用 CONNECT.indication 服务原语向服务器应用进程发出指示。

服务器应用进程分析接收到的 CONNECT.indication 原语,并且决定是否接受提出的应用连接请求,通过核实之后,服务器应用进程应调用 CONNECT.response 服务原语,表明接受或不接受提出的连接请求。

如果成功的话,服务器应构造相应的 CONNECT-Response APDU,并通过现有的预链接通道发送给远方客户机应用层。从这一时刻起,服务器能够在该连接内接收数据通信服务请求,发送相应的响应。至此,应用连接建立完毕,服务器进入数据通信阶段。

如果服务器不能接受连接请求,服务器应用层应构造 CONNECT-Response APDU,其中包含拒绝连接的状态以及原因,发送至远方客户机应用层。

在客户机侧,提取接收到的 CONNECT-Response APDU 中的参数,并通过 CONNECT.confirm 服务原语发送给客户机应用进程,如连接请求被接受,从这时刻起,在协商应用的语境中,应用连接建立完成。

建立应用连接时序图
建立应用连接时序图

断开应用连接

概述

现有应用连接能够被正常断开或超时被断开,正常断开由客户机应用进程启动,通知服务器侧,请求断开当前应用连接。

超时被断开意味着连接被异常终止,当应用层连续无通信时长超过语境约定的超时时间,应用连接将被断开,此服务只能由服务器应用进程启动。

正常断开应用连接

正常断开应用连接总是由客户机应用通过调用 RELEASE.request 的服务启动。根据协议生成一个 RELEASE-Request APDU,通过低层支持协议发送到服务器侧。

服务器应用层把接收到的 RELEASE-Request 解释为应用连接的断开请求,并且通过 RELEASE.indication 服务原语向服务器应用进程指示该请求。

服务器应用进程应接受断开请求并调用 RELEASE.response 服务(通常,服务器不能拒绝客户机的断开连接请求)。

请求断开应用连接的时序图
请求断开应用连接的时序图
通信超时导致应用连接被断开

本标准约定了一种情景,当应用连接建立后(不包括预建立时建立的应用连接),如果连续无数据传输服务时长(不包括预链接管理服务)达到会话语境约定的超时时间后(造成通信超时的原因涵盖包括物理层故障在内的任何原因),服务器应用进程将调用 RELEASE.notification 服务,通知客户机此连接将被断开,客户机不需要做任何响应。

超时断开应用连接的时序图
超时断开应用连接的时序图

请求/响应数据交换的协议

短帧的数据交换

短帧,在此特指完整的一帧 APDU 长度不超过会话语境约定的发送或接收数据长度;长帧,在此特指一帧 APDU 长度超过会话语境约定的发送或接收数据长度,需要采取分帧传输。

  • 读取(.request/.indication/.response/.confirm)
  • 设置(.request/.indication/.response/.confirm)
  • 操作(.request/.indication/.response/.confirm)
  • 代理(.request/.indication/.response/.confirm)

读取和设置服务用于引用接口对象实例的属性,操作服务用于引用接口对象的一个方法,代理服务用于引用远方服务器的对象属性或方法。上述服务,在采用短帧数据交换时,具有相同的时序,在此一并描述。

服务器的应用进程一旦接收到数据通信服务指示,应检查该服务能否被提供(检查合法性、可行性等),如果一切都正确,服务器应用进程应在本地使用相应的具体对象提供所请求的服务。服务器应用层应生成一个适当的 .response 报文,包含 .request 的执行结果,发送到客户机侧,一个交互流程完成。

短帧的数据交换时序图
短帧的数据交换时序图

长帧的数据交换

长帧传输的读取服务

读取服务的分帧传输规范仅适用于 GET.response 服务原语中的数据。

在 GET.response 服务中多重属性引用时,其服务参数编码形式的长度不能超过发送帧最大尺寸。如果 GET.response 服务参数编码长度超过最大尺寸时,请使用分帧服务进行传输。

服务器一旦接收到一个 GET.request,服务器应用进程就应组装所请求的数据,如果这些数据能够放在一个 APDU 中,服务器应用进程应调用对应短帧类型的 Get.response 服务,其结果参数包含所请求属性的值。

如果数据长度超过发送帧最大尺寸,则应使用分帧传输,分帧传输有两种可选模式,一种单帧可自解析模式,一种为不可自解析模式,不可自解析传输模式必须所有数据片段接收完毕后,才能正确解析相应的数据。单帧可自解析的分帧方式,每一帧中必须包含完整的属性数据单元。

仅 GET.response 服务支持单帧可自解析模式,此章节时序图描述的为单帧自解析模式的时序,数据块传输模式,见「分帧规则」章节。

单帧可自解析分帧传输时序图
单帧可自解析分帧传输时序图

分帧响应 GetResponseNext 的 APDU 数据域,有两个关键的数据字段,分帧序号(block)、末帧标记(lastblock)。

  • 分帧的第一帧数据,block(long-unsigned)=0,lastblock(BOOLEAN)= False
  • 分帧的最后一帧,block=N(N 为实际包序号),lastblock=True,分帧传输完毕

注:Boolean ['bʊlɪən] 布尔值

客户机一旦接收到该 GetResponseNext,客户机应用进程知道所请求的响应数据已经超过接收帧最大尺寸,并准备处理后续帧传输,它应保存所接收的 APDU 的数据内容,并调用 GetRequestNext 服务对所接收到的数据块进行确认。

服务器在接收到该确认报文后应准备并传输下一个数据块,此数据块包含分帧序号 block=1,这样数据块的交换和确认应正常继续下去,直到发送完最后一个数据块,此时 response 的 lastblock (BOOLEAN) 参数应置为 True,并且客户机不对该数据块进行确认,在接收到最后一个数据块后,GET 服务的分帧传输过程完成。

如果分帧传输期间发生以下差错,传输过程将终止。差错情况如下:

服务器出于任何原因不能提供下一个数据块。这种情况下,服务器应发送一个 GetResponseNext 的 APDU,将 lastblock 参数置为 True,block 置为客户机所期望的值(接收到的 block+1),数据域 Result 参数包含一个 DAR 参数,用来指明差错原因。

服务器接收到 GetRequestNext 类型的 GET.indication,block 参数的值与服务器上一次发送的 block 参数值不相等。服务器对这种情况的解释为客户机期望终止正在进行的传输,服务器不再发送下一个数据块给客户机,而是返送一个 GetResponseNext APDU,将 lastblock 参数置为 True,block 为接收到的 block 参数值,数据域参数为 DAR=分帧传输已取消。

服务器在没有进行分帧传输时接收到 GetRequestNext 类型的 GET.indication。在这种情况下,使用 GetResponseNext APDU 进行响应。将 lastblock 参数置为 True,block 为接收到的 block 参数值,数据域参数为 DAR=不处于分帧传输状态。

在分帧传输期间,所有 APDU 中的 Invoke-Id 和 Priority 参数的值相同。如果在分帧传输期间,接收到其它服务请求,则按照优先级原则进行服务。

长帧传输的其它服务

本标准仅 GET.response 服务支持单帧可自解析模式,其他类型服务,数据域长度超过发送帧最大尺寸,需要采用分帧传输时,应使用分帧服务进行,分帧服务传输时序参见「分帧规则」章节。

上报/确认数据交换的协议

上报/确认类服务,在本标准用于服务器主动发起,传送事件或者其它定时任务数据到客户机,在 REPORT.request 服务中,其服务参数编码形式的长度不能超过发送帧最大尺寸。如果数据长度超出,请使用分帧服务进行传送。

客户在收到 REPORT.indication 指示时, 应使用 REPORT.response 进行确认, 在服务器收到 REPORT.confirm 时,方可认为主动上报发送成功,如果在约定的超时时间内,未收到确认,将再次发起 REPORT.request,APDU 中的 Invoke-Id 和 Priority 参数的值保持不变,在达到约定的最多重复次数后,如仍未收到确认帧,则放弃该 APDU 的主动上报。

上报/确认类服务,可以在服务器侧任意通信端口发起(包括本地端口以及远程端口,根据配置决定),确认状态与上报的通信端口相关。只有在端口预链接正确建立的前提下,服务器方可发起主动上报。

REPORT 服务时序图
REPORT 服务时序图

应用层数据单元规范

概述

应用协议数据单元(APDU)的标记规则遵循 ASN.1的抽象语法,详 见GB/T 16262.1-2006。

通用数据类型

接口类及对象实例使用的数据类型见下表。

类型描述 标记 定义 数值范围
NULL 0
array 1 SEQUENCE OF Data 数组的元素在对象属性或方法的描述中定义
Structure 2 SEQUENCE OF Data 结构的元素在对象属性或方法的描述中定义
bool 3 布尔值(BOOLEAN) 1 或 0
bit-string 4 比特位串(BIT STRING)
double-long 5 32 比特位整数(Integer32) -231…231-1
double-long-unsigned 6 32 比特位正整数(double-long-unsigned) 0…231-1
保留 7-8
octet-string 9 8 比特位位组(字节)串(OCTET STRING)
visible-string 10 ASCII 字符串(VisibleString)
保留 11
UTF8-string 12 UTF-8 编码的字符串
保留 13-14
integer 15 8 比特位整数(integer) -128…127
long 16 16 比特位整数(long) -32768…32767
unsigned 17 8 比特位正整数(Unsigned8) 0…255
long-unsigned 18 16 比特位正整数(Unsigned16) 0…65535
保留 19
long64 20 64 比特位整数(Integer64) -263…263-1
long64-unsigned 21 64 比特位正整数(Unsigned64) 0…264-1
enum 22 枚举的元素在对象属性或方法的描述中定义 0…255
float32 23 octet-string(SIZE(4))
float64 24 octet-string(SIZE(8))
date_time 25 octet-string(SIZE(10))
date 26 octet-string(SIZE(5))
time 27 octet-string(SIZE(3))
date_time_s 28 octet-string(SIZE(7))
保留 29-79
OI 80
OAD 81
ROAD 82
OMD 83
TI 84
TSA 85
MAC 86
RN 87
Region 88
Scaler_Unit 89
RSD 90
CSD 91
MS 92
SID 93
SID_MAC 94
COMDCB 95
RCSD 96
保留 97-255

注 1:octet [ɒk'tet] 八位字节

注 2:enum ['enəm] 枚举

注 3:字符串(String),是由零个或多个字符组成的有限序列。它是编程语言中表示文本的数据类型。

数据类型定义

Data 数据类型

标记数据(Data)的数据类型定义见下表。

Data∷=CHOICE
{
NULL [0],
array [1],
structure [2],
bool [3],
bit-string [4],
double-long [5],
double-long-unsigned [6],
octet-string [9],
visible-string [10],
UTF8-string [12],
integer [15],
long [16],
unsigned [17],
long-unsigned [18],
long64 [20],
long64-unsigned [21],
enum [22],
float32 [23],
float64 [24],
date_time [25],
date [26],
time [27],
date_time_s [28],
OI [80],
OAD [81],
ROAD [82],
OMD [83],
TI [84],
TSA [85],
MAC [86],
RN [87],
Region [88],
Scaler_Unit [89],
RSD [90],
CSD [91],
MS [92],
SID [93],
SID_MAC [94],
COMDCB [95],
RCSD [96]
}

浮点数据类型

浮点数据类型包括 float32 以及 float64,格式定义见 GB/T17966-2000。

PIID 数据类型

APDU 序号及优先标志 PIID(Priority and Invoke ID)的数据类型定义如下。

数据类型定义:

PIID∷=unsigned

说明:

PIID 是用于客户机 APDU(Client-APDU)的各服务数据类型中,基本定义如下,更具体应用约定应根据实际系统要求而定。

  • bit7(服务优先级)
    • 0:一般的
    • 1:高级的
    • 在 .response APDU 中,其值与对应 .request APDU 中的相等
  • bit0…bit5(服务序号)
    • 二进制编码表示 0…63
    • 在 .response APDU 中,其值与对应 .request APDU 中的相等

PIID-ACD数据类型

带 ACD 标志位的 APDU 序号及优先标志 PIID-ACD(Priority and Invoke ID with ACD)数据类型定义见下。

注:ACD:Ask Call Demand,请求访问标志

数据类型定义:

PIID-ACD∷=unsigned

说明:

PIID-ACD 是用于服务器 APDU(Server-APDU)的各服务数据类型中,基本定义如下,更具体应用约定应根据实际系统要求而定。

  • bit7(服务优先级)
    • 见 PIID 数据类型的说明
  • bit6(请求访问 ACD)
    • 0:不请求
    • 1:请求
  • bit0…bit5(服务序号)
    • 见 PIID 数据类型的说明

OAD 数据类型

对象属性描述符 OAD(Object Attribute Descriptor)的数据类型定义见下:

数据类型定义:

OAD∷=SEQUENCE
{
对象标识 OI,
属性标识及其特征 unsigned,
属性内元素索引 unsigned(1…255)
}

说明:

  • OI:见「对象标识」章节

  • 对象属性标识及其特征:用 bit0…bit7 表示八位位组的最低位到最高位,其中:

    • bit0…bit4 编码表示对象属性编号,取值 0…31,其中 0 表示整个对象属性,即对象的所有属性
    • bit5…bit7 编码表示属性特征,属性特征是对象同一个属性在不同快照环境下取值模式,取值 0…7,特征含义在具体类属性中描述
  • 属性内元素索引

    • 00H 表示整个属性全部内容
    • 如果属性是一个结构或数组,01H 指向对象属性的第一个元素
    • 如果属性是一个记录型的存储区,非零值 n 表示最近第 n 次的记录

ROAD 数据类型

记录型对象属性描述符 ROAD(Record Object Attribute Descriptor)的数据类型定义见下:

数据类型定义:

ROAD∷=SEQUENCE
{
 对象属性描述符 OAD,
 关联对象属性描述符 SEQUENCE OF OAD
}

说明:

  • ROAD:用于描述记录型对象中的一个或若干个关联对象属性

RSD 数据类型

记录选择描述符 RSD(Record Selection Descriptor)的数据类型定义见下:

RSD∷=CHOICE
{
 不选择 [0] NULL,
 选择方法 1 [1] Selector1,
 选择方法 2 [2] Selector2,
 选择方法 3 [3] Selector3,
 选择方法 4 [4] Selector4,
 选择方法 5 [5] Selector5,
 选择方法 6 [6] Selector6,
 选择方法 7 [7] Selector7,
 选择方法 8 [8] Selector8,
 选择方法 9 [9] Selector9,
 选择方法 10 [10] Selector10,
}

RSD 用于选择记录型对象属性的各条记录,即二维记录表的行选择,其通过对构成记录的某些对象属性数值进行指定来进行选择,范围选择区间:前闭后开,即[起始值,结束值)。

例如:事件类对象的事件记录表属性、冻结类对象的冻结数据记录表属性、采集监控类的采集数据记录表。
应用提示:

  • 对于事件记录,通常使用事件发生时间进行选择
  • 对于冻结数据记录,通常使用冻结时间进行选择

Selector1∷=SEQUENCE
{
 对象属性描述符 OAD,
 数值 Data
}

Selector1 为指定对象指定值。


Selector2∷=SEQUENCE
{
 对象属性描述符 OAD,
 起始值 Data,
 结束值 Data,
 数据间隔 Data
}

Selector2 为指定对象区间内连续间隔值。

  • 数据间隔:是和 OAD 相关的类型

    • =NULL 表示无间隔(即:指定区间内全部)
  • 当对象属性描述符的数值类型为 DateTime 或 DateTime_S 类型时,其间隔的数据类型为 TI

  • 其他场景下通常间隔数据类型与数值类型相同


Selector3∷=SEQUENCE OF Selector2

Selector3 为组合筛选,即若干个指定对象连续值。


Selector4∷=SEQUENCE
{
 采集启动时间 date_time_s,
 电能表集合 MS
}

Selector4 为指定电能表集合、指定采集启动时间。


Selector5∷=SEQUENCE
{
 采集存储时间 date_time_s,
 电能表集合 MS
}

Selector5 为指定电能表集合、指定采集存储时间。


Selector6∷=SEQUENCE
{
 采集启动时间起始值 date_time_s,
 采集启动时间结束值 date_time_s,
 时间间隔 TI,
 电能表集合 MS
}

Selector6 为指定电能表集合、指定采集启动时间区间内连续间隔值。


Selector7∷=SEQUENCE
{
 采集存储时间起始值 date_time_s,
 采集存储时间结束值 date_time_s,
 时间间隔 TI,
 电能表集合 MS
}

Selector7 为指定电能表集合、指定采集存储时间区间内连续间隔值。


Selector8∷=SEQUENCE
{
 采集成功时间起始值 date_time_s,
 采集成功时间结束值 date_time_s,
 时间间隔 TI,
 电能表集合 MS
}

Selector8 为指定电能表集合、指定采集到时间区间内连续间隔值。


Selector9∷=SEQUENCE
{
 上第 n 次记录 unsigned
}

Selector9 为指定选取上第 n 次记录。


Selector10∷=SEQUENCE
{
 上 n 条记录 unsigned,
 电能表集合 MS
}

Select10 为指定选取最新的 n 条记录。

RCSD 数据类型

记录列选择描述符 RCSD(Record Column Selection Descriptor)的数据类型定义见下:

RCSD∷=SEQUENCE OF CSD

RCSD 用于选择记录型对象属性中记录的某列或某几列内容, 即二维记录表的列选择,例如:事件记录或冻结数据记录中的某关联对象属性数据列。

当无一个 OAD 时,RCSD=0,即 SEQUENCE OF 的数据项个数为 0,表示“不选择(即全选)”。

注:OAD,对象属性描述符 (Object Attribute Descriptor)

CSD 数据类型

列选择描述符 CSD(Column Selection Descriptor)的数据类型定义见下:

CSD∷=CHOICE
{
 对象属性描述符 [0] OAD,
 记录型对象属性描述符 [1] ROAD
}

CSD 用于描述记录型对象中记录的列关联对象属性。

MS 数据类型

电能表集合 MS(Meter Set)的数据类型定义见下:

MS∷=CHOICE
{
无电能表 [0],
全部用户地址 [1],
一组用户类型 [2] SEQUENCE OF unsigned,
一组用户地址 [3] SEQUENCE OF TSA,
一组配置序号 [4] SEQUENCE OF long-unsigned,
一组用户类型区间 [5] SEQUENCE OF Region,
一组用户地址区间 [6] SEQUENCE OF Region,
一组配置序号区间 [7] SEQUENCE OF Region
}

  • 无电能表——相当于无效配置。
  • 全部用户地址——全部可采集的电能表。
  • 一组用户类型——指定的若干用户类型的那些电能表。
  • 一组用户地址——指定的若干电能表通信地址的那些电能表。
  • 一组配置序号——指定的若干电能表配置序号的那些电能表。
  • 一组用户类型区间——按数组形式给出用户类型范围。
  • 一组用户地址区间——按数组形式给出电能表通信地址范围。
  • 一组配置序号区间——按数组形式给出电能表档案配置序号范围。

DAR 数据类型

数据访问结果 DAR(Data Access Result)的数据类型定义见下:

DAR∷=ENUMERATED
{
 成功 (0),
 硬件失效 (1),
 暂时失效 (2),
 拒绝读写 (3),
 对象未定义 (4),
 对象接口类不符合 (5),
 对象不存在 (6),
 类型不匹配 (7),
 越界 (8),
 数据块不可用 (9),
 分帧传输已取消 (10),
 不处于分帧传输状态 (11),
 块写取消 (12),
 不存在块写状态 (13),
 数据块序号无效 (14),
 密码错/未授权 (15),
 通信速率不能更改 (16),
 年时区数超 (17),
 日时段数超 (18),
 费率数超 (19),
 安全认证不匹配 (20),
 重复充值 (21),
 ESAM 验证失败 (22),
 安全认证失败 (23),
 客户编号不匹配 (24),
 充值次数错误 (25),
 购电超囤积 (26),
 地址异常 (27),
 对称解密错误 (28),
 非对称解密错误 (29),
 签名错误 (30),
 电能表挂起 (31),
 时间标签无效 (32),
 请求超时 (33),
 ESAM 的 P1P2 不正确 (34),
 ESAM 的 LC 错误 (35),
 其它 (255)
}

DAR 采用枚举方式来描述数据访问的各种可能结果。

OMD 数据类型

对象方法描述符 OMD(Object Method Descriptor)的数据类型定义见下。

OMD∷=SEQUENCE
{
 对象标识 OI,
 方法标识 unsigned(1…255),
 操作模式 unsigned(0)
}

  • OMD 用于描对象的方法
  • 方法标识——即对象方法编号
  • 操作模式——值默认为 0

TSA 数据类型

目标服务器地址 TSA(Target Server Address)的数据类型定义见下。

TSA∷=octet-string(SIZE(2„17))

Scaler_Unit 数据类型

换算及单位 Scaler_Unit 数据类型定义见下。

Scaler_Unit∷=SEQUENCE
{
 换算 integer,
 单位 ENUMERATED
}

  • 换算——倍数因子的指数,基数为 10;如数值不是数字的,则换算应被置 0。
  • 单位——枚举类型定义物理单位,详见附录 B。

MAC 数据类型

数据安全 MAC 的数据类型定义见下。

MAC∷=octet-string

SID 安全标识类型

安全标识 SID 的数据类型定义见下。

SID∷=SEQUENCE
{
 标识 double-long-unsigned,
 附加数据 octet-string
}

ESAM 所属安全标识。

SID_MAC 标识类型

SID_MAC 的数据类型定义见下。

SID_MAC∷=SEQUENCE
{
 安全标识 SID,
 数据 MAC MAC
}

ESAM 所属安全标识以及消息鉴别码。

RN 数据类型

随机数 RN 的数据类型定义见下。

RN∷=octet-string

SAM 生成用于加密的信息串

ConnectMechanismInfo 数据类型

应用连接请求认证的机制信息 ConnectMechanismInfo 的数据类型定义见下。

ConnectMechanismInfo∷=CHOICE
{
 公共连接 [0] NullSecurity,
 一般密码 [1] PasswordSecurity,
 对称加密 [2] SymmetrySecurity,
 数字签名 [3] SignatureSecurity
}

建立应用连接的机制信息。

注:symmetry ['sɪmɪtrɪ] n. 对称


NullSecurity∷=NULL

密文 1 为对客户机产生的随机数加密得到的密文。


PasswordSecurity∷=visible-string
SymmetrySecurity∷=SEQUENCE
{
 密文 1 octet-string,
 客户机签名 1 octet-string
}
 SignatureSecurity∷=SEQUENCE
{
 密文 2 octet-string,
 客户机签名 2 octet-string
}

  • 密文 2 为客户机(主站)对服务器(终端)产生的主站证书等数据加密信息
  • 客户机签名 2 为客户机对密文 2 的签名

ConnectResult 数据类型

应用连接请求认证的结果 ConnectResult 的数据类型定义见下。

ConnectResult∷=ENUMERATED
{
 允许建立应用连接 (0),
 密码错误 (1),
 对称解密错误 (2),
 非对称解密错误 (3),
 签名错误 (4),
 协议版本不匹配 (5),
 其他错误 (255)
}

ConnectResult 采用枚举方式表示应用连接请求认证的结果。

ConnectResponseInfo 数据类型

应用连接请求的认证响应信息 ConnectResponseInfo 的数据类型定义见下。

ConnectResponseInfo∷=SEQUENCE
{
 认证结果 ConnectResult,
 认证附加信息 SecurityData OPTIONAL
}

ConnectResponseInfo 用于表示应用连接请求的认证响应信息。

SecurityData∷=SEQUENCE
{
 服务器随机数 RN,
 服务器签名信息 octet-string
}

TI 数据类型

时间间隔 TI 数据类型定义见下。

TI∷=SEQUENCE
{
 单 位 ENUMERATED
 {
  秒 (0),
  分 (1),
  时 (2),
  日 (3),
  月 (4),
  年 (5)
 },
 间隔值 long-unsigned
}

TI 用于表示时间间隔的间隔值及其时间单位; 间隔值为 0 表示无间隔。

Region 区间类型

区间类型Region定义见下。

Region∷=SEQUENCE
{
 单 位 ENUMERATED
 {
  前闭后开 (0),
  前开后闭 (1),
  前闭后闭 (2),
  前开后开 (3)
  },
 起始值 Data,
 结束值 Data
}

Region 用于描述数据的区间范围,包括以下四种:

  • (起始值,结束值)
  • [起始值,结束值)
  • (起始值,结束值]
  • [起始值,结束值]

OI 数据类型

对象标识数据类型 OI 定义见下。

OI∷=long-unsigned

date_time 数据类型

日期时间数据类型 date_time 定义见下。

date_time∷=SEQUENCE
{
 year long-unsigned,
 month unsigned,
 day_of_month unsigned,
 day_of_week unsigned,
 hour unsigned,
 minute unsigned,
 second unsigned,
 milliseconds long-unsigned
}

  • 日期和时间的十六进制格式
  • year、milliseconds=FFFFH 表示无效
    • millisecond:['mɪlɪsek(ə)nd],毫秒
  • month、day_of_month、day_of_week、hour、minute、second=FFH 表示无效
  • day_of_week:0 表示周日,1…6 分别表示周一到周六

date_time_s 数据类型

日期时间数据类型 date_time_s 定义见下。

date_time_s∷=SEQUENCE
{
 year long-unsigned,
 month unsigned,
 day unsigned,
 hour unsigned,
 minute unsigned,
 second unsigned
}

  • 日期和时间的十六进制格式
  • year=FFFFH 表示无效
  • month、day、hour、minute、second=FFH 表示无效

date 数据类型

日期数据类型 date 定义见下。

date∷=SEQUENCE
{
 year long-unsigned,
 month unsigned,
 day_of_month unsigned,
 day_of_week unsigned
}

  • 日期的十六进制格式
  • year=FFFFH 表示无效
  • month、day_of_month、day_of_week=FFH 表示无效

time 数据类型

时间数据类型 time 定义见下。

time∷=SEQUENCE
{
 hour unsigned,
 minute unsigned,
 second unsigned
}

  • 时间的十六进制格式
  • hour、minute、second=FFH 表示无效

COMDCB 数据类型

串口控制块数据类型 COMDCB 定义见下。

COMDCB∷=SEQUENCE
{
 波特率 ENUMERATED
 {
 300bps(0),600bps(1),1200bps(2),
 2400bps(3), 4800bps(4),7200bps(5),
 9600bps(6), 19200bps(7),38400bps(8),
 57600bps(9), 115200bps(10), 自适应(255)
 },
 校验位 ENUMERATED {无校验(0),奇校验(1),偶校验(2)},
 数据位 ENUMERATED {5(5),6(6),7(7),8(8)},
 停止位 ENUMERATED {1(1),2(2)},
 流控 ENUMERATED {无(0),硬件(1),软件(2)}
}

应用层协议数据单元

预连接协议数据单元

预连接协议数据单元(LINK-APDU)定义见下。

LINK-APDU∷=CHOICE
{
 预连接请求 [1] LINK-Request,
 预连接响应 [129] LINK-Response
}

客户机应用层协议数据单元

客户机应用层协议数据单元(Client-APDU)定义见下。

Client-APDU∷=SEQUENCE
{
 应用层服务 CHOICE
 {
  建立应用连接请求  [2] CONNECT-Request,
  断开应用连接请求  [3] RELEASE-Request,
  读取请求      [5] GET-Request,
  设置请求      [6] SET-Request,
  操作请求      [7] ACTION-Request,
  上报应答      [8] REPORT-Response,
  代理请求      [9] PROXY-Request,
  异常响应      [110] ERROR-Response
 },
 时间标签 TimeTag OPTIONAL
}

服务器应用层协议数据单元

服务器应用层协议数据单元(Server-APDU)定义见下。

Server-APDU∷=SEQUENCE
{
 应用层服务 CHOICE
 {
  建立应用连接响应 [130] CONNECT-Response,
  断开应用连接响应 [131] RELEASE-Response,
  断开应用连接通知 [132] RELEASE-Notification,
  读取响应 [133] GET-Response,
  设置响应 [134] SET-Response,
  操作响应 [135] ACTION-Response,
  上报通知 [136] REPORT-Notification,
  代理响应 [137] PROXY-Response,
  异常响应 [238] ERROR-Response
 },
 跟随上报信息域 FollowReport OPTIONAL,
 时间标签 TimeTag OPTIONAL
}

安全传输协议数据单元

安全传输协议数据单元(SECURITY-APDU)定义见下。

SECURITY-APDU∷=CHOICE
{
 安全请求 [16] SECURITY-Request,
 安全响应 [144] SECURITY-Response
}

预连接

LINK-Request 数据类型

预连接请求的数据类型(LINK-Request)定义见下。

LINK-Request∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD
 请求类型 ENUMERATED
{
  登录 (0),
  心跳 (1),
  退出登录 (2)
},
 心跳周期 long-unsigned,
 请求时间 date_time
}

心跳周期——单位:秒。

LINK-Response 数据类型

预连接响应的数据类型(LINK-Response)定义见表下。

  • LINK-Response∷=SEQUENCE
    {
     服务序号-优先级 PIID,
     结果 Result,
     请求时间 date_time,
     收到时间 date_time,
     响应时间 date_time
    }
  • Result∷=bit-string(SIZE(8))
    {
     时钟可信标志 (0),
     保留 bit6 (1),
     保留 bit5 (2),
     保留 bit4 (3),
     保留 bit3 (4),
     结果 bit2 (5),
     结果 bit1 (6),
     结果 bit0 (7)
    }

  • 时钟可信标志——用于表示响应方的时钟是否可信(准确)

    • 0:不可信
    • 1:可信
  • 结果 bit0…结果 bit2——二进制编码表示

    • 0:成功
    • 1:地址重复
    • 2:非法设备
    • 3:容量不足
    • 其它值:保留

建立应用连接

密钥协商

在建立应用连接时进行密钥协商,产生会话密钥,用于计算数据验证码和链路用户数据的加密。

CONNECT-Request 数据类型

建立应用连接请求的数据类型(CONNECT-Request)定义见下。

Connect-Request∷=SEQUENCE
{
 服务序号-优先级 PIID,
 期望的应用层协议版本号 long-unsigned,
 期望的协议一致性块 ProtocolConformance,
 期望的功能一致性块 FunctionConformance,
 客户机发送帧最大尺寸 long-unsigned,
 客户机接收帧最大尺寸 long-unsigned,
 客户机接收帧最大窗口尺寸 unsigned,
 客户机最大可处理 APDU 尺寸 long-unsigned,
 期望的应用连接超时时间 double-long-unsigned,
 认证请求对象 ConnectMechanismInfo
}

  • ProtocolConformance——定义见附录 C
  • FunctionConformance——定义见附录 C
  • 客户机发送帧最大尺寸——单位:字节
  • 客户机接收帧最大尺寸——单位:字节
  • 客户机接收帧最大窗口尺寸——单位:个
  • 期望的应用连接超时时间——单位:秒

CONNECT-Response 数据类型

建立应用连接响应的数据类型(CONNECT-Response)定义见下。

Connect-Response∷=SEQUENCE
{
 服务序号-优先级 PIID,
 服务器厂商版本信息 FactoryVersion,
 期望的应用层协议版本号 long-unsigned,
 期望的协议一致性块 ProtocolConformance,
 期望的功能一致性块 FunctionConformance,
 客户机发送帧最大尺寸 long-unsigned,
 客户机接收帧最大尺寸 long-unsigned,
 客户机接收帧最大窗口尺寸 unsigned,
 客户机最大可处理 APDU 尺寸 long-unsigned,
 商定的应用连接超时时间 double-long-unsigned,
 连接响应对象 ConnectResponseInfo
}


FactoryVersion∷=SEQUENCE
{
 厂商代码 visible-string(SIZE (4)),
 软件版本号 visible-string(SIZE (4)),
 软件版本日期 visible-string(SIZE (6)),
 硬件版本号 visible-string(SIZE (4)),
 硬件版本日期 visible-string(SIZE (6)),
 厂家扩展信息 visible-string(SIZE (8))
}

断开应用连接

RELEASE-Request 数据类型

断开应用连接请求的数据类型(RELEASE-Request)定义见下。

RELEASE-Request∷=SEQUENCE
{
 服务序号-优先级 PIID
}

RELEASE-Response 数据类型

断开应用连接响应的数据类型(RELEASE-Response)定义见下。

RELEASE-Response∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 结果 ENUMERATED {成功(0)}
}

RELEASE-Notification 数据类型

断开应用连接通知的数据类型(RELEASE-Notification)定义见下。

RELEASE-Notification∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 应用连接建立时间 date_time_s,
 服务器当前时间 date_time_s
}

读取

GET-Request 数据类型

读取请求的数据类型(GET-Request)定义见下。

GET-Request∷=CHOICE
{
 读取一个对象属性请求 [1] GetRequestNormal,
 读取若干个对象属性请求 [2] GetRequestNormalList,
 读取一个记录型对象属性请求 [3] GetRequestRecord,
 读取若干个记录型对象属性请求 [4] GetRequestRecordList,
 读取分帧响应的下一个数据块请求 [5] GetRequestNext,
 读取一个对象属性的 MD5 值 [6] GetRequestMD5
}

GetRequestNormal 数据类型

读取一个对象属性请求的数据类型定义见下。

GetRequestNormal∷=SEQUENCE
{
 服务序号-优先级 PIID,
 一个对象属性描述符 OAD
}

GetRequestNormalList 数据类型

读取若干个对象属性请求的数据类型定义见下。

GetRequestNormalList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 若干个对象属性描述符 SEQUENCE OF OAD
}

GetRequestRecord 数据类型

读取一个记录型对象属性请求的数据类型定义见下。

GetRequestRecord∷=SEQUENCE
{
 服务序号-优先级 PIID,
 读取一个记录型对象属性 GetRecord
}

GetRecord∷=SEQUENCE
{
 对象属性描述符 OAD,
 记录选择描述符 RSD,
 记录列选择描述符 RCSD
}

GetRequestRecordList 数据类型

读取若干个记录型对象属性请求的数据类型定义见下。

GetRequestRecordList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 读取若干个记录型对象属性 SEQUENCE OF GetRecord
}

GetRequestNext 数据类型

读取分帧响应的下一个数据块请求的数据类型定义见下。

GetRequestNext∷=SEQUENCE
{
 服务序号-优先级 PIID,
 正确接收的最近一次数据块序号 long-unsigned
}

GetRequestMD5 数据类型

读取一个对象属性的 MD5 值,数据类型定义见下。

GetRequestMD5∷=SEQUENCE
{
 服务序号-优先级 PIID,
 一个对象属性描述符 OAD
}

GET-Response 数据类型

读取响应的数据类型(GET-Response)定义见下。

GET-Response∷=CHOICE
{
 读取一个对象属性的响应 [1] GetResponseNormal,
 读取若干个对象属性的响应 [2] GetResponseNormalList,
 读取一个记录型对象属性的响应 [3] GetResponseRecord,
 读取若干个记录型对象属性的响应 [4] GetResponseRecordList,
 分帧响应一个数据块 [5] GetResponseNext,
 读取一个对象属性的 MD5 值的响应 [6] GetResponseMD5
}

GetResponseNormal 数据类型

读取一个对象属性的响应的数据类型定义见下。

GetResponseNormal∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 一个对象属性及其结果 A-ResultNormal
}

A-ResultNormal∷=SEQUENCE
{
 对象属性描述符 OAD,
 及其结果 Get-Result
}

Get-Result∷=CHOICE
{
 错误信息 [0] DAR,
 数据 [1] Data
}

GetResponseNormalList 数据类型

读取若干个对象属性的响应的数据类型定义见下。

GetResponseNormalList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 若干个对象属性及其结果 SEQUENCE OF A-ResultNormal
}

GetResponseRecord 数据类型

读取一个记录型对象属性的响应的数据类型定义见下。

GetResponseRecord∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 一个记录型对象属性及其结果 A-ResultRecord
}


A-ResultRecord∷=SEQUENCE
{
 记录型对象属性描述符 ROAD,
 一行记录 N 列属性描述符 RCSD,
 响应数据 CHOICE
 {
  错误信息 [0] DAR,
  M 条记录 [1] SEQUENCE OF A-RecordRow
 }
}

一行记录 N 列属性描述符——即记录表的表头信息。


A-RecordRow∷=SEQUENCE
{
 第 1 列数据 Data,
 第 2 列数据 Data,
 …
 第 N 列数据 Data
}

第 1 列…第 N 列——其排列顺序与“一行记录 N 列属性描述符”的排列顺序一致。

GetResponseRecordList 数据类型

读取若干个记录型对象属性的响应的数据类型定义见下。

GetResponseRecordList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 若干个记录型对象属性及其结果 SEQUENCE OF A-ResultRecord
}

GetResponseNext 数据类型

分帧响应一个数据块的数据类型定义见下。

GetResponseNext∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 末帧标志 BOOLEAN,
 分帧序号 long-unsigned,
 分帧响应 CHOICE
 {
  错误信息 [0] DAR,
  对象属性 [1] SEQUENCE OF A-ResultNormal,
  记录型对象属性 [2] SEQUENCE OF A-ResultRecord
 }
}

GetResponseMD5 数据类型

响应读取对象属性MD5值,数据类型定义见下。

GetResponseMD5∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 对象属性描述符 OAD,
 结果 CHOICE
 {
  错误信息 [0] DAR,
  MD5 值 [1] octet-string
 }
}

MD5 值——使用编码后的对象属性值进行计算。

设置

SET-Request 数据类型

设置请求的数据类型(SET-Request)定义见下。

SET-Request∷=CHOICE
{
 设置一个对象属性请求 [1] SetRequestNormal,
 设置若干个对象属性请求 [2] SetRequestNormalList,
 设置后读取若干个对象属性请求 [3] SetThenGetRequestNormalList
}

SetRequestNormal 数据类型

设置一个对象属性请求的数据类型定义见下。

SetRequestNormal∷=SEQUENCE
{
 服务序号-优先级 PIID,
 一个对象属性描述符 OAD,
 数据 Data
}

SetRequestNormalList 数据类型

设置若干个对象属性请求的数据类型定义见下。

SetRequestNormalList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 若干个对象属性 SEQUENCE OF
 {
  一个对象属性描述符 OAD,
  数据 Data
 }
}

SetThenGetRequestNormalList 数据类型

设置后读取若干个对象属性请求的数据类型定义见下。

SetThenGetRequestNormalList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 若干个设置后读取对象属性 SEQUENCE OF
 {
  一个设置的对象属性 OAD,
  数据 Data,
  一个读取的对象属性 OAD,
  延时读取时间 unsigned
 }
}

延时读取时间——单位:秒,0 表示采用服务器默认的延时时间。

SET-Response 数据类型

设置响应的数据类型(SET-Response)定义见下。

SET-Response∷=CHOICE
{
 设置一个对象属性的确认信息响应 [1] SetResponseNormal,
 设置若干个对象属性的确认信息响应 [2] SetResponseNormalList,
 设置的确认信息以及读取的响应 [3] SetThenGetResponseNormalList
}

SetResponseNormal 数据类型

设置一个对象属性的确认信息响应的数据类型定义见下。

SetResponseNormal∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 一个对象属性描述符 OAD,
 设置执行结果 DAR
}

SetResponseNormalList 数据类型

设置若干个对象属性的确认信息响应的数据类型定义见下。

SetResponseNormalList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 若干个对象属性设置结果 SEQUENCE OF
 {
  一个对象属性描述符 OAD,
  设置执行结果 DAR
 }
}

SetThenGetResponseNormalList 数据类型

设置若干个对象属性的确认信息以及读取若干个对象属性的响应的数据类型定义见下。

SetThenGetResponseNormalList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 若干个对象属性设置后读取结果 SEQUENCE OF
 {
  一个设置的对象属性描述符 OAD,
  设置执行结果 DAR,
  一个对象属性及其结果 A-ResultNormal
 }
}

操作

ACTION-Request 数据类型

Action-Request 数据类型定义

操作请求的数据类型(ACTION-Request)定义见下。

ACTION-Request∷=CHOICE
{
 操作一个对象方法请求 [1] ActionRequest,
 操作若干个对象方法请求 [2] ActionRequestList,
 操作若干个对象方法后读取若干个对象属性请求 [3] ActionThenGetRequestNormalList
}

ActionRequest 数据类型

操作一个对象方法请求的数据类型定义见下。

ActionRequest∷=SEQUENCE
{
 服务序号-优先级 PIID,
 一个对象方法描述符 OMD,
 方法参数 Data
}

ActionRequestList 数据类型

操作若干个对象方法请求的数据类型定义见下。

ActionRequestList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 若干个对象属性 SEQUENCE OF
 {
  一个对象方法描述符 OMD,
  方法参数 Data
 }
}

ActionThenGetRequestNormalList 数据类型

操作若干个对象方法后读取若干个对象属性请求的数据类型定义下。

ActionThenGetRequestNormalList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 若干个操作对象方法后读取对象属性 SEQUENCE OF
 {
  一个设置的对象方法描述符 OMD,
  方法参数 Data,
  一个读取的对象属性描述符 OAD,
  读取延时 unsigned
 }
}

读取延时——单位:秒,0 表示取服务器默认的延时时间。

ACTION-Response 数据类型

Action-Response 数据类型定义

操作响应的数据类型(ACTION-Response)定义见下。

ACTION-Response∷=CHOICE
{
 操作一个对象方法的响应 [1] ActionResponseNormal,
 操作若干个对象方法的响应 [2] ActionResponseNormalList,
 操作若干个对象方法后读取若干个属性的响应 [3] ActionThenGetResponseNormalList
}

ActionResponseNormal 数据类型

操作一个对象方法的响应的数据类型定义见下。

ActionResponseNormal∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 一个对象方法描述符 OMD,
 操作执行结果 DAR,
 操作返回数据 Data OPTIONAL
}

ActionResponseNormalList 数据类型

操作若干个对象方法的响应的数据类型定义见下。

ActionResponseNormalList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 若干个对象方法操作结果 SEQUENCE OF
 {
  一个对象方法描述符 OMD,
  操作执行结果 DAR,
  操作返回数据 Data OPTIONAL
 }
}

ActionThenGetResponseNormalList 数据类型

操作若干个对象方法后读取若干个属性的响应的数据类型定义见下。

ActionThenGetResponseNormalList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 操作若干个对象方法后读取属性的结果 SEQUENCE OF
 {
  一个设置的对象方法描述符 OMD,
  操作执行结果 DAR,
  操作返回数据 Data OPTIONAL,
  一个对象属性及其结果 A-ResultNormal
 }
}

上报

REPORT-Notification 数据类型

REPORT-Notification 数据类型定义

上报通知的数据类型(REPORT-Notification)定义见下。

REPORT-Notification∷=CHOICE
{
 上报若干个对象属性 [1] ReportNotificationList,
 上报若干个记录型对象属性 [2] ReportNotificationRecordList,
 上报透明数据 [3] ReportNotificationTransData
}

ReportNotificationList 数据类型

上报若干个对象属性 ReportNotificationList 的数据类型定义见下。

ReportNotificationList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 若干个对象属性及其数据 SEQUENCE OF A-ResultNormal
}

ReportNotificationRecordList 数据类型

上报若干个记录型对象属性通知的数据类型定义见下。

ReportNotificationRecordList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 若干个记录型对象属性及其数据 SEQUENCE OF A-ResultRecord
}

ReportNotificationTransData 数据类型

上报透明数据通知的数据类型定义见下。

ReportNotificationTransData∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 数据来源端口号 OAD,
 透明数据 SEQUENCE OF octet-string
}

仅用于终端将来自其通信端口的上报数据上报到客户机。

EPORT-Response 数据类型

REPORT-Response 数据类型定义

上报响应的数据类型(REPORT-Response)定义见下。

REPORT-Response∷=CHOICE
{
 上报若干个对象属性的响应 [1] ReportResponseList,
 上报若干个记录型对象属性的响应 [2] ReportResponseRecordList,
 上报透明数据的响应 [3] ReportResponseTransData
}

ReportResponseList 数据类型

上报若干个对象属性的响应的数据类型定义见下。

ReportResponseList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 对应上报的若干个对象属性描述符 SEQUENCE OF OAD
}

对应上报的若干个对象属性描述符--为接收到的记录型对象属性数值的对象属性描述符,用于向服务器表明接收确认。

ReportResponseRecordList 数据类型

上报若干个记录型对象属性的响应的数据类型定义见下。

ReportResponseRecordList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 对应上报的若干个对象属性描述符 SEQUENCE OF OAD
}

对应上报的若干个对象属性描述符——为接收到的记录型对象属性数值的对象属性描述符,用于向服务器表明接收确认。

ReportResponseTransData 数据类型

上报透明数据的响应的数据类型定义见下。

ReportResponseTransData∷=SEQUENCE
{
 服务序号-优先级 PIID
}

对应上报透明数据,用于向服务器表明接收确认。

代理

PROXY-Request 数据类型

代理请求的数据类型(PROXY-Request)定义见下。

PROXY-Request∷=CHOICE
{
 代理读取若干个服务器的若干个对象属性请求 [1] ProxyGetRequestList,
 代理读取一个服务器的一个记录型对象属性请求 [2] ProxyGetRequestRecord,
 代理设置若干个服务器的若干个对象属性请求 [3] ProxySetRequestList,
 代理设置后读取若干个服务器的若干个对象属性请求 [4] ProxySetThenGetRequestList,
 代理操作若干个服务器的若干个对象方法请求 [5] ProxyActionRequestList,
 代理操作后读取若干个服务器的若干个对象方法和属性请求 [6] ProxyActionThenGetRequestList,
 代理透明转发命令请求 [7] ProxyTransCommandRequest
}

ProxyGetRequestList 数据类型

代理读取若干个服务器的若干个对象属性请求的数据类型定义见下。

ProxyGetRequestList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 整个代理请求的超时时间 long-unsigned,
 理若干个服务器的对象属性读取 SEQUENCE OF
 {
  一个目标服务器地址 TSA,
  代理一个服务器的超时时间 long-unsigned,
  若干个对象属性描述符 SEQUENCE OF OAD
 }
}

  • 代理一个服务器的超时时间——单位:秒,0 表示对于某个服务器的代理超时时间由服务器自行控制
  • 整个代理请求的超时时间——单位:秒,一般不能为 0
ProxyGetRequestRecord 数据类型

代理读取一个服务器的一个记录型对象属性请求的数据类型定义见下。

ProxyGetRequestRecord∷=SEQUENCE
{
 服务序号-优先级 PIID,
 代理请求的超时时间 long-unsigned,
 目标服务器地址 TSA,
 对象属性描述符 OAD,
 记录选择描述符 RSD,
 记录列选择描述符 RCSD
}

整个代理请求的超时时间——单位:秒,一般不能为 0。

ProxySetRequestList 数据类型

代理设置若干个服务器的若干个对象属性请求的数据类型定义见下。

ProxySetRequestList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 整个代理请求的超时时间 long-unsigned,
 代理若干个服务器的对象属性设置 SEQUENCE OF
 {
  一个目标服务器地址 TSA,
  代理一个服务器的超时时间 long-unsigned,
  若干个对象属性描述符及其数据 SEQUENCE OF
  {
   对象属性描述符 OAD,
   及其数据 Data
  }
 }
}

  • 代理一个服务器的超时时间——单位:秒,0 表示对于某个服务器的代理超时时间由服务器自行控制。
  • 整个代理请求的超时时间——单位:秒,一般不能为 0。
ProxySetThenGetRequestList 数据类型

代理设置后读取若干个服务器的若干个对象属性请求的数据类型定义见下。

ProxySetThenGetRequestList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 整个代理请求的超时时间 long-unsigned,
 代理若干个服务器的对象属性设置后读取 SEQUENCE OF
 {
  一个目标服务器地址 TSA,
  代理一个服务器的超时时间 long-unsigned,
  若干个对象属性的设置后读取 SEQUENCE OF
  {
   设置的对象属性描述符 OAD,
   及其设置数值 Data,
   读取的对象属性描述符 OAD,
   及其延时读取时间 unsigned
  }
 }
}

  • 延时读取时间——单位:秒,0 表示采用服务器默认的延时时间。
  • 代理一个服务器的超时时间——单位:秒,0 表示对于某个服务器的代理超时时间由服务器自行控制。
  • 整个代理请求的超时时间——单位:秒,一般不能为 0。
ProxyActionRequestList 数据类型

代理操作若干个服务器的若干个对象方法请求的数据类型定义见下。

ProxyActionRequestList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 整个代理请求的超时时间 long-unsigned,
 代理若干个服务器的对象方法操作 SEQUENCE OF
 {
  一个目标服务器地址 TSA,
  代理一个服务器的超时时间 long-unsigned,
  若干个对象方法描述符及其参数 SEQUENCE OF
  {
   对象方法描述符 OMD,
   及其方法参数 Data
  }
 }
}

  • 代理一个服务器的超时时间——单位:秒,0 表示对于某个服务器的代理超时时间由服务器自行控制
  • 整个代理请求的超时时间——单位:秒,一般不能为 0
ProxyActionThenGetRequestList 数据类型

代理操作后读取若干个服务器的若干个对象方法和属性请求的数据类型定义见下。

ProxyActionThenGetRequestList∷=SEQUENCE
{
 服务序号-优先级 PIID,
 整个代理请求的超时时间 long-unsigned,
 代理若干个服务器的操作后读取 SEQUENCE OF
 {
  一个目标服务器地址 TSA,
  代理一个服务器的超时时间 long-unsigned,
  若干个对象方法及属性的操作后读取 SEQUENCE OF
  {
   操作的对象方法描述符 OMD,
   及其方法参数 Data,
   读取的对象属性描述符 OAD,
   及其延时读取时间 unsigned
  }
 }
}

  • 延时读取时间——单位:秒,0 表示采用服务器默认的延时时间
  • 代理一个服务器的超时时间——单位:秒,0 表示对于某个服务器的代理超时时间由服务器自行控制
  • 整个代理请求的超时时间——单位:秒,一般不能为 0
ProxyTransCommandRequest 数据类型

代理操作透明转发请求命令的数据类型定义见下。

ProxyTransCommandRequest∷=SEQUENCE
{
 服务序号-优先级 PIID,
 数据转发端口 OAD,
 端口通信控制块 COMDCB,
 接收等待报文超时时间(秒) long-unsigned,
 接收等待字节超时时间(毫秒) long-unsigned,
 透明转发命令 octet-string
}

PROXY-Response 数据类型

代理响应的数据类型(PROXY-Response)定义见下。

PROXY-Response∷=CHOICE
{
 代理读取若干个服务器的若干个对象属性响应 [1] ProxyGetResponseList,
 代理读取一个服务器的一个记录型对象属性响应 [2] ProxyGetResponseRecord,
 代理设置若干个服务器的若干个对象属性响应 [3] ProxySetResponseList,
 代理设置后读取若干个服务器的若干个对象属性响应 [4] ProxySetThenGetResponseList,
 代理操作若干个服务器的若干个对象方法响应 [5] ProxyActionResponseList,
 代理操作后读取若干个服务器的若干个对象方法和属性响应 [6] ProxyActionThenGetResponseList,
 代理透明转发命令响应 [7] ProxyTransCommandResponse
}

ProxyGetResponseList 数据类型

代理读取若干个服务器的若干个对象属性响应的数据类型定义见下。

ProxyGetResponseList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 代理若干个服务器的读取结果 SEQUENCE OF
 {
  一个目标服务器地址 TSA,
  若干个对象属性及其结果 SEQUENCE OF A-ResultNormal
 }
}

ProxyGetResponseRecord 数据类型

代理读取一个服务器的一个记录型对象属性响应的数据类型定义见下。

ProxyGetResponseRecord∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 目标服务器地址 TSA,
 一个记录型对象属性及其结果 A-ResultRecord
}

ProxySetResponseList 数据类型

代理设置若干个服务器的若干个对象属性响应的数据类型定义见下。

ProxySetResponseList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 代理若干个服务器的读取结果 SEQUENCE OF
 {
  一个目标服务器地址 TSA,
  若干个对象属性描述符及其结果 SEQUENCE OF
  {
   对象属性描述符 OAD,
   及其设置结果 DAR
  }
 }
}

ProxySetThenGetResponseList 数据类型

代理设置后读取若干个服务器的若干个对象属性响应的数据类型定义见下。

ProxySetThenGetResponseList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 代理若干个服务器的设置后读取结果 SEQUENCE OF
 { 
  一个目标服务器地址 TSA,
  若干个对象属性设置后读取结果 SEQUENCE OF
  {
   设置的对象属性描述符 OAD,
   及其设置结果 DAR,
   一个对象属性及其结果 A-ResultNormal
  }
 }
}

ProxyActionResponseList 数据类型

代理操作若干个服务器的若干个对象方法响应的数据类型定义见下。

ProxyActionResponseList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 代理若干个服务器的操作结果 SEQUENCE OF
 {
  一个目标服务器地址 TSA,
  若干个对象方法描述符及其结果 SEQUENCE OF
  {
   对象方法描述符 OMD,
   及其操作结果 DAR,
   操作返回数据 Data OPTIONAL
  }
 }
}

ProxyActionThenGetResponseList 数据类型

代理操作后读取若干个服务器的若干个对象方法和属性响应的数据类型定义见下。

ProxyActionThenGetResponseList∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 代理若干个服务器的操作后读取结果 SEQUENCE OF
 {
  一个目标服务器地址 TSA,
  若干个对象方法和属性操作后读取结果 SEQUENCE OF
  {
   操作的对象方法描述符 OMD,
   及其操作结果 DAR,
   操作返回数据 Data OPTIONAL,
   一个对象属性及其结果 A-ResultNormal
  } 
 }
}

ProxyTransCommandResponse 数据类型

代理操作透明转发命令响应的数据类型定义见下。

ProxyTransCommandResponse∷=SEQUENCE
{
 服务序号-优先级-ACD PIID-ACD,
 数据转发端口 OAD,
 透明转发命令返回结果 TransResult
}

TransResult∷=CHOICE
{
 错误信息 [0] DAR,
 返回数据 [1] octet-string
}

安全传输

SECURITY-Request 数据类型

安全请求的数据类型(SECURITY-Request)定义见下。

SECURITY-Request∷=SEQUENCE
{
 应用数据单元 CHOICE
 {
  明文应用数据单元 [0] octet-string,
  密文应用数据单元 [1] octet-string
 },
 数据验证信息 CHOICE
 {
  数据验证码 [0] SID_MAC,
  随机数 [1] RN,
  随机数+数据MAC [2] RN_MAC,
  安全标识 [3] SID
 }
}

RN_MAC∷=SEQUENCE
{
 随机数 RN,
 数据 MAC MAC
}

SECURITY-Response 数据类型

安全响应的数据类型(SECURITY-Response)定义见下。

SECURITY-Response∷=SEQUENCE
{
 应用数据单元 CHOICE
 {
  明文应用数据单元 [0] octet-string,
  密文应用数据单元 [1] octet-string,
  异常错误 [2] DAR
 },
 数据验证信息 CHOICE OPTIONAL
 {
  数据MAC [0] MAC
 }
}

跟随上报信息域

跟随上报信息域(FollowReport)的数据类型定义见下。

FollowReport∷=CHOICE
{
 若干个对象属性及其数据 [1] SEQUENCE OF A-ResultNormal,
 若干个记录型对象属性及其数据 [2] SEQUENCE OF A-ResultRecord
}

时间标签域

时间标签的数据类型 TimeTag 的定义见下。

TimeTag∷=SEQUENCE
{
 发送时标 date_time_s,
 允许传输延时时间 TI
}

异常响应

ERROR-Response 数据类型

异常响应 ERROR-Response 数据类型定义见下。

ERROR-Response∷=SEQUENCE
{
 服务序号-优先级 PIID,
 异常类型 ENUMERATED
 {
  APDU 无法解析 (1),
  服务不支持 (2),
  其他 (255)
 }
}

应用层编码规范

本标准应用层协议数据单元(APDU)遵循 A-XDR 编码规则,详见 DL/T 790.6-2010。

接口类与对象标识

对象模型

本标准采用对象建模技术,对象是属性和方法的集合。对象的信息包含在对象的属性中,属性的值表示对象的特征,并能影响对象的行为特征。

所有对象的第一个属性都是“逻辑名”,逻辑名是对象标识的一部分。每个对象都提供了一些检查或修改属性值的方法。

具有共享公共特征的对象归纳为接口类(IC),接口类是同一类对象共同特征及行为的表达模板,接口类由类标识码(class_id)进行标识。对于某个接口类,公共特征(包括属性和方法)是为所有对象描述的。接口类的实例称为接口类对象,简称对象。

一个对象只能属于一个接口类,对象具有所属接口类的全部属性和方法。一个对象对应于一个唯一的标识,即对象标识(OI),用于对对象进行引用。

遵循本标准的终端、支撑工具和其它系统元件能够采用互操作的方式相互通信。

接口类的表示方法

用于定义本标准接口类的表述方法是以表格形式给出类的概貌,表格中包括类名、属性和方法。类说明模板见下表。

类名 实例数
属性 数据类型
1. 逻辑名(OI) (static) octet-string
2. …… (……) ……
3. …… (……) ……
方法 必选/可选
1. …… ……
2. …… ……

其中:

  • 类名:类的说明,如:电能量类、最大需量类、功率类、冻结类等
  • 实例数:规定逻辑设备内类的范例号的范围
  • 类标识码:数值范围 0~255
  • 属性:规定类的属性
    • 静态(static)表示终端自身不能更改的属性,例如:配置参数
    • 动态(dyn.)表示载有过程的属性,此属性是由终端自己刷新的
  • 数据类型:定义属性的数据类型
  • 方法:规定类的方法:Method Name(),这些方法应在“方法说明”中说明
  • 必选/可选:定义方法是必选的还是可选的
  • 每个属性和方法都应有详细说明
    • 属性说明:说明属性的数据类型(如果是复杂数据类型)
    • 方法说明:说明对象的每个方法和执行的行为特征。

注:dyn,dynamic [daɪ'næmɪk] 动态的

接口类

电能量接口类(class_id=1)

本接口类对象提供存储电能量类信息,定义见下表。

电能量接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 总及费率电能量数组 (dyn.) array
3. 换算及单位 (static) Scaler_Unit
4. 高精度总及费率电能量数组 (dyn.) array
5. 高精度换算及单位 (static) Scaler_Unit
方法 必选/可选
1. 复位 可选
2. 执行 可选

电能量接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 总及费率电能量数组∷=array 电能量
    电能量:
    CHOICE
    {
     double-long-unsigned [6],
     double-long [5]
    }

    包含总及 n 个费率的电能量,规定其第一个数组元素是总电能量, 后面依次排列费率 1~n 电能量

  3. 换算及单位∷=Scaler_Unit

  4. 高精度总及费率电能量数组∷=array 高精度电能量
    高精度电能量:
    CHOICE
    {
     long64-unsigned [21],
     long64 [20]
    }

    包含总及 n 个费率的电能量,规定其第一个数组元素是总电能量,后面依次排列费率 1~n 电能量

  5. 高精度换算及单位∷=Scaler_Unit

电能量接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific

最大需量接口类(class_id=2)

本接口类对象提供存储最大需量类信息,定义见下表。

最大需量接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 总及费率最大需量数组 (dyn.) array
3. 换算及单位 (static) Scaler_Unit
方法 必选/可选
1. 复位 可选
2. 执行 可选

最大需量接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 总及费率最大需量数组∷=array 最大需量及发生时间
    最大需量及发生时间∷=structure
    {
     最大需量值 CHOICE,
     发生时间 date_time_s
    }

    最大需量值:
    CHOICE
    {
     double-long [5],
     double-long-unsigned [6]
    }

    包含总及 n 个费率的最大需量,规定其第一个数组元素是总最大需量,后面依次排列费率 1~n 最大需量

  3. 换算及单位∷=Scaler_Unit。最大需量发生时间无换算单位

最大需量接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific

分相变量接口类(class_id=3)

本接口类对象提供存储电压、电流、相角等分相变量类信息,定义见下表。

分相变量接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 分相数值组 (dyn.) array
3. 换算及单位 (static) Scaler_Unit
方法 必选/可选
1. 复位 可选
2. 执行 可选

分相变量接口类属性说明

编号 属性 说明
1 逻辑名 标记接口类对象实例,使用 OI
2 分相数值组∷=array 分相数值
分相数值∷=instance-specific
数值组按 A 相、B 相、C 相当接线方式为单相时,A、B、C 三相改 为 A 相(某一相)
3 换算及单位∷=Scaler_Unit

分相变量接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific

功率接口类(class_id=4)

本接口类对象提供存储功率、功率因数等信息,定义见下表。

功率接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 总及分相数值组 (dyn.) array
3. 换算及单位 (static) Scaler_Unit
方法 必选/可选
1. 复位 可选
2. 执行 可选

功率接口类属性说明

编号 属性 说明
1 逻辑名 标记接口类对象实例,使用 OI
2 总及分相数值组∷=array 总或分相数值 总或分相数值∷=instance-specific 数值组按总、A 相、B 相、C 相顺序排列,当接线方式为单相时,为总、A 相(某一相)
3 换算及单位∷=Scaler_Unit

功率接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific

谐波变量接口类(class_id=5)

本接口类对象提供存储谐波变量类信息,定义见下表。

谐波变量接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. A 相 n 次数值组 (dyn.) array
3. B 相 n 次数值组 (dyn.) array
4. C 相 n 次数值组 (dyn.) array
5. 谐波次数 n (static) unsigned
6. 换算及单位 (static) Scaler_Unit
方法 必选/可选
1. 复位 可选
2. 执行 可选

谐波变量接口类属性说明

编号 属性 说明
1 逻辑名 标记接口类对象实例,使用 OI
2 A 相 n 次数值组∷=array A 相各次数值 A 相各次数值∷=instance-specific 包含 A 相谐波相关数值
3 B 相 n 次数值组∷=array B 相各次数值 B 相各次数值∷=instance-specific 包含 B 相谐波相关数值
4 C 相 n 次数值组∷=array C 相各次数值 C 相各次数值∷=instance-specific 包含 C 相谐波相关数值
5 谐波次数 n 表示谐波相关数值组中的最高谐波次数
6 换算及单位∷=Scaler_Unit

谐波变量接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific

数据变量接口类(class_id=6)

本接口类对象提供存储过程值或与过程值单元相关的状态值信息,定义见下表。

数据变量接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 数值 (dyn.) instance-specific
3. 换算及单位 (static) Scaler_Unit
方法 必选/可选
1. 复位 可选
2. 执行 可选

数据变量接口类属性说明

编号 属性 说明
1 逻辑名 标记接口类对象实例,使用 OI
2 数值 包含过程值或与过程值单元相关的状态值,数据类型依据“逻辑名” 决定的对象实例而定义
3 换算及单位∷=Scaler_Unit

数据变量接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific

事件对象接口类(class_id=7)

本接口类对象提供配置、存储事件记录类信息,定义见下表。

事件对象接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 事件记录表 (dyn.) array
3. 关联对象属性表 (static) array
4. 当前记录数 (dyn.) long-unsigned
5. 最大记录数 (static) long-unsigned
6. 配置参数 (static) structure
7. 当前值记录表 (dyn.) array
8. 上报标识 (static) enum
9. 有效标识 (static) bool
10. 时间状态记录表 (static) array
方法 必选/可选
1. 复位 可选
2. 执行 可选
4. 添加一个事件关联对象属性 可选
5. 删除一个事件关联对象属性 可选

事件对象接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 事件记录表∷=array 一条事件记录
    一条事件记录∷=structure
    {
     事件记录序号 double-long-unsigned,
     事件发生时间 date_time_s,
     事件结束时间 date_time_s,
     事件发生源 instance-specific,
     事件上报状态 array 通道上报状态,
     事件特殊数据 1 instance-specific,
     ...
     事件特殊数据 N instance-specific,
     第 1 个关联对象属性的数据 Data,
     ...
     第 n 个关联对象属性的数据 Data
    }

    通道上报状态∷=structure
    {
     通道 OAD,
     上报状态 unsigned
    }

    • 用于存储事件记录,记录根据“触发事件配置参数”自动产生或执行“触发一次记录”而来
    • 记录的顺序按照事件发生的次序排序,最近发生的事件记录在前,即固定按照事件序号的倒序进行排序。缺省值:复位后事件记录表为空。
    • 事件记录序号——单调递增
    • 事件发生源——具体内容由对象实例定义
    • 事件上报状态——按通道分别记录上报状态
    • 关联对象属性的数据——其排列次序和个数 n,由本对象的属性 3 决定
    • 事件特殊数据可由具体对象定义
    • 上报状态:
      • bit0: 事件发生上报标识
        • 0—未上报
        • 1—已上报
      • bit1: 事件发生上报确认标识
        • 0—未确认
        • 1—已确认
      • bit2: 事件结束(恢复)上报标识
        • 0—未上报
        • 1—已上报
      • bit3: 事件结束(恢复)上报确认标识
        • 0—未确认
        • 1—已确认
  3. 关联对象属性表∷=array 一个关联的对象属性
    一个关联的对象属性∷=OAD

    • 规定生成事件记录时所要关联的 n 个对象属性,这些对象属性的数值将被复制到事件类对象的事件记录中
    • 事件关联特征分为四种:事件发生前、事件发生后、事件结束前、事件结束后,由 OAD 的“属性标识”的“属性特征”的值来区分并表示
    • 属性特征:
      • 1:事件发生前
      • 2:事件发生后
      • 3:事件结束前
      • 4:事件结束后
  1. 当前记录数

    • 表示保存在事件记录表中的记录数
    • 调用方法“复位”后,记录表中不包含任何记录,此时当前记录数为零
    • 在每次事件发生执行记录操作后,当前记录数加 1,直到记录数等于最大记录数
  2. 最大记录数

    • 规定事件记录表所允许存放的最多的记录个数,此值大小受物理空间限制
  3. 配置参数∷=structure
    {
     参数 1 instance-specific,
     ...
     参数 n instance-specific
    }

    • 用于配置触发事件记录的判定参数,参数的数据类型依据“逻辑名”决定的对象实例而定义。见附录 A.4 。
  4. 当前值记录表∷=array 当前值
    当前值∷=structure
    {
     事件发生源 instance-specific,
     事件发生时间统计 structure
     {
     事件发生次数 double-long-unsigned,
     事件累计时间 double-long-unsigned
     }
    }

    • 事件发生源,在具体的事件中定义,包含事件发生的次数以及累计时间
    • 事件发生次数——单位:次
    • 事件累计时间——单位:秒
  5. 上报标识∷=enum
    {
      不上报(0),
     事件发生上报(1),
     事件恢复上报(2),
     事件发生恢复均上报(3)
    }

    1. 有效标识∷=bool
  6. 时间状态记录表∷=array 时间状态
    时间状态∷=structure
    {
     事件发生源 instance-specific,
     最近一次时间 structure
     {
      最近一次发生时间 datetime_s,
      最近一次结束时间 datetime_s
      }
    }

    • 最近一次发生时间——取上 1 次事件的发生时间,如果未发生返回 NULL
    • 最近一次结束时间——上 1 次事件未结束,则取上 2 次事件的结束时间;不存在上 2 次事件,则返回 NULL;结束时间不支持, 则返回 NULL

事件对象接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific
4 添加一个事件关联对象属性(参数) 参数∷=OAD 对象属性描述符 在属性“关联对象属性表”中,增加一个关联对象属性。 参数——对象属性描述符
5 删除一个事件关联对象属性(参数) 参数∷=OAD 对象属性描述符 在属性“关联对象属性表”中,删除一个关联对象属性。 参数——对象属性描述符

参数变量接口类(class_id=8)

本接口类对象提供存储终端的各种参数类信息,定义见下表。

参数变量接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 参数 (static) instance-specific
方法 必选/可选
1. 复位 可选
2. 执行 可选

参数变量接口类属性说明

编号 属性 说明
1 逻辑名 标记接口类对象实例,使用 OI
2 参数 包含终端的各种参数类信息,参数的数据类型依据“逻辑名”决定的对象实例而定义

参数变量接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific

冻结数据接口类(class_id=9)

本接口类对象提供配置、存储冻结数据及其相关信息,定义见下表。

冻结数据接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 冻结数据表 (dyn.) array
3. 关联对象属性表 (static) array
方法 必选/可选
1. 复位 可选
2. 执行 可选
3. 触发一次冻结 可选
4. 添加一个冻结对象属性 可选
5. 删除一个冻结对象属性 可选
7. 批量添加冻结对象属性 可选
8. 清除关联对象属性表 可选

冻结数据接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 冻结数据表∷=array 一条冻结记录
    一条冻结记录∷=structure
    {
     冻结记录序号 double-long-unsigned,
     冻结时间 date_time_s,
     第 1 个关联对象属性的数据 Data,
     ...
     第 n 个关联对象属性的数据 Data
    }

    • 用于存储冻结数据(记录),记录根据“冻结周期”和“延时时间”自动冻结或执行“触发一次冻结”而来
    • 记录的顺序按照冻结发生的次序排序,最近发生的事件记录在前,即固定按照事件序号的倒序进行排序。缺省值:复位后冻结数据表为空
    • 冻结记录序号——单调递增
    • 关联对象属性的数据——其排列次序和个数 n,由本对象的属性 3 决定
  3. 关联对象属性表∷=array 一个关联的对象属性
    一个关联的对象属性∷=structure
    {
     冻结周期 long-unsigned,
     关联对象属性描述符 OAD,
     存储深度 long-unsigned
    }

    • 用于规定冻结记录所要冻结的 n 个对象属性,这些对象属性的数据将被复制到冻结数据类对象的冻结记录中
    • 冻结周期——规定冻结操作的间隔时间,其数值单位根据“逻辑名”决定的实例而定:
      • 秒冻结为“秒”
      • 分钟冻结为“分钟”
      • 小时冻结为“小时”
      • 日冻结为“日”
      • 月冻结为“月”
      • 年冻结为“年”
      • 结算日冻结为“结算日”
    • 当其大于零时:表示为按“冻结周期”和“延时时间”自动冻结
    • 当其为零时,表示为非自动冻结,而是由外部条件或异步发生的冻结事件触发(由执行“触发一次冻结”)而来
    • 冻结基准时间为 2000 年 1 月 1 日 0 时 0 分
      • 对于秒冻结,如果冻结周期设置为 2,则每 2 秒冻结一次
      • 对于分钟冻结,在 0 秒冻结
      • 对于小时冻结,在 0 分冻结
      • 对于日冻结,在 0 时 0 分冻结
      • 对于月冻结,在 1 日 0 时 0 分冻结
      • 结算日冻结在每次发生月结算动作时冻结
      • 对于年冻结,在 1 月 1 日 0 时 0 分冻结
      • 对于阶梯结算冻结,在阶梯结算时冻结
      • 切换冻结在发生切换动作时冻结
    • 关联对象属性描述符:对象属性描述符含属性特征,属性特征取值 0…7,每一种属性特征表示一种冻结方案,每种方案可分配不同的冻结周期以及存储深度;关联对象属性描述符在关联对象属性表中具有唯一性
    • 存储深度:关联对象属性数据冻结存储的最少记录条数
    1. 配置参数∷= instance-specific具体配置参可由对象实例定义

冻结数据接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific
3 触发一次冻结(参数) 参数∷=long-unsigned 延时执行的时间 根据延时时间(参数)触发执行一次事件记录操作 参数——延时执行的时间,单位:秒,0 表示立即执行(无延时)
4 添加一个冻结对象属性(冻结对象)
冻结对象∷=structure
{
 冻结周期
 long-unsigned,
 关联对象属性描述符 OAD,
 存储深度 long-unsigned
}
在属性“关联对象属性表”中,增加一个冻结对象属性
5 删除一个冻结对象属性(参数) 参数∷=OAD 对象属性描述符 在属性“关联对象属性表”中,删除一个冻结对象属性。 参数——对象属性描述符。
7 批量添加冻结对象属性(array 冻结对象) 冻结对象定义见方法 4
8 清除关联对象属性表(参数) 参数∷=NULL

采集监控接口类(class_id=10)

本接口类对象提供一种通用的与采集有关的参数或数据记录表,用于配置和存储与采集监控相关的参数、数据和记录,应依据“逻辑名”所定义的实例而确定无歧义的解释。本接口类定义见下表。

采集监控接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 配置表 (static) array
3. 记录表 (dyn.) array
方法 必选/可选
1. 复位 可选
2. 执行 可选
3. 清空记录表 可选

采集监控接口类属性说明

编号 属性 说明
1 逻辑名 标记接口类对象实例,使用 OI
2 配置表∷=array 配置单元 配置参数∷=instance-specific 是“配置单元”的数组。 配置单元——用于配置采集所需的档案参数、或采集所需的以触发采集数据记录的任务参数,其内容及其数据类型依据“逻辑名”决定的对象实例而定义。见附录 A.7
3 记录表∷=array 记录单元 记录单元∷=instance-specific 是“记录单元”的数组。 记录单元——用于根据“配置单元”记录与采集相关的数据,其内容及其数据类型依据“逻辑名”决定的对象实例而定义。见附录 A.7

采集监控接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific
3 清空记录表(参数) 参数∷=NULL

集合接口类(class_id=11)

本接口类对象提供配置、存储终端采集数据及其相关信息,定义见下表。

集合接口类 0...n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 集合 (dyn.) array
3. 当前元素个数 (dyn.) long-unsigned
4. 最大元素个数 (static) long-unsigned
方法 必选/可选
1. 复位 可选
2. 执行 可选

集合接口类属性说明

编号 属性 说明
1 逻辑名 标记接口类对象实例,使用 OI
2 集合∷=array 集合元素 集合元素∷=instance-specific 是“集合元素”的数组。 集合元素——其内容及其数据类型依据“逻辑名”决定的对象实例而定义
3 当前元素个数 表示保存在记录表中的记录数。调用方法“复位”后,记录表中不包含任何记录,此时当前记录数为零。在每次执行记录操作后,当前记录数加 1,直到记录数等于最大记录数
4 最大元素个数 用于规定记录表所允许存放的最多的记录个数,此值大小受物理空间限制

集合接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific

脉冲计量接口类(class_id=12)

脉冲计量接口类定义见下表。

脉冲计量接口类 0...n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 通信地址 (static) octet-string
3. 互感器倍率 (static) structure
4. 脉冲配置 (static) array
5. 有功功率 (dyn.) double-long
6. 无功功率 (dyn.) double-long
7. 当日正向有功电量 (dyn.) array
8. 当月正向有功电量 (dyn.) array
9. 当日反向有功电量 (dyn.) array
10. 当月反向有功电量 (dyn.) array
11. 当日正向无功电量 (dyn.) array
12. 当月正向无功电量 (dyn.) array
13. 当日反向无功电量 (dyn.) array
14. 当月反向无功电量 (dyn.) array
15. 正向有功电能示值 (dyn.) array
16. 正向无功电能示值 (dyn.) array
17. 反向有功电能示值 (dyn.) array
18. 反向无功电能示值 (dyn.) array
19. 换算及单位 (static) structure
方法 必选/可选
1. 复位 可选
2. 执行 可选
3. 添加脉冲输入单元 必选
4. 删除脉冲输入单元 必选

脉冲计量接口类的属性描述

编号 属性 说明
1 逻辑名 标记接口类对象实例
2 通信地址∷=octet-string
3 互感器倍率∷=structure
{
 PT long-unsigned,
 long-unsigned
}
4 脉冲配置∷=array 脉冲单元 
脉冲单元∷=structure
{
 脉冲输入端口号 OAD,
 脉冲属性 enum
  {
  正向有功(0),
  正向无功(1),
  反向有功(2),
  反向无功(3)
 },
 脉冲常数 k long-unsigned
}
5 有功功率∷=double-long
6 无功功率∷=double-long
7 当日正向有功电量∷=array 电能量 电能量∷=double-long-unsigned 包含总及 n 个费率的电能量,规定其第一个数组元素是总 电能量,后面依次排列费率 1...n 电能量
8 当月正向有功电量∷=array 电能量
电能量∷=double-long-unsigned
同上
9 当日反向有功电量∷=array 电能量
电能量∷=double-long-unsigned
同上
10 当月反向有功电量∷=array 电能量
电能量∷=double-long-unsigned
同上
11 当日正向无功电量∷=array 电能量
电能量∷=double-long-unsigned
同上
12 当月正向无功电量∷=array 电能量
电能量∷=double-long-unsigned
同上
13 当日反向无功电量∷=array 电能量
电能量∷=double-long-unsigned
同上
14 当月反向无功电量∷=array 电能量
电能量∷=double-long-unsigned
同上
15 正向有功电能示值∷=array 电能示值
电能示值∷=double-long-unsigned
同上
16 反向有功电能示值∷=array 电能示值
电能示值∷=double-long-unsigned
同上
17 正向无功电能示值∷=array 电能示值
电能示值∷=double-long-unsigned
同上
18 反向无功电能示值∷=array 电能示值
电能示值∷=double-long-unsigned
同上
19 单位及换算∷=structure
{
 属性 5 单位及换算 Scaler_Unit,
 属性 6 单位及换算 Scaler_Unit,
 属性 7 单位及换算 Scaler_Unit,
 属性 8 单位及换算 Scaler_Unit,
 属性 9 单位及换算 Scaler_Unit,
 属性 10 单位及换算 Scaler_Unit,
 属性 11 单位及换算 Scaler_Unit,
 属性 12 单位及换算 Scaler_Unit,
 属性 13 单位及换算 Scaler_Unit,
 属性 14 单位及换算 Scaler_Unit,
 属性 15 单位及换算 Scaler_Unit,
 属性 16 单位及换算 Scaler_Unit,
 属性 17 单位及换算 Scaler_Unit,
 属性 18 单位及换算 Scaler_Unit }
属性 5 单位换算∷=单位:W,换算:-1
属性 6 单位换算∷=单位:var,换算:-1
属性 7 单位换算∷=单位:kWh,换算:-4
属性 8 单位换算∷=单位:kWh,换算:-4
属性 9 单位换算∷=单位:kWh,换算:-4
属性 10 单位换算∷=单位:kWh,换算:-4
属性 11 单位换算∷=单位:kvarh,换算:-4
属性 12 单位换算∷=单位:kvarh,换算:-4
属性 13 单位换算∷=单位:kvarh,换算:-4
属性 14 单位换算∷=单位:kvarh,换算:-4
属性 15 单位换算∷=单位:kWh,换算:-4
属性 16 单位换算∷=单位:kWh,换算:-4
属性 17 单位换算∷=单位:kvarh,换算:-4
属性 18 单位换算∷=单位:kvarh,换算:-4

脉冲计量接口类的方法描述

编号 方法 说明
1 复位(参数) 参数∷=bit-string 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific
3 添加脉冲输入单元(脉冲单元)
4 删除脉冲输入单元(脉冲输入端口号)

负荷控制对象接口类(class_id=13)

本接口类对象提供负荷管理有关的控制功能,定义见下表。

负荷控制对象接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 控制方案集 (static) array
3. 控制投入状态 (dyn.) array
4. 控制输出状态 (dyn.) array
5. 越限告警状态 (dyn.) array
方法 必选/可选
1. 复位 可选
2. 执行 可选
3. 添加控制单元 必选
4. 删除控制单元 必选
5. 更新控制单元 必选
6. 控制投入 必选
7. 控制解除 必选

负荷控制对象接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 控制方案集∷=array 控制单元
    控制单元∷=instance-specific

    • 是“控制单元”的数组
    • 控制单元——其内容及其数据类型依据“逻辑名”决定的对象实例而定义
  3. 控制投入状态∷=array 一个总加组控制投入状态
    一个总加组控制投入状态∷=structure
    {
     总加组对象 OI,
     投入状态 enum{未投入(0),投入(1)}
    }

  4. 控制输出状态∷=array 一个总加组控制输出状态
    一个总加组控制输出状态∷=structure
    {
     总加组对象 OI,
     控制输出状态 bit-string(SIZE(8))
    }

    • 用于表示 n 个总加组的控制输出状态
    • 控制输出状态:bit0…bit7 对应 1…8 个开关的输出状态
      • 0:未输出
      • 1:输出
  5. 越限告警状态∷=array 一个总加组告警输出状态
    一个总加组告警输出状态∷=structure
    {
     总加组对象 OI, 告警输出状态 enum
     {
      未告警(0),告警(1)
     }
    }

负荷控制对象接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific
3 添加控制单元(控制单元) 控制单元∷=instance-specific
4 删除控制单元(总加组对象) 总加组对象∷=OI
5 更新控制单元(控制单元) 控制单元∷=instance-specific
6 控制投入(总加组对象) 总加组对象∷=OI
7 控制解除(总加组对象) 总加组对象∷=OI

区间统计接口类(class_id=14)

本接口类对象提供依据配置参数判定、统计与越限相关的信息,定义见下表。

超限统计接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 统计结果表 (dyn.) array
3. 关联对象属性表 (static) array
方法 必选/可选
1. 复位 可选
2. 执行 可选
3. 添加一个统计对象属性 可选
4. 删除一个统计对象属性 可选

区间统计接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 统计结果表∷=array 一个统计结果
    一个统计结果∷=structure
    {
     对象属性描述符 OAD,
     区间统计值 array 一个统计区间
    }
    一个统计区间∷=structure
    {
     累计时间 double-long-unsigned,
     累计次数 double-long-unsigned
    }

    • 对应“关联的判断”所规定的 n 个对象属性的 n 组统计结果值
    • 累计时间:单位为秒
  3. 关联对象属性表∷=array 一个关联对象属性
    一个关联对象属性∷=structure
    {
     关联对象属性描述符 OAD,
     越限判断参数 array Data,
     统计周期 unsigned,
     统计频率 TI
    }

    • 用于规定统计结果表所要统计的 n 个对象属性,这些对象属性的数值发生越限将计入“统计结果表”中
    • 统计频率:采样点取值周期。

区间统计接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific
3 添加一个统计对象属性(参数)
参数∷=structure
{
 关联对象属性描述符 OAD,
 越限判断参数 array Data,
 统计周期 unsigned,
 统计频率 TI
}
在属性“关联对象属性表”中,增加一个统计对象属性。
4 删除一个统计对象属性(参数)
参数∷=OAD 关联对象属性描述符
在属性“关联对象属性表”中,删除一个统计对象属性。参数——关联对象属性描述符。

累加平均接口类(class_id=15)

本接口类对象提供对相同物理属性的数值进行累加、平均的运算功能,定义见下表。

累加平均接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 运算结果 (dyn.) structure
3. 关联对象属性表 (static) array
方法 必选/可选
1. 复位 可选
2. 执行 可选
3. 添加一个关联对象属性 可选
4. 删除一个关联对象属性 可选

累加平均接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 运算结果∷=array structure
    {
     对象属性描述符 OAD,
     累加和 instance-specific,
     平均值 instance-specific
    }

    • 用于存储对“关联对象属性表”所规定的 n 个对象属性的累加、平均运算后的数据结果
    • 累加和、平均值——其数据类型依据“逻辑名”决定的对象实例而定义
  3. 关联对象属性表∷=array 一个关联的对象属性
    一个关联对象∷=structure
    {
     关联对象属性描述符 OAD,
     统计周期 unsigned,
     统计频率 TI
    }

    • 规定要参与计算的 n 个对象属性,这些对象属性的数值将参与累加、平均运算,结果存入“运算结果”中

累加平均接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=integer(0) 通用方法,instance-specific
2 执行(参数) 参数∷=Data 通用方法,instance-specific
3 添加一个关联对象属性(参数)
参数∷=structure
{
 关联对象属性描述符 OAD,
 统计周期 unsigned,
 统计频率 TI
}
在属性“关联对象属性表”中,增加一个关联对象属性
4 删除一个关联对象属性(参数)
参数∷=OAD 关联对象属性描述符
在属性“关联对象属性表”中,删除一个关联对象属性。参数——关联对象属性描述符

极值工具接口类(class_id=16)

本接口类对象提供采集或生成最大、最小值及其发生时间,定义见下表。

极值工具接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 极值结果表 (dyn.) array
3. 关联对象属性表 (static) array
方法 必选/可选
1. 复位 可选
2. 执行 可选
3. 添加一个关联对象属性 可选
4. 删除一个关联对象属性 可选

极值工具接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 极值结果表∷=array 一个极值结果
    一个极值结果∷=structure
    {
     对象属性描述符 OAD,
     最大值 instance-specific,
     及其发生时间 date_time_s,
     最小值 instance-specific,
     及其发生时间 date_time_s
    }

    • 用于存储对应“关联对象属性表”所规定的 n 个对象属性的极值结果(记录)
    • 极值及其发生时间——其数据类型依据“逻辑名”决定的对象实例而定义
  3. 关联对象属性表∷=array 一个关联的对象属性
    一个关联对象∷=structure
    {
     关联对象属性描述符 OAD,
     统计周期 unsigned,
     统计频率 TI
    }

    • 用于规定要被采集或生成极值的 n 个对象属性,这些对象属性的数值的最大和最小值及其发生时间将被保存在“极值结果表”中

极值工具接口类方法说明

编号 方法 说明
1 复位(参数)
参数∷=integer(0)
通用方法,instance-specific
2 执行(参数)
参数∷=Data
通用方法,instance-specific
3 添加一个关联对象属性(参数)
参数∷=structure
{
 关联对象属性描述符 OAD,
 统计周期 unsigned,
 统计频率 TI
}
在属性“关联对象属性表”中,增加一个关联对象属性
4 删除一个关联对象属性(参数)
参数∷=OAD 关联对象属性描述符
在属性“关联对象属性表”中,删除一个关联对象属性。参数——关联对象属性描述符

显示接口类(class_id=17)

本接口类对象提供与终端显示或对外打印相关的信息,定义见下表。

显示接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 显示对象列表 (static) array
3. 显示时间 (static) long-unsigned
4. 显示参数 (static) structure
方法 必选/可选
1. 复位 可选
2. 执行 可选
3. 下翻 可选
4. 上翻 可选
5. 显示查看 可选
6. 全显 可选

显示接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 显示对象列表∷=array 显示对象描述符
    显示对象描述符∷=structure
    {
     显示对象 CSD,
     屏序号 unsigned
    }

    • 用于表明显示的对象属性,这些对象属性的数据依次被循环显示屏序号:
      • 0 表示不需要分屏;其它为分屏显示,其中
      • 1 表示分屏第一屏
      • 2 表示分屏第二屏
      • 以此类推
    1. 每个对象显示时间: long-unsigned每个对象显示时间的单位为秒, 0 表示由外部触发
  3. 显示参数∷=structure
    {
     当前总对象数 unsigned,
     允许最大对象数 unsigned
    }

    • 用于表明显示的相关参数
    • 当前总对象数:指示当前显示的总对象数
    • 允许最大对象数: 可设置的最大显示数

显示接口类方法说明

编号 方法 说明
1 复位(参数)
参数∷=integer(0)
通用方法,instance-specific
2 执行(参数)
参数∷=Data
通用方法,instance-specific
3 下翻(参数)
参数∷=NULL
显示下一个对象信息
4 上翻(参数)
参数∷=NULL
显示上一个对象信息
5 显示查看(参数)
参数∷=structure
{
 显示列信息 CSD,
 屏序号 unsigned,
 显示持续时间 long-unsigned
}
显示查看的参数可以为所有可显示的对象。显示持续时间:单位:秒
6 全显(参数)
参数∷=long-unsigned
参数为全显持续时间,单位:秒

文件传输接口类(class_id=18)

本接口类对象提供终端实现上传和下载文件的功能,定义见下表。

文件传输接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 文件信息 (dyn.) structure
3. 命令结果 (dyn.) enum
方法 必选/可选
1. 复位 可选
2. 执行 可选
3. 删除 可选
4. 校验 可选
5. 代发 可选
6. 代收 可选
7. 上传 可选
8. 下载 可选

文件传输接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 文件信息∷=structure
    {
     源文件 visible-string,
     目标文件 visible-string,
     文件大小 double-long-unsigned,
     文件属性 bit-string(SIZE(3)),
     文件版本 visible-string
     文件类别 enum
     {
      终端文件(0),
      本地通信模块文件 (1),
      远程通信模块文件 (2),
      采集器文件 (3),
      从节点通信模块文件(4),
      其它文件 (255)
     }
    }

    • 源文件:文件路径及名称; 目标文件:文件路径及名称
    • 文件路径及名称格式:“[/路径/]文件名” , 如果设备不支持文件管理,可设置为空串
    • 文件大小:单位字节
    • 文件属性:
      • bit0:读(1:可读,0:不可读)
      • bit1:写(1:可写,0:不可写)
      • bit2:执行(1:可执行,0:不可执行)
    • 文件版本:文件的版本信息

    3命令结果∷=enum
    {
     文件传输进度 0…99% (0…99),
     传输或执行操作成功 (100),
     正在建立连接(扩展传输) (101),
     正在远程登录(扩展传输) (102),
     正在执行文件 (103),
     文件或目录不存在 (104),
     操作不允许(创建/删除/读写/执行) (105),
     文件传输中断 (106),
     文件校验失败 (107),
     文件转发失败 (108),
     文件代收失败 (109),
     建立连接失败(扩展传输) (110),
     远程登录失败(扩展传输) (111),
     存储空间不足 (112),
     复位后默认值 (255)
    }

    • 最近一次传输或执行结果的状态信息

文件传输接口类方法说明

  1. 复位(参数)

    • 参数∷=integer(0)
    • 强迫对象复位,将属性“数值”置为缺省值,缺省值是实例的常数
  2. 执行(参数)

    • 参数∷=Data
    • 通用方法,instance-specific
    • 默认方法执行下载文件,如果文件有执行权限则执行,否则拒绝
  3. 删除(参数)

    • 参数∷=null
    • 删除本地文件,如果文件存在则删除,并复位传输状态字和当前文件指针,否则拒绝
  4. 校验(参数)

    • 参数∷=structure
      {
      校验类型 enum
       {
        CRC 校验(默认)(0),
        md5 校验(1),
        SHA1 校验(2),
        其他(255)
       },
      校验值 octet-string
      }
    • 下载或上传文件校验,主站侧生成文件校验值并下发校验文件操作,设备对下载或上传的文件进行校验,并反馈在“命令结果”
    • CRC 校验算法见附录 D
  5. 代发(参数)

    • 参数∷=TSA
    • 文件下载到本地端后,再根据目标地址进行文件代发
  6. 代收(参数)

    • 参数∷=TSA
    • 根据目标地址进行文件代收后,再上传文件到远程端
  7. 上传(参数)

    • 参数∷=Data
    • 通用方法,instance-specific
    • 上传:客户机向服务器上传文件,目标文件不存在则创建
  1. 下载(参数)
    • 参数∷=Data
    • 通用方法,instance-specific
    • 下载:客户机从服务器下载文件,源文件不存在则返回错误,目标文件不存在则创建

设备管理接口类(class_id=19)

设备管理接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 设备描述符 (static) visible-string
3. 版本信息 (static) structure
4. 生产日期 (static) date_time_s
5. 子设备列表 (static) array
6. 支持规约列表 (static) array
7. 允许跟随上报 (static) bool
8. 允许主动上报 (static) bool
9. 允许与主站通话 (static) bool
10. 上报通道 (static) array
方法 必选/可选
1. 复位 必选
2. 执行 可选
3. 数据初始化 必选
4. 恢复出厂参数 必选
5. 事件初始化 必选
6. 需量初始化 可选

设备管理接口类属性说明

编号 属性 说明
1 逻辑名 标记接口类对象实例,使用 OI
2 设备描述符 visible-string
3 版本信息 版本信息∷=structure
{
 厂 商 代 码 visible-string(SIZE (4)),
 软件版本号 visible-string(SIZE (4)),
 软件版本日期 visible-string(SIZE (6)),
 硬件版本号 visible-string(SIZE (4)),
 硬件版本日期 visible-string(SIZE (6)),
 厂家扩展信息 visible-string(SIZE (8))
}
4 生产日期 设备的出厂日期,数据格式 date_time_s
5 子设备列表 array OI,包含设备自身的子模块信息
6 支持规约列表 设备支持的规约列表,数据格式 array visible-string
7 允许跟随上报 True:允许跟随上报,False:禁止跟随上报
8 允许主动上报 True:允许主动上报,False:禁止主动上报
9 允许与主站通话 True:允许通话,False:禁止通话
10 上报通道 array OAD

设备管理接口类方法说明

编号 方法 说明
1 复位(参数) 参数∷=NULL 设备复位重启,参数 NULL
2 执行(参数) 参数∷=Data 通用方法,instance-specific
3 数据初始化(参数) 参数∷=NULL 清空设备数据区
4 恢复出厂参数(参数) 参数∷=array OAD 将设备的配置恢复到出厂设置 参数定义的 OAD 列表,保持现状,不在恢复之列
5 事件初始化(参数) 参数∷=NULL 清空所有事件存储区
6 需量初始化(参数) 参数∷=NULL 当前需量对象清零

应用连接接口类(class_id=20)

应用连接接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 对象列表 (static) array
3. 应用语境信息 (static) structure
4. 当前连接的客户机地址 (dyn.) unsigned
5. 身份验证机制 (static) enum
方法 必选/可选
1. 复位 可选
2. 执行 可选

应用连接接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 对象列表∷=array 一个可访问对象

    • 一个可访问对象∷=structure
      {
       对象标识 OI,
       访问权限 structure
      }
    • 访问权限∷=structure
      {
       属性访问权限 array 一个属性访问权限,
       方法访问权限 array 一个方法访问权限
      }
    • 一个属性访问权限∷=structure
      {
       属性 IDunsigned,
       属性访问权限类别 enum
       {
        不可访问(0),
        只读(1),
        只写(2),
        可读写(3)
       }
      }
    • 一个方法访问权限∷=structure
      {
       方法 IDunsigned,
       方法访问权限 bool
      }
    • 包含对象所有可访问对象以及该对象属性和方法的访问权限
  1. 应用语境信息∷=structure
    {
     协议版本信息 long-unsigned,
     最大接收 APDU 尺寸 long-unsigned,
     最大发送 APDU 尺寸 long-unsigned,
     最大可处理 APDU 尺寸 long-unsigned,
     协议一致性块 bit-string(64),
     功能一致性块 bit-string(128),
     静态超时时间 double-long-unsigned
    }

  2. 当前连接的客户机地址∷=unsigned

  3. 连接认证机制∷=enum
    {
     公共连接 (0),
     普通密码 (1),
     对称加密 (2),
     数字签名 (3)
    }

应用连接接口类方法说明

编号 方法 说明
1 复位(参数)
参数∷=integer(0)
通用方法,instance-specific
2 执行(参数)
参数∷=Data
通用方法,instance-specific

ESAM 接口类(class_id=21)

ESAM 接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. ESAM 序列号 (static) octet-string
3. ESAM 版本号 (static) octet-string
4. 对称密钥版本 (static) octet-string
5. 会话时效门限 (static) double-long-unsigned
6. 会话时效剩余时间 (dyn.) double-long-unsigned
7. 当前计数器 (static) structure
8. 证书版本 (static) structure
9. 终端证书序列号 (static) octet-string
10. 终端证书 (static) octet-string
11. 主站证书序列号 (static) octet-string
12. 主站证书 (static) octet-string
13. ESAM 安全存储对象列表 (static) array
14. 红外认证时效门限 (static) double-long-unsigned
15. 红外认证剩余时间 (dyn.) double-long-unsigned
方法 必选/可选
1. 复位 可选
2. 执行 可选
3. ESAM 数据读取 可选
4. 数据更新 可选
5. 协商失效 可选
6. 钱包操作(开户、充值、退费) 可选
7. 密钥更新 可选
8. 证书更新 可选
9. 设置协商时效 可选
10. 钱包初始化 可选
11. 红外认证请求 可选
12. 红外认证指令 可选

ESAM接口类属性说明

编号 属性 说明
1 逻辑名 标记接口类对象实例,使用 OI
2 ESAM 序列号 ESAM 唯一的标识,是一串数字
3 ESAM 版本号 ESAM 的版本号
4 对称密钥版本 ESAM 中对称密钥的版本号
5 会话时效门限 double-long-unsigned,单位:分钟
6 会话时效剩余时间 double-long-unsigned,单位:分钟
7 当前计数器 structure
{
 单地址应用协商计数器 double-long-unsigned,
 主动上报计数器 double-long-unsigned,
 应用广播通信序列号 double-long-unsigned
}
8 证书版本 structure
{
 终端证书版本 octet-string,
 主站证书版本 octet-string
}
9 终端证书序列号 octet-string
10 终端证书 octet-string
11 主站证书序列号 octet-string
12 主站证书 主站带 MAC 下发,同主站证书一起下发(后 4 个字节为 mac)
13 ESAM 安全存储对象列表 需要存储到 ESAM 中的对象 ESAM
安全存储对象列表∷=array OAD
14 红外认证时效门限 double-long-unsigned,单位:分钟
15 红外认证剩余时间 double-long-unsigned,单位:分钟

ESAM接口类方法说明

  1. 复位(参数)

    • 参数∷=integer(0)
    • 通用方法,instance-specific
  2. 执行(参数)

    • 参数∷=Data
    • 通用方法,instance-specific
  3. ESAM 数据读取(参数)

    • 参数∷=SID
      • 应答∷=octet-string
    • 对 ESAM 数据的操作,电能表透传给 ESAM
  4. 数据更新(参数)

    • 参数∷=structure
      {
       参数内容octet-string,
       数据验证码 SID_MAC
      }
    • 数据、数据 MAC 先发给 ESAM 验证,验证成功后,再设置到终端、电能表中
    • 参数内容格式定义:4 字节 OAD + 1 字节内容 LEN + 内容(见 ESAM 文件结构)
  5. 协商失效(参数)

    • 参数∷=NULL
      • 应答∷=当前日期时间date_time_s
  6. 钱包操作(参数)

    • 参数∷=structure
      {
       操作类型integer,
       购电金额 double-long-unsigned,
       购电次数 double-long-unsigned,
       户 号 octet-string,
       数据验证码 SID_MAC,
       表号octet-string
      }
    • 操作类型:
      • 0—开户
      • 1—充值
      • 2-退费
    • 开户时,不需要验证客户编号,直接将客户编号写到 ESAM 的对应文件中;再进行充值操作
  7. 密钥更新(参数)

    • 参数∷=structure
      {
       密钥密文octet-string,
       数据验证码 SID_MAC
      }
  8. 证书更新(参数)

    • 参数∷=structure
      {
       证书内容 octet-string,
       安全标识 SID
      }
  9. 设置协商时效(参数)

    • 参数∷=structure
      {
       参数内容 octet-string,
       安全标识 SID
      }
  10. 钱包初始化(参数)

  • 参数∷=structure
    {
     预置金额double-long-unsigned,
     数据验证码 SID_MAC
    }
  1. 红外认证请求(参数)

    • 参数∷=RN(随机数 1)
    • 应答∷=structure
      {
       表号octet-string,
       ESAM 序 列 号 octet-string,
       随机数 1 密文 octet-string,
       随机数 2 RN
      }
  2. 红外认证指令(参数)

    • 参数∷=随机数 2 密文 octet-string

输入输出设备接口类(class_id=22)

输入输出设备接口类 0„n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 设备对象列表 (static) array
3. 设备对象数量 (static) unsigned
4. 配置参数 (static) instance-specific
方法 必选/可选
1. 复位 可选
2. 执行 可选

输入输出设备接口类的属性描述

编号 属性 说明
1 逻辑名 标记接口类对象实例
2 设备对象列表 输入输出设备对象列表,具体内容由对象实例决定
3 设备对象数量 当前设备对象数量
4 配置参数 具体内容由对象实例决定

输入输出设备接口类的方法描述

编号 方法 说明
1 复位(参数)
参数∷=bit-string
通用方法,instance-specific
2 执行(参数)
参数∷=Data
通用方法,instance-specific

总加组接口类(class_id=23)

注:总加组 group total——指相关的各测量点的某一同类电气量值按设置的加或减运算关系计算得到的数值。

总加组接口类 0„n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 总加配置表 (static) array
3. 总加有功功率 (dyn.) long64
4. 总加无功功率 (dyn.) long64
5. 总加滑差时间内平均有功功率 (dyn.) long64
6. 总加滑差时间内平均无功功率 (dyn.) long64
7. 总加日有功电量 (dyn.) array
8. 总加日无功电量 (dyn.) array
9. 总加月有功电量 (dyn.) array
10. 总加月无功电量 (dyn.) array
11. 总加剩余电量(费) (dyn.) long64
12. 当前功率下浮控控后总加有功功率冻结值 (dyn.) long64
13. 总加组滑差时间周期 (static) unsigned
14. 总加组功控轮次配置 (static) bit-string
15. 总加组电控轮次配置 (static) bit-string
16. 总加组控制设置状态 (dyn.) structure
17. 总加组当前控制状态 (dyn.) structure
18. 换算及单位 (static) structure
方法 必选/可选
1. 清空总加配置单元 必选
2. 执行 可选
3. 添加一个总加配置单元 可选
4. 批量添加总加配置单元 可选
5. 删除一个总加配置单元 可选

总加组接口类的属性描述

  1. 逻辑名

    • 标记接口类对象实例,使用 OI
  2. 总加配置表

    • 总加配置表∷=array 总加组配置单元
    • 总加组配置单元∷=structure
      {
       参与总加的分路通信地址 TSA,
       总加标志enum{正向(0),反向(1)},
       运算符标志enum{加(0),减(1)}
      }
    1. 总加有功功率∷=long64

    2. 总加无功功率∷=long64

    3. 总加滑差时间内平均有功功率∷=long64

    4. 总加滑差时间内平均无功功率∷=long64

  3. 总加日有功电量∷=array 电能量

    • 电能量∷=long64
    • 包含总及 n 个费率的电能量,规定其第一个数组元素是总电能量,
      后面依次排列费率 1…n 电能量
  4. 总加日无功电量∷=array 电能量

    • 电能量∷=long64
    • 包含总及 n 个费率的电能量,规定其第一个数组元素是总电能量,
      后面依次排列费率 1…n 电能量
  5. 总加月有功电量∷=array 电能量

    • 电能量∷=long64
    • 包含总及 n 个费率的电能量,规定其第一个数组元素是总电能量,
      后面依次排列费率 1…n 电能量
  6. 总加月无功电量∷=array 电能量

    • 电能量∷=long64
    • 包含总及 n 个费率的电能量,规定其第一个数组元素是总电能量,
      后面依次排列费率 1…n 电能量
    1. 总加剩余电量(费)∷=long64

    2. 当前功率下浮控控后总加有功功率冻结值∷=long64

  7. 总加组滑差时间周期

    • unsigned(单位:分)
  8. 总加组功控轮次配置

    • 功控轮次标识位∷=bit-string(SIZE(8))
    • 功控轮次标识位:bit0…bit7 按顺序对位表示第 1…第 8 轮次开关的受控设置
      • 置“1”表示该轮次开关受控
      • 置“0”表示不受控
  9. 总加组电控轮次配置

    • 功控轮次标识位∷=bit-string(SIZE(8))
    • 功控轮次标识位:bit0…bit7 按顺序对位表示第 1…第 8 轮次开关的受控设置
      • 置“1”表示该轮次开关受控
      • 置“0”表示不受控
  10. 总加组控制设置状态

  • 总加组控制设置状态∷=structure
    {
    时段控定值方案号unsigned,
    功控时段有效标志位 bit-string(SIZE(8)),
    功控状态PCState,
    电控状态ECState,
    功控轮次状态TrunState,
    电控轮次状态TrunState
    }
  • 时段控定值方案号:表示所投入的功控定值方案号
  • 功控时段有效标志位:bit0…bit7 按顺序对位表示 1…8 时段控投入的有效时段
    • 置“1”:有效
    • 置“0”:无效
  • PCState∷=bit-string(SIZE(8))
    • bit0…bit7 按顺序对位表示;置“1”:投入,置“0”:解除
    • bit0:时段控
    • bit1:厂休控
    • bit2:营业报停控
    • bit3:当前功率下浮控
    • bit4…bit7:备用
  • ECState∷=bit-string(SIZE(8))
    • bit0…bit7 按顺序对位表示;置“1”:投入,置“0”:解除
    • bit0:月电控
    • bit1:购电控
    • bit2…bit7:备用
  • TrunState∷=bit-string(SIZE(8))
    • bit0…bit7 按顺序对位表示 1…8 轮次开关的受控状态;置“1”:受控,置“0”:不受控。
  1. 总加组当前控制状态

    • 当前控制状态∷=structure
      {
       当前功控定值long64(单位:W 换算:-1),
       当前功率下浮控浮动系数integer(单位:%),
       功控跳闸输出状态 OutputState,
       月电控跳闸输出状态 OutputState,
       购电控跳闸输出状态 OutputState,
       功控越限告警状态 PCAlarmState,
       电控越限告警状态 ECAlarmState
      }
    • OutputState∷=bit-string(SIZE(8))
      • bit0…bit7 分别表示终端 1…8 轮次跳闸输出状态
      • 置“1”:处于跳闸状态
      • 置“0”:未处于跳闸状态
    • PCAlarmState∷=bit-string(SIZE(8))
      • 按顺序对位表示
      • 置“1”:处于某种功控越限告警状态
      • 置“0”:未处于相应状态
      • bit0: 时段控
      • bit1: 厂休控
      • bit2:营业报停控
      • bit3:当前功率下浮控
      • bit4…bit7:备用
    • ECAlarmState∷=bit-string(SIZE(8))
      • 置“1”:处于某种电控越限告警状态
      • 置“0”:未处于相应状态
      • bit0:月电控
      • bit1:购电控
      • bit2…bit7:备用
  2. 换算及单位∷=structure
    {
     属性 3 单位换算 Scaler_Unit,
     属性 4 单位换算 Scaler_Unit,
     属性 5 单位换算 Scaler_Unit,
     属性 6 单位换算 Scaler_Unit,
     属性 7 单位换算 Scaler_Unit,
     属性 8 单位换算 Scaler_Unit,
     属性 9 单位换算 Scaler_Unit,
     属性 10 单位换算 Scaler_Unit,
     属性 11 单位换算 Scaler_Unit,
     属性 12 单位换算 Scaler_Unit
    }

    • 属性 3 单位换算∷=单位:W,换算:-1
    • 属性 4 单位换算∷=单位:var,换算:-1
    • 属性 5 单位换算∷=单位:W,换算:-1
    • 属性 6 单位换算∷=单位:var,换算:-1
    • 属性 7 单位换算∷=单位:kWh,换算:-4
    • 属性 8 单位换算∷=单位:kvarh,换算:-4
    • 属性 9 单位换算∷=单位:kWh,换算:-4
    • 属性 10 单位换算∷=单位:kvarh,换算:-4
    • 属性 11 单位换算∷=单位:kWh/元,换算:-4
    • 属性 12 单位换算∷=单位:W,换算:-1

总加组接口类的方法描述

编号 方法 说明
1 清空总加配置表(参数)
参数∷=NULL
清空总加配置表
2 执行(参数)
参数∷=Data
通用方法,instance-specific
3 添加一个总加配置单元(参数)
参数∷=总加配置单元
在总加配置表中添加一个总加配置单元
4 批量添加总加配置单元(参数)
参数∷=array 总加配置单元
在总加配置表中添加若干个总加配置单元
5 删除一个总加配置单元(参数)
参数∷=参与总加的分路通信地址 TSA
删除总加配置表中的一个总加配置单元

分项事件对象接口类(class_id=24)

本接口类对象提供配置、存储分项事件记录类信息。

分项事件对象接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 关联对象属性表 (static) array
3. 当前记录数 (dyn.) structure
4. 最大记录数 (static) long-unsigned
5. 配置参数 (static) structure
6. 事件记录表 1 (dyn.) array
7. 事件记录表 2 (dyn.) array
8. 事件记录表 3 (dyn.) array
9. 事件记录表 4 (dyn.) array
10. 当前值记录表 (dyn.) array
11. 上报标识 (static) enum
12. 有效标识 (static) bool
14. 时间状态记录表 (dyn.) array
方法 必选/可选
1. 复位 可选
2. 执行 可选
4. 添加一个事件关联对象属性 可选
5. 删除一个事件关联对象属性 可选

分项事件对象接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 关联对象属性表∷=array 一个关联的对象属性

    • 一个关联的对象属性∷=OAD
    • 规定生成事件记录时所要关联的 n 个对象属性,这些对象属性的数值将被复制到事件类对象的事件记录中
    • 事件关联特征分为四种:事件发生前、事件发生后、事件结束前、事件结束后,由 OAD 的“属性标识”的“属性特征”的值来区分并表示
    • 属性特征:
      • 1:事件发生前
      • 2:事件发生后
      • 3:事件结束前
      • 4:事件结束后
  3. 当前记录数∷=structure
    {
     记录表 1 当前记录数 long-unsigned,
     记录表 2 当前记录数 long-unsigned,
     记录表 3 当前记录数 long-unsigned,
     记录表 4 当前记录数 long-unsigned,
    }

    • 表示保存在事件记录表中的记录数
    • 调用方法“复位”后,记录表中不包含任何记录,此时当前记录数为零
    • 在每次事件发生执行记录操作后,当前记录数加 1,直到记录数等于最大记录数
  4. 最大记录数

    • 规定事件记录表所允许存放的最多的记录个数,此值大小受物理空间限制
  5. 配置参数∷=structure
    {
     参数 1 instance-specific,
     …
     参数 n instance-specific
    }

    • 用于配置触发事件记录的判定参数
    • 参数的数据类型依据“逻辑名”决定的对象实例而定义。见附录 A.4
  6. 事件记录表 1∷=array 分项事件记录单元
    分项事件记录单元∷=structure
    {
     事件记录序号 double-long-unsigned,
     事件发生时间 date_time_s,
     事件结束时间 date_time_s,
     事件上报状态 array 通道上报状态,
     第 1 个关联对象属性的数据 Data,
     …
     第 n 个关联对象属性的数据 Data
    }

    • 用于存储事件记录,记录根据“触发事件配置参数”自动产生或执行“触发一次记录”而来
    • 记录的顺序按照事件发生的次序排序,最近发生的事件记录在前,即固定按照事件序号的倒序进行排序
    • 缺省值:复位后事件记录表为空
    • 事件记录序号——单调递增
    • 事件上报状态——见「事件对象接口类属性说明」小节
    • 关联对象属性的数据——其排列次序和个数 n,由本对象的属性 2 决定
    • 对应总或第一象限相关事件记录表
  7. 事件记录表 2∷=array 分项事件记录单元

    • 对应 A 相或第二象限相关事件记录表
  8. 事件记录表 3∷=array 分项事件记录单元

    • 对应 B 相或第三象限相关事件记录表
  9. 事件记录表 4∷=array 分项事件记录单元

    • 对应 C 相或第四象限相关事件记录表
  10. 当前值记录表∷=array structure
    {
     事件发生次数 double-long-unsigned,
     事件累计时间 double-long-unsigned,
    }

  • 包含事件发生的次数以及累计时间
  • 事件发生次数——单位:次
  • 事件累计时间——单位:秒
  • 数组元素按顺序对应事件记录表
    • 1、事件记录表 2
    • 2、事件记录表 3
    • 3、事件记录表 4
    • 如无该记录表,则该元素为 NULL
  1. 上报标识∷=enum
    {
     不上报(0),
     事件发生上报(1),
     事件恢复上报(2),
     事件发生恢复均上报(3)
    }

  2. 有效标识∷=bool

  3. 时间状态记录表∷=array structure
    {
     最近一次发生时间 datetime_s,
     最近一次结束时间 datetime_s
    }

    • 最近一次发生时间
      • 取上 1 次事件的发生时间
      • 如果未发生返回 NULL
    • 最近一次结束时间
      • 上 1 次事件未结束,则取上 2 次事件的结束时间
      • 不存在上 2 次事件,则返回 NULL
      • 结束时间不支持,则返回 NULL

分项事件对象接口类方法说明

编号 方法 说明
1 复位(参数)
参数∷=integer(0)
通用方法,instance-specific
2 执行(参数)
参数∷=Data
通用方法,instance-specific
4 添加一个事件关联对象属性(参数)
参数∷=OAD 对象属性描述符
在属性“关联对象属性表”中,增加一个关联对象属性
参数——对象属性描述符
5 删除一个事件关联对象属性(参数)
参数∷=OAD 对象属性描述符
在属性“关联对象属性表”中,删除一个关联对象属性
参数——对象属性描述符

无线公网通信接口类(class_id=25)

无线公网通信接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 通信配置 (static) structure
3. 主站通信参数表 (static) array
4. 短信通信参数 (static) structure
5. 版本信息 (static) structure
6. 支持规约列表 (static) array
7. SIM 卡的 ICCID (static) visible-string(SIZE(20))
8. IMSI (static) visible-string(SIZE(15))
9. 信号强度 (dyn) long,单位:dBm
10. SIM 卡号码 (dyn.) visible-string(SIZE(16))
11. 拨号 IP (dyn) octet-string
方法 必选/可选
1. 复位 可选

无线公网通信接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 通信配置
    通信配置∷=structure
    {
     工作模式 enum{混合模式(0),客户机模式(1),服务器模式(2)},
     在线方式 enum{永久在线(0),被动激活(1)},
     连接方式 enum{TCP(0),UDP(1)},
     连接应用方式 enum{主备模式(0),多连接模式(1)},
     侦听端口列表 array long-unsigned,
     APN visible-string,
     用户名 visible-string,
     密码 visible-string,
     代理服务器地址 octet-string,
     代理端口 long-unsigned,
     超时时间及重发次数 unsigned
     (
      bit7…bit2:超时时间(秒),
      bit1…bit0:重发次数
     ),
     心跳周期(秒) long-unsigned
    }

  3. 主站通信参数表
    主站通信参数表∷=array 主站通信参数
    主站通信参数∷==structure
    {
     IP 地址 octet-string,
     端口 long-unsigned
    }

  4. 短信通信参数
    短信通信参数∷==structure
    {
     短信中心号码 visible-string(SIZE(16)),
     主站号码 array visible-string(SIZE(16)),
     短信通知目的号码 array visible-string(SIZE(16))
    }

  5. 版本信息
    版本信息∷=structure
    {
     厂 商 代 码 visible-string(SIZE (4)),
     软件版本号 visible-string(SIZE (4)),
     软件版本日期 visible-string(SIZE (6)),
     硬件版本号 visible-string(SIZE (4)),
     硬件版本日期 visible-string(SIZE (6)),
     厂家扩展信息 visible-string(SIZE (8))
    }

  6. 支持规约列表
    设备支持的规约列表,数据格式 array visible-string

  7. SIM 卡的 ICCID
    visible-string(SIZE(20))

  8. IMSI
    visible-string(SIZE(15))

  9. 信号强度
    long,单位:dBm

  10. SIM 卡号码
    visible-string(SIZE(16))

  11. 拨号 IP
    octet-string

无线公网通信接口类方法说明

编号 方法 说明
1 复位(参数)
参数∷=NULL
设备复位重启,参数 ULL

以太网通信接口类(class_id=26)

以太网通信接口类 0…n
属性 数据类型
1. 逻辑名 (static) octet-string
2. 通信配置 (static) structure
3. 主站通信参数表 (static) array
4. 终端 IP (static) structure
5. MAC 地址 (static) octet-string
方法 必选/可选
1. 复位 可选

以太网通信接口类属性说明

  1. 逻辑名:标记接口类对象实例,使用 OI

  2. 通信配置∷=structure
    {
     工作模式 enum{混合模式(0),客户机模式(1),服务器模式(2)},
     连接方式 enum{TCP(0),UDP(1)},
     连接应用方式 enum{主备模式(0),多连接模式(1)}
     侦听端口列表 array long-unsigned,
     代理服务器地址 octet-string,
     代理端口 long-unsigned,
     超时时间及重发次数 unsigned
     (
      bit7…bit2:超时时间(秒),
      bit1…bit0:重发次数
     ),
    心跳周期(秒) long-unsigned
    }

    • 连接应用方式:
      • 主备模式: 按主站通信参数表次序依次连接主站,只连接一个主站
      • 多连接模式:按照主站通信参数同时连接多个主站
  3. 主站通信参数表∷=array 主站通信参数
    主站通信参数::=structure
    {
     IP 地址 octet-string,
     端口 long-unsigned
    }

  4. 网络配置∷=structure
    {
     IP 配置方式 enum{DHCP(0),静态(1),PPPoE(2)},
     IP 地址 octet-string,
     子网掩码 octet-string,
     网关地址 octet-string,
     PPPoE 用户名 visible-string,
     PPPoE 密码 visible-string
    }

    • IP 配置方式选择 DHCP 时,终端 IP 无需设置;动态获取的 IP 地址可以读取
  5. MAC 地址∷=octet-string

以太网通信接口类方法说明

编号 方法 说明
1 复位(参数)
参数∷=NULL
设备复位重启,参数 ULL

对象标识

对象标识格式定义

对象标识(OI)由两字节组成,采用分类编码的方式为系统的各个对象提供标识码。对象标识的编码用十六进制数表示。凡未定义的对象标识编码皆作为保留。

第 1 字节 第 1 字节 第 2 字节 第 2 字节
OIA1 OIA2 OIB1 OIB2

电能量类对象标识

OIA1 OIA2 OIB1 OIB2
0H:电能量 0H:总 0H:组合有功 0H:合相
1H:基波 1H:正向有功 1H:A 相
2H:谐波 2H:反向有功 2H:B 相
3H:组合无功 1 3H:C 相
4H:组合无功 2
5H:第一象限
6H:第二象限
7H:第三象限
8H:第四象限
9H:正向视在
AH:反向视在
3H:铜损 0H:总有功
4H:铁损
5H:关联

最大需量类对象标识

OIA1 OIA2 OIB1 OIB2
1H:需量 0H:当前 0H:组合有功 0H:合相
1H:冻结周期内 1H:正向有功 1H:A 相
2H:反向有功 2H:B 相
3H:组合无功 1 3H:C 相
4H:组合无功 2
5H:第一象限
6H:第二象限
7H:第三象限
8H:第四象限
9H:正向视在
AH:反向视在

变量类对象标识

OIA1 OIA2 OIB
2H:变量 0H:计量 00H:电压
01H:电流
02H:电压相角
03H:电压电流相角
04H:有功功率
05H:无功功率
06H:视在功率
07H:一分钟平均有功功率
08H:一分钟平均无功功率
09H:一分钟平均视在功率
0AH:功率因数
0BH:电压波形失真度
0CH:电流波形失真度
0DH:电压谐波含有量(总及 2…n 次)
0EH:电流谐波含有量(总及 2…n 次)
0FH:电网频率
10H:表内温度
11H:时钟电池电压
12H:停电抄表电池电压
13H:时钟电池工作时间
14H:电能表运行状态字
17H:当前有功需量
18H:当前无功需量
19H:当前视在需量
1AH:当前电价
1BH:当前费率电价
1CH:当前阶梯电价
1EH:事件发生时间
20H:事件结束时间
21H:数据冻结时间
22H:事件记录序号
23H:冻结记录序号
24H:事件发生源
25H:事件当前值
26H:电压不平衡率
27H:电流不平衡率
28H:负载率
29H:安时值
2AH:目标服务器地址
2CH:(当前)钱包文件
2DH:(当前)透支金额
2EH:累计购电金额
31H:月度用电量
32H:阶梯结算用电量
40H:控制命令执行状态字
41H:控制命令错误状态字
1H:统计 00H:分钟区间统计
01H:小时区间统计
02H:日区间统计
03H:月区间统计
04H:年区间统计
10H:分钟平均
11H:小时平均
12H:日平均
13H:月平均
14H:年平均
20H:分钟极值
21H:小时极值
22H:日极值
23H:月极值
24H:年极值
31H:A 相电压合格率
32H:B 相电压合格率
33H:C 相电压合格率
40H:日最大有功功率及发生时间
41H:月最大有功功率及发生时间
2H:采集 00H:通信流量
03H:供电时间
04H:复位次数
3H:总加组 01H:总加组 1
02H:总加组 2
03H:总加组 3
04H:总加组 4
05H:总加组 5
06H:总加组 6
07H:总加组 7
08H:总加组 8
4H:脉冲计量 01H:脉冲计量点 1
02H:脉冲计量点 2
03H:脉冲计量点 3
04H:脉冲计量点 4
05H:脉冲计量点 5
06H:脉冲计量点 6
07H:脉冲计量点 7
08H:脉冲计量点 8
5H:水气热 00H:累计水(热)流量
01H:累计气流量
02H:累计热量
03H:热功率
04H:累计工作时间
05H:水温
06H:(仪表)状态 ST

事件类对象标识

OIA1 OIA2 OIB
3H:事件 0H:电能表 00H:失压
01H:欠压
02H:过压
03H:断相
04H:失流
05H:过流
06H:断流
07H:功率反向
08H:过载
09H:正向有功需量超限
0AH:反向有功需量超限
0BH:无功需量超限
0CH:功率因数超下限
0DH:全失压
0EH:辅助电源掉电
0FH:电压逆相序
10H:电流逆相序
11H:掉电
12H:编程
13H:清零
14H:需量清零
15H:事件清零
16H:校时
17H:时段表编程
18H:时区表编程
19H:周休日编程
1AH:结算日编程
1BH:开盖
1CH:开端钮盒
1DH:电压不平衡
1EH:电流不平衡
1FH:跳闸
20H:合闸
21H:节假日编程
22H:有功组合方式编程
23H:无功组合方式编程
24H:费率参数表编程
25H:阶梯表编程
26H:密钥更新
27H:异常插卡
28H:购电记录
29H:退费记录
2AH:恒定磁场干扰记录
2BH:负荷开关误动作
2CH:电源异常
2DH:电流严重不平衡
2EH:时钟故障
2FH:计量芯片故障
30H:通信模块变更事件
1H:采集 00H:终端初始化
01H:终端版本变更
04H:状态量变位
05H:电能表时钟超差
06H:终端停/上电
07H:直流模拟量越上限
08H:直流模拟量越下限
09H:消息认证错误
0AH:设备故障记录
0BH:电能表示度下降
0CH:电能量超差
0DH:电能表飞走
0EH:电能表停走
0FH:抄表失败
10H:月通信流量超限
11H:发现未知电能表
12H:跨台区电能表事件
14H:终端对时事件
15H:遥控跳闸记录
16H:有功总电能量差动越限事件记录
17H:输出回路开关接入状态变位记录
18H:终端编程记录
19H:终端电流回路异常事件
1AH:电能表在网状态切换事件
1BH:终端对电表校时记录
1CH:电能表数据变更监控记录
2H:总加组 00H:功控跳闸记录
01H:电控跳闸记录
02H:购电参数设置记录
03H:电控告警事件记录
3H:通用 00H:事件上报状态
01H:标准事件记录单元
02H:编程记录事件单元
03H:发现未知电能表事件单元
04H:跨台区电能表事件单元
05H:功控跳闸记录单元
06H:电控跳闸记录单元
07H:电控告警事件单元
08H:电能表需量超限事件单元
09H:停上电事件单元
0AH:遥控事件记录单元
0BH:有功总电能量差动越限事件记录单元
0CH:事件清零事件记录单元
0DH:终端对电表校时记录单元
0EH:电能表在网状态切换事件单元
0FH:电能表数据变更监控记录单元
10H:电能表异常插卡记录单元
11H:退费事件记录单元
13H:电能表时钟超差记录单元对象
14H:电能表时段表编程事件记录单元
15H:电能表节假日编程事件记录单元
20H:新增事件列表

参变量类对象标识

OIA1 OIA2 OIB
4H:参变量 0H:通用 00H:日期时间
01H:通信地址
02H:表号
03H:客户编号
04H:设备地理位置
05H:组地址O6H:时钟源
07H:LCD 参数
08H:两套时区表切换时间
09H:两套日时段表切换时间
0AH:两套分时费率切换时间
0BH:两套阶梯电价切换时间
0CH:时区时段数
0DH:阶梯数
0EH:谐波分析次数
0FH:密钥总条数
10H:计量原件数
11H:公共假日
12H:周休日特征字
13H:周休日采用的日时段表号
14H:当前套时区表
15H:备用套时区表
16H:当前套日时段表
17H:备用套日时段表
18H:当前套费率电价
19H:备用套费率电价
1AH:当前套阶梯电价
1BH:备用套阶梯电价
1CH:电流互感器变比
1DH:电压互感器变比
1EH:报警金额限值
1FH:其它金额限值
20H:报警电量限值
21H:其它电量限值
22H:插卡状态字
24H:剔除
25H:采集器远程升级结果表
26H:采集器升级结果
30H:电压合格率参数
1H:计量 00H:最大需量周期
01H:滑差时间
02H:校表脉冲宽度
03H:资产管理编码
04H:额定电压
05H:额定电流/基本电流
06H:最大电流
07H:有功准确度等级
08H:无功准确度等级
09H:电能表有功常数
0AH:电能表无功常数
0BH:电能表型号
0CH:ABC 各相电导系数
0DH:ABC 各相电抗系数
0EH:ABC 各相电阻系数
0FH:ABC 各相电纳系数
11H:软件备案号
12H:有功组合方式特征字
13H:无功组合方式 1 特征字
14H:无功组合方式 2 特征字
16H:结算日
17H:期间需量冻结周期
2H:采集 02H:级联通信数据
04H:终端广播校时时间
3H:设备 00H:电气设备
07H:水表
08H:气表
09H:热表
4H:应用连接 00H:应用连接
01H:应用连接认证密码
5H:远程通信模块 00H:公网远程通信模块 1
01H:公网远程通信模块 2
10H:以太网通信模块 1
11H:以太网通信模块 2
12H:以太网通信模块 3
13H:以太网通信模块 4
14H:以太网通信模块 5
15H:以太网通信模块 6
16H:以太网通信模块 7
17H:以太网通信模块 8
20H:公网远程通信备用通道

冻结类对象标识

OIA1 OIA2 OIB
5H:冻结 0H:通用 00H:瞬时冻结
01H:秒冻结
02H:分钟冻结
03H:小时冻结
04H:日冻结
05H:结算日冻结
06H:月冻结
07H:年冻结
08H:时区表切换冻结
09H:日时段表切换冻结
0AH:费率电价切换冻结
0BH:阶梯切换冻结
11H:阶梯结算冻结

采集监控类对象标识

OIA1 OIA2 OIB
6H:采集监控 0H:终端 00H:采集档案配置表
01H:采集档案配置单元
02H:搜表
03H:一个搜表结果
04H:一个跨台区结果
12H:任务配置表
13H:任务配置单元
14H:普通采集方案集合
15H:普通采集方案
16H:事件采集方案集合
17H:事件采集方案
18H:透明方案集合
19H:透明方案
1AH:透明方案结果集
1BH:一个透明方案结果
1CH:上报方案集合
1DH:上报方案
1EH:采集规则库
1FH:采集规则
32H:采集状态集
33H:一个采集状态
34H:采集任务监控集
35H:采集任务监控单元
40H:采集启动时标
41H:采集成功时标
42H:采集存储时标

集合类对象标识

OIA1 OIA2 OIB
7H:集合 0H:通用 00H:文件集合
01H:文件
10H:脚本集合
11H:脚本
12H:脚本执行结果集
13H:一个脚本执行结果
1H:用户扩展 00:变量类集合
01:参变量集合

控制类对象标识

OIA1 OIA2 OIB
8H:控制 0H:通用 00H:远程控制
01H:保电
02H:催费告警
03H:一般中文信息
04H:重要中文信息
1H:终端 00H:终端保安定值
01H:终端功控时段
02H:功控轮次告警时间
03H:时段功控
04H:厂休控
05H:营业报停控
06H:当前功率下浮控
07H:购电控
08H:月电控
09H:时段功控配置单元
0AH:厂休控配置单元
0BH:营业报停控配置单元
0CH:购电控配置单元
0DH:月电控配置单元
0EH:控制对象
0FH:跳闸轮次
10H:电控定值

文件传输类对象标识

OIA1 OIA2 OIB
FH:其他 0H:文件传输 00H:分帧传输管理
01H:分块传输管理
02H:扩展传输管理

ESAM 接口类对象标

OIA1 OIA2 OIB
FH:其他 1H:安全 00H:ESAM
01H: 安全模式参数

输入输出设备接口类对象标识

OIA1 OIA2 OIB
FH:其他 2H:输入输出设备 00H:RS232
01H:RS485
02H:红外
03H:开关量输入
04H:直流模拟量
05H:继电器输出
06H:告警输出
07H:多功能端子
08H:交采接口
09H:载波/微功率无线接口
0AH:脉冲输入设备
0BH:蓝牙
0CH:230M 无线专网接口
10H:从节点单元

显示类对象标识

OIA1 OIA2 OIB
FH:其他 3H:显示 00H:自动轮显
01H: 按键轮显

厂家自定义对象

OIA1 OIA2 OIB1 OIB2
FH:其他 FH:厂家自定义

接口类管理

接口类标识划分

接口类标识码取值范围为1…255,其中:

  • 1…200:由国家电网公司定义
  • 201…220:留作制造商专属接口类
  • 221…255:保留

接口类维护

接口类不接受修订以及版本的替代,对现有接口类作任何修改之后,都必须创建一个新的接口类, 旧的接口类将不再使用但并不撤销,仅保持对旧版本的兼容。

创建接口类

每创建一个新接口类,都应进行存档。

撤销接口类

除应用连接对象外,任何其它接口类的对象并非都是必需的。因此,即使是未使用的接口类也不应从标准中撤消,应保留它们以确保与已有的可能实现相兼容。

附录 A(规范性附录)对象标识定义

A.1 电能量类对象

有关电能量类的对象标识定义见下表。

对象标识 OI 接口类 IC 对象名称 实例的对象属性及方法定义
0000 1 组合有功电能 电能量∷=double-long;单位:kWh,换算:-2
高精度电能量∷=long64;单位:kWh,换算:-4
0010 1 正向有功电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0011 1 A 相正向有功电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0012 1 B 相正向有功电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0013 1 C 相正向有功电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0020 1 反向有功电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0021 1 A 相反向有功电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0022 1 B 相反向有功电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0023 1 C 相反向有功电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0030 1 组合无功 1 电能 电能量∷=double-long;单位:kvarh,换算:-2
高精度电能量∷=long64;单位:kvarh,换算:-4
0031 1 A 相组合无功 1 电能 电能量∷=double-long;单位:kvarh,换算:-2
高精度电能量∷=long64;单位:kvarh,换算:-4
0032 1 B 相组合无功 1 电能 电能量∷=double-long;单位:kvarh,换算:-2
高精度电能量∷=long64;单位:kvarh,换算:-4
0033 1 C 相组合无功 1 电能 电能量∷=double-long;单位:kvarh,换算:-2
高精度电能量∷=long64;单位:kvarh,换算:-4
0040 1 组合无功 2 电能 电能量∷=double-long;单位:kvarh,换算:-2
高精度电能量∷=long64;单位:kvarh,换算:-4
0041 1 A 相组合无功 2 电能 电能量∷=double-long;单位:kvarh,换算:-2
高精度电能量∷=long64;单位:kvarh,换算:-4
0042 1 B 相组合无功 2 电能 电能量∷=double-long;单位:kvarh,换算:-2
高精度电能量∷=long64;单位:kvarh,换算:-4
0043 1 C 相组合无功 2 电能 电能量∷=double-long;单位:kvarh,换算:-2
高精度电能量∷=long64;单位:kvarh,换算:-4
0050 1 第一象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0051 1 A 相第一象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0052 1 B 相第一象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0053 1 C 相第一象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0060 1 第二象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0061 1 A 相第二象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0062 1 B 相第二象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0063 1 C 相第二象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0070 1 第三象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0071 1 A 相第三象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0072 1 B 相第三象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0073 1 C 相第三象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0080 1 第四象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0081 1 A 相第四象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0082 1 B 相第四象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0083 1 C 相第四象限无功电能 电能量∷=double-long-unsigned;单位:kvarh,换算:-2
高精度电能量∷=long64-unsigned;单位:kvarh,换算:-4
0090 1 正向视在电能 电能量∷=double-long-unsigned;单位:kVAh,换算:-2
高精度电能量∷=long64-unsigned;单位:kVAh,换算:-4
0091 1 A 相正向视在电能 电能量∷=double-long-unsigned;单位:kVAh,换算:-2
高精度电能量∷=long64-unsigned;单位:kVAh,换算:-4
0092 1 B 相正向视在电能 电能量∷=double-long-unsigned;单位:kVAh,换算:-2
高精度电能量∷=long64-unsigned;单位:kVAh,换算:-4
0093 1 C 相正向视在电能 电能量∷=double-long-unsigned;单位:kVAh,换算:-2
高精度电能量∷=long64-unsigned;单位:kVAh,换算:-4
00A0 1 反向视在电能 电能量∷=double-long-unsigned;单位:kVAh,换算:-2
高精度电能量∷=long64-unsigned;单位:kVAh,换算:-4
00A1 1 A 相反向视在电能 电能量∷=double-long-unsigned;单位:kVAh,换算:-2
高精度电能量∷=long64-unsigned;单位:kVAh,换算:-4
00A2 1 B 相反向视在电能 电能量∷=double-long-unsigned;单位:kVAh,换算:-2
高精度电能量∷=long64-unsigned;单位:kVAh,换算:-4
00A3 1 C 相反向视在电能 电能量∷=double-long-unsigned;单位:kVAh,换算:-2
高精度电能量∷=long64-unsigned;单位:kVAh,换算:-4
0110 1 正向有功基波总电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0111 1 A 相正向有功基波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0112 1 B 相正向有功基波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0113 1 C 相正向有功基波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0120 1 反向有功基波总电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0121 1 A 相反向有功基波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0122 1 B 相反向有功基波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0123 1 C 相反向有功基波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0210 1 正向有功谐波总电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0211 1 A 相正向有功谐波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0212 1 B 相正向有功谐波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0213 1 C 相正向有功谐波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0220 1 反向有功谐波总电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0221 1 A 相反向有功谐波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0222 1 B 相反向有功谐波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0223 1 C 相反向有功谐波电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0300 1 铜损有功总电能补偿量 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0301 1 A 相铜损有功电能补偿量 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0302 1 B 相铜损有功电能补偿量 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0303 1 C 相铜损有功电能补偿量 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0400 1 铁损有功总电能补偿量 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0401 1 A 相铁损有功电能补偿量 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0402 1 B 相铁损有功电能补偿量 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0403 1 C 相铁损有功电能补偿量 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0500 1 关联总电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0501 1 A 相关联电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0502 1 B 相关联电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4
0503 1 C 相关联电能 电能量∷=double-long-unsigned;单位:kWh,换算:-2
高精度电能量∷=long64-unsigned;单位:kWh,换算:-4

A.2 最大需量类对象

有关最大需量类的对象标识定义见下表

对象标识 OI 接口类 IC 对象名称 实例的对象属性及方法定义
1010 2 正向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1011 2 A 相正向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1012 2 B 相正向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1013 2 C 相正向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1020 2 反向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1021 2 A 相反向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1022 2 B 相反向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1023 2 C 相反向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1030 2 组合无功 1 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1031 2 A 相组合无功 1 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1032 2 B 相组合无功 1 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1033 2 C 相组合无功 1 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1040 2 组合无功 2 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1041 2 A 相组合无功 2 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1042 2 B 相组合无功 2 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1043 2 C 相组合无功 2 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1050 2 第一象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1051 2 A 相第一象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1052 2 B 相第一象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1053 2 C 相第一象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1060 2 第二象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1061 2 A 相第二象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1062 2 B 相第二象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1063 2 C 相第二象限最大需量 最大需量值∷=double-long-unsigned,单
位:kvar,换算:-4
1070 2 第三象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1071 2 A 相第三象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1072 2 B 相第三象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1073 2 C 相第三象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1080 2 第四象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1081 2 A 相第四象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1082 2 B 相第四象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1083 2 C 相第四象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1090 2 正向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
1091 2 A 相正向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
1092 2 B 相正向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
1093 2 C 相正向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
10A0 2 反向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
10A1 2 A 相反向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
10A2 2 B 相反向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
10A3 2 C 相反向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
1110 2 冻结周期内正向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1111 2 冻结周期内 A 相正向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1112 2 冻结周期内 B 相正向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1113 2 冻结周期内 C 相正向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1120 2 冻结周期内反向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1121 2 冻结周期内 A 相反向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1122 2 冻结周期内 B 相反向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1123 2 冻结周期内 C 相反向有功最大需量 最大需量值∷=double-long-unsigned
单位:kW,换算:-4
1130 2 冻结周期内组合无功 1 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1131 2 冻结周期内 A 相组合无功 1 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1132 2 冻结周期内 B 相组合无功 1 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1133 2 冻结周期内 C 相组合无功 1 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1140 2 冻结周期内组合无功 2 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1141 2 冻结周期内 A 相组合无功 2 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1142 2 冻结周期内 B 相组合无功 2 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1143 2 冻结周期内 C 相组合无功 2 最大需量 最大需量值∷=double-long
单位:kvar,换算:-4
1150 2 冻结周期内第一象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1151 2 冻结周期内 A 相第一象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1152 2 冻结周期内 B 相第一象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1153 2 冻结周期内 C 相第一象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1160 2 冻结周期内第二象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1161 2 冻结周期内 A 相第二象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1162 2 冻结周期内 B 相第二象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1163 2 冻结周期内 C 相第二象限最大需量 最大需量值∷=double-long-unsigned,单
位:kvar,换算:-4
1170 2 冻结周期内第三象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1171 2 冻结周期内 A 相第三象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1172 2 冻结周期内 B 相第三象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1173 2 冻结周期内 C 相第三象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1180 2 冻结周期内第四象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1181 2 冻结周期内 A 相第四象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1182 2 冻结周期内 B 相第四象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1183 2 冻结周期内 C 相第四象限最大需量 最大需量值∷=double-long-unsigned
单位:kvar,换算:-4
1190 2 冻结周期内正向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
1191 2 冻结周期内 A 相正向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
1192 2 冻结周期内 B 相正向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
1193 2 冻结周期内 C 相正向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
11A0 2 冻结周期内反向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
11A1 2 冻结周期内 A 相反向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
11A2 2 冻结周期内 B 相反向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4
11A3 2 冻结周期内 C 相反向视在最大需量 最大需量值∷=double-long-unsigned
单位:kVA,换算:-4

注:组合无功最大需量的正负数是用来标志潮流的方向,组合无功最大需量从参与组合无功电能运算的象限中抽取最大值,如果来自象限3、4,以负数上传。

A.3 变量类对象

有关变量类的对象标识定义见下表。

对象标识
OI
接口类
IC
对象名称 实例的对象属性及方法定义
2000 3 电压 数据类型:long-unsigned,单位:V,换算:-1
2001 3 电流 数据类型:double-long,单位:A,换算:-3
属性 4 零线电流∷=double-long, 单位:A,换算:-3
2002 3 电压相角 数据类型:long-unsigned,单位:度,换算:-1
2003 3 电压电流相角 数据类型:long-unsigned,单位:度,换算:-1
2004 4 有功功率 数据类型:double-long,单位:W,换算:-1
2005 4 无功功率 数据类型:double-long,单位:var,换算:-1
2006 4 视在功率 数据类型:double-long,单位:VA,换算:-1
2007 4 一分钟平均有功功率 数据类型:double-long,单位:W,换算:-1
2008 4 一分钟平均无功功率 数据类型:double-long,单位:var,换算:-1
2009 4 一分钟平均视在功率 数据类型:double-long,单位:VA,换算:-1
200A 4 功率因数 数据类型:long,单位:无,换算:-3
200B 3 电压波形失真度 数据类型:long,单位:%,换算:-2
200C 3 电流波形失真度 数据类型:long,单位:%,换算:-2
200D 5 电压谐波含有量(总及 2…n 次) 数据类型:long,单位:%,换算:-2
200E 5 电流谐波含有量(总及 2…n 次) 数据类型:long,单位:%,换算:-2
200F 6 电网频率 数据类型:long-unsigned,单位:Hz,换算:-2
2010 6 表内温度 数据类型:long,单位:℃,换算:-1
2011 6 时钟电池电压 数据类型:long-unsigned,单位:V,换算:-2
2012 6 停电抄表电池电压 数据类型:long-unsigned,单位:V,换算:-2
2013 6 时钟电池工作时间 数据类型:double-long-unsigned,单位:分钟,无换算
2014 6 电能表运行状态字 数据类型:array bit-string,无单位,无换算,包括电能
表运行状态字 1…7,见附录 G
2015 6 电能表跟随上报状态字 数据类型:bit-string(SIZE(32))[,无单位,无换算,见附录G
属性 4(电能表跟随上报模式字)∷= bit-string(SIZE(32))
方法 127(确认电能表跟随上报状态字)∷=
bit-string(SIZE(32))
2017 6 当前有功需量 数据类型:double-long,单位:kW,换算:-4
2018 6 当前无功需量 数据类型:double-long,单位:kvar,换算:-4
2019 6 当前视在需量 数据类型:double-long,单位:kVA,换算:-4
201A 6 当前电价 数据类型:double-long-unsigned,单位:元/kWh,换算:
-4
201B 6 当前费率电价 数据类型:double-long-unsigned,单位:元/kWh,换算:
-4
201C 6 当前阶梯电价 数据类型:double-long-unsigned,单位:元/kWh,换算: -4
201E 8 事件发生时间 数据类型:date_time_s
2020 8 事件结束时间 数据类型:date_time_s
2021 8 数据冻结时间 数据类型:date_time_s
2022 8 事件记录序号 数据类型:double-long-unsigned
2023 8 冻结记录序号 数据类型:double-long-unsigned
2024 8 事件发生源 具体对象定义。
2025 8 事件当前值 structure
{
 事件发生次数 double-long-unsigned,
 事件累计时间 double-long-unsigned(单位:秒,无换算)
}
2026 6 电压不平衡率 数据类型:long-unsigned,单位:%,换算:-2
2027 6 电流不平衡率 数据类型:long-unsigned,单位:%,换算:-2
2028 6 负载率 数据类型:long-unsigned,单位:%,换算:-2
2029 6 安时值 属性 2 安时数值∷=array 相安时值
相安时值∷=double-long-unsigned,单位:Ah,换算:-2
相安时值包总、A、B、C 相。
202A 8 目标服务器地址 属性 2∷=TSA
202C 8 (当前)钱包文件 数值∷=structure
{
 剩余金额 double-long-unsigned(单位:元,换算:-2),
 购电次数 double-long-unsigned
}
202D 6 (当前)透支金额 数据类型:double-long-unsigned,单位:元,换算:-2
202E 6 累计购电金额 数据类型:double-long-unsigned,单位:元,换算:-2
2031 6 月度用电量 属性 2 用电量∷=double-long-unsigned,
单位:kWh,换算:-2
2032 6 阶梯结算用电量 属性 2 用电量∷=double-long-unsigned,
单位:kWh,换算:-2
2040 6 控制命令执行状态字 数据类型:bit-string(SIZE(16)),无单位,无换算
2041 6 控制命令错误状态字 数据类型:bit-string(SIZE(16)),无单位,无换算
2100 14 分钟区间统计 统计周期单位为分钟
2101 14 小时区间统计 统计周期单位为小时
2102 14 日区间统计 统计周期单位为日
2103 14 月区间统计 统计周期单位为月
2104 14 年区间统计 统计周期单位为年
2110 15 分钟平均 统计周期单位为分钟
2111 15 小时平均 统计周期单位为时
2112 15 日平均 统计周期单位为日
2113 15 月平均 统计周期单位为月
2114 15 年平均 统计周期单位为年
2120 16 分钟极值 统计周期单位为分钟
2121 16 小时极值 统计周期单位为时
2122 16 日极值 统计周期单位为日
2123 16 月极值 统计周期单位为月
2124 16 年极值 统计周期单位为年
2131 6 当月 A 相电压合格率 属性 2(电压合格率数据)∷=structure
{
 当日电压合格率 电压合格率,
 当月电压合格率 电压合格率
}
电压合格率∷=structure
{
 电压监测时间 double-long-unsigned(单位:分钟,无换算),
 电压合格率 long-unsigned(单位:%,换算:-2), 电压超限率 long-unsigned(单位:%,换算:-2),
 电压超上限时间 double-long-unsigned(单位:分钟, 无换算),
 电压超下限时间 double-long-unsigned(单位:分钟, 无换算)
}
2132 6 当月 B 相电压合格率 同 2131
2133 6 当月 C 相电压合格率 同 2131
2140 2 日最大有功功率及发生时间 最大功率及发生时间∷=structure
{
 最大功率值 double-long-unsigned, 发生时间 date_time_s
}
功率单位:kW,换算:-4
2141 2 月最大有功功率及发生时间 同 2140。
2200 6 通信流量 数值∷=structure
{
 当日通信流量 double-long-unsigned,
 当月通信流量 double-long-unsigned
}
单位:byte,换算:0
2203 6 供电时间 数值∷=structure
{
 日供电累计时间 double-long-unsigned,
 月供电累计时间 double-long-unsigned
}
单位:分钟,换算:0
2204 6 复位次数 数值∷=structure
{
 日复位累计次数 long-unsigned,
 月复位累计次数 long-unsigned
}
2301 23 总加组 1
2302 23 总加组 2
2303 23 总加组 3
2304 23 总加组 4
2305 23 总加组 5
2306 23 总加组 6
2307 23 总加组 7
2308 23 总加组 8
2401 12 脉冲计量 1
2402 12 脉冲计量 2
2403 12 脉冲计量 3
2404 12 脉冲计量 4
2405 12 脉冲计量 5
2406 12 脉冲计量 6
2407 12 脉冲计量 7
2408 12 脉冲计量 8
2500 6 累计水(热)流量 数据类型:double-long-unsigned,单位:m3,换算:-4
(注:水表和热表共用)
2501 6 累计气流量 数据类型:double-long-unsigned,单位:m3,换算:-4
2502 6 累计热量 数据类型:double-long-unsigned,单位:J,换算:-2
2503 6 热功率 数据类型:double-long-unsigned,单位:J/h,换算:-2
2504 6 累计工作时间 数据类型:double-long-unsigned,单位:小时,换算:0
2505 6 水温 数值∷=structure
{
 供水温度 double-long-unsigned,
 回水温度 double-long-unsigned
}
单位:℃,换算:-2。
2506 6 (仪表)状态 ST 数值∷=structure
{
 阀门状态 enum{开(0),关(1),保留(2),异常(3)},
 电池电压 enum{正常(0),欠压(0)}
}
  • 三相三线电能表

    • 电压 A 相为 Uab,B 相为 0,C 相为 Ucb
    • 电流 A 相为 Ia,B 相为 0,C 相为 Ic
    • 功率因数 A 相为 Uab 与 Ia 的夹角余弦,B 相为 0,C 相为 Ucb 与 Ic 的夹角余弦
    • 相角 A 相为 Uab 与 Ia 的夹角,B 相为 0,C 相为 Ucb 与 Ic 的夹角
  • 电流、有功功率、无功功率、视在功率、功率因数、当前有功需量、当前无功需量、当前视在需量、表内温度按潮流方向分为正负数,正数代表输入,负数代表输出

  • 需量一定意义上也可称作平均功率,因此它与瞬时功率一样有潮流方向的区分

  • 当前有功需量、当前无功需量、当前视在需量是最近一段时间的平均功率

  • 表内温度存在零上和零下的区别,正数为摄氏零上,负数为摄氏零下

  • 相角测量范围是 0…360 度

  • 组合无功最大需量的正负数是用来标志潮流的方向,组合无功最大需量从参与组合电能运算的象限中抽取最大值,如果来自象限 3、4,以负数上传

A.4 事件类对象

有关事件类的对象标识定义见下。

示例:

  • 对象标识 OI

    • 接口类 IC
    • 对象名称
    • 实例的对象属性及方法定义
  • 3000

    • 24
    • 电能表失压事件
    • 属性 5(配置参数)∷=structure
      {
       电压触发上限 long-unsigned(单位:V,换算:-1),
       电压恢复下限 long-unsigned(单位:V,换算:-1),
       电流触发下限 double-long(单位:A,换算:-4),
       判定延时时间 unsigned(单位:s,换算:0)
      }
    • 属性 13(失压统计)∷=structure
      {
       事件发生总次数 double-long-unsigned,
       事件总累计时间 double-long-unsigned(单位:秒,无换算),
       最近一次失压发生时间 date_time_s,
       最近一次失压结束时间 date_time_s
      }
    • 事件发生总次数:A、B、C 相失压次数之和
    • 事件总累计时间:A、B、C 相失压次数累计时间之和
    • 最近一次失压发生时间:A、B、C 相中最近发生的那次失压发生时间
    • 最近一次失压结束时间:A、B、C 相中最近发生的那次失压结束时间
  • 3001

    • 24
    • 电能表欠压事件
    • 属性 5(配置参数)∷=structure
      {
       电压触发上限 long-unsigned(单位:V,换算:-1),
       判定延时时间 unsigned(单位:s,换算:0)
      }
  • 3002

    • 24
    • 电能表过压事件
    • 属性 5(配置参数)∷=structure
      {
       电压触发下限 long-unsigned(单位:V,换算:-1),
       判定延时时间 unsigned(单位:s,换算:0)
      }
  • 3003

    • 24
    • 电能表断相事件
    • 属性 5(配置参数)∷=structure
      {
       电压触发上限 long-unsigned(单位:V,换算:-1),
       电流触发上限 double-long(单位:A,换算:-4),
       判定延时时间 unsigned(单位:s,换算:0)
      }
  • 3004

    • 24
    • 电能表失流事件
    • 属性 5(配置参数)∷=structure
      {
       电压触发下限 long-unsigned(单位:V,换算:-1),
       电流触发上限 double-long(单位:A,换算:-4),
       电流触发下限 double-long(单位:A,换算:-4),
       判定延时时间 unsigned(单位:s,换算:0)
      }
  • 3005

    • 24
    • 电能表过流事件
    • 属性 5(配置参数)∷=structure
      {
       电流触发下限 double-long(单位:A,换算:-4),
       判定延时时间 unsigned(单位:s,换算:0)
      }
  • 3006

    • 24
    • 电能表断流事件
    • 属性 5(配置参数)∷=structure
      {
       电压触发下限 long-unsigned(单位:V,换算:-1),
       电流触发上限 double-long(单位:A,换算:-4),
       判定延时时间 unsigned(单位:s,换算:0)
      }
  • 3007

    • 24
    • 电能表功率反向事件
    • 属性 5(配置参数)∷=structure
      {
       有功功率触发下限 double-long(单位:W,换算:-1),
       判定延时时间 unsigned(单位:s,换算:0)
      }
  • 3008

    • 24
    • 电能表过载事件
    • 属性 5(配置参数)∷=structure
      {
       有功功率触发下限 double-long(单位:W,换算:-1),
       判定延时时间 unsigned(单位:s,换算:0)
      }
  • 3009

    • 7
    • 电能表正向有功需量超限事件
    • 属性 2(事件记录表)∷=array 电能表需量超限事件单元
    • 属性 6(配置参数)∷=structure
      {
       触发下限 double-long-unsigned(单位:kW,换算:-4),
       判定延时时间 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 300A

    • 7
    • 电能表反向有功需量超限事件
    • 属性 2(事件记录表)∷=array 电能表需量超限事件单元
    • 属性 6(配置参数)∷=structure
      {
       触发下限 double-long-unsigned(单位:kW,换算:-4),
       判定延时时间 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 300B

    • 24
    • 电能表无功需量超限事件
    • 属性 5(配置参数)∷=structure
      {
       触发下限 double-long-unsigned(单位:kvar,换算:-4),
       判定延时时间 unsigned(单位:s,换算:0)
      }
    • 属性 6(事件记录表 1)∷=array 电能表需量超限事件单元
    • 属性 7(事件记录表 2)∷=array 电能表需量超限事件单元
    • 属性 8(事件记录表 3)∷=array 电能表需量超限事件单元
    • 属性 9(事件记录表 4)∷=array 电能表需量超限事件单元
  • 300C

    • 7
    • 电能表功率因数超下限事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       下限阀值 long(单位:%,换算:-1),
       判定延时时间 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 300D

    • 7
    • 电能表全失压事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       
      }
    • 事件发生源∷=NULL
  • 300E

    • 7
    • 电能表辅助电源掉电事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       判定延时 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 300F

    • 7
    • 电能表电压逆相序事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       判定延时 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 3010

    • 7
    • 电能表电流逆相序事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       判定延时 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 3011

    • 7
    • 电能表掉电事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       判定延时 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 3012

    • 7
    • 电能表编程事件
    • 属性 2(事件记录表)∷=array 编程记录事件单元
    • 属性 6(配置参数)∷=structure
      {
      }
  • 3013

    • 7
    • 电能表清零事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3014

    • 7
    • 电能表需量清零事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3015

    • 7
    • 电能表事件清零事件
    • 属性 2(事件记录表)∷=array 事件清零事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3016

    • 7
    • 电能表校时事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3017

    • 7
    • 电能表时段表编程事件
    • 属性 2(事件记录表)∷=array 电能表时段表编程事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3018

    • 7
    • 电能表时区表编程事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3019

    • 7
    • 电能表周休日编程事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 301A

    • 7
    • 电能表结算日编程事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 301B

    • 7
    • 电能表开盖事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 301C

    • 7
    • 电能表开端钮盒事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 301D

    • 7
    • 电能表电压不平衡事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       限值 long(单位:%,换算:-2),
       判定延时时间 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 301E

    • 7
    • 电能表电流不平衡事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       限值 long(单位:%,换算:-2),
       判定延时时间 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 301F

    • 7
    • 电能表跳闸事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3020

    • 7
    • 电能表合闸事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3021

    • 7
    • 电能表节假日编程事件
    • 属性 2(事件记录表)∷=array 电能表节假日编程事件单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3022

    • 7
    • 电能表有功组合方式编程事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3023

    • 7
    • 电能表无功组合方式编程事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=enum
      {
       无功组合方式 1 特征字(0),
       无功组合方式 2 特征字(1)
      }
  • 3024

    • 7
    • 电能表费率参数表编程事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3025

    • 7
    • 电能表阶梯表编程事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3026

    • 7
    • 电能表密钥更新事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3027

    • 7
    • 电能表异常插卡事件
    • 属性 2(事件记录表)∷=array 电能表异常插卡记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 属性 11(非法插卡总次数)∷=double-long-unsigned
    • 事件发生源∷=NULL
  • 3028

    • 7
    • 电能表购电记录
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3029

    • 7
    • 电能表退费记录
    • 属性 2(事件记录表)∷=array 电能表退费记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 302A

    • 7
    • 电能表恒定磁场干扰事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 事件发生源∷=NULL
  • 302B

    • 7
    • 电能表负荷开关误动作事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 事件发生源∷=NULL
  • 302C

    • 7
    • 电能表电源异常事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 事件发生源∷=NULL
  • 302D

    • 7
    • 电能表电流严重不平衡事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       限值 long(单位:%,换算:-2)
       判定延时时间 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 302E

    • 7
    • 电能表时钟故障事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       判定延时 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 302F

    • 7
    • 电能表计量芯片故障事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       判定延时 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
  • 3030

    • 7
    • 通信模块变更事件
    • 属性 2(事件记录表)∷=array 通信模块变更事件单元
    • 属性 6(配置参数)∷=structure
      {
       判定延时 unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=OAD
    • 事件发生源为通信模块 OAD
  • 3100

    • 7
    • 终端初始化事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3101

    • 7
    • 终端版本变更事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3104

    • 7
    • 终端状态量变位事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3105

    • 7
    • 电能表时钟超差事件
    • 属性 2(事件记录表)∷=array 电能表时钟超差记录单元
    • 属性 6(配置参数)∷=structure
      {
       异常判别阈值 long-unsigned(单位:秒),
       关联采集任务号 unsigned
      }
    • 事件发生源∷=TSA
    • 采集监控任务中需要配置相关 OAD 的采集任务
  • 3106

    • 7
    • 终端停/上电事件
    • 属性 2(事件记录表)∷=array 停/上电事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       停电数据采集配置参数 structure
       {
        采集标志 bit-string(SIZE(8)),
        停电事件抄读时间间隔(小时) unsigned ,
        停电事件抄读时间限值(分钟) unsigned,
        需要读取停电事件电能表 array TSA
       },
       停电事件甄别限值参数 structure
       {
        停电时间最小有效间隔(分钟) long-unsigned,
        停电时间最大有效间隔(分钟) long-unsigned,
        停电事件起止时间偏差限值(分钟) long-unsigned,
        停电事件时间区段偏差限值(分钟) long-unsigned,
        停电发生电压限值 long-unsigned(单位:V,换算:-1),
        停电恢复电压限值 long-unsigned(单位:V,换算:-1)
       }
      }
    • 采集标志:
      • bit0:置“1”有效,置“0”无效
      • bit1:置“1”随机选择测量点,置“0”只采集设置的测量点
    • 事件发生源∷=NULL
  • 3107

    • 7
    • 终端直流模拟量越上限事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       直流模拟量上限 double-long
      }
    • 事件发生源∷=OAD(直流模拟量号)
  • 3108

    • 7
    • 终端直流模拟量越下限事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       直流模拟量下限 double-long
      }
    • 事件发生源∷=OAD(直流模拟量号)
  • 3109

    • 7
    • 终端消息认证错误事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 310A

    • 7
    • 设备故障记录
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=enum
      {
       终端主板内存故障(0),
       时钟故障 (1),
       主板通信故障 (2),
       485 抄表故障 (3),
       显示板故障 (4),
       载波通道异常 (5),
       内卡初始化错误 (6),
       ESAM 错 误 (7)
      }
  • 310B

    • 7
    • 电能表示度下降事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       关联采集任务号 unsigned
      }
    • 事件发生源∷=TSA
    • 采集监控任务中需要配置相关 OAD 的采集任务
    • 注:目标服务器地址 TSA(Target Server Address)
  • 310C

    • 7
    • 电能量超差事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       阈值 double-long-unsigned(单位:%,无换算),
       关联采集任务号 unsigned
      }
    • 事件发生源∷=TSA
    • 采集监控任务中需要配置相关 OAD 的采集任务
  • 310D

    • 7
    • 电能表飞走事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       阈值 double-long-unsigned(单位:%,无换算),
       关联采集任务号 unsigned
      }
    • 事件发生源∷=TSA
    • 采集监控任务中需要配置相关 OAD 的采集任务
    • 注:阈值,yùzhí
  • 310E

    • 7
    • 电能表停走事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       阈值 TI,
       关联采集任务号 unsigned
      }
    • 事件发生源∷=TSA
    • 采集监控任务中需要配置相关 OAD 的采集任务
  • 310F

    • 7
    • 终端抄表失败事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       重试轮次 unsigned,
       关联采集任务号 unsigned
      }
    • 事件发生源∷=TSA
  • 3110

    • 7
    • 月通信流量超限事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
       通信流量门限 double-long-unsigned(单位:byte)
      }
    • 事件发生源∷=NULL
  • 3111

    • 7
    • 发现未知电能表事件
    • 属性 2(事件记录表)∷=array 发现未知电能表事件单元
    • 属性 6(配置参数)∷=structure
      {
      }
  • 3112

    • 7
    • 跨台区电能表事件
    • 属性 2(事件记录表)∷=array 垮台区电能表事件单元
    • 属性 6(配置参数)∷=structure
      {
      }
  • 3114

    • 7
    • 终端对时事件
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=NULL
  • 3115

    • 7
    • 遥控跳闸记录
    • 属性 2(事件记录表)∷=array 遥控事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=OAD(继电器单元)
  • 3116

    • 7
    • 有功总电能量差动越限事件记录
    • 属性 2(事件记录表)∷=array 差动越限事件记录单元
    • 属性 6(配置参数)∷=array 有功总电能量差动组配置
    • 有功总电能量差动组配置∷=structure
      {
       有功总电能量差动组序号 unsigned,
       对比的总加组 OI,
       参照的总加组 OI,
       参与差动的电能量的时间区间及对比方法标志 unsigned,
       差动越限相对偏差值 integer(单位:%,换算:0),
       差动越限绝对偏差值 long64(单位:kWh,换算:-4)
      }
    • 参与差动的电能量的时间区间及对比方法标志:
      • bit0…bit1 编码表示电能量的时间跨度,取值范围 0…2 依次表示 60 分钟电量、30 分钟电量、15 分钟电量,其他值无效
      • bit7 表示对比方法标志,置“0”:相对对比,公式见公式 1;置“1”:绝对对比,公式见公式 2
        • 公式 1:| Q - q | / q × 100%
        • 公式 2:| Q - q |
          • Q:对比的总加组总电能量
          • q:参照的总加组总电能量
      • bit2…bit6 备用
  • 3117

    • 7
    • 输出回路接入状态变位事件记录
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
  • 3118

    • 7
    • 终端编程记录
    • 属性 2(事件记录表)∷=array 编程记录事件单元
    • 属性 6(配置参数)∷=structure
      {
      }
  • 3119

    • 7
    • 终端电流回路异常事件
    • 属性 2(事件记录表)∷=array 标准记录事件单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=enum{短路(0),开路(1)}
  • 311A

    • 7
    • 电能表在网状态切换事件
    • 属性 2(事件记录表)∷=array 电能表在网状态切换事件单元
    • 属性 6(配置参数)∷=structure
      {
       判定延时时间 long-unsigned(单位:s,换算:0)
      }
    • 事件发生源∷=NULL
    • 此事件只记录电表在网状态变迁
  • 311B

    • 7
    • 终端对电表校时记录
    • 属性 2(事件记录表)∷=array 终端对电表校时记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
  • 311C

    • 7
    • 电能表数据变更监控记录
    • 属性 2(事件记录表)∷=array 电能表数据变更监控记录单元
    • 属性 6(配置参数)∷=structure
      {
       关联采集任务序号 unsigned
      }
    • 事件发生源∷=TSA
  • 3200

    • 7
    • 功控跳闸记录
    • 属性 2(事件记录表)∷=array 功控跳闸记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
  • 3201

    • 7
    • 电控跳闸记录
    • 属性 2(事件记录表)∷=array 电控跳闸记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
  • 3202

    • 7
    • 购电参数设置记录
    • 属性 2(事件记录表)∷=array 标准事件记录单元
    • 属性 6(配置参数)∷=structure
      {
      }
    • 事件发生源∷=OI
  • 3203

    • 7
    • 电控告警事件记录
    • 属性 2(事件记录表)∷=array 电控告警事件单元
    • 属性 6(配置参数)∷=structure
      {
      }
  • 3300

    • 8
    • 事件上报状态 事件上报状态∷=array 通道上报状态
    • 通道上报状态∷=structure
      {
       通道 OAD,
       上报状态 unsigned
      }
    • 上报状态:
      • bit0:事件发生上报标识,0—未上报,1—已上报
      • bit1:事件发生上报确认标识,0—未确认,1—已确认
      • bit2:事件结束(恢复)上报标识,0—未上报,1—已上报
      • bit3:事件结束(恢复)上报确认标识,0—未确认,1—已确认
  • 3301

    • 8
    • 标准事件记录单元
    • 标准事件记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 instance-specific,
       事件上报状态 array 通道上报状态,
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
  • 3302

    • 8
    • 编程记录事件单元
    • 编程记录事件单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 NULL,
       事件上报状态 array 通道上报状态,
       编程对象列表 array OAD,
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
  • 3303

    • 8
    • 发现未知电能表事件单元
    • 发现未知电能表事件∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 NULL,
       事件上报状态 array 通道上报状态,
       搜表结果 array 一个搜表结果,
      }
  • 3304

    • 8
    • 跨台区电能表事件单元
    • 跨台区电能表事件单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 NULL,
       事件上报状态 array 通道上报状态,
       跨台区搜表结果 array 一个跨台区结果,
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
  • 3305

    • 8
    • 功控跳闸记录单元
    • 功控跳闸记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 OI,
       事件上报状态 array 通道上报状态,
       事件发生后 2 分钟功率 long64(单位:W,换算-1),
       控制对象 OI,
       跳闸轮次 bit-string(SIZE(8)),
       功控定值 long64(单位:kW,换算-4),
       跳闸发生前总加有功功率 long64(单位:kW,换算-4),
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
  • 3306

    • 8
    • 电控跳闸记录单元
    • 电控跳闸记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 OI,
       事件上报状态 array 通道上报状态,
       控制对象 OI,
       跳闸轮次 bit-string(SIZE(8)),
       电控定值 long64(单位:kWh,换算-4),
       跳闸发生时总加电能量 long64(单位:kwh/元,换算-4),
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
    • 当事件发生源类型为月电控 8108,跳闸时总加电能量为总加月电能量
    • 当事件发生源类型为购电控 8107,跳闸时总加电能量为剩余电能量/费
  • 3307

    • 8
    • 电控告警事件单元
    • 电控告警事件单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 OI,
       事件上报状态 array 通道上报状态,
       控制对象 OI,
       电控定值 long64(单位:kWh,换算-4),
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
  • 3308

    • 8
    • 电能表需量超限事件单元
    • 电能表需量超限事件单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 NULL,
       事件上报状态 array 通道上报状态,
       超限期间需量最大值 double-long-unsigned,
       超限期间需量最大值发生时间 date_time_s,
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
  • 3309

    • 8
    • 停/上电事件记录单元
    • 停/上电事件记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 enum{停电(0),上电(1)},
       事件上报状态 array 通道上报状态,
       属性标志 bit-string(SIZE(8)),
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
    • 属性标志:
      • bit0 置“1”:事件正常,bit0 置“0”:事件异常,此处是对停电时间有效间隔的判断
      • bit1 置“1”:事件有效,bit1 置“0”:事件无效,此处是对停电时间偏差限值的判断
      • bit2…bit7 备用
  • 330A

    • 8
    • 遥控事件记录单元
    • 遥控事件记录单元∷=structure
      {
       事件记录序号 double-long-un signed,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 OAD,
       事件上报状态 array 通道上报状态,
       控后 2 分钟总加组功率 array long64,
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
  • 330B

    • 8
    • 有功总电能量差动越限事件记录单元
    • 有功总电能量差动越限事件记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 unsigned,
       事件上报状态 array 通道上报状态,
       越限时对比总加组有功总电能量 long64(单位:kWh,换算:-4),
       越限时参照总加组有功总电能量 long64(单位:kWh,换算:-4),
       越限时差动越限相对偏差值 integer(单位:%,换算:0),
       越限时差动越限绝对偏差值 long64(单位:kWh,换算:-4)
      }
  • 330C

    • 8
    • 事件清零事件记录单元
    • 事件清零事件记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 NULL,
       事件上报状态 array 通道上报状态,
       事件清零列表 array OMD
      }
  • 330D

    • 8
    • 终端对电表校时记录单元
    • 终端对电表校时记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 TSA,
       事件上报状态 array 通道上报状态,
       校时前时钟 date_time_s,
       时钟误差 integer(单位:秒,无换算)
      }
  • 330E

    • 8
    • 电能表在网状态切换事件单元
    • 电能表在网状态切换事件单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 NULL,
       事件上报状态 array 通道上报状态,
       状态变迁事件 array structure
       {
       电能表地址 TSA, 在网状态 bool
       }
      }
  • 330F

    • 8
    • 电能表数据变更监控记录单元
    • 电能表数据变更监控记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 TSA,
       事件上报状态 array 通道上报状态,
       监控数据对象 CSD,
       变化前数据 Data,
       变化后数据 Data
      }
    • 事件发生时间:为监控数据发生变化的时刻
    • 事件结束时间:无效,各字段填 FF
  • 3310

    • 8
    • 异常插卡事件记录单元
    • 异常插卡事件记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 enum{CPU 卡/射频卡(0),ESAM(1)},
       事件上报状态 array 通道上报状态,
       卡序列号 octet-string,
       插卡错误信息字 unsigned,
       插卡操作命令头 octet-string,
       插卡错误响应状态 long-unsigned,
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
  • 3311

    • 8
    • 退费事件记录单元
    • 退费事件记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 NULL,
       事件上报状态 array 通道上报状态,
       退费金额 double-long-unsigned(单位:元,换算:-2),
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
  • 3312

    • 8
    • 通信模块变更事件单元
    • 通信模块变更事件单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 OAD,
       事件上报状态 array 通道上报状态,
       模块对应的通信地址 octet-string,
       变更前的模块描述符 visible-string,
       变更后的模块描述符 visible-string
      }
    • 模块对应的通信地址仅对表端模块或采集器端模块有效
  • 3313

    • 8
    • 电能表时钟超差记录单元
    • 电能表时钟超差记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 TSA,
       事件上报状态 array 通道上报状态,
       电能表时钟 DATETIME_S,
       终端当前时钟 DATETIME_S,
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
  • 3314

    • 8
    • 电能表时段表编程事件记录单元
    • 电能表时段表编程事件记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 NULL,
       事件上报状态 array 通道上报状态,
       编程时段表对象 OAD,
       编程前时段表 日时段表,
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
    • 日时段表∷=array 时段
    • 时段∷=structure
      {
       时 unsigned,
       分 unsigned,
       费率号 unsigned
      }
  • 3315

    • 8
    • 电能表节假日编程事件记录单元
    • 电能表节假日编程事件记录单元∷=structure
      {
       事件记录序号 double-long-unsigned,
       事件发生时间 date_time_s,
       事件结束时间 date_time_s,
       事件发生源 NULL,
       事件上报状态 array 通道上报状态,
       编程节假日对象 OAD,
       编程前节假日内容 公共假日,
       第 1 个关联对象属性的数据 Data,
       …
       第 n 个关联对象属性的数据 Data
      }
      公共假日∷=structure
      {
       日期 date,
       日时段表号 unsigned
      }
  • 3320

    • 8
    • 新增上报事件列表
    • 属性 2(新增上报事件列表,只读)∷= array OAD
    • 属性 3(需上报事件对象列表,只读)∷= array OI
    • 新增上报事件列表对象针对每通信通道(OAD),当该列表中的事件记录通过“当前”通道被读取后,自动从该列表中删除此 OI 对象

A.5 参变量类对象

有关参变量类的对象标识定义见下。

示例:

  • 对象标识 OI

    • 接口类 IC
    • 对象名称
    • 实例的对象属性及方法定义
  • 4000

    • 8
    • 日期时间
    • 属性 2∷=date_time_s
    • 属性 3(校时模式)∷=enum
      {
       主站授时(0),
       终端精确校时(1),
       北斗/GPS(2),
       其它(255)
      }
    • 属性 4(精准校时参数)∷=structure
      {
       最近心跳时间总个数 unsigned,
       最大值剔除个数 unsigned,
       最小值剔除个数 unsigned,
       通讯延时阈值 unsigned(单位:秒),
       最少有效个数 unsigned
      }
    • 方法 127:广播校时(参数) 参数∷=date_time_s
  • 4001

    • 8
    • 通信地址
    • 属性 2∷=octet-string
  • 4002

    • 8
    • 表号
    • 属性 2∷=octet-string
  • 4003

    • 8
    • 客户编号
    • 属性 2∷=octet-string
  • 4004 8 设备地理位置 属性 2∷=structure
    {
     经度 structure
     {
      方位 enum{E(0),W(1)},
      度 unsigned,
      分 unsigned,
      秒 unsigned
     },
     纬度 structure
     {
      方位 enum{S(0),N(1)},
      度 unsigned,
      分 unsigned,
      秒 unsigned
     },
     高度(cm) double-long-unsigned
    }

  • 4005

    • 8
    • 组地址
    • 属性 2∷=array octet-string
  • 4006

    • 8
    • 时钟源
    • 属性 2(只读)∷=structure
      {
       时钟源 enum
       {
        内部(0),时钟芯片(1),互联网时钟(2),卫星时钟(3),长波时钟(4)
       },
       状态 enum{可用(0),不可用(1)}
      }
    • 方法 127:启用(参数)参数∷=NULL
    • 方法 128:禁用(参数)参数∷=NULL
  • 4007

    • 8
    • LCD 参数
    • 属性 2∷=structure
      {
       上电全显时间 unsigned,
       背光点亮时间 long-unsigned(按键时背光点亮时间),
       显示查看背光点亮时间 long-unsigned,
       无电按键屏幕驻留最大时间 long-unsigned,
       显示电能小数位数 unsigned,
       显示功率(最大需量)小数位数 unsigned,
       液晶 ① ② 字样意义 unsigned
      }
    • 以上时间的单位均为:秒
    • 液晶 ① ② 字样意义:
      • 0 显示当前套、备用套时段
      • 1 显示当前套、备用套费率
  • 4008

    • 8
    • 备用套时区表切换时间
    • 属性 2∷=date_time_s
    • 秒=FFH
  • 4009

    • 8
    • 备用套日时段切换时间
    • 属性 2∷=date_time_s
    • 秒=FFH
  • 400A

    • 8
    • 备用套分时费率切换时间
    • 属性 2∷=date_time_s
    • 秒=FFH
  • 400B

    • 8
    • 备用套阶梯电价切换时间
    • 属性 2∷=date_time_s
    • 秒=FFH
  • 400C

    • 8
    • 时区时段数
    • 属性 2∷=structure
      {
       年时区数(p≤14) unsigned,
       日时段表数(q≤8) unsigned,
       日时段数(每日切换数)(m≤14) unsigned,
       费率数(k≤63) unsigned,
       公共假日数(n≤254) unsigned
      }
  • 400D

    • 8
    • 阶梯数
    • 属性 2∷=unsigned,无单位,无换算
  • 400E

    • 8
    • 谐波分析次数
    • 属性 2∷=unsigned,无单位,无换算
  • 400F

    • 8
    • 密钥总条数
    • 属性 2∷=unsigned,无单位,无换算
  • 4010

    • 8
    • 计量元件数
    • 属性 2(只读)∷=unsigned,无单位,无换算
    • 计量元件数
      • 单相表为 1
      • 三相三线表为 2
      • 三相四线表为 3
  • 4011

    • 8
    • 公共假日表
    • 属性 2∷=array 公共假日公共假日∷=structure
      {
       日期 date,
        日时段表号 unsigned
      }
  • 4012

    • 8
    • 周休日特征字
    • 属性 2∷=bit-string(SIZE(8)),见附录 G
  • 4013

    • 8
    • 周休日釆用的日时段表号
    • 属性 2∷=unsigned,无单位,无换算
  • 4014

    • 8
    • 当前套时区表
    • 属性 2∷=array 时区时区∷=structure
      {
       月 unsigned,
       日 unsigned,
       日时段表号 unsigned
      }
  • 4015

    • 8
    • 备用套时区表
    • 同 4014
  • 4016

    • 8
    • 当前套日时段表
    • 属性 2∷=array 日时段表
    • 日时段表∷=array 时段
    • 时段∷=structure
      {
       时 unsigned,
       分 unsigned,
       费率号 unsigned
      }
    • 费率号:该时段采用的费率号
  • 4017

    • 8
    • 备用套日时段表
    • 同 4016
  • 4018

    • 8
    • 当前套费率电价
    • 属性 2(只读)∷=array 费率电价
    • 费率电价∷=double-long-unsigned
    • 单位:元/kWh,换算:-4
  • 4019

    • 8
    • 备用套费率电价
    • 属性 2∷=array 费率电价
    • 费率电价∷=double-long-unsigned
    • 单位:元/kWh,换算:-4
  • 401A

    • 8
    • 当前套阶梯电价
    • 属性 2(阶梯参数,只读)∷=structure
      {
       阶梯值数组 array 阶梯值,
       阶梯电价数组 array 阶梯电价,
       阶梯结算日数组 array 阶梯结算日
      }
    • 阶梯值∷=double-long-unsigned
    • 阶梯电价∷=double-long-unsigned
    • 阶梯结算日∷=structure
      {
       月 unsigned,
       日 unsigned,
       时 unsigned
      }
    • 阶梯值:单位:kWh,换算:-2
    • 阶梯电价:单位:元/kWh,换算:-4
    • 阶梯结算日中月、日、时均有效时则按结算日执行阶梯冻结,如果第 1 阶梯结算日中仅日、时有效则以此每月该日时执行阶梯冻结,当全部无效时不执行阶梯冻结
  • 401B

    • 8
    • 备用套阶梯电价
    • 同 401A
  • 401C

    • 8
    • 电流互感器变比
    • 属性 2∷=double-long-unsigned,无单位,无换算
  • 401D

    • 8
    • 电压互感器变比
    • 属性 2∷=double-long-unsigned,无单位,无换算
  • 401E

    • 8
    • 报警金额限值
    • 属性 2(参数)∷=structure
      {
       报警金额限值 1 double-long-unsigned,
       报警金额限值 2 double-long-unsigned,
      }
    • 单位:元,换算:-2
  • 401F

    • 8
    • 其它金额限值
    • 属性 2(参数)∷=structure
      {
       透支金额限值 double-long-unsigned,
       囤积金额限值 double-long-unsigned,
       合闸允许金额限值 double-long-unsigned,
      }
    • 单位:元,换算:-2
  • 4020

    • 8
    • 报警电量限值
    • 属性 2∷=structure
      {
       报警电量限值 1 double-long-unsigned,
       报警电量限值 2 double-long-unsigned,
      }
    • 单位:kWh,换算:-2
  • 4021

    • 8
    • 其它电量限值
    • 属性 2∷=structure
      {
       囤积电量限值 double-long-unsigned,
       透支电量限值 double-long-unsigned,
       合闸允许电量限值 double-long-unsigned,
      }
    • 单位:kWh,换算:-2
  • 4022

    • 6
    • 插卡状态字
    • 属性 2(只读)∷=bit-string(SIZE(16))
    • 见附录 G
  • 4024

    • 8
    • 剔除
    • 属性 2∷=enum {剔除投入(1),剔除解除(2)}
  • 4025

    • 8
    • 采集器远程升级结果表
    • 属性 2(升级结果列表,只读)∷=array 采集器升级结果
    • 属性 3(采集器升级控制参数)∷=structure
      {
       允许一次升级广播轮次数 unsigned,
       允许一次升级点对点补发天数 unsigned
      }
  • 4026

    • 8
    • 采集器升级结果
    • 属性 2(升级结果)∷=structure
      {
       序号 long-unsigned,
       采集器地址 TSA,
       采集器升级结果标识 unsigned,
       补发开始时间 date_time_s,
       升级成功时间 date_time_s,
       广播成功块数 long-unsigned,
       补发块数 long-unsigned,
       升级前采集器版本 VersionInfo,
       升级后采集器版本 VersionInfo
      }
    • 采集器升级结果标识:
      • 00:其他原因
      • 01:补发启动传输失败
      • 02:补发失败
      • 55:补发成功
      • AA:广播成功
      • EE:异常终止
  • 4030

    • 8
    • 电压合格率参数
    • 属性 2∷=structure
      {
       电压考核上限 long-unsigned(单位:V,换算:-1),
       电压考核下限 long-unsigned(单位:V,换算:-1),
       电压合格上限 long-unsigned(单位:V,换算:-1),
       电压合格下限 long-unsigned(单位:V,换算:-1)
      }
  • 4100

    • 8
    • 最大需量周期
    • 属性 2∷=unsigned,单位:分钟,换算:0
  • 4101

    • 8
    • 滑差时间
    • 属性 2∷=unsigned,单位:分钟,换算:0
  • 4102

    • 8
    • 校表脉冲宽度
    • 属性 2(只读)∷=unsigned,单位:毫秒,换算:0
  • 4103

    • 8
    • 资产管理编码
    • 属性 2∷=visible-string(SIZE(32))
  • 4104

    • 8
    • 额定电压
    • 属性 2(只读)∷=visible-string(SIZE(6))
  • 4105

    • 8
    • 额定电流/基本电流
    • 属性 2(只读)∷=visible-string(SIZE(6))
  • 4106

    • 8
    • 最大电流
    • 属性 2(只读)∷=visible-string(SIZE(6))
  • 4107

    • 8
    • 有功准确度等级
    • 属性 2(只读)∷=visible-string(SIZE(4))
  • 4108

    • 8
    • 无功准确度等级
    • 属性 2(只读)∷=visible-string(SIZE(4))
  • 4109

    • 8
    • 电能表有功常数
    • 属性 2(只读)∷=double-long-unsigned
    • 单位:imp/kWh,换算:0
  • 410A

    • 8
    • 电能表无功常数
    • 属性 2(只读)∷=double-long-unsigned
    • 单位:imp/kvarh,换算:0
  • 410B

    • 8
    • 电能表型号
    • 属性 2(只读)∷=visible-string(SIZE(32))
  • 410C

    • 8
    • ABC 各相电导系数
    • 属性 2∷=structure
      {
       A 相电导 long(单位:无,换算:-3),
       B 相电导 long(单位:无,换算:-3),
       C 相电导 long(单位:无,换算:-3)
      }
  • 410D

    • 8
    • ABC 各相电抗系数
    • 属性 2∷=structure
      {
       A 相电抗 long(单位:无,换算:-3),
       B 相电抗 long(单位:无,换算:-3),
       C 相电抗 long(单位:无,换算:-3)
      }
  • 410E

    • 8
    • ABC 各相电阻系数
    • 属性 2∷=structure
      {
       A 相电阻 long(单位:无,换算:-3),
       B 相电阻 long(单位:无,换算:-3),
       C 相电阻 long(单位:无,换算:-3)
      }
  • 410F

    • 8
    • ABC 各相电纳系数
    • 属性 2∷=structure
      {
       A 相电纳 long(单位:无,换算:-3),
       B 相电纳 long(单位:无,换算:-3),
       C 相电纳 long(单位:无,换算:-3)
      }
  • 4111

    • 8
    • 软件备案号
    • 属性 2(只读)∷=visible-string
  • 4112

    • 8
    • 有功组合方式特征字
    • 属性 2∷=bit-string(SIZE(8)),见附录 G
  • 4113

    • 8
    • 无功组合方式 1 特征字
    • 属性 2∷=bit-string(SIZE(8)),见附录 G
  • 4114

    • 8
    • 无功组合方式 2 特征字
    • 属性 2∷=bit-string(SIZE(8)),见附录 G
  • 4116

    • 8
    • 结算日
    • 属性 2(配置参数)∷=array 结算日日期
    • 结算日日期∷=structure
      {
       日 unsigned,
       时 unsigned
      }
  • 4117

    • 8
    • 期间需量冻结周期
    • 属性 2(配置参数)∷=TI
  • 4202

    • 8
    • 级联通信参数
    • 属性 2∷=structure
      {
       级联标志 bool,
       级联通信端口号 OAD,
       总等待超时(10ms) long-unsigned,
       字节超时(10ms) long-unsigned,
       重发次数 unsigned,
       巡测周期(min) unsigned,
       级联(被)端口数 unsigned,
       级联(被)终端地址 array TSA
      }
  • 4204

    • 8
    • 终端广播校时
    • 属性 2(终端广播校时参数)∷=structure
      {
       终端广播校时启动时间 time,
       是否启用 bool
      }
    • 属性 3(终端单地址广播校时参数)∷=structure
      {
       时钟误差阈值 integer(单位:秒),
       终端广播校时启动时间 time,
       是否启用 bool
      }
    • 电表时钟误差由终端自动计算获得,前提是采集任务中配置有采集电表时钟
    • 执行单地址广播校时后生成对应的终端对电表校时事件
  • 4300

    • 19
    • 电气设备
  • 4307

    • 19
    • 水表
    • 方法 127:出厂启用(参数)
      • 参数∷=NULL
      • 出厂前发出,且只能发一次
    • 方法 128:阀门控制(参数)
      • 参数∷=enum{开阀(55H),关阀(99H)}
    • 方法 129:机电同步(double-long-unsigned)
      • 用于出厂前机电同步,仅允许执行一次
  • 4308

    • 19
    • 气表
    • 方法 127:出厂启用(参数)
      • 参数∷=NULL
      • 出厂前发出,且只能发一次
    • 方法 128:阀门控制(参数)
      • 参数∷=enum{开阀(55H),关阀(99H)}
    • 方法 129:机电同步(double-long-unsigned)
      • 用于出厂前机电同步,仅允许执行一次
  • 4309

    • 19
    • 热表
  • 方法 127:出厂启用(参数)

    • 参数∷=NULL
    • 出厂前发出,且只能发一次
    • 方法 128:阀门控制(参数)
      • 参数∷=enum{开阀(55H),关阀(99H)}
    • 方法 129:机电同步(参数)
      • 参数∷=structure
        {
         热量 double-long-unsigned,
         热流量(水流量)double-long-unsigned
        }
      • 用于出厂前机电同步,仅允许执行一次
  • 4400

    • 20
    • 应用连接
  • 4401

    • 8
    • 认证密码
    • 属性 2(只写)∷=visible-string
  • 4500

    • 25
    • 公网通信模块 1
  • 4501

    • 25
    • 公网通信模块 2
  • 4510

    • 26
    • 以太网通信模块 1
  • 4511

    • 26
    • 以太网通信模块 2
  • 4512

    • 26
    • 以太网通信模块 3
  • 4513

    • 26
    • 以太网通信模块 4
  • 4514

    • 26
    • 以太网通信模块 5
  • 4515

    • 26
    • 以太网通信模块 6
  • 4516

    • 26
    • 以太网通信模块 7
  • 4517

    • 26
    • 以太网通信模块 8
  • 4520

    • 8
    • 公网远程通信多接入点备用通道
    • 属性 2∷=array 备用通道
    • 备用通道∷=structure
      {
       运营商 enum
       {
        CMCC(移动) = 0,
        CTCC(电信) = 1,
        CUCC(联通) = 2,
        未知 = 255
       },
       网络类型 enum {2G=0,3G=1,4G=2,未知=255},
       APN visible-string,
       用户名 visible-string,
       密码 visible-string,
       代理服务器地址 octet-string,
       代理端口 long-unsigned,
       主站通信参数 array structure
       {
        IP 地址 octet-string,
        端口 long-unsigned
       }
      }

A.6 冻结类对象

有关冻结类的对象标识定义见下表。

对象标识 OI 接口类 IC 对象名称
5000 9 瞬时冻结
5001 9 秒冻结
5002 9 分钟冻结
5003 9 小时冻结
5004 9 日冻结
5005 9 结算日冻结
5006 9 月冻结
5007 9 年冻结
5008 9 时区表切换冻结
5009 9 日时段表切换冻结
500A 9 费率电价切换冻结
500B 9 阶梯切换冻结
5011 9 阶梯结算冻结

A.7 采集监控类对象

有关采集监控类的对象标识定义见下。

示例:

  • 对象标识 OI

    • 接口类 IC
    • 对象名称
    • 实例的对象属性及方法定义
  • 6000

    • 11
    • 采集档案配置表
    • 属性 2(配置表,只读)∷=array 采集档案配置单元方法
    • 127:Add(采集档案配置单元)
      • 添加一个采集档案配置单元,配置单元的信息中基本信息必须是完整的
    • 方法 128:AddBatch(array 采集档案配置单元)
      • 批量添加采集档案配置单元
    • 方法 129:Update(参数)
      • 参数∷=structure
        {
        配置序号 long-unsigned,
        基本信息 Basic_object
        }
      • 更新配置单元的基本信息对象
    • 方法 130:Update(参数)
      • 参数∷=structure
        {
        配置序号 long-unsigned,
        扩展信息 Extended_object,
        附属信息 Annex_object
        }
      • 更新配置单元的扩展信息以及附属信息,对象为 NULL 表示不更新
    • 方法 131:Delete(配置序号)
      • 删除配置单元,通过配置序号删除
    • 方法 132:Delete(基本信息)
      • 删除配置单元,通过基本信息对象删除
    • 方法 133:Delete(参数)
      • 参数∷=structure
        {
         通信地址,
         端口号
        }
      • 删除配置单元,通过通信地址及端口删除
    • 方法 134:Clear (参数)
      • 参数∷=NULL
      • 清空采集档案配置表
  • 6001

    • 8
    • 采集档案配置单元
    • 属性 2(Acquisition document definition)∷=structure
      {
       配置序号 long-unsigned,
       基本信息 Basic_object,
       扩展信息 Extended_object,
       附属信息 Annex_object
      }
    • Basic_object∷=structure
      {
       通信地址 TSA,
       波特率 enum
       {
        300bps(0),
        600bps(1),
        1200bps(2),
        2400bps(3),
        4800bps(4),
        7200bps(5),
        9600bps(6),
        19200bps(7),
        38400bps(8),
        57600bps(9),
        115200bps(10),
        自适应(255)
       },
       规约类型 enum
       {
        未知 (0),
        DL/T645-1997(1),
        DL/T645-2007(2),
        DL/T698.45(3),
        CJ/T188-2004(4)
       },
       端口 OAD,
       通信密码 octet-string,
       费率个数 unsigned,
       用户类型 unsigned,
       接线方式 enum
       {
        未知(0),
        单相(1),
        三相三线(2),
        三相四线(3)
       },
       额定电压 long-unsigned(换算-1,单位 V),
       额定电流 long-unsigned(换算-1,单位 A)
      }
    • Extended_object∷=structure
      {
       采集器地址 TSA,
       资产号 octet-string,
       PT long-unsigned,
       CT long-unsigned
      }
    • Annex_object∷=array structure
      {
       对象属性描述 OAD,
       属性值 Data
      }
    • 注:annex [ə'neks] 附件,附属物
  • 6002

    • 11
    • 搜表
    • 属性 2(所有搜表结果)∷=array 一个搜表结果
    • 属性 5(跨台区搜表结果)∷=array 一个跨台区结果
    • 属性 6(所有搜表结果记录数)∷=long-unsigned
    • 属性 7(跨台区搜表结果记录数)∷=long-unsigned
    • 属性 8∷=structure
      {
       是否启用每天周期搜表 bool,
       自动更新采集档案 bool,
       是否产生搜表相关事件 bool,
       清空搜表结果选项 enum
       {
        不清空 (0),
        每天周期搜表前清空 (1),
        每次搜表前清空 (2)
       }
      }
    • 属性 9(每天周期搜表参数配置)∷=array 定时搜表参数
      • 定时搜表参数∷=structure
        {
         开始时间 time,
         搜表时长(min) long-unsigned
        }
    • 属性 10∷=enum
      {
       空闲(0),
       搜表中(1)
      }
    • 方法 127:实时启动搜表(搜表时长)
      • 搜表时长∷=long-unsigned,单位:分钟,
      • 表示搜表持续时间,0 表示不限时间直至搜表结束
    • 方法 128:清空搜表结果(参数)
    • 参数∷=NULL
    • 方法 129:清空跨台区搜表结果(参数)
      • 参数∷=NULL
  • 6003

    • 8
    • 一个搜表结果
    • 一个搜表结果∷=structure
      {
       通信地址 TSA,
       所属采集器地址 TSA,
       规约类型 enum
       {
        未知 (0),
        DL/T645-1997 (1),
        DL/T645-2007 (2),
        DL/T698.45 (3),
        CJ/T 188-2004 (4)
       },
       相位 enum
       {
        未知(0),
        A(1),
        B(2),
        C(3)
       },
       信号品质 unsigned,
       搜到的时间 date_time_s,
       搜到的附加信息 array 附加信息
      }
    • 附加信息∷=structure
      {
       对象属性描述 OAD,
       属性值 Data
      }
  • 6004

    • 8
    • 一个跨台区结果
    • 一个跨台区结果∷=structure
      {
       通信地址 TSA,
       主节点地址 TSA,
       变更时间 date_time_s
      }
  • 6012

    • 10
    • 任务配置表
    • 属性 2(配置表)∷=array 任务配置单元
    • 属性 3(记录表)∷=array 记录单元
    • 记录单元∷=structure
      {
       采集启动时标 date_time_s,
       采集成功时标 date_time_s,
       采集存储时标 date_time_s,
       采集通信地址 TSA,
       采集的数据 1 Data,
       …
       采集的数据 N Data
      }
    • 方法 127:Add(array 任务配置单元)
      • 添加或更新一组任务配置单元
    • 方法 128:Delete(array 任务 ID)
      • 删除一组配置单元
    • 方法 129:Clear (参数)
      • 参数∷=NULL
      • 清空任务配置表
    • 方法 130:Update(参数)
      • 参数∷=structure
        {
         任务 ID unsigned,
         状态 enum
        }
      • 更新任务状态
  • 6013

    • 8
    • 任务配置单元
    • 属性 2(任务配置单元)∷=structure
      {
       任务 ID unsigned,
       执行频率 TI,
       方案类型 enum
       {
        普通采集方案 (1),
        事件采集方案 (2),
        透明方案 (3),
        上报方案 (4),
        脚本方案 (5)
       },
       方案编号 unsigned,
       开始时间 date_time_s,
       结束时间 date_time_s,
       延时TI,
       执行优先级 unsigned,
       状态 enum
       {
        正常(1),
        停用(2)
       },
       任务开始前脚本 id long-unsigned,
       任务完成后脚本 id long-unsigned,
       任务运行时段 structure,
      }
    • 当方案类型为脚本时,方案编号为脚本 id
    • 任务运行时段∷=structrue
      {
       类型 enum
       {
        前闭后开 (0),
        前开后闭 (1),
        前闭后闭 (2),
        前开后开 (3)
       },
       时段表 array 时段
      }
    • 时段∷=structure
      {
       起始小时 unsigned,
       起始分钟 unsigned,
       结束小时 unsigned,
       结束分钟 unsigned
      }
  • 6014

    • 11
    • 普通采集方案集
    • 属性 2∷=array 普通采集方案
    • 方法 127:Add(array 普通采集方案)
      • 添加或更新一组普通采集方案
    • 方法 128:Delete(array 方案编号)
      • 删除一组普通采集方案
    • 方法 129:Clear (参数)
      • 参数∷=NULL
      • 清空普通采集方案集
    • 方法 130:Set_CSD(参数)
      • 参数∷=structure
        {
         方案编号 unsigned,
         记录列选择 array CSD
        }
      • 重置方案的记录列选择
  • 6015

    • 8
    • 普通采集方案
    • 属性 2(普通采集方案)∷=structure
      {
       方案编号 unsigned,
       存储深度 long-unsigned,
       采集方式 structure
       {
        采集类型 unsigned,
        采集内容 Data
       },
       记录列选择 array CSD,
       电能表集合 MS,
       存储时标选择 enum
       {
        未定义 (0),
        任务开始时间 (1),
        相对当日 0 点 0 分 (2),
        相对上日 23 点 59 分 (3),
        相对上日 0 点 0 分 (4),
        相对当月 1 日 0 点 0 分 (5),
        数据冻结时标 (6),
        相对上月月末 23 点 59 分 (7)
       }
      }
    • RetryMetering ∷= structure
      {
       数据时标间隔 TI,
       补抄周期(上 N 次) long-unsigned
      }
    • 采集方式数据格式如下:
采集类型 采集内容 表示
0 NULL 采集当前数据
1 unsigned 采集上第 N 次
2 NULL 按冻结时标采集
3 TI 按时标间隔采集
4 RetryMetering 补抄
  • 6016

    • 11
    • 事件采集方案集
    • 属性 2∷=array 事件采集方案
    • 方法 127:Add(array 事件采集方案)
      • 添加或更新一组事件采集方案
    • 方法 128:Delete(array 方案编号)
      • 删除一组事件采集方案
    • 方法 129:Clear (参数)
      • 参数∷=NULL
      • 清空事件采集方案集
    • 方法 130:UpdateReportFlag(参数)
      • 参数∷=structure
        {
         方案编号 unsigned,
         上报标识 bool
        }
  • 6017

    • 8
    • 事件采集方案
    • 属性 2(事件采集方案 Event acq plan)∷=structure
      {
       方案编号 unsigned,
       采集方式 structure
       {
        采集类型 unsigned,
        采集内容 Data
       }
       电能表集合 MS,
       上报标识 bool(True:立即上报,False:不上报),
       存储深度 long-unsigned
      }
    • 采集方式数据格式如下:
采集类型 采集内容 表示
0 array ROAD 周期采集事件数据
1 NULL 根据通知采集所有事件数据
2 array ROAD 根据通知采集指定事件数据
  • 6018

    • 11
    • 透明方案集
    • 属性 2∷=array 透明方案
    • 方法 127:Add(透明方案)
      • 添加更新一个透明方案或添加一组方案内容
    • 方法 128:AddMeterFrame(参数)
      • 参数∷=structure
        {
         方案编号 long-unsigned,
         通信地址 TSA,
         方案控制标志 structure,
         方案报文集 array 方案报文
        }
      • 添加一组报文
    • 方法 129:Delete(参数)
      • 参数∷=structure
        {
         方案编号 unsigned,
         通信地址集合 array TSA
        }
      • 删除一个方案的一组方案内容
    • 方法 130:Delete(array 方案编号)
      • 删除一组透明方案
    • 方法 131:Clear (参数)
      • 参数∷=NULL
      • 清空透明方案集
  • 6019

    • 8
    • 透明方案
    • 属性 2(透明方案)∷=structure
      {
       方案编号 unsigned,
       方案内容集 array 方案内容,
       存储深度 long-unsigned
      }
    • 方案内容∷=structure
      {
       序号 long-unsigned,
       通信地址 TSA ,
       开始前脚本 id long-unsigned,
       完成后脚本 id long-unsigned,
       方案控制标志 structure,
       方案报文集 array 方案报文
      }
    • 方案控制标志∷=structure
      {
       上报透明方案结果并等待后续报文 bool,
       等待后续报文超时时间(秒) long-unsigned,
       结果比对标识 enum
       {
        不比对(0),
        比(1),
        比对上报(2)},
        结果比对参数 structure
       }
    • 方案报文∷=structure
      {
       报文序号 unsigned,
       报文内容 octet-string
      }
    • 结果比对参数∷=structure
      {
       特征字节 unsigned,
       截取开始 long-unsigned,
       截取长度 long-unsigned
      }
  • 601A

    • 11
    • 透明方案结果集
    • 属性 2∷=array 一个透明方案结果
  • 601B

    • 8
    • 一个透明方案结果
    • 一个透明方案结果∷=structure
      {
       方案编号 unsigned,
       方案执行时间 date_time_s,
       通信地址 TSA,
       结果集 array 结果
      }
    • 结果∷=structure
      {
       报文序号 unsigned,
       报文响应时间 date_time_s,
       命令结果 octet-string
      }
  • 601C

    • 11
    • 上报方案集
    • 属性 2∷=array 上报方案
    • 方法 127:Add(array 上报方案)
      • 添加或更新一组上报方案
    • 方法 128:Delete(array 方案编号)
      • 删除一组上报方案
    • 方法 129:Clear (参数)
      • 参数∷=NULL
      • 清空上报方案集
  • 601D

    • 8

    • 上报方案

    • 属性 2(上报方案 report plan)∷=structure
      {
       方案编号 unsigned,
       上报通道 array OAD,
       上报响应超时时间 TI,
       最大上报次数 unsigned,
       上报内容 strcuture
       {
        类型 unsigned,
        数据 Data
       }
      }

    • RecordData∷=structure
      {
       主对象属性描述符 OAD,
       记录型对象属性描述符 RCSD,
       行选择 RSD
      }

    • 上报内容:

上报类型 上报内容 表示
0 OAD 对象属性数据
1 RecordData 上报记录型对象属性
  • 601E

    • 11
    • 采集规则库
    • 属性 2(采集规则库)∷=array 采集规则方法
    • 127:Add(array 采集规则)
      • 添加或更新一组采集规则
    • 方法 128:Delete(array CSD)
      • 删除一组采集规则
    • 方法 129:Clear (参数)
      • 参数∷=NULL
      • 清空采集规则库
  • 601F

    • 8
    • 采集规则
    • 属性 2∷=structure
      {
       数据列选择描述符 CSD,
       规则描述 structrue
       {
        AcqCmd_2007 structure
        {
         主用 DI array octet-string(SIZE(4)),
         备用 DI array octet-string(SIZE(4))
        },
        AcqCmd_1997 structure
        {
         主用 DI array octet-string(SIZE(2)),
         备用 DI array octet-string(SIZE(2))
        },
        AcqCmd_Trans structure
        {
         Frame octet-string
        }
       }
      }
    • 当主用 DI 无法抄到时,使用备用 DI 替换抄读
    • DI 为多功能电能表通信协议中的数据标识,见 DL/T 645-2007
  • 6032

    • 11
    • 采集状态集
    • 属性 2∷=array 一个采集状态
  • 6033

    • 8
    • 一个采集状态
    • 一个采集状态∷=structure
      {
       通信地址 TSA,
       中继级别 unsigned,
       中继地址 TSA,
       端口 OAD,
       最后一次采集成功时间 date_time_s,
       采集失败次数 unsigned,
       相位 enum
       {
        未知(0),
        A 相(1),
        B 相(2),
        C 相(3)
       },
       相序异常 enum
       {
        正常(0),
        LN 互易(1),
        逆相序(2)
       }
      }
  • 6034

    • 11
    • 采集任务监控集
    • 属性 2∷=array 采集任务监控单元
  • 6035

    • 8
    • 采集任务监控单元
    • 采集任务监控单元∷=structure
      {
       任务 ID unsigned,
       任务执行状态 enum
       {
        未执行(0),
        执行中(1),
        已执行(2)
       },
       任务执行开始时间 date_time_s,
       任务执行结束时间 date_time_s,
       采集总数量 long-unsigned,
       采集成功数量 long-unsigned,
       已发送报文条数 long-unsigned,
       已接收报文条数 long-unsigned
      }
    • 说明:采集成功数量、已发送报文条数、已接收报文条数,每次任务执行先清零
  • 6040

    • 8
    • 采集启动时标
    • 属性 2∷=date_time_s
  • 6041

    • 8
    • 采集成功时标
    • 属性 2∷=date_time_s
  • 6042

    • 8
    • 采集存储时标
    • 属性 2∷=date_time_s

A.8 集合类对象

有关集合类的对象标识定义见下。

示例:

  • 对象标识 OI

    • 接口类 IC
    • 对象名称
    • 实例的对象属性及方法定义
  • 7000

    • 11
    • 文件集合
    • 方法 127:WriteFile(参数)
      • 参数∷=structure
        {
         文件名 visible-string,
         偏移 double-long,
         内容 octet-string
        }
      • 写文件
    • 方法 128:Execute(文件名)
      • 执行文件
    • 方法 129:DeleteFile(文件名)
      • 删除文件
    • 文件名∷=visible-string
  • 7001

    • 8
    • 文件
    • 属性 2:文件
      文件∷=structure
      {
       文件名 visible-string,
       扩展名 visible-string,
       文件长度 long-unsigned,
       创建时间 date_time_s,
       修改时间 date_time_s,
       数据来源 enum
       {
        主站(0),
        终端自身(1),
        采集器(2),
        电能表(3),
        其它(255)
       },
       文件内容 octet-string
      }
    • 文件名:不包含扩展名
    • 扩展名:取专用文件格式描述符或者非标准自定义文件描述符,如 Dat、jpg、bmp、mp3、mpeg、avi 等
    • 文件长度:单位字节
    • 数据来源:描述文件数据内容来源
    • 文件内容:文件的数据内容
  • 7010

    • 11
    • 脚本集合
    • 属性 2∷=array 脚本方法 127:Add(脚本)
      • 添加更新一个脚本
    • 方法 128:Delete(脚本 id)
      • 删除一个脚本
    • 方法 129:Execute(脚本 id)
      • 执行脚本
    • 方法 130:Clear (参数)
      • 参数∷=NULL
      • 清空脚本集
    • 脚本 id∷=long-unsigned
  • 7011

    • 8
    • 脚本
    • 属性 2∷=脚本
    • 脚本∷=structure
      {
       脚本 ID long-unsigned,
       操作集 array 一个操作
      }
    • 一个操作∷=APDU
    • 一个操作等价于一个 APDU
  • 7012

    • 11
    • 脚本执行结果集
    • 属性 2∷=array 一个脚本执行结果
  • 7013

    • 8
    • 一个脚本执行结果
    • 脚本执行结果∷=structure
      {
       脚本 ID long-unsigned,
       脚本执行时间 date_time_s,
       脚本执行结果集 array 一个执行结果
      }
    • 一个执行结果∷=APDU
    • 一个结果等价于一个 APDU
  • 7100

    • 11
    • 扩展变量对象集合
    • 属性 2∷=扩展变量对象集合
    • 扩展变量对象集合∷=array 变量类对象
    • 变量类对象∷=Data
  • 7101

    • 11
    • 扩展参变量对象集合
    • 属性 2∷=扩展参变量对象集合
    • 扩展参变量对象集合∷=array 参变量类对象
    • 参变量类对象∷=Data

A.9 控制类对象

有关控制类的对象标识定义见表下。

示例:

  • 对象标识 OI

    • 接口类 IC
    • 对象名称
    • 实例的对象属性及方法定义
  • 8000

    • 8
    • 远程控制
    • 属性 2(配置参数)∷=structure
      {
       继电器拉闸电流门限值 double-long-unsigned(单位:A,换算-4),
       超电流门限保护延时时间 long-unsigned(单位:分钟,换算 0)
      }
    • 属性 4(告警状态,只读)∷=bit-string(SIZE(8))
      • 告警状态:bit0…bit7 分别按顺序对位表示 1…8 号继电器遥控告警输出状态
        • 置“1”:处于告警状态
        • 置“0”:未处于告警状态
    • 属性 5(命令状态,只读)∷=bit-string(SIZE(8))
      • 继电器命令状态:bit0…bit7 分别按顺序对位表示 1…8 号继电器遥控跳闸命令输出状态
        • 置“1”:跳闸命令
        • 置“0”:合闸命令
    • 方法 127:触发告警(参数)
      • 参数∷=NULL
    • 方法 128:解除报警(参数)
      • 参数∷=NULL
    • 方法 129:跳闸(参数)
      • 参数∷=array structure
        {
         继电器 OAD,
         告警延时 unsigned(单位:分钟,换算:0),
         限电时间 long-unsigned(单位:分钟,换算:0;值为 0 表示永久限电),
         自动合闸 bool(True:自动合闸;False:非自动合闸)
        }
    • 方法 130:合闸(参数)
      • 参数∷=array structure
        {
         继电器 OAD,
         命令 enum
         {
          合闸允许(0),
          直接合闸(1)
         }
        }
    • 方法 131:电表明文合闸(参数)
      • 参数∷=array structure
        {
         继电器 OAD,
         命令 enum
          {
           合闸允许(0),
           直接合闸(1)
          },
         密码 visible-string
         }
  • 8001

    • 8
    • 保电
    • 属性 2(保电状态,只读)∷=enum
      {
       解除(0),
       保电(1),
       自动保电(2)
      }
    • 属性 3∷=long-unsigned
      • 允许与主站最大无通信时长(分钟),0 表示不自动保电
    • 属性 4∷=long-unsigned
      • 上电自动保电时长(分钟),0 表示上电不自动保电
    • 属性 5∷=array 自动保电时段
      • 自动保电时段∷=structure
        {
         起始时间(时) unsigned,
         结束时间(时) unsigned
        }
      • 时间段区间规则为前闭后开
    • 方法 127:投入保电(参数)
      • 参数∷=NULL
      • 用于投入保电状态,即禁止一切执行跳闸的继电器输出控制,且恢复已跳闸的继电器输出控制
    • 方法 128:解除保电(参数)
      • 参数∷=NULL
      • 用于解除保电状态
    • 方法 129:解除自动保电(参数)
      • 参数∷=NULL
      • 用于解除自动保电状态
  • 8002

    • 8
    • 催费告警
    • 属性 2(催费告警状态,只读)∷=enum{未告警(0),告警(1)}
    • 属性 3(催费告警参数,只读)∷= structure
      {
       告警时段 octet-string(SIZE(3)),
       告警信息 visible-string(SIZE(1...200))
      }
    • 告警时段:bit0~bit23 按顺序表示 0~23 点
      • 置 1 表示告警
      • 置 0 表示不告警
    • 方法 127:催费告警投入(催费告警参数)
      • 催费告警参数同属性 3
    • 方法 128:取消催费告警(参数)
      • 参数∷=NULL
  • 8003

    • 11
    • 一般中文信息
    • 属性 2∷=array ChineseInfo C
    • hineseInfo∷=structure
      {
       序号 unsigned,
       发布时间 date_time_s,
       已阅读标识 bool(True:已阅读,False:未阅读),
       信息内容 visible-string(SIZE(1...200))
      }
    • 方法 127:添加信息(参数)
      • 参数∷=structure
        {
         序号 unsigned,
         发布时间 date_time_s,
         信息内容 visible-string(SIZE(1...200))
        }
    • 方法 128:删除信息(序号)
      • 序号参见方法 127
  • 8004

    • 11
    • 重要中文信息
    • 属性 2∷=array ChineseInfo
      • ChineseInfo 定义参见 8003
    • 方法 127:添加信息(参数)
      • 参数∷=structure
        {
         序号 unsigned,
         发布时间 date_time_s,
         信息内容 visible-string(SIZE(1...200))
        }
    • 方法 128:删除信息(序号)
      • 序号参见方法 127
  • 8100

    • 8
    • 终端保安定值
    • 终端保安定值∷=long64(单位:W,换算:-1)
  • 8101

    • 8
    • 终端功控时段
    • 属性 2(配置参数)∷=array unsigned
    • 终端功控时段单元格式见下表
D7~D6 D5~D4 D3~D2 D1~D0 字节数
1:30-2:00 1:00-1:30 0:30-1:00 0:00-0:30 第 1 字节
3:30-4:00 3:00-3:30 2:30-3:00 2:00-2:30 第 2 字节
…… …… …… ……
23:30-24:00 23:00-23:30 22:30-23:00 22:00-22:30 第 12 字节
  • 每半小时以两位编码表示 4 种控制状态
    • 取值 0…3 依次表示不控制、控制 1、控制 2、保留
  • 控制状态标识的应用规则
    • 连续时间单元,具有相同控制状态标识表示同一控制时段
      • 连续时间单元具有不同控制状态标识,表示相邻的两个时段,控制 1 与控制 2 用以区分具备 2 个不同的定值的连续时段,当控制状态标识发生变化时,表示前一控制时段结束,后一控制时段开始
    • 对于不连续的控制时段可以用控制 1 或控制 2 表示
  • 8102

    • 8
    • 功控告警时间
    • 属性 2(配置参数)∷=array unsigned
    • 告警时间按顺序表示 1-n 轮次的功控告警时间(单位:分钟)
  • 8103

    • 13
    • 时段功控
    • 属性 2(控制方案集)∷=array 时段功控配置单元方法
    • 127:时段功控方案切换(参数)
    • 参数∷=structure
      {
       总加组对象 OI,
       控制方案 structure
       {
        时段功控投入标识 bit-string(SIZE(8)),
        时段功控定值方案号 unsigned
       }
      }
    • 时段功控投入标识:D0…D7 按顺序对位表示第 1…第 8 时段
      • 置“1”:有效
      • 置“0”:无效
    • 时段功控定值方案号:数值范围:0…2 依次表示第 1…第 3 套方案,其他
      值无效
  • 8104

    • 13
    • 厂休控
    • 属性 2(控制方案集)∷=array 厂休控配置单元
  • 8105

    • 13
    • 营业报停控
    • 属性 2(控制方案集)∷=array 营业报停控配置单元
  • 8106

    • 13
    • 当前功率下浮控
    • 属性 2:不可访问
    • 方法 127 投入(参数)
    • 参数∷=structure
      {
       总加组对象 OI,
       控制方案 structure
       {
        当前功率下浮控定值滑差时间 unsigned(单位:分钟),
        当前功率下浮控定值浮动系数 integer(单位:%),
        控后总加有功功率冻结延时时间 unsigned(单位:分钟),
        当前功率下浮控的控制时间 unsigned(单位:0.5 小时),
        当前功率下浮控第 1 轮告警时间 unsigned(单位:分钟),
        当前功率下浮控第 2 轮告警时间 unsigned(单位:分钟),
        当前功率下浮控第 3 轮告警时间 unsigned(单位:分钟),
        当前功率下浮控第 4 轮告警时间 unsigned(单位:分钟)
       }
      }
    • 当前功率下浮控定值浮动系数
      • 负值表示下浮
      • 正值表示上浮
  • 8107

    • 13
    • 购电控
    • 属性 2(控制方案集)∷=array 购电控配置单元
  • 8108

    • 13
    • 月电控
    • 属性 2(控制方案集)∷=array 月电控配置单元
  • 8109

    • 8
    • 时段功控配置单元
    • 属性 2∷=structure
      {
       总加组对象 OI,
       方案标识 bit-string(SIZE(8)),
       第一套定值 PowerCtrlParam,
       第二套定值 PowerCtrlParam,
       第三套定值 PowerCtrlParam,
       时段功控定值浮动系数 integer(单位:%)
      }
    • 方案标识:bit0…bit2 按顺序对位表示第 1…第 3 套定值
      • 置“1”:有效
      • 置“0”:无效
    • PowerCtrlParam∷=structure
      {
       时段号 bit-string(SIZE(8)),
       时段 1 功控定值 long64(单位:W,换算:-1),
       时段 2 功控定值 long64(单位:W,换算:-1),
       时段 3 功控定值 long64(单位:W,换算:-1),
       时段 4 功控定值 long64(单位:W,换算:-1),
       时段 5 功控定值 long64(单位:W,换算:-1),
       时段 6 功控定值 long64(单位:W,换算:-1),
       时段 7 功控定值 long64(单位:W,换算:-1),
       时段 8 功控定值 long64(单位:W,换算:-1)
      }
    • 时段号:bit0…bit7 按顺序对位表示第 1…第 8 时段
    • 置“1”:有效
    • 置“0”:无效
  • 810A

    • 8
    • 厂休控配置单元
    • 属性 2∷=structure
      {
       总加组对象 OI,
       厂休控定值 long64(单位:W,换算:-1),
       限电起始时间 date_time_s(年=FFFFH,月=FFH,日=FFH),
       限电延续时间 long-unsigned(单位:分钟),
       每周限电日 bit-string(SIZE(8))
      }
    • 每周限电日:D1…D7 表示星期一…星期日,D0=0。
  • 810B

    • 8
    • 营业报停控配置单元
    • 属性 2∷=structure
      {
       总加组对象 OI,
       报停起始时间 date_time_s(时=FFH,分=FFH),
       报停结束时间 date_time_s(时=FFH,分=FFH),
       报停控功率定值 long64(单位:W,换算:-1)
      }
  • 810C

    • 8
    • 购电控配置单元
    • 属性 2∷=structure
      {
       总加组对象 OI,
       购电单号 double-long-unsigned,
       追加/刷新标识 enum{追加(0),刷新(1)},
       购电类型 enum{电量(0),电费(1)},
       购电量(费)值 long64(单位:kWh/元, 换算:-4),
       报警门限值 long64(单位:kWh/元,换算:-4),
       跳闸门限值 long64(单位:kWh/元,换算:-4),
       购电控模式 enum{本地模式(0),远程模式(1)}
      }
  • 810D

    • 8
    • 月电控配置单元
    • 属性 2∷=structure
      {
       总加组对象 OI,
       月电量控定值 long64(单位:kWh,换算:-4),
       报警门限值系数 unsigned(单位:%),
       月电量控定值浮动系数 integer(单位:%)
      }
  • 810E

    • 8
    • 控制对象
  • 810F

    • 8
    • 跳闸轮次
  • 8110

    • 8
    • 电控定值

A.10 文件传输类对象

有关文件传输类的对象标识定义见下。

示例:

  • 对象标识 OI
    • 接口类 IC
    • 对象名称
    • 实例的对象属性及方法定义
  • F000

    • 18
    • 文件分帧传输管理
    • 属性 4(文件内容)∷=octet-string
    • 传输文件的内容,由分帧服务完成分帧传输
    • 写文件内容:用 SET 方法,目标文件不存在则创建,并清零当前指针
    • 读文件内容:用 GET 方法,源文件不存在则返回错误,目标文件不存在则创建,并清零当前指针
    • 属性 5(当前指针)∷=double-long-unsigned
      • 当前传输文件的所在位置指针,单位 byte。用于断点续传
  • F001

    • 18

    • 文件分块传输管理

    • 属性 4(传输块状态字,只读)∷=bit-string

      • 按 bit 位标识每个数据块的传输状态,bit0 代表第一个数据块, 依次类推
      • bitN=0,表示未传输
      • bitN=1,表示传输成功(N 从 0… 总传输块数-1)
    • 方法 7:启动传输(参数)

      • 参数∷=structure
        {
         文件信息 structure,
         传输块大小 long-unsigned,
         校验 structure
        }
      • 文件信息数据结构见《文件传输接口类属性说明》中的属性 2
      • 校验数据结构见《文件传输接口类方法说明》方法 4
    • 方法 8:写文件(参数)

      • 参数∷=structure
        {
         块序号 long-unsigned,
         块数据 octet-string
        }
      • 目标文件不存在则创建,并清零传输状态字,块序号从 0 开始
    • 方法 9:读文件(参数)

      • 参数∷=structure
        {
         块序号 long-unsigned
        }
      • 应答∷=structure
        {
         块数据 octet-string
        }
      • 源文件不存在则返回错误,目标文件不存在则创建,并清零传输状态字
    • 方法 10:软件比对(参数)

      • 参数∷=structure
        {
         CPU 编号 unsigned,
         密钥索引 unsigned,
         因子起始地址 double-long-unsigned,
         数据起始地址 double-long-unsigned,
         待加密数据长度 long-unsigned
        }
      • 应答∷=structure
        {
         比对块数据 octet-string
        }
      • 软件比对是指:对设备的软件进行比对
        • 命令中 CPU 编号的 bit0…bit2 有效,其它保留。该字节缺省为 00,如设备内部存在多个 CPU,主 CPU 编号为 0,其它自行编号,最多支持 8 个 CPU
        • 软件比对命令中如果比对因子起始地址或比对数据起始地址超出设备 MCU 的地址空间,则认为设备不支持这部分数据,返回应答“地址异常”
        • 软件比对命令中比对因子和比对数据的起始地址用绝对地址表示
        • 软件比对命令中嵌有安全模块的设备应采用安全模块加密保护方式比对,不支持异或加密方式比对
        • 未嵌安全模块的设备应采用异或加密方式比对
        • 软件比对命令中未嵌安全模块的设备比对密钥索引固定为 0,异或加密方式见附 录 E
  • F002

    • 18
    • 文件扩展传输管理
    • 属性 4(服务器信息)∷=structure
      {
       IP 地址 octet-string,
       端口 long-unsigned,
       户名 visible-string,
       密码 visible-string
      }
      • 扩展传输是对基于 TCP 连接的通用文件传输协议的扩展支持
    • 方法 7:从服务器下载(参数)
      • 参数∷=structure
        {
         文件信息 structure,
         协议类型 enum
         {
          telnet+zmodem 协议 (0),
          ftp 协议 (1),
          sftp 协议 (2),
          http 协议 (3),
          https 协议 (4)
         }
        }
      • 以客户机模式主动连接指定远程服务器下载文件,并通过“命令结果”反馈执行情况。目标文件不存在则创建
    • 方法 8:上传到服务器(参数)
      • 参数∷=structure
        {
        文件信息 structure,
        协议类型 enum
        }
      • 以客户机模式主动连接指定远程服务器上传文件,并通过“命令结果”反馈执行情况。源文件不存在则返回错误,目标文件不存在则创建
      • 文件信息数据结构见《文件传输接口类属性说明》中的属性 2

A.11 ESAM 接口类对象

有关 ESAM 接口类的对象标识定义见下。

示例:

  • 对象标识 OI
    • 接口类 IC
    • 对象名称
    • 实例的对象属性及方法定义
  • F100

    • 21
    • ESAM
  • F101

    • 8
    • 安全模式参数
    • 属性 2(安全模式选择)∷=enum
      {
       不启用安全模式参数(0),
       启用安全模式参数 (1)
      }
    • 属性 3(显式安全模式参数)∷=array 安全模式参数
      • 安全模式参数∷=structure
        {
        对象标识 OI,
        安全模式 long-unsigned
        }
    • 安全模式选择意义
      • 0—不启用安全模式参数、默认安全模式参数
      • 1—启用安全模式参数、默认安全模式参数
      • 属性 3 为显式安全模式参数(设置值),如果对象安全性不在属性 3 中,则按默认安全模式参数
      • 如果同一对象安全性在安全模式参数、默认安全模式参中均有说明,则按显式安全模式参数执行
      • 安全模式参数、默认安全参数具体定义见附录 F,安全模式定义见附录 F 中表 F.1
    • 属性 4(SAL 安全应用数据链路层参数)∷=enum
      {
       不启用 SAL(0),
       启用 SAL (1)
      }
    • 方法 1:复位(参数)
      • 参数∷=integer(0)
      • 复位时,清空属性 3
    • 方法 127:增加显式安全模式参数(参数)
      • 参数∷=structure
        {
         对象标识 OI,
         权限 long-unsigned
        }
    • 方法 128:删除显式安全模式参数(对象标识)
      • 对象标识∷=OI
    • 方法 129:批量增加显式安全模式参数(array 安全模式参数)
      • 安全模式参数∷=structure
        {
         对象标识 OI ,
         安全模式 long-unsigned
        }

A.12 输入输出设备类对象

有输入输出设备类对象标识定义见下。

示例:

  • 对象标识 OI

    • 接口类 IC
    • 对象名称
    • 实例的对象属性及方法定义
  • F200

    • 22
    • RS232
    • 属性 2(设备对象列表,只读)∷=array 端口
      • 端口∷=structure
        {
         端口描述符 visible-string,
         端口参数 COMDCB,
         端口功能 enum{上行通信(0),抄表(1),级联(2),停用(3)}
        }
    • 方法 127:配置端口(参数)
      • 参数∷=structure
        {
         端口号 OAD,
         端口参数 COMDCB,
         端口功能 enum
        }
  • F201

    • 22
    • RS485 同 F200
  • F202

    • 22
    • 红外
    • 属性 2(设备对象列表,只读)∷=array 红外端口
      • 红外端口∷=structure
        {
         端口描述符 visible-string,
         端口参数 COMDCB
        }
    • 方法 127:配置端口(参数)
      • 参数∷=structure
        {
         端口号 OAD,
         端口参数 COMDCB
        }
  • F203

    • 22
    • 开关量输入
    • 属性 2(设备对象列表,只读)∷=array 开关量单元
      • 开关量单元∷=structure
        {
         状态 ST unsigned,
         变位 CD unsigned
        }
      • 状态 ST
        • 0:“分”状态
        • 1:“合”状态
      • 变位 CD
        • 0:自前次遥信传送后无状态变化
        • 1:自前次遥信传送后至少有一次状态变化
    • 属性 4∷=structure
      {
       开关量接入标志 bit-string(SIZE(8))
       (
        bit0…bit7 按顺序对位表示第 1…8 路状态量输入,置“1”:接入,置“0”:未接入。
       ),
       开关量属性标志 bit-string(SIZE(8))
       (
        bit0…bit7 按顺序对位表示第 1…8 路状态量输入,置“1”:常开触点,置“0”:常闭触点。
       )
      }
  • F204

    • 22
    • 直流模拟量
    • 属性 2(设备对象列表,只读)∷=array 直流模拟量
      • 直流模拟量∷=double-long
    • 属性 4∷=array 直流模拟量配置
      • 直流模拟量配置∷=structure
        {
         量程起始值 double-long,
         量程结束值 double-long,
         换算及单位 Scaler_Unit
        }
  • F205

    • 22
    • 继电器输出
    • 属性 2(设备对象列表,只读)∷=array 继电器单元
      • 继电器单元∷=structure
        {
         描述符 visible-string,
         当前状态 enum{合闸(0),跳闸(1) },
         开关属性 enum{脉冲式(0),保持式(1)},
         接线状态 enum{接入(0),未接入(1) }
        }
    • 方法 127:修改开关属性(参数)
      • 参数∷=structure
        {
         继电器号 OAD,
         开关属性 enum
        }
  • F206

    • 22
    • 告警输出
    • 属性 2(设备对象列表,只读)∷=array 告警输出
      • 告警输出∷=enum
        {
         未输出(0),输出(1)
        }
    • 属性 4∷=array 允许告警时段
      • 允许告警时段∷=structure
        {
         起始时间 Time,
         结束时间 Time
        }
  • F207

    • 22
    • 多功能端子
    • 属性 2(设备对象列表,只读)∷=array 端子功能
      • 端子功能∷=enum
        {
         秒脉冲输出(0),
         需量周期 (1),
         时段投切 (2)
        }
    • 方法 127:修改工作模式 (参数)
      • 参数∷=structure
        {
         路号 OAD,
         端子功能 enum
        }
  • F208

    • 22
    • 交采接口
    • 属性 2(设备对象列表,只读)∷=array 交采单元
      • 交采单元∷=structure
        {
         交采描述符 visible-string
        }
  • F209

    • 22
    • 载波/微功率无线接口
    • 属性 2(设备对象列表,只读)∷=array 本地通信模块单元
      • 本地通信模块单元∷=structure
        {
         端口描述符 visible-string,
         通信参数 COMDCB,
         版本信息 VersionInfo
        }
      • VersionInfo∷=structure
        {
         厂商代码 visible-string(SIZE(2)),
         芯片代码 visible-string(SIZE(2)),
         版本日期 Date,
         软件版本 long-unsigned
        }
    • 属性 5(从节点对象列表,只读)∷=array 从节点单元
    • 属性 6(从节点对象列表更新周期)∷= TI
    • 方法 127:透明转发(参数)
      • 参数∷=structure
        {
         通信地址 TSA,
         接收等到报文超时时间(秒) long-unsigned,
         透明转发命令 octet-string
        }
      • 返回结果∷=octet-string
    • 方法 128:配置端口参数(参数)
      • 参数∷=structure
        {
         端口号 OAD,
         通信参数 COMDCB
        }
  • F20A

    • 22
    • 脉冲输入设备
    • 属性 2(设备对象列表,只读)∷=array 脉冲输入端口描述符
      • 脉冲输入端口描述符∷=visible-string
  • F20B

    • 22
    • 蓝牙
    • 属性 2(设备对象列表,只读)∷=array 蓝牙模块
      • 蓝牙模块∷=structure
        {
         端口描述符 visible-string,
         通信参数 COMDCB
        }
    • 方法 127:配置端口(参数)
      • 参数∷=structure
        {
         端口号 OAD,
         通信参数 COMDCB
        }
  • F20C

    • 22
    • 230M 无线专网接口
    • 属性 2(设备对象列表,只读)∷=array 230 无线专网模块
      • 230 无线专网模块∷=structure
        {
        端口描述符 visible-string,
        }
    • 属性 4∷=array 频道设置
      • 频道设置 ∷=unsigned (取值范围 1…16)
    • 属性 5(只读)∷=array 有效信号强度
      • 有效信号强度∷= integer (单位 dBμV)
  • F210

    • 8
    • 从节点单元
    • 属性 2∷=structure
      {
       从节点序号 long-unsigned,
       从节点通信地址 octet-string,
       从节点描述符 visible-string
      }

A.13 显示类对象

对象标识 OI 接口类 IC 对象名称
F300 17 自动轮显
F301 17 按键轮显

附录 B(规范性附录) 物理单位枚举定义

物理单位的枚举定义见下表。

代码 单位 单位名称 SI 定义
1 a 时间
2 mo 时间
3 wk 时间 7×24×60×60s
4 d 时间 24×60×60s
5 h 时间 小时 60×60s
6 min 时间 60s
7 s 时间(t) s
8 ° (相)角 rad×180/π
9 温度(T) 摄氏度 K-273.15
10 货币 (当地)货币
11 m 长度(l) m
12 m/s 速度(v) 米/秒 m/s
13 m3 体积(V) rV,仪表常数或脉冲值(容积) 立方米 m3
14 m3 修正的体积 立方米 m3
15 m3/h 流量 立方米每小时 m3/(60×60s)
16 m3/h 修正的流量 立方米每小时 m3/(60×60s)
17 m3/d 流量 立方米每 24 小时 m3/(24×60×60s)
18 m3/d 修正的流量 立方米每 24 小时 m3/(24×60×60s)
19 l 容积 10-3m3
20 kg 质量(m) 千克 kg
21 N 力(F) 牛顿 N
22 Nm 能量 牛顿米 J=Nm=Ws
23 P 压力(p) 帕斯卡 N/m2
24 bar 压力(p) 10-5N/m2
25 J 能量 焦耳 J=Nm=Ws
26 J/h 热功 焦每小时 J/(60×60s)
27 W 有功功率(P) W=J/s
28 kW 有功功率(P) 千瓦 kW=J/(s×1000)
29 VA 视在功率(S) 伏安
30 kVA 视在功率(S) 千伏安
31 var 无功功率(Q)
32 kvar 无功功率(Q) 千乏
33 kWh 有功能量 rw,有功电能表常数或脉冲值 千瓦-时 kW×(60×60s)
34 kVAh 视在能量 rS,视在电能表常数或脉冲值 千伏-安-小时 kVA×(60×60s)
35 kvarh 无功能量 rB,无功电能表常数或脉冲 千乏-时 kvar×(60×60s)
36 A 电流(I) 安培 A
37 C 电量(Q) 库仑 C=As
38 V 电压(U) 伏特 V
39 V/m 电场强度(E) 伏每米 V/m
40 F 电容(C) 法拉 C/V=As/V
41 Ω 电阻(R) 欧姆 Ω=V/A
42 Ωm2/m 电阻系数(ρ) Ωm
43 Wb 磁通量(Φ) 韦伯 Wb=Vs
44 T 磁通密度(T) 泰斯拉 Wb/m2
45 A/m 磁场强度(H) 安培每米 A/m
46 H 电感(L) 亨利 H=Wb/A
47 Hz 频率 赫兹 1/s
48 1/(Wh) 有功能量表常数或脉冲 imp/kWh
49 1/(varh) 无功能量表常数或脉冲
50 1/(VAh) 视在能量表常数或脉冲
51 % 百分比 百分之
52 byte 字节 字节
53 dBm 分贝毫瓦
54 元/kWh 电价
55 Ah 安时 安时
56 ms 毫秒 毫秒
57 dBμV
58…253 保留
254 其他单位
255 无单位、缺单位、计数

数值举例见下表:

数值 换算 单位 数据
263788 -3 m3 263.783 m3
593 3 Wh 593 kWh
3467 0 V 3467 V

附录 C(规范性附录)有关一致性协商

C.1 协议一致性协商

ProtocolConformance∷=bit-string(SIZE(64))
{
序号
应用连接协商 Application Association 0
请求对象属性 Get Normal 1
批量请求基本对象属性 Get With List 2
请求记录型对象属性 Get Record 3
代理请求对象属性 Get Proxy 4
代理请求记录型对象属性 Get Proxy Record 5
请求分帧后续帧 Get Subsequent Frame 6
设置基本对象属性 Set Normal 7
批量设置基本对象属性 Set With List 8
设置后读取 Set With Get 9
代理设置对象属性 Set Proxy 10
代理设置后读取对象属性 Set Proxy With Get 11
执行对象方法 Action Normal 12
批量执行对象方法 Action With List 13
执行方法后读取 Action With List 14
代理执行对象方法 Action Proxy 15
代理执行后读取 Action Proxy With Get 16
事件主动上报 Active Event Report 17
事件尾随上报 18
事件请求访问位 ACD 上报 19
分帧数据传输 Slicing Service 20
Get-request 分帧 21
Get-response 分帧 22
Set-request 分帧 23
Set-response 分帧 24
Action-request 分帧 25
Action-response 分帧 26
Proxy-request 分帧 27
Proxy-response 分帧 28
事件上报分帧 29
DL/T645-2007 30
安全方式传输 31
对象属性 ID 为 0 的读取访问 32
对象属性 ID 为 0 的设置访问 33
}

C.2 功能一致性协商

FunctionConformance∷=bit-string(SIZE(128))
{
序号
电能量计量 (0),
双向有功计量 (1),
无功电能计量 (2),
视在电能计量 (3),
有功需量 (4),
无功需量 (5),
视在需量 (6),
复费率 (7),
阀控 (8),
本地费控 (9),
远程费控 (10),
基波电能 (11),
谐波电能 (12),
谐波含量 (13),
波形失真度 (14),
多功能端子输出 (15),
事件记录 (16),
事件上报 (17),
温度测量 (18),
状态量监测(如:开表盖/开端钮盖) (19),
以太网通信 (20),
红外通信 (21),
蓝牙通信 (22),
多媒体采集 (23),
级联 (24),
直流模拟量 (25),
弱电端子 12V 输出 (26),
搜表 (27),
三相负载平衡 (28),
升级 (29),
比对 (30)
}

附录 D(资料性附录)校验算法

D.1 校验算法

/*
*   u16 represents an unsigned 16-bit number. Adjust the typedef for
*   your hardware.
*   Drew D. Perkins at Carnegie Mellon University.
*   Code liberally borrowed from Mohsen Banan and D. Hugh Redelmeier.
*/
typedef unsigned short u16;
/*
*   FCS lookup table as calculated by the table generator.
*/
static u16 fcstab[256]={
0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
 

0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
};
#define PPPINITFCS16 0xffff /* Initial FCS value */ #define PPPGOODFCS16 0xf0b8 /* Good final FCS value */
/*
*   Calculate a new fcs given the current fcs and the new data.
*/
u16 pppfcs16(fcs, cp, len) register u16 fcs;
register unsigned char *cp; register int len;
{
ASSERT(sizeof (u16) == 2); ASSERT(((u16) -1) > 0);
while (len--)
fcs=(fcs >> 8) ^ fcstab[(fcs ^ *cp++) & 0xff]; return (fcs);
}
/*
*   How to use the fcs
*/
tryfcs16(cp, len)
register unsigned char *cp; register int len;
{
u16 trialfcs;
/* add on output */
trialfcs=pppfcs16( PPPINITFCS16, cp, len ); trialfcs ^= 0xffff; /* complement */
cp[len]=(trialfcs & 0x00ff); /* least significant byte first */ cp[len+1]=((trialfcs >> 8) & 0x00ff);
/* check on input */
trialfcs=pppfcs16( PPPINITFCS16, cp, len + 2 ); if ( trialfcs == PPPGOODFCS16 )
 

printf("Good FCS\n");
}

D.2 校验表发生器

/*
*   Generate a FCS-16 table.
*   Drew D. Perkins at Carnegie Mellon University.
*   Code liberally borrowed from Mohsen Banan and D. Hugh Redelmeier.
*   The FCS-16 generator polynomial: x**0 + x**5 + x**12 + x**16.
*/
#define P 0x8408
/*
*   NOTE The hex to "least significant bit" binary always causes
*   confusion, but it is used in all HDLC documents. Example: 03H
*   translates to 1100 0000B. The above defined polynomial value
*   (0x8408) is required by the algorithm to produce the results
*   corresponding to the given generator polynomial
* (x**0 + x**5 + x**12 + x**16)
*/ main()
{
register unsigned int b, v; register int i;
printf("typedef unsigned short u16;\n"); printf("static u16 fcstab[256]={");
for (b=0; ; )
{
if (b % 8 == 0) printf("\n"); v=b;
for (i=8; i--; )
v=v & 1 ? (v >> 1) ^ P : v >> 1; printf("\t0x%04x", v & 0xFFFF); if (++b == 256)
break; printf(",");
}
printf("\n};\n");
}

附录 E(规范性附录)安全认证说明

E.1 比对加密方式

E.1.1 补位规则

如待加密数据个数不足待加密数据长度时,采用如下补位方法,先补结束符 0x80,剩余字节补 0x00。比对因子、随机数和待加密数据均遵循此规则。

E.1.2 嵌有安全模块的电能表比对方案

  • c)  进行远程应用连接
  • d)  提取比对因子:共 8 字节,从比对因子起始地址开始,在程序存储器中取 16 个字节。将 16 字节分为前 8 字节和后 8 字节两部分,再将前 8 字节与后 8 字节异或,得 8 字节的异或结果作为比对因子
  • e)  提取随机数:共 16 字节,从比对数据起始地址开始取 64 字节,按长度平均分成四个数据块
  • (Data1,Data2,Data3,Data4),然后对数据块进行处理( Data1Data2Data3^Data4=Data5, 其中^代表异或运算符),得到异或后数据块 Data5
  • f)  提取待加密数据:从比对数据起始地址开始取待加密数据长度字节,按长度平均分成四个数据块(Data6,Data7,Data8,Data9),然后对数据块进行处理( Data6Data7Data8Data9=Data10,其中代表异或运算符),得到异或后数据块 Data10;(待加密数据长度必须为 64 整数倍,否则电表返回异常应答“拒绝读写”)
  • g)  获取加密后数据:使用比对因子和随机数对数据块 Data10 进行加密

E.1.3 未嵌安全模块的电能表比对方案

  • a) 获取比对因子:从比对因子起始地址开始取待加密数据长度字节,按长度平均分成四个数据块
  • (Data1,Data2,Data3,Data4),然后对数据块进行处理( Data1^) Data2^Data3^Data4=Data5, 其中^代表异或运算符),得到比对因子 Data5
  • b) 获取加密数据单元:从比对数据起始地址开始取待加密数据长度字节,按长度平均分成四个数据 块 (Data6,Data7,Data8,Data9),然后对数据块进行处理(Data6^Data7^Data8^Data9=Data10,其中^代表异或运算符),得到加密数据单元 Data10
  • c) 获取代码密文: 将比对因子 Data5 与加密数据单元 Data10 进行异或运算得到代码密文 Data11
  • d) 返回加密数据 Data11
  • 如果获取的比对因子中连续16字节为相同数据(例全00或全FF)时,电能表应返回安全认证异常应答“地址异常”。

E.2 安全方式说明

安全模式参数通过密文+数据验证码的方式进行更改。

如果某一对象操作方式和安全模式参数中不一致,则返回安全认证不匹配。

如果每天收到的数据帧数据验证码校验失败、密文校验失败总累计达到 200 次,则要求终端远程设置参数、远程控制、清零功能挂起;在每日的零点,清除挂起状态、累计次数。

收到的抄读命令中数据验证码校验失败、密文校验失败不累计失败次数,挂起后能正常抄读。

附录 F(资料性附录)安全模式参数

F.1 安全模式参数

安全模式参数设置值的定义见下:

  • 编号(字节数)
  • 对象标识(2 字节)
  • 安全模式(2 字节)
    • 读取
    • 设置
    • 操作
    • 代理

安全模式定义见下表:

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
明文方式操作 明文+数据验 证码操作 密文方式操作 密文+数据验 证码操作 保留 代理读取 代理设置 代理操作
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
明文方式读取 明文+数据验 证码读取 密文方式读取 密文+数据验 证码读取 明文方式设置 明文+数据验 证码设置 密文方式设置 密文+数据验 证码设置

F.2 默认安全模式参数

对象标识 OI 对象名称 读取:
明文
读取:
明文 + 数据验证码
读取:
密文
读取:
密文 + 数据验证码
设置:
明文
设置:
明文 + 数据验证码
设置:
密文
设置:
密文 + 数据验证码
操作:
明文
操作:
明文 + 数据验证码
操作:
密文
操作:
密文 + 数据验证码
代理读取 代理设置 代理操作
0ZZZ 当前电能
1ZZZ 最大需量
202C (当前)钱包文件
2ZZZ 变量
3ZZZ 事件
4000 日期时间
4001 通信地址
4002 表号
4003 客户编号
400A 两套分时费率切换时间
400B 两套阶梯切换时间
401C 电流互感器变比
401D 电压互感器变比
401E 金额限值
4018 当前套费率电价
4019 备用套费率电价
401A 当前套阶梯参数
401B 备用套阶梯参数
4111 备案号
4ZZZ 参变量
5000 瞬时冻结
50ZZ 冻结
60ZZ 采集监控
70ZZ 集合
80ZZ 控制
F000 分帧传输
F001 分块传输
F002 扩展传输
F100 ESAM
F101 安全模式参数
F2ZZ 输入输出接口设备
FFZZ 自定义
  • 注 1:Z 代表本半字节所列数值的任意一个取值,但不能覆盖以上表格中已经列出的,例如以上表格中 2ZZZ 不能覆盖 202C、202E
  • 注 2:其它数据如果在安全模式参数中没有明确要求,均采用明文 + MAC 方式读取
  • 注 3:除以上表格中规定外,其它参数设置如果在安全模式参数中没有明确要求,均采用密文 + MAC 方式设置
  • 注 4:默认安全模式参数和显式安全模式参数如果冲突,以显式安全模式参数为准
  • 注 5:设置基表远程通信模块的信号强度时,不须硬件配合,不须密码验证

附录 G(资料性附录)状态字、特征字、模式字

G.1 电能表运行状态字 1

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
保留 保留 无功功率方向 (0 正向、1 反向) 有功功率方向 (0 正向、1 反向) 停电抄表电池 (0 正常,1 欠压) 时钟电池 (0 正常,1 欠压) 需量积算方式 (0 滑差,1 区间) 保留
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
时钟故障 透支状态 存储器故障或 损坏 内部程序错误 保留 保留 ESAM 错误 控制回路错误

G.2 电能表运行状态字 2

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
保留 C 相无功功率 方向 B 相无功功率 方向 A 相无功功率 方向 保留 C 相有功功率 方向 B 相有功功率 方向 A 相有功功率 方向
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
保留 保留 保留 保留 保留 保留 保留 保留

注:0 代表正向,1 代表反向

G.3 电能表运行状态字 3(操作类)

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2~Bit1 Bit0
预跳闸报警状态 (0 无,1 有) 继电器命令状态 (0 通,1 断) 保留 继电器状态 (0 通,1 断) 编程允许状态 (0 失效,1 有效) 供电方式 (00 主电源,01 辅助电源,10 电池供电) 保留
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9~Bit8
远程开户 (0 开户,1 未开户) 本地开户 (0 开户,1 未开户) 安全认证状态(0 失效,1 有效) 保电状态 (0 非保电,1 保电) 保留 保留 电能表类型 (00 非预付费表,01 电量型预付费表,10 电费型预付费表)
  • 注 1:编程允许状态(bit3):对于有编程键的电能表,此位为编程允许状态
  • 注 2:继电器状态(bit4),指线路实际工作状态
    • 线路处于跳闸状态时此位置 1
    • 线路处于导通状态时此位置 0
  • 注 3:继电器远程拉闸命令状态(Bit6)
    • 电能表收到主站跳闸命令时,Bit6 置 1
    • 电能表跳闸后,该状态仍维持 1,直到电能表解除跳闸条件,或收到主站合闸、保电命令时将该位置 0
    • 如果电能表处于保电状态时,收到远程跳闸命令,提示“拒绝操作”,该位仍置 0
  • 注 4:预跳闸报警状态(Bit7)是指剩余电量/金额小于等于预置的报警阀值 1 或电能表收到远程报警命令时
    • Bit7 置1,电能表报警,提示用户购电(或交费)
    • 否则置 0
  • 注 5:电能表类型有非预付费型、电量型预付费和电费型预付费三种
    • 当电能表类型为 00 时是非预付费型电能表(包括远程费控电能表)
    • 当电能表类型为 01 时使用电量型预付费电能表
    • 当电能表类型为 10 时定义为电费型预付费电能表(包括本地费控电能表)。
  • 注6:Bit0、Bit5、Bit10、Bit11 保留,置 0

G.4 电能表运行状态字 4(A 相故障状态)

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
断相 功率反向 过载 过流 失流 过压 欠压 失压
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
保留 保留 保留 保留 保留 保留 保留 断流

注:0 代表无此类故障,1 代表当前发生此类故障

G.5 电能表运行状态字 5(B 相故障状态)

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
断相 功率反向 过载 过流 失流 过压 欠压 失压
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
保留 保留 保留 保留 保留 保留 保留 断流

注:0 代表无此类故障,1 代表当前发生此类故障

G.6 电能表运行状态字 6(C 相故障状态)

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
断相 功率反向 过载 过流 失流 过压 欠压 失压
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
保留 保留 保留 保留 保留 保留 保留 断流

注:0 代表无此类故障,1 代表当前发生此类故障

G.7 电能表运行状态字 7(合相故障状态)

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
总功率因数超 下限 需量超限 掉电 辅助电源失电 电流不平衡 电压不平衡 电流逆相序 电压逆相序
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
保留 保留 保留 保留 保留 开端钮盖 开表盖 电流严重不平衡

注:0 代表无此类故障,1 代表当前发生此类故障

G.8 有功组合方式特征字

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
保留 保留 保留 保留 反向有功 (0 不减,1 减) 反向有功 (0 不加,1 加) 正向有功 (0 不减,1 减) 正向有功 (0 不加,1 加)

G.9 无功组合方式 1、2 特征字

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
IV 象限 (0 不减,1 减) IV 象限 (0 不加,1 加) III 象限 (0 不减,1 减) III 象限 (0 不加,1 加) II 象限 (0 不减,1 减) II 象限 (0 不加,1 加) I 象限 (0 不减,1 减) I 象限 (0 不加,1 加)

G.10 周休日特征字

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
保留 周六 周五 周四 周三 周二 周一 周日

注:0 代表休息,1 代表工作

G.11 插卡状态字

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1~Bit0
保留 保留 保留 保留 保留 保留 插卡状态 (00 未知,01 成功,10 失败)
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 ~Bit8
保留 保留 保留 保留 保留 保留 保留

G.12 控制命令执行状态字

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
保留 保留 延时跳闸 (大电流) 跳闸自动恢复 延时跳闸 (跳闸延时时间) 直接跳闸 允许合闸 直接合闸
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
保留 保留 保留 保留 报警解除 报警 保电解除 保电

G.13 控制命令错误状态字

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
跳闸自动恢复时间无效 跳闸自动恢复命 令执行失败(保电) 跳闸失败(保电) 保留 安全认证超时 密码错误/ 未授权 保留 电表挂起
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
保留 保留 保留 保留 保留 保留 保留 跳闸自动恢复命令 执行失败(跳闸)

注:表格未包含的其他错误,应答时均置 Bit2

G.14 电能表跟随上报状态字

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
保留 保留 存储器故障或 损坏 保留 时钟电池电压 低 保留 ESAM 错误 保留
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
合闸成功 跳闸成功 保留 保留 保留 保留 透支状态 停电抄表电池 欠压
Bit23 Bit22 Bit21 Bit20 Bit19 Bit18 Bit17 Bit16
保留 保留 保留 保留 保留 保留 保留 保留
Bit31 Bit30 Bit29 Bit28 Bit27 Bit26 Bit25 Bit24
保留 保留 保留 保留 保留 保留 保留 保留
  • 注 1:电能表跟随上报模式字数据类型、数据格式同电能表跟随上报状态字,每位用于控制电能表跟随上报状态字中对应的位置位后是否上报
  • 注 2:确认电能表跟随上报状态字命令采用明文下发,确认命令参数中对应位如果为 1,则电能表清零电能表跟随上报状态字中对应位

附录 H(资料性附录)APDU 编码举例

H.1 预连接

H.1.1 登录

发送:

68 1E 00 81 05 07 09 19 05 16 20 00 CS CS 01 00 00 00 B4 07 E0 05 13 04 08 05 00 00 A4 CS CS 16

  • 斜体部分为链路层内容
  • 加粗部分为 APDU 的 A-XDR 编码内容
    • APDU —— Application layer Protocol Data Unit:应用层协议数据单元
    • A-XDR —— Adapted Extended Data Representation:可调整的扩展数据表示
  • 68 —— 帧起始符
  • 1E 00 —— 长度域 L=30 字节
  • 81 —— 控制域 C
  • 05 07 09 19 05 16 20 —— SA=05201605190907
  • 00 —— CA
    • Client Address
    • 客户机通信地址
    • 0:表示不关注客户机地址
  • CS CS —— 帧头校验
  • 01 —— [1] LINK-Request(预连接)
  • 00 —— PIID-ACD
    • bit7(服务优先级)
      • 0:一般的
      • 1:高级的
    • bit6(请求访问 ACD)
      • 0:不请求
      • 1:请求
    • bit0…bit5(服务序号)
      • 二进制编码表示 0…63
  • 00 —— 请求类型
    • 登录 (0)
       - 心跳 (1)
       - 退出登录 (2)
  • 00 B4 —— 心跳周期:180 s
  • 07 E0 05 13 04 08 05 00 00 A4 —— 请求时间 date_time
    • 2016-05-19 周五 08:05:00:164 ms
  • 16 —— 结束符

响应:

68 30 00 01 05 07 09 19 05 16 20 10 CS CS 81 00 80 07 E0 05 13 04 08 05 00 00 89 07 E0 05 13 04 08 05 01 02 5F 07 E0 05 13 04 08 05 02 02 DA CS CS 16

  • 68 —— 帧起始符
  • 30 00 —— 长度域 L=48 字节
  • 01 —— 控制域 C
  • 05 07 09 19 05 16 20 —— SA=05201605190907
  • 10 —— CA
    • Client Address
    • 客户机通信地址:16
  • CS CS —— 帧头校验
  • 81 —— [129] LINK-Response
  • 00 —— PIID
  • 80 —— 结果 Result:可信,成功
  • 07 E0 05 13 04 08 05 00 00 89 —— 请求时间 date_time
    • 2016-05-19 周五 08:05:00:137 ms
  • 07 E0 05 13 04 08 05 01 02 5F —— 收到时间 date_time
    • 2016-05-19 周五 08:05:01:607 ms
  • 07 E0 05 13 04 08 05 02 02 DA —— 响应时间 date_time
    • 2016-05-19 周五 08:05:02:730 ms
  • CS CS —— 帧校验
  • 16 —— 结束符

H.1.2 心跳

心跳:

68 1E 00 81 05 07 09 19 05 16 20 00 CS CS 01 01 01 00 B4 07 E0 05 13 04 08 05 00 01 C3 CS CS 16

发送:

68 1E 00 81 05 07 09 19 05 16 20 00 CS CS

  • 01 —— [1] LINK-Request
  • 01 —— PIID--ACD
  • 01 —— 请求类型:心跳(1)
  • 00 B4 —— 心跳周期:180s
  • 07 E0 05 13 04 08 05 00 01 C3 —— 请求时间 date_time:
  • 2016-05-19 周五 08:05:00:451 ms
  • 响应:同建立连接的响应

H.2 建立应用连接

发送:

02 00 00 10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 04 00 04 00 01 04 00 00 00 00 64 00 00

  • 02 —— [2] CONNECT-Request
  • 00 —— 服务序号-优先级(PIID)
  • 00 10 —— 期望的应用层协议版本号:16
  • FF FF FF FF FF FF FF FF —— 期望的协议一致性块(ProtocolConformance)
  • FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF —— 期望的功能一致性块(FunctionConformance)
  • 04 00 —— 客户机发送帧最大尺寸:1024 字节
  • 04 00 —— 客户机接收帧最大尺寸:1024 字节
  • 01 —— 客户机接收帧最大窗口尺寸:1 个
  • 04 00 —— 客户机最大可处理 APDU 尺寸:1024 字节
  • 00 00 00 64 —— 期望的应用连接超时时间:100 秒
  • 00 —— 认证请求对象 [0] NullSecurity
    • 公共连接 [0] NullSecurity,
    • 一般密码 [1] PasswordSecurity,
    • 对称加密 [2] SymmetrySecurity,
    • 数字签名 [3] SignatureSecurity
  • 00 —— 没有时间标签

响应:

82 00 54 4F 50 53 30 31 30 32 31 36 30 37 33 31 30 31 30 32 31 36 30 37 33 31 00 00 00 00 00 00 00 00 00 10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 04 00 04 00 01 04 00 00 00 00 64 00 00 00 00

  • 82 —— [130] CONNECT-Response
  • 00 —— PIID-ACD
  • 54 4F 50 53 30 31 30 32 31 36 30 37 33 31 30 31 30 32 31 36 30 37 33 31 00 00 00 00 00 00 00 00
    • 厂商版本信息:厂商代码(size(4))
    • 软件版本号(size(4))
    • 软件版本日期(size(6))
    • 硬件版本号(size(4))
    • 硬件版本日期(size(6))
    • 厂家扩展信息(size(8))
  • 00 10 —— 期望的应用层协议版本号:16
  • FF FF FF FF FF FF FF FF —— ProtocolConformance
  • FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF —— FunctionConformance
  • 04 00 —— 服务器发送帧最大尺寸
  • 04 00 —— 服务器接收帧最大尺寸
  • 01 —— 服务器接收帧最大窗口尺寸
  • 04 00 —— 服务器最大可处理 APDU 尺寸
  • 00 00 00 64 —— 期望的应用连接超时时间:100 s
  • 00 —— 连接响应对象:允许建立应用连接 (0)
  • 00 —— 认证附加信息:OPTIONAL=0 表示没有
  • 00 —— FollowReport:OPTIONAL=0 表示没有上报信息
  • 00 —— 没有时间标签

H.3 读取

H.3.1 读取一个对象属性

读取电能表的通信地址

发送:

05 01 01 40 01 02 00 00

  • 05 —— [5] GET-Request
  • 01 —— [1] GetRequestNormal
  • 01 —— PIID
  • 40 01 02 00 —— OAD:通信地址 40010200
  • 00 —— 没有时间标签

响应:

85 01 01 40 01 02 00 01 09 06 12 34 56 78 90 12 00 00

  • 85 —— [133] GET-Response
  • 01 —— [1] GetResponseNormal
  • 01 —— PIID-ACD
  • 40 01 02 00 —— OAD
  • 01 —— Data
  • 09 —— 数据类型:octet-string
  • 06 —— SIZE(6)
  • 12 34 56 78 90 12 —— 通信地址:123456789012
  • 00 —— FollowReport OPTIONAL=0 表示没有上报信息
  • 00 —— 没有时间标签

H.3.2 读取多个对象属性

读取三相电压、电流

发送:

05 02 02 02 20 00 02 00 20 01 02 00 00

05 —— [5] GET-Request
02 —— [2] GetRequestNormalList
02 —— PIID
02 —— SEQUENCE OF OAD,个数=2
20 00 02 00 —— OAD1:A,B,C相计量电压
20 01 02 00 —— OAD2:A,B,C相计量电流
00 —— 没有时间标签

响应:

85 02 02 02 20 00 02 00 01 01 03 12 09 6D 12 09 6D 12 09 6D 20 01 02 00 01 01 03 05 00 00 03 E8 05 00 00 03 E8 05 00 00 03 E8 00 00

  • 85 —— [133] GET-Response
  • 02 —— [2] GetResponseNormalList
  • 02 —— PIID-ACD
  • 02 —— SEQUENCE OF OAD,个数=2
  • 20 00 02 00 —— OAD
  • 01 —— Data
  • 01 —— 类型=1,表示数组(array)
  • 03 —— 数组元素个数=3
  • 12 09 6D —— 元素1:类型18:long-unsigned 241.3V A相
  • 12 09 6D —— 元素2:类型18:long-unsigned 241.3V B相
  • 12 09 6D —— 元素3:类型18:long-unsigned 241.3V C相
  • 20 01 02 00 —— OAD
  • 01 —— Data
  • 01 —— 类型=1,表示数组
  • 03 —— 数组元素个数=3
  • 05 00 00 03 E8 —— 元素1:类型:5 double-long
  • 05 00 00 03 E8 —— 元素2:类型:5 double-long
  • 05 00 00 03 E8 —— 元素3:类型:5 double-long
  • 00 —— FollowReport OPTIONAL=0 表示没有上报信息
  • 00 —— 没有时间标签

H.3.3 读取一个记录型对象属性

(1)终端读取电能表在 2016-01-20 00:00:00 的日冻结正向有功总及费率电能量

发送:

05 03 03 50 04 02 00 01 20 21 02 00 1C 07 E0 16 01 14 00 00 00 02 00 20 21 02 00 00 00 10 02 00 00

  • 05 —— [5] GET-Request
  • 03 —— [3] GetRequestRecord

GetRequestRecord∷=SEQUENCE
{
 服务序号-优先级 PIID:03
 读取一个记录型对象属性 GetRecord
}

GetRecord∷=SEQUENCE
{
 对象属性描述符 OAD:50 04 02 00 日冻结
 记录选择描述符 RSD:01 选择方法 1
  对于冻结数据记录,通常使用冻结时间进**行选择 **
  Selector1∷=SEQUENCE
  {
   对象属性描述符 OAD:20 21 02 00 数据冻结时间
   数值 Data:1C 07 E0 01 14 00 00 00 具体时间
  }
 记录列选择描述符 RCSD:02 SEQUENCE OF CSD 数据项个数=2
  列选择描述符 CSD(Column Selection Descriptor)∷=CHOICE
  {
   对象属性描述符 [0] OAD:00
   记录型对象属性描述符 [1] ROAD:20 21 02 00 数据冻结时间
  }
  列选择描述符 CSD(Column Selection Descriptor)∷=CHOICE
  {
   对象属性描述符 [0] OAD:00
   记录型对象属性描述符 [1] ROAD:00 10 02 00 正向有功电能
  }

  • 00 —— 没有时间标签

响应:

85 03
03
50 04 02 00
02
00 20 21 02 00
00 00 10 02 00
01
01
1C 07 EO 01 14 00 00 00
01
05
06 00 00 00 00
06 00 00 00 00
06 00 00 00 00
06 00 00 00 00
06 00 00 00 00
00 00

|-GetResponseRecord 85 03 [133] GET-Response:读取响应;[3]读取一个记录型对象属性的响应
 |-PIID-ACD 03 服务序号-优先级-ACD
 |-AResultRecord: OAD 50 04 02 00 日冻结
  |-RCSD: len 02 个数 2
   |-CSD: type 00 (一般)对象属性描述符
    |-OAD: 20 21 02 00 数据冻结时间;属性 2;编号 0 特征 0 索引 0
   |-CSD: type 00 (一般)对象属性描述符
    |-OAD: 00 10 02 00 正向有功电能;属性 2;编号 0 特征 0 索引 0
  |-GetRecordResult: type 01 数据类型[1]array
   |-SequenceOf<ARecordRow>: len 01 M 条记录,M=1
    |-Data: 1C 07 E1 01 14 00 00 00 数据类型[28] date_time_s:2017-01-20 00:00:00
    |-Data: array, len 01 05
     |-Data: double_long_unsigned 06 00 00 00 00
     |-Data: double_long_unsigned 06 00 00 00 00
     |-Data: double_long_unsigned 06 00 00 00 00
     |-Data: double_long_unsigned 06 00 00 00 00
     |-Data: double_long_unsigned 06 00 00 00 00
|-FollowReport 00 没有上报信息
|-TimeTag 00没有时间标签

(2)主站召测集中器采集到的数据:召测 5 个电能表的 2016-01-20 00:00:00 日冻结正向有功电能总及费率、日冻结反向有功电能总及费率

发送:

05 03 04 60 12 03 00 05 07 E0 01 14 00 00 00 03 05 06 04 00 00 00 01 21 06 04 00 00 00 01 22 06 04 00 00 00 01 23 06 04 00 00 00 01 24 06 04 00 00 00 01 25 05 00 40 01 02 00 00 60 40 02 00 00 60 41 02 00 00 60 42 02 00 01 50 04 02 00 02 00 10 02 00 00 20 02 00 00

|-GetRequestRecord,              05 03, * 5:读取请求 3: 读取一个记录型对象属性请求  
  |-PIID,                        04,    服务优先级=一般(0),服务序号=4    
  |-GetRecord: OAD,              60 12 03 00,   * OI=0x6012: 任务配置表   属性3:(记录表)∷=array 记录单元 特征0 索引0 
    |-RSD: RSD: type,            05,    RSD类型:Selector5 选择方法5
      |-store_time: date_time_s, 07 E0 01 14 00 00 00,  采集存储时间2016-01-20 00:00:00 
      |-meters: MS: MSType,      03,    电能表集合MS类型:一组用户地址 
        |-SequenceOf<TSA>len,    05,    SequenceOf长度=5 
          |-TSA: 1stbyte,        06,    地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
            |-addr,              04 00 00 00 01 21, 内容=04 00 00 00 01 21
          |-TSA: 1stbyte,        06,    地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
            |-addr,              04 00 00 00 01 22, 内容=04 00 00 00 01 22
          |-TSA: 1stbyte,        06,    地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
            |-addr,              04 00 00 00 01 23, 内容=04 00 00 00 01 23
          |-TSA: 1stbyte,        06,    地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
            |-addr,              04 00 00 00 01 24, 内容=04 00 00 00 01 24
          |-TSA: 1stbyte,        06,    地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
            |-addr,              04 00 00 00 01 25, 内容=04 00 00 00 01 25
    |-RCSD: RCSD: len,           05,    SequenceOf长度=5 
      |-CSD: type,               00,    CSD类型:一般对象属性描述符 
        |-OAD,                   40 01 02 00,   * OI=0x4001:通信地址 属性2:参见文档 特征0 索引0 
      |-CSD: type,               00,    CSD类型:一般对象属性描述符 
        |-OAD,                   60 40 02 00,   * OI=0x6040:采集启动时标 属性2:date_time_s 特征0 索引0 
      |-CSD: type,               00,    CSD类型:一般对象属性描述符 
        |-OAD,                   60 41 02 00,   * OI=0x6041:采集成功时标 属性2:date_time_s 特征0 索引0 
      |-CSD: type,               00,    CSD类型:一般对象属性描述符 
        |-OAD,                   60 42 02 00,   * OI=0x6042:采集存储时标 属性2:date_time_s 特征0 索引0 
      |-CSD: type,               01,    CSD类型:记录型对象属性描述符 
        |-ROAD: OAD,             50 04 02 00,   * OI=0x5004:日冻结 属性2:参见文档 特征0 索引0 
          |-SequenceOf<OAD>: len,02,    SequenceOf个数=2 
            |-OAD,               00 10 02 00,   * OI=0x0010:正向有功电能 属性2:总及费率电能量数组 特征0 索引0 
            |-OAD,               00 20 02 00,   * OI=0x0020:反向有功电能 属性2:总及费率电能量数组 特征0 索引0 
|-TimeTag,                       00,    无时间标签

响应:

85 03 04 60 12 03 00 05 00 40 01 02 00 00 60 40 02 00 00 60 41 02 00 00 60 42 02 00 01 50 04
02 00 02 00 10 02 00 00 20 02 00 01 05 09 05 00 00 00 01 21 1C 07 E0 01 14 00 00 00 1C 07 E0
01 14 00 00 00 1C 07 E0 01 14 00 00 00 01 02 01 05 06 00 00 00 00 06 00 00 00 00 06 00 00 00
00 06 00 00 00 00 06 00 00 00 00 01 05 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00
00 00 06 00 00 00 00 09 05 00 00 00 01 22 1C 07 E0 01 14 00 00 00 1C 07 E0 01 14 00 00 00 1C
07 E0 01 14 00 00 00 01 02 01 05 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00
06 00 00 00 00 01 05 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00
00 09 05 00 00 00 01 23 1C 07 E0 01 14 00 00 00 1C 07 E0 01 14 00 00 00 1C 07 E0 01 14 00 00
00 01 02 01 05 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 01
05 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 09 05 00 00 00
01 24 1C 07 E0 01 14 00 00 00 1C 07 E0 01 14 00 00 00 1C 07 E0 01 14 00 00 00 01 02 01 05 06
00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 01 05 06 00 00 00 00
06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 09 05 00 00 00 01 25 1C 07 E0 01
14 00 00 00 1C 07 E0 01 14 00 00 00 1C 07 E0 01 14 00 00 00 01 02 01 05 06 00 00 00 00 06 00
00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 01 05 06 00 00 00 00 06 00 00 00 00 06
00 00 00 00 06 00 00 00 00 06 00 00 00 00 00 00

85 —— [133] GET-Response
03 —— [3] GeResponseRecord
04 —— PIID-ACD
60 12 03 00 —— OAD
05 —— RCSD,SEQUENCE OF个数=5,即N=5
00 40 01 02 00 —— 第1列OAD
00 60 40 02 00 —— 第2列OAD
00 60 41 02 00 —— 第3列OAD
00 60 42 02 00 —— 第4列OAD
01 ——第5列ROAD5
50 04 02 00 —— 日冻结
02
00 10 02 00 —— 正向有功总及费率
00 20 02 00 —— 反向有功总及费率
01 —— 记录数据
05 —— M条记录,M=5
09050000000121 1C07E00114000000 1C07E00114000000 1C07E00114000000
0102
010506000000000600000000060000000006000000000600000000
010506000000000600000000060000000006000000000600000000
09050000000122 1C07E00114000000 1C07E00114000000 1C07E00114000000
0102
010506000000000600000000060000000006000000000600000000
010506000000000600000000060000000006000000000600000000
09050000000123 1C07E00114000000 1C07E00114000000 1C07E00114000000
0102
010506000000000600000000060000000006000000000600000000
010506000000000600000000060000000006000000000600000000
09050000000124 1C07E00114000000 1C07E00114000000 1C07E00114000000
0102
010506000000000600000000060000000006000000000600000000
010506000000000600000000060000000006000000000600000000
09050000000125 1C07E00114000000 1C07E00114000000 1C07E00114000000
0102
010506000000000600000000060000000006000000000600000000
010506000000000600000000060000000006000000000600000000
00 —— FollowReport OPTIONAL=0 表示没有上报信息
00 —— 没有时间标签

- 链路用户数据APDU(481BIN),   ,   应用层链路用户数据
|-GetResponseRecord,    85 03,  * 133:读取响应 3:读取一个记录型对象属性
  |-PIIDACD,    04, 服务优先级(0一般,1高级)=0,请求访问ACD(0不请求,1请求)=0,服务序号=4 
  |-AResultRecord: OAD, 60 12 03 00,    * OI=0x6012:任务配置表 属性3:(记录表)∷=array 记录单元 特征0 索引0 
    |-RCSD: len,    05, SequenceOf长度=5 
      |-CSD: type,  00, CSD类型:一般对象属性描述符 
        |-OAD,  40 01 02 00,    * OI=0x4001:通信地址 属性2:参见文档 特征0 索引0 
      |-CSD: type,  00, CSD类型:一般对象属性描述符 
        |-OAD,  60 40 02 00,    * OI=0x6040:采集启动时标 属性2:date_time_s 特征0 索引0 
      |-CSD: type,  00, CSD类型:一般对象属性描述符 
        |-OAD,  60 41 02 00,    * OI=0x6041:采集成功时标 属性2:date_time_s 特征0 索引0 
      |-CSD: type,  00, CSD类型:一般对象属性描述符 
        |-OAD,  60 42 02 00,    * OI=0x6042:采集存储时标 属性2:date_time_s 特征0 索引0 
      |-CSD: type,  01, CSD类型:记录型对象属性描述符 
        |-ROAD: OAD,    50 04 02 00,    * OI=0x5004:日冻结 属性2:参见文档 特征0 索引0 
          |-SequenceOf<OAD>: len,   02, SequenceOf长度=2 
            |-OAD,  00 10 02 00,    * OI=0x0010:正向有功电能 属性2:总及费率电能量数组 特征0 索引0 
            |-OAD,  00 20 02 00,    * OI=0x0020:反向有功电能 属性2:总及费率电能量数组 特征0 索引0 
    |-GetRecordResult: ResultRecordType,    01, 结果类型:1(数据)
      |-SequenceOf<ARecordRow>: len,    05, SequenceOf长度=5 
          |-Data: octet_string, len,    09 05,  类型:9,长度=5 
            |-SequenceOf<uint8_t>,  00 00 00 01 21, 内容=00 00 00 01 21
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: array, len,   01 02,  类型:1,SequenceOf长度=2 
            |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
            |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
          |-Data: octet_string, len,    09 05,  类型:9,长度=5 
            |-SequenceOf<uint8_t>,  00 00 00 01 22, 内容=00 00 00 01 22
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: array, len,   01 02,  类型:1,SequenceOf长度=2 
            |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
            |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
          |-Data: octet_string, len,    09 05,  类型:9,长度=5 
            |-SequenceOf<uint8_t>,  00 00 00 01 23, 内容=00 00 00 01 23
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: array, len,   01 02,  类型:1,SequenceOf长度=2 
            |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
            |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
          |-Data: octet_string, len,    09 05,  类型:9,长度=5 
            |-SequenceOf<uint8_t>,  00 00 00 01 24, 内容=00 00 00 01 24
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: array, len,   01 02,  类型:1,SequenceOf长度=2 
            |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
            |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
          |-Data: octet_string, len,    09 05,  类型:9,长度=5 
            |-SequenceOf<uint8_t>,  00 00 00 01 25, 内容=00 00 00 01 25
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 00 00 00,    类型:28,值:2016-01-20 00:00:00 
          |-Data: array, len,   01 02,  类型:1,SequenceOf长度=2 
            |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
            |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
              |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
|-FollowReport, 00, 无跟随上报信息域
|-TimeTag,  00, 无时间标签

H.3.4 读取多个记录型对象属性

参考读取一个记录型对象属性。

H.3.5 读取分帧响应的下一个数据块

读取全部电能表档案:

发送:

05 01 08 60 00 02 00 00

05 —— [5] GET-Request
01 —— [1] GetRequestNormal
08 —— PIID
60 00 02 00 —— OAD
00 —— 没有时间标签

|-GetRequestNormal, 05 01,  * 5:读取请求 1:读取一个对象属性请求
  |-PIID,   08, 服务优先级=一般(0),服务序号=8
  |-OAD,    60 00 02 00,    * OI=0x6000:采集档案配置表 属性2:array 采集档案配置单元6001 特征0 索引0 
|-TimeTag,  00, 无时间标签

响应:

85 05 08 00 00 01 01 01 60 00 02 00 01 01 03 02 04 12 00 01 02 0A 55 06 04 00 00 00 22 21 16 03 16 03 51 F2 09 02 01 09 06 00 00 00 00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00 00 00 12 00 01 12 00 01 01 00 02 04 12 00 02 02 0A 55 06 04 00 00 00 22 22 16 03 16 03 51 F2 09 02 01 09 06 00 00 00 00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00 00 00 12 00 01 12 00 01 01 00 02 04 12 00 03 02 0A 55 06 04 00 00 00 22 23 16 03 16 03 51 F2 09 02 01 09 06 00 00 00 00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00 00 00 12 00 01 12 00 01 01 00 00 00

85 —— [133] GET-Response
05 —— [5] GetResponseNext
08 —— PIID-ACD
00 —— 末帧标志 False
00 01 —— 分帧序号=1
01 —— 分帧响应,对象属性 [1] SEQUENCE OF A-ResultNormal
01 —— SEQUENCE OF个数=1
60 00 02 00 —— OAD
01 —— data 01 —— array
03 —— 个数=3
02 04 12 00 01 02 0A 55 06 04 00 00 00 22 21 16 03 16 03 51 F2 09 02 01 09 06 00 00 00 00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 0000 00 12 00 01 12 00 01 01 00
02 04 12 00 02 02 0A 55 06 04 00 00 00 22 22 16 03 16 03 51 F2 09 02 01 09 06 00 00 00 00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00 00 00 12 00 01 12 00 01 01 00
02 04 12 00 03 02 0A 55 06 04 00 00 00 22 23 16 03 16 03 51 F2 09 02 01 09 06 00 00 00 00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00 00 00 12 00 01 12 00 01 01 00
00 —— FollowReport OPTIONAL=0 表示没有上报信息
00 —— 没有时间标签

- 链路用户数据APDU(227BIN),   ,   应用层链路用户数据
|-GetResponseNext,  85 05,  * 133:读取响应 5:分帧响应一个数据块
  |-PIIDACD,    08, 服务优先级(0一般,1高级)=0,请求访问ACD(0不请求,1请求)=0,服务序号=8 
  |-is_last_frame,  00, 值:0 
  |-slicing_index,  00 01,  值:1 
  |-GetResponseNextType,    01, 值:1 
  |-SequenceOf<AResultNormal>: len, 01, SequenceOf长度=1 
    |-AResultNormal: OAD,   60 00 02 00,    * OI=0x6000:采集档案配置表 属性2:array 采集档案配置单元6001 特征0 索引0 
      |-Get_Result: GetResultType,  01, 结果类型:1(数据)
        |-Data: array, len, 01 03,  类型:1,SequenceOf长度=3 
          |-Data: structure, len,   02 04,  类型:2,项数=4 
            |-Data: long-unsigned, u16, 12 00 01,   类型:18,值:1 
            |-Data: structure, len, 02 0A,  类型:2,项数=10 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 04 00 00 00 22 21,  内容=04 00 00 00 22 21
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: OAD,  51 F2 09 02 01, * 类型:81,值:OI=0xf209:载波/微功率无线接口 属性2:(设备对象列表,只读)∷=array 本地通信模块单元 本地通信模块单元∷=structure{端口描述符,通信参数COMDCB,版本信息} 特征0 索引1 
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: enum, u8, 16 01,  类型:22,值:1 
              |-Data: long-unsigned, u16,   12 08 98,   类型:18,值:2200 
              |-Data: long-unsigned, u16,   12 00 0F,   类型:18,值:15 
            |-Data: structure, len, 02 04,  类型:2,项数=4 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
            |-Data: array, len, 01 00,  类型:1,SequenceOf长度=0 
          |-Data: structure, len,   02 04,  类型:2,项数=4 
            |-Data: long-unsigned, u16, 12 00 02,   类型:18,值:2 
            |-Data: structure, len, 02 0A,  类型:2,项数=10 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 04 00 00 00 22 22,  内容=04 00 00 00 22 22
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: OAD,  51 F2 09 02 01, * 类型:81,值:OI=0xf209:载波/微功率无线接口 属性2:(设备对象列表,只读)∷=array 本地通信模块单元 本地通信模块单元∷=structure{端口描述符,通信参数COMDCB,版本信息} 特征0 索引1 
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: enum, u8, 16 01,  类型:22,值:1 
              |-Data: long-unsigned, u16,   12 08 98,   类型:18,值:2200 
              |-Data: long-unsigned, u16,   12 00 0F,   类型:18,值:15 
            |-Data: structure, len, 02 04,  类型:2,项数=4 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
            |-Data: array, len, 01 00,  类型:1,SequenceOf长度=0 
          |-Data: structure, len,   02 04,  类型:2,项数=4 
            |-Data: long-unsigned, u16, 12 00 03,   类型:18,值:3 
            |-Data: structure, len, 02 0A,  类型:2,项数=10 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 04 00 00 00 22 23,  内容=04 00 00 00 22 23
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: OAD,  51 F2 09 02 01, * 类型:81,值:OI=0xf209:载波/微功率无线接口 属性2:(设备对象列表,只读)∷=array 本地通信模块单元 本地通信模块单元∷=structure{端口描述符,通信参数COMDCB,版本信息} 特征0 索引1 
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: enum, u8, 16 01,  类型:22,值:1 
              |-Data: long-unsigned, u16,   12 08 98,   类型:18,值:2200 
              |-Data: long-unsigned, u16,   12 00 0F,   类型:18,值:15 
            |-Data: structure, len, 02 04,  类型:2,项数=4 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
            |-Data: array, len, 01 00,  类型:1,SequenceOf长度=0 
|-FollowReport, 00, 无跟随上报信息域
|-TimeTag,  00, 无时间标签

读分帧的下一帧:

发送:

05 05 09 00 01 00

05 —— [5] GET-Request
05 —— [5] GetRequestNext
09 —— PIID
00 01 —— 正确接收的最近一次数据块序号
00 —— 没有时间标签

|-GetRequestNext,   05 05,  * 5:读取请求 5:读取分帧响应的下一个数据块请求
|-TimeTag,  09, 有时间标签

响应:

85 05 09 01 00 02 01 01 60 00 02 00 01 01 03 02 04 12 00 04 02 0A 55 06 04 00 00 00 22 24 16 03 16 03 51 F2 09 02 01 09 06 00 00 00 00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00 00 00 12 00 01 12 00 01 01 00 02 04 12 00 05 02 0A 55 06 04 00 00 00 22 25 16 03 16 03 51 F2 09 02 01 09 06 00 00 00 00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00 00 00 12 00 01 12 00 01 01 00 02 04 12 00 06 02 0A 55 06 04 00 00 00 22 26 16 03 16 03 51 F2 09 02 01 09 06 00 00 00 00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00 00 00 12 00 01 12 00 01 01 00 00 00

85 —— [133] GET-Response
05 —— [5] GeResponseNext
09 —— PIID-ACD
01 —— 末帧标志 True
00 02 —— 分帧序号=2
01 —— 分帧响应,对象属性 [1] SEQUENCE OF A-ResultNormal
01 —— SEQUENCE OF个数=1
60 00 02 00 —— OAD
01 —— data
01 —— Data
03 —— 个数=3
02 04 12 00 04 02 0A 55 06 04 00 00 00 22 24 16 03 16 03 51 F2 09 02 01 09 06 00 00 00
00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00
00 00 12 00 01 12 00 01 01 00
02 04 12 00 05 02 0A 55 06 04 00 00 00 22 25 16 03 16 03 51 F2 09 02 01 09 06 00 00 00
00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00
00 00 12 00 01 12 00 01 01 00
02 04 12 00 06 02 0A 55 06 04 00 00 00 22 26 16 03 16 03 51 F2 09 02 01 09 06 00 00 00
00 00 00 11 04 11 04 16 01 12 08 98 12 00 0F 02 04 55 06 00 00 00 00 00 00 09 06 00 00 00 00
00 00 12 00 01 12 00 01 01 00
00 —— FollowReport OPTIONAL=0 表示没有上报信息
00 —— 没有时间标签

- 链路用户数据APDU(227BIN),   ,   应用层链路用户数据
|-GetResponseNext,  85 05,  * 133:读取响应 5:分帧响应一个数据块
  |-PIIDACD,    09, 服务优先级(0一般,1高级)=0,请求访问ACD(0不请求,1请求)=0,服务序号=9 
  |-is_last_frame,  01, 值:1 
  |-slicing_index,  00 02,  值:2 
  |-GetResponseNextType,    01, 值:1 
  |-SequenceOf<AResultNormal>: len, 01, SequenceOf长度=1 
    |-AResultNormal: OAD,   60 00 02 00,    * OI=0x6000:采集档案配置表 属性2:array 采集档案配置单元6001 特征0 索引0 
      |-Get_Result: GetResultType,  01, 结果类型:1(数据)
        |-Data: array, len, 01 03,  类型:1,SequenceOf长度=3 
          |-Data: structure, len,   02 04,  类型:2,项数=4 
            |-Data: long-unsigned, u16, 12 00 04,   类型:18,值:4 
            |-Data: structure, len, 02 0A,  类型:2,项数=10 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 04 00 00 00 22 24,  内容=04 00 00 00 22 24
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: OAD,  51 F2 09 02 01, * 类型:81,值:OI=0xf209:载波/微功率无线接口 属性2:(设备对象列表,只读)∷=array 本地通信模块单元 本地通信模块单元∷=structure{端口描述符,通信参数COMDCB,版本信息} 特征0 索引1 
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: enum, u8, 16 01,  类型:22,值:1 
              |-Data: long-unsigned, u16,   12 08 98,   类型:18,值:2200 
              |-Data: long-unsigned, u16,   12 00 0F,   类型:18,值:15 
            |-Data: structure, len, 02 04,  类型:2,项数=4 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
            |-Data: array, len, 01 00,  类型:1,SequenceOf长度=0 
          |-Data: structure, len,   02 04,  类型:2,项数=4 
            |-Data: long-unsigned, u16, 12 00 05,   类型:18,值:5 
            |-Data: structure, len, 02 0A,  类型:2,项数=10 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 04 00 00 00 22 25,  内容=04 00 00 00 22 25
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: OAD,  51 F2 09 02 01, * 类型:81,值:OI=0xf209:载波/微功率无线接口 属性2:(设备对象列表,只读)∷=array 本地通信模块单元 本地通信模块单元∷=structure{端口描述符,通信参数COMDCB,版本信息} 特征0 索引1 
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: enum, u8, 16 01,  类型:22,值:1 
              |-Data: long-unsigned, u16,   12 08 98,   类型:18,值:2200 
              |-Data: long-unsigned, u16,   12 00 0F,   类型:18,值:15 
            |-Data: structure, len, 02 04,  类型:2,项数=4 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
            |-Data: array, len, 01 00,  类型:1,SequenceOf长度=0 
          |-Data: structure, len,   02 04,  类型:2,项数=4 
            |-Data: long-unsigned, u16, 12 00 06,   类型:18,值:6 
            |-Data: structure, len, 02 0A,  类型:2,项数=10 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 04 00 00 00 22 26,  内容=04 00 00 00 22 26
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: enum, u8, 16 03,  类型:22,值:3 
              |-Data: OAD,  51 F2 09 02 01, * 类型:81,值:OI=0xf209:载波/微功率无线接口 属性2:(设备对象列表,只读)∷=array 本地通信模块单元 本地通信模块单元∷=structure{端口描述符,通信参数COMDCB,版本信息} 特征0 索引1 
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: unsigned, u8, 11 04,  类型:17,值:4 
              |-Data: enum, u8, 16 01,  类型:22,值:1 
              |-Data: long-unsigned, u16,   12 08 98,   类型:18,值:2200 
              |-Data: long-unsigned, u16,   12 00 0F,   类型:18,值:15 
            |-Data: structure, len, 02 04,  类型:2,项数=4 
              |-Data: TSA: 1stbyte, 55 06,  类型:85,值:地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=6 
                |-addr, 00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: octet_string, len,    09 06,  类型:9,长度=6 
                |-SequenceOf<uint8_t>,  00 00 00 00 00 00,  内容=00 00 00 00 00 00
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
              |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 
            |-Data: array, len, 01 00,  类型:1,SequenceOf长度=0 
|-FollowReport, 00, 无跟随上报信息域
|-TimeTag,  00, 无时间标签

H.3.6 读取一个对象属性(明文+MAC方式)

读取电能表的通信地址:

发送帧:

68 L L 43 05 01 00 29 01 16 20 0A HCS_L HCS_H 10 00 08 05 01 01 40 01 02 00 00 00 85 01 02 03 06 12 34 56 78 90 12 04 12 34 56 78 FCS_L FCS_H 16

10 —— [16] SECURITY-Request
00 —— 明文
08 —— 明文的长度
05 —— [5] GET-Request
01 —— [1] GetRequestNormal
01 —— PIID
40 01 02 00 —— OAD:通信地址40010200
00 —— 没有时间标签
00 —— 数据验证信息 [0] SID_MAC
85 01 02 03 —— 标识
06 12 34 56 78 90 12 —— 附加数据
04 —— MAC 的长度
12 34 56 78 —— MAC

|-SecurityRequest,  10, * 16:安全请求
  |-SecurityDataUnit: SecurityDataType, 00, 应用数据单元安全类型(明文0 密文1)=0 
    |-clear data: len,  08, 长度=8 
      |-SequenceOf<uint8_t>,    05 01 01 40 01 02 00 00,    内容=05 01 01 40 01 02 00 00
  |-SecurityVerifyUnit: SecurityRequestVerifyType,  00, 数据验证信息安全类型(验证码0 随机数1 随机数+数据MAC=2 安全标识3)=0 
    |-SID_MAC: SIDSID: id,  85 01 02 03,    值:-2063531517 
      |-append_datalen, 06, 长度=6 
        |-SequenceOf<uint8_t>,  12 34 56 78 90 12,  内容=12 34 56 78 90 12
      |-MAClen, 04, 长度=4 
        |-SequenceOf<uint8_t>,  12 34 56 78,    内容=12 34 56 78

响应帧:

68 L L C3 05 01 00 29 01 16 20 0A HCS_L HCS_H 90 00 11 85 01 01 40 01 02 00 01 09 06 20 16 01 29 00 01 00 01 00 04 12 34 56 78 FCS_L FCS_H 16

90 —— [144] SECURITY-Response
00 —— 明文
12 —— 明文的长度
85 —— [133] GET-Response
01 —— [1] GetResponseNormal
01 —— PIID-ACD
40 01 02 00 —— OAD
01 —— Data
09 —— octet-string
06 —— SIZE(6)
20 16 01 29 00 01 —— 通信地址:201601290001
00 —— 没有跟随上报信息
00 —— 没有时间标签
01 —— 含数据验证信息
00 —— 数据验证信息 [0] MAC
04 —— MAC 的长度
12 34 56 78 —— MAC

|-SecurityResponse, 90, * 144:安全响应
  |-SecurityDataUnit: SecurityDataType, 00, 应用数据单元安全类型(明文0 密文1)=0 
    |-clear data: len,  11, 长度=17 
      |-SequenceOf<uint8_t>,    85 01 01 40 01 02 00 01 09 06 20 16 01 29 00 01 00, 内容=85 01 01 40 01 02 00 01 09 06 20 16 01 29 00 01 00
  |-MAC OPTIONAL,   01, 值:1 
    |-MAC CHOICE,   00, 值:0 
    |-MAC: len, 04, 长度=4 
      |-SequenceOf<uint8_t>,    12 34 56 78,    内容=12 34 56 78

H.4 设置

H.4.1 设置一个对象属性请求

设置时钟

发送:

06 01 02 40 00 02 00 1C 07 E0 01 14 10 1B 0B 00

06 —— [6] SET-Request
01 —— [1] SetRequestNormal
02 —— PIID
40 00 02 00 —— OAD
1C —— Data:类型28:date_time_s
07 E0 01 14 10 1B 0B—— 时间:2016-01-20 16:27:11
00 —— 没有时间标签

|-SetRequestNormal, 06 01,  * 6:设置请求 1:设置一个对象属性请求
  |-PIID,   02, 服务优先级=一般(0),服务序号=2
  |-OAD,    40 00 02 00,    * OI=0x4000:日期时间 属性2:参见文档 特征0 索引0 
  |-Data: date_time_s(u16,u8,u8,u8,u8,u8),  1C 07 E0 01 14 10 1B 0B,    类型:28,值:2016-01-20 16:27:11 
|-TimeTag,  00, 无时间标签

响应:

86 01 02 40 00 02 00 00 00 00

86 —— [134] SET-Response
01 —— [1] SetResponseNormal
02 —— PIID-ACD
40 00 02 00 —— OAD
00 —— DAR,0成功
00 —— FollowReport OPTIONAL=0 表示没有上报信息
00 —— 没有时间标签

|-SetResponseNormal,    86 01,  * 134:设置响应 1:设置一个对象属性的确认信息响应
  |-PIIDACD,    02, 服务优先级(0一般,1高级)=0,请求访问ACD(0不请求,1请求)=0,服务序号=2 
  |-OAD,    40 00 02 00,    * OI=0x4000:日期时间 属性2:参见文档 特征0 索引0 
  |-DARType,    00, 值:0 
|-FollowReport, 00, 无跟随上报信息域
|-TimeTag,  00, 无时间标签

H.4.2 设置多个对象属性请求

设置通信地址和时钟

发送:

06 02 03 02 40 01 02 00 09 06 00 00 00 00 00 01 40 00 02 00 1C 07 E0 01 14 10 1B 0B 00

06 —— [6] SET-Request
02 —— [2] SetRequestNormalList
03 —— PIID
02 —— SEQUENCE OF的个数=2
40 01 02 00 —— OAD1
09 06 00 00 00 00 00 01 —— value1(通信地址值:000000000001)
40 00 02 00 —— OAD2
1C 07 E0 01 14 10 1B 0B —— value2(时间:2016-01-20 16:27:11)
00 —— 没有时间标签

|-SetRequestNormalList, 06 02,  * 6:设置请求 2:设置若干个对象属性请求
  |-PIID,   03, 服务优先级=一般(0),服务序号=3
    |-SequenceOf<SetNormalListItem>: len,   02, SequenceOf长度=2 
      |-SetNormalListItem: OAD, 40 01 02 00,    * OI=0x4001:通信地址 属性2:参见文档 特征0 索引0 
        |-Data: octet_string, len,  09 06,  类型:9,长度=6 
          |-SequenceOf<uint8_t>,    00 00 00 00 00 01,  内容=00 00 00 00 00 01
      |-SetNormalListItem: OAD, 40 00 02 00,    * OI=0x4000:日期时间 属性2:参见文档 特征0 索引0 
        |-Data: date_time_s(u16,u8,u8,u8,u8,u8),    1C 07 E0 01 14 10 1B 0B,    类型:28,值:2016-01-20 16:27:11 
|-TimeTag,  00, 无时间标签

响应:

86 02 03 02 40 01 02 00 00 40 00 02 00 00 00 00

86 —— [134] SET-Response
02 —— [2] SetResponseNormalList
03 —— PIID-ACD
02 —— SEQUENCE OF个数=2
40 01 02 00 —— OAD1
00 —— DAR1,0成功
40 00 02 00 —— OAD2
00 —— DAR2,0成功
00 —— FollowReport OPTIONAL=0 表示没有上报信息
00 —— 没有时间标签

|-SetResponseNormalList,    86 02,  * 134:设置响应 2:设置若干个对象属性的确认信息响应
  |-PIIDACD,    03, 服务优先级(0一般,1高级)=0,请求访问ACD(0不请求,1请求)=0,服务序号=3 
  |-SequenceOf<SetResponseListItem>: len,   02, SequenceOf长度=2 
    |-SetResponseListItem: OAD, 40 01 02 00,    * OI=0x4001:通信地址 属性2:参见文档 特征0 索引0 
      |-DARType,    00, 值:0 
    |-SetResponseListItem: OAD, 40 00 02 00,    * OI=0x4000:日期时间 属性2:参见文档 特征0 索引0 
      |-DARType,    00, 值:0 
|-FollowReport, 00, 无跟随上报信息域
|-TimeTag,  00, 无时间标签

H.4.3 设置后读取多个对象属性请求

设置心跳周期后读取

发送:

06 03 04 01 45 00 02 0C 12 01 68 45 00 02 0C 03 00

06 —— [6] SET-Request
03 —— [3] SetThenGetRequestNormalList
04 —— PIID
01 —— SEQUENCE OF的个数=1
45 00 02 0C —— set OAD:心跳周期12 01 68 —— Data
45 00 02 0C —— read OAD:心跳周期03 —— 读取延时 3秒
00 —— 没有时间标签

|-SetThenGetRequestNormalList,  06 03,  * 6:设置请求 3:设置后读取若干个对象属性请求
  |-PIID,   04, 服务优先级=一般(0),服务序号=4
    |-SequenceOf<SetThenGetItem>: len,  01, SequenceOf长度=1 
      |-SetThenGetItem: OAD,    45 00 02 0C,    * OI=0x4500:公网通信模块1 属性2:参见文档 特征0 索引12 
        |-Data: long-unsigned, u16, 12 01 68,   类型:18,值:360 
        |-OAD,  45 00 02 0C,    * OI=0x4500:公网通信模块1 属性2:参见文档 特征0 索引12 
        |-get_delay,    03, 值:3 
|-TimeTag,  00, 无时间标签

响应:

86 03 04 01 45 00 02 0C 00 45 00 02 0C 01 12 01 68 00 00

86 —— [134] SET-Response
03 —— [3] SetThenGetResponseNormalList
04 —— PIID-ACD
01 —— SEQUENCE OF的个数=1
45 00 02 0C —— set OAD:心跳周期00 —— DAR,0成功
45 00 02 0C —— read OAD:心跳周期01 —— Data flag
12 01 68 —— Data
00 —— FollowReport OPTIONAL=0 表示没有上报信息
00 —— 没有时间标签

|-SetThenGetResponseNormalList, 86 03,  * 134:设置响应 3:设置的确认信息以及读取的响应
  |-PIID,   04, 服务优先级=一般(0),服务序号=4
  |-SequenceOf<SetThenGetResponseListItem>: len,    01, SequenceOf长度=1 
    |-SetThenGetResponseListItem: OAD,  45 00 02 0C,    * OI=0x4500:公网通信模块1 属性2:参见文档 特征0 索引12 
      |-DARType,    00, 值:0 
      |-OAD,    45 00 02 0C,    * OI=0x4500:公网通信模块1 属性2:参见文档 特征0 索引12 

H.5 操作

H.5.1 操作一个对象方法请求

执行电能量复位方法

发送:

07 01 05 00 10 01 00 0F 00 00

07 —— [7] ACTION-Request
01 —— [1] ActionRequest
05 —— PIID
00 10 01 00 —— OMD
0F 00 ——参数Data, integer(0) 00 —— 没有时间标签

|-ActionRequestNormal,  07 01,  * 7:操作请求 1:操作一个对象方法请求
  |-PIID,   05, 服务优先级=一般(0),服务序号=5
  |-OMD,    00 10 01 00,    * OI=0x0010:正向有功电能 模式0 方法1:参见文档 
  |-Data: integer, s8,  0F 00,  类型:15,值:0 
|-TimeTag,  00, 无时间标签

响应:

87 01 05 00 10 01 00 00 00 00 00

87 —— [135] ACTION-Response
01 —— [1] ActionResponseNormal
05 —— PIID-ACD
00 10 01 00 —— OMD
00 —— DAR,0成功
00 —— Data OPTIONAL=0 表示没有数据
00 —— FollowReport OPTIONAL=0 表示没有上报信息
00 —— 没有时间标签

|-ActionResponseNormal, 87 01,  * 135:操作响应 1:操作一个对象方法的响应
  |-PIIDACD,    05, 服务优先级(0一般,1高级)=0,请求访问ACD(0不请求,1请求)=0,服务序号=5 
  |-ActionResponseNormalItem: OMD,  00 10 01 00,    * OI=0x0010:正向有功电能 模式0 方法1:参见文档 
    |-ARType,   00, 值:0 
    |-Data: NULL,   00, 类型:0,值:数据为空 
|-FollowReport, 00, 无跟随上报信息域
|-TimeTag,  00, 无时间标签

H.5.2 操作多个对象方法请求

参考操作一个对象方法。

H.5.3 操作多个对象方法后读取多个对象属性请求

执行电能量复位方法后读取当前电能量总及分费率

发送:

07 03 07 01 00 10 01 00 0F 00 00 10 02 00 00 00

07 —— [7] ACTION-Request
03 —— [3] ActionThenGetRequestNormalList
07 —— PIID
01 —— SEQUENCE OF的个数=1
00 10 01 00 —— OMD
0F 00 ——参数Data, integer(0) 00 10 02 00 —— OAD
00 —— 读取延时,0表示服务器默认的延时
00 —— 没有时间标签

|-ActionThenGetRequestNormalList,   07 03,  * 7:操作请求 3:操作若干个对象方法后读取若干个对象属性请求
  |-PIID,   07, 服务优先级=一般(0),服务序号=7
  |-SequenceOf<ActionThenGetItem>: len, 01, SequenceOf长度=1 
    |-ActionThenGetItem: OMD,   00 10 01 00,    * OI=0x0010:正向有功电能 模式0 方法1:参见文档 
      |-Data: integer, s8,  0F 00,  类型:15,值:0 
      |-OAD,    00 10 02 00,    * OI=0x0010:正向有功电能 属性2:总及费率电能量数组 特征0 索引0 
      |-get_delay,  00, 值:0 
|-TimeTag,  00, 无时间标签

响应:

87 03 07 01 00 10 01 00 00 00 00 10 02 00 01 01 05 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 00 00

87 —— [135] ACTION-Response
03 —— [3] ActionThenGetResponseNormalList
07 —— PIID-ACD
01 —— SEQUENCE OF的个数=1
00 10 01 00 —— OMD
00 —— DAR,0成功
00 —— Data OPTIONAL=0 表示没有数据
00 10 02 00 —— OAD
01 —— Data,
01 —— array
05 —— 5个元素
06 00 00 00 00 —— 总
06 00 00 00 00 —— 费率1
06 00 00 00 00 —— 费率2
06 00 00 00 00 —— 费率3
06 00 00 00 00 —— 费率4
00 —— FollowReport OPTIONAL=0 表示没有上报信息
00 —— 没有时间标签

|-ActionThenGetResponseNormalList,  87 03,  * 135:操作响应 3:操作若干个对象方法后读取若干个属性的响应
  |-PIID,   07, 服务优先级=一般(0),服务序号=7
  |-SequenceOf<ActionThenGetResponseListItem>: len, 01, SequenceOf长度=1 
    |-ActionThenGetResponseListItem: OMD,   00 10 01 00,    * OI=0x0010:正向有功电能 模式0 方法1:参见文档 
      |-ARType, 00, 值:0 
      |-Data: NULL, 00, 类型:0,值:数据为空 response
      |-get_oadOAD, 00 10 02 00,    * OI=0x0010:正向有功电能 属性2:总及费率电能量数组 特征0 索引0 
      |-Data: array, len,   01 01,  类型:1,SequenceOf长度=1 
        |-Data: double_long, s32,   05 06 00 00 00, 类型:5,值:100663296 
|-FollowReport, 00, 无跟随上报信息域
|-TimeTag,  06, 有时间标签

H.5.4 添加普通采集方案

采集当前数据

发送:

07 01 05 60 14 7F 00 01 01 02 06 11 01 12 00 01 02 02 11 00 00 01 04 5B 00 00 10 02 00 5B 00 00 20 02 00 5B 00 20 00 02 00 5B 00 20 01 02 00 5C 01 16 01 00

07 —— [7] ACTION-Request
01 —— [1] ActionRequest
05 —— PIID
60 14 7F 00 —— 普通采集方案 方法127
01 —— ARRAY
01 —— 1组普通采集方案
02 —— 结构体
06 —— 成员数量
11 01 —— 方案编号 1
12 00 01 —— 存储深度 1
02 —— 结构体
02 —— 成员数量
11 00 —— 方案类型 0
00 —— 采集内容 NULL 采集当前数据
01 —— ARRAY
04 —— CSD数量为4
5B 00 00 10 02 00 —— 0AD 00100200
5B 00 00 20 02 00 —— 0AD 00200200
5B 00 20 00 02 00 —— 0AD 20000200
5B 00 20 01 02 00 —— 0AD 20010200
5C —— 电表集合数据类型
01 —— 电表集合:全部用户地址
16 —— enum类型
01 —— 存储时标选择:任务开始时间
00 —— 没有时间标签

|-ActionRequestNormal,  07 01,  * 7:操作请求 1:操作一个对象方法请求
  |-PIID,   05, 服务优先级=一般(0),服务序号=5
  |-OMD,    60 14 7F 00,    * OI=0x6014:普通采集方案集 模式0 方法127:Add(array 普通采集方案)添加或更新一组普通采集方案 
  |-Data: array, len,   01 01,  类型:1,SequenceOf长度=1 
    |-Data: structure, len, 02 06,  类型:2,项数=6 
      |-Data: unsigned, u8, 11 01,  类型:17,值:1 --方案编号
      |-Data: long-unsigned, u16,   12 00 01,   类型:18,值:1 --存储深度
      |-Data: structure, len,   02 02,  类型:2,项数=2 --采集方式(0,NULL=采集当前数据 1,unsigned=采集上第N次 2,NULL=按冻结时标采集 3,TI=按时标间隔采集)
        |-Data: unsigned, u8,   11 00,  类型:17,值:0 
        |-Data: NULL,   00, 类型:0,值:数据为空 
      |-Data: array, len,   01 04,  类型:1,SequenceOf长度=4 --记录列选择
        |-Data: CSD: type,  5B 00,  类型:91,值:CSD类型:一般对象属性描述符 
          |-OAD,    00 10 02 00,    * OI=0x0010:正向有功电能 属性2:总及费率电能量数组 特征0 索引0 
        |-Data: CSD: type,  5B 00,  类型:91,值:CSD类型:一般对象属性描述符 
          |-OAD,    00 20 02 00,    * OI=0x0020:反向有功电能 属性2:总及费率电能量数组 特征0 索引0 
        |-Data: CSD: type,  5B 00,  类型:91,值:CSD类型:一般对象属性描述符 
          |-OAD,    20 00 02 00,    * OI=0x2000:电压 属性2:分相数值组 特征0 索引0 
        |-Data: CSD: type,  5B 00,  类型:91,值:CSD类型:一般对象属性描述符 
          |-OAD,    20 01 02 00,    * OI=0x2001:电流 属性2:分相数值组 特征0 索引0 
      |-Data: MS: MSType,   5C 01,  MS类型:全部用户地址 --电能表集合
      |-Data: enum, u8, 16 01,  类型:22,值:1 --存储时标选择(0未定义 1任务开始时间 2相对当日0点0分 3相对上日23点59分 4相对上日0点0分 5相对当月1日0点0分 6数据冻结时标)
|-TimeTag,  00, 无时间标签

响应:

87 01 05 60 14 7F 00 00 00 00 00

87 —— [135] ACTION-Response

|-ActionResponseNormal, 87 01,  * 135:操作响应 1:操作一个对象方法的响应
  |-PIIDACD,    05, 服务优先级(0一般,1高级)=0,请求访问ACD(0不请求,1请求)=0,服务序号=5 
  |-ActionResponseNormalItem: OMD,  60 14 7F 00,    * OI=0x6014:普通采集方案集 模式0 方法127:Add(array 普通采集方案)添加或更新一组普通采集方案 
    |-ARType,   00, 值:0 
    |-Data: NULL,   00, 类型:0,值:数据为空 
|-FollowReport, 00, 无跟随上报信息域
|-TimeTag,  00, 无时间标签

采集冻结数据

发送:

07 01 05 60 14 7F 00 01 01 02 06 11 01 12 00 20 02 02 11 02 00 01 01 5B 01 50 04 02 00 04 00 10 02 00 00 20 02 00 00 30 02 00 00 40 02 00 5C 01 16 02 00

07 —— [7] ACTION-Request
01 —— [1] ActionRequest
05 —— PIID
60 14 7F 00 —— 普通采集方案 方法127
01 —— ARRAY
01 —— 1组普通采集方案
02 —— 结构体
06 —— 成员数量
11 01 —— 方案编号 1
12 00 20 —— 存储深度 32
02 —— 结构体
02 —— 成员数量
11 02 —— 方案类型 2
00 —— 采集内容 NULL 按冻结时标采集
01 —— ARRAY
01 —— CSD数量为1
5B 01 —— R0AD
50 04 02 00 —— OAD
04 —— 关联对象个数
00 10 02 00 —— 0AD 00100200
00 20 02 00 —— 0AD 00200200
00 30 02 00 —— 0AD 00300200
00 40 02 00 —— 0AD 00400200
5C —— 电表集合数据类型
01 —— 电表集合:全部用户地址
16 —— enum类型
02 —— 存储时标选择:相对当日0点0分
00 —— 没有时间标签

|-ActionRequestNormal,  07 01,  * 7:操作请求 1:操作一个对象方法请求
  |-PIID,   05, 服务优先级=一般(0),服务序号=5
  |-OMD,    60 14 7F 00,    * OI=0x6014:普通采集方案集 模式0 方法127:Add(array 普通采集方案)添加或更新一组普通采集方案 
  |-Data: array, len,   01 01,  类型:1,SequenceOf长度=1 
    |-Data: structure, len, 02 06,  类型:2,项数=6 
      |-Data: unsigned, u8, 11 01,  类型:17,值:1 --方案编号
      |-Data: long-unsigned, u16,   12 00 20,   类型:18,值:32 --存储深度
      |-Data: structure, len,   02 02,  类型:2,项数=2 --采集方式(0,NULL=采集当前数据 1,unsigned=采集上第N次 2,NULL=按冻结时标采集 3,TI=按时标间隔采集)
        |-Data: unsigned, u8,   11 02,  类型:17,值:2 
        |-Data: NULL,   00, 类型:0,值:数据为空 
      |-Data: array, len,   01 01,  类型:1,SequenceOf长度=1 --记录列选择
        |-Data: CSD: type,  5B 01,  类型:91,值:CSD类型:记录型对象属性描述符 
          |-ROAD: OAD,  50 04 02 00,    * OI=0x5004:日冻结 属性2:参见文档 特征0 索引0 
            |-SequenceOf<OAD>: len, 04, SequenceOf长度=4 
              |-OAD,    00 10 02 00,    * OI=0x0010:正向有功电能 属性2:总及费率电能量数组 特征0 索引0 
              |-OAD,    00 20 02 00,    * OI=0x0020:反向有功电能 属性2:总及费率电能量数组 特征0 索引0 
              |-OAD,    00 30 02 00,    * OI=0x0030:组合无功1电能 属性2:总及费率电能量数组 特征0 索引0 
              |-OAD,    00 40 02 00,    * OI=0x0040:组合无功2电能 属性2:总及费率电能量数组 特征0 索引0 
      |-Data: MS: MSType,   5C 01,  MS类型:全部用户地址 --电能表集合
      |-Data: enum, u8, 16 02,  类型:22,值:2 --存储时标选择(0未定义 1任务开始时间 2相对当日0点0分 3相对上日23点59分 4相对上日0点0分 5相对当月1日0点0分 6数据冻结时标)
|-TimeTag,  00, 无时间标签

响应:

87 01 05 60 14 7F 00 00 00 00 00

87 —— [135] ACTION-Response

|-ActionResponseNormal, 87 01,  * 135:操作响应 1:操作一个对象方法的响应
  |-PIIDACD,    05, 服务优先级(0一般,1高级)=0,请求访问ACD(0不请求,1请求)=0,服务序号=5 
  |-ActionResponseNormalItem: OMD,  60 14 7F 00,    * OI=0x6014:普通采集方案集 模式0 方法127:Add(array 普通采集方案)添加或更新一组普通采集方案 
    |-ARType,   00, 值:0 
    |-Data: NULL,   00, 类型:0,值:数据为空 
|-FollowReport, 00, 无跟随上报信息域
|-TimeTag,  00, 无时间标签

H.6 上报

H.6.1 上报多个记录型对象属性

参考读取多个记录型对象属性。

H.7 代理

H.7.1 代理读取多个服务器的多个对象属性

代理读取 2 个电能表的当前电能量:

发送:

09 01 0A 00 78 02 07 05 20 16 01 20 00 01 00 3C 01 00 10 02 00 07 05 20 16 01 20 00 02 00 3C 01 00 10 02 00 00

09 —— [9] PROXY-Request
01 —— [1] ProxyGetRequestList 0A —— PIID
00 78 —— 整个代理请求的超时时间
02 —— SEQUENCE OF个数=2
07 05 20 16 01 20 00 01 —— TSA
00 3C —— 代理一个服务器的超时时间
01 —— SEQUENCE OF OAD个数=1
00 10 02 00 —— OAD
07 05 20 16 01 20 00 02 —— TSA
00 3C —— 代理一个服务器的超时时间
01 —— SEQUENCE OF个数=1
00 10 02 00 —— OAD
00 —— 没有时间标签

|-ProxyGetRequestList,  09 01,  * 9:代理请求 1:代理读取若干个服务器的若干个对象属性请求
  |-PIID,   0A, 服务优先级=一般(0),服务序号=10
  |-proxy_timeout: ,    00 78,  值:120 
    |-SequenceOf<GetRequestItem>: len,  02, SequenceOf长度=2 
      |-GetRequestItem: TSA: 1stbyte,   07, 地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=7 
        |-addr, 05 20 16 01 20 00 01,   内容=05 20 16 01 20 00 01
        |-server_timeout: , 00 3C,  值:60 
        |-SequenceOf<OAD>: len, 01, SequenceOf长度=1 
          |-OAD,    00 10 02 00,    * OI=0x0010:正向有功电能 属性2:总及费率电能量数组 特征0 索引0 
      |-GetRequestItem: TSA: 1stbyte,   07, 地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=7 
        |-addr, 05 20 16 01 20 00 02,   内容=05 20 16 01 20 00 02
        |-server_timeout: , 00 3C,  值:60 
        |-SequenceOf<OAD>: len, 01, SequenceOf长度=1 
          |-OAD,    00 10 02 00,    * OI=0x0010:正向有功电能 属性2:总及费率电能量数组 特征0 索引0 
|-TimeTag,  00, 无时间标签

响应:

89 01 0A 02 07 05 20 16 01 20 00 01 01 00 10 02 00 01 01 05 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 07 05 20 16 01 20 00 02 01 00 10 02 00 01 01 05 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 06 00 00 00 00 00 00

89 —— [137] PROXY-Response
01 —— [1] ProxyGetResponseList
0A —— PIID-ACD
02 —— SEQUENCE OF个数=2
07 05 20 16 01 20 00 01 —— TSA
01 —— SEQUENCE OF个数=1
00 10 02 00 —— OAD
01 —— Data
01 —— array
05 —— 5个元素
06 00 00 00 00 —— 总
06 00 00 00 00 —— 费率1
06 00 00 00 00 —— 费率2
06 00 00 00 00 —— 费率3
06 00 00 00 00 —— 费率4
07 05 20 16 01 20 00 02 —— TSA
01 —— SEQUENCE OF个数=1
00 10 02 00 —— OAD
01 —— Data
01 —— array
05 —— 5个元素
06 00 00 00 00 —— 总
06 00 00 00 00 —— 费率1
06 00 00 00 00 —— 费率2
06 00 00 00 00 —— 费率3
06 00 00 00 00 —— 费率4
00 —— FollowReport OPTIONAL=0 表示没有上报信息
00 —— 没有时间标签

|-ProxyGetResponseList, 89 01,  * 137:代理响应 1:代理读取若干个服务器的若干个对象属性响应
  |-PIIDACD,    0A, 服务优先级(0一般,1高级)=0,请求访问ACD(0不请求,1请求)=0,服务序号=10 
    |-SequenceOf<GetResponseItem>: len, 02, SequenceOf长度=2 
      |-GetResponseItem: server_addrTSA: 1stbyte,   07, 地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=7 
        |-addr, 05 20 16 01 20 00 01,   内容=05 20 16 01 20 00 01
          |-SequenceOf<AResultNormal>: len, 01, SequenceOf长度=1 
            |-AResultNormal: OAD,   00 10 02 00,    * OI=0x0010:正向有功电能 属性2:总及费率电能量数组 特征0 索引0 
              |-Get_Result: GetResultType,  01, 结果类型:1(数据)
                |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
                  |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
                  |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
                  |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
                  |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
                  |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
      |-GetResponseItem: server_addrTSA: 1stbyte,   07, 地址类型b7~6=0(0单 1通配 2组 3广播),逻辑地址b5~4=0,长度b3~0=7 
        |-addr, 05 20 16 01 20 00 02,   内容=05 20 16 01 20 00 02
          |-SequenceOf<AResultNormal>: len, 01, SequenceOf长度=1 
            |-AResultNormal: OAD,   00 10 02 00,    * OI=0x0010:正向有功电能 属性2:总及费率电能量数组 特征0 索引0 
              |-Get_Result: GetResultType,  01, 结果类型:1(数据)
                |-Data: array, len, 01 05,  类型:1,SequenceOf长度=5 
                  |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
                  |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
                  |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
                  |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
                  |-Data: double_long_unsigned, u32,    06 00 00 00 00, 类型:6,值:0 
|-FollowReport, 00, 无跟随上报信息域
|-TimeTag,  00, 无时间标签

H.7.2 代理读取一个服务器的一个记录型对象属性

参考读取一个记录型对象属性。

H.7.3 代理设置多个服务器的多个对象属性

参考设置多个对象属性。

H.7.4 代理设置后读取多个服务器的多个对象属性

参考设置后读取多个对象属性。

H.7.5 代理操作多个服务器的多个对象方法

参考操作多个对象方法。

H.7.6 代理操作后读取多个服务器的多个对象方法和属性

参考操作多个对象方法后读取多个对象属性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容