配置速查
这一页列出两类完全不同的参数:
- 库的连接参数 —— 配置在本机程序里,控制通信行为。超时、重试、地址、预算都属于这一类。
- 电表内部参数 —— 配置在电表内部,通过协议读写。最大需量周期、费率数、阶梯数属于这一类。
电表的最大需量周期不是本库的请求超时。 前者是表计的计量算法参数,存在电表里;后者是网络往返等待时间,存在你的程序里。两者没有任何联动。
库的连接参数
ClientOptions
transport_timeout 不控制串口。open_serial 是同步调用,操作系统打开端口的耗时不受它约束。
ServerOptions
SessionOptions:地址、能力、超时、预算
客户端和服务端共用。地址由两端匹配决定,超时和预算各自独立。
role 只决定协议角色,和 TCP 谁拨号无关。监听端可以主动发 LINK,拨号方也可以是被动接受的。
AssociationParameters:CONNECT 协商内容
apdu_bytes 直接决定记录响应是否会分块。响应超过这个值时会自动走 GET Next 分块,需要多次往返,总耗时可能远超 request_timeout。串口或低速设备上建议显式设置一个与设备实际能力匹配的值,而不是盲目接受默认。
parameters.function 默认全零。全零会让协商结果没有业务含义,应用应显式配置自己实际支持的 C.2 功能位:
Limits:资源预算
这些都是防御外部输入的上限。调大之前先确认对端可信。
ChannelOptions:通道预算
read_chunk_bytes 是接收缓冲大小,和协议帧长度无关。一帧可能被拆成多次读取,也可能一次读到多帧。
写入预算是背压。发送快于对端响应时队列满,返回 resource_limit。
SerialOptions / SerialLinkOptions
细节和 RS-485 时序要求见串口连接。
DeviceLayout:本地数组布局
这三个值必须与设备实际一致,它们决定数组长度校验和相别可用性。读参数不会自动修改本地布局,配置和设备不一致时读取会失败。
电表内部参数
这些参数存在电表里,通过 GET/SET 读写。它们由设备解释,本库只做编解码和标准定义校验,不执行业务规则。
各参数的读取方法和字段结构见电表参数读取与设置。
两个最该先读的参数
现场对接时,先读这两个参数再决定本地布局,否则数组长度校验一定失败:
读取参数不会自动修改本地布局。 必须由你读取、判断并显式配置 DeviceLayout,这一点没有捷径。
写入权限的两层含义
标准元数据标注可写,只表示 DL/T 698.45 允许写这个属性。运行时是否真能写,取决于设备的权限和配置。 很多表计出厂时锁定参数,写入返回 DAR=3。
托管服务器本地发布的属性默认只读,远端 SET 返回 DAR=3。需要可写属性和方法,仍要通过高级分层接口接入。
按场景速查
下一步
- 逐参数读取方法:电表参数读取与设置
- 连接与关联:TCP 连接、串口连接
- 完整结构体定义:托管客户端、Session 会话