ANSI报文解析与读取流程详解

4星 · 超过85%的资源 需积分: 32 26 下载量 110 浏览量 更新于2024-07-30 收藏 365KB DOC 举报
"ANSI规约详解" ANSI(American National Standards Institute,美国国家标准协会)规约是一种用于抄表系统中的通信协议,它定义了设备间如何交换数据的规则。本文档详细解析了ANSI报文结构及其在抄表应用中的使用。 报文结构分为几个关键部分: 1. **特征码(EE)**:EE是报文的起始标志,表示这是一个ANSI格式的报文。 2. **表地址(00)**:00代表通用地址,如果链路中有多个表,则需使用特定表的地址进行通信。 3. **功能码(00)**:功能码通常在发送时为00,在接收时变为20,反之亦然,表明报文的方向。 4. **后序帧数标识码**:指示后续帧的数量,TX帧中通常是00,RX帧中可能为01至04,表示接收时数据是否分帧传输。 5. **接收数据体的长度(0003)**:不包括CRC校验的字节数。 6. **数据体(300015)**:包含各种命令,如握手、登录、读取、写入和登出等操作的具体数据。 7. **CRC校验(F05B)**:用于检测数据传输中的错误。 8. **链路层响应(如06)**:确认已接收到报文。 **读取TOU(Time Of Use,时段电价)的流程**: 1. 首先进行登陆操作。 2. 发送读取当前电量的命令(例如,读取ST_021_ACT_REGS)。 3. 接收并解析响应,获取实际数据。 4. 继续读取ST_027_PRESENT_REG_SELECT和ST_028_PRESENT_REG_DATA,以获取更多TOU相关数据。 5. 最后,结束操作。 **读取时间的流程**: 1. 同样先进行登陆。 2. 发送读取时间的命令,例如读取ST_052_CLOCK。 3. 解析返回的Table数据,其中包括CLOCK_CALENDAR(年-月-日-时-分-秒)和TIME_DATE_QUAL(时间属性)。 4. 对时的流程涉及发送设置时间的命令,并验证设备是否正确更新时间。 **数据结构**: - ST_021_ACT_REGS 和 ST_027-present_REG_SELECT, ST_028_PRESENT_REG_DATA 是特定的表项,存储了与TOU相关的费率和当前状态信息。 - ST_052_CLOCK 包含CLOCK_CALENDAR结构,表示日期和时间,由YEAR、MONTH、DAY、HOUR、MINUTE和SECOND组成。 - TIME_DATE_QUAL 是一个字节,表示时间属性,可能包含时间的准确性和有效性信息。 在进行通信时,理解这些数据结构和流程至关重要,以便正确解析和响应来自抄表设备的报文。通过遵循ANSI规约,可以确保在抄表网络中实现高效且可靠的通信。
2017-04-27 上传