最近在写104规约的解析暂时做一个笔记,先写一个遥信的后期再补全

规约解析表如下:

104规约解析        
                               
启动字符 1字节 取值 68H   APCI应用规约控制信息   APDU应用规约数据单元
                           
APDU长度 1字节 取值 最大,253    
                           
控制域 4字节 I格式控制域标志
(编号的信息传输格式)
(包含ASDU)
D7 D6 D5 D4 D3 D2 D1 D0    
控制域八位位组1 发送序列号N(S) 0    
控制域八位位组2 发送序列号N(S)    
控制域八位位组3 接收序列号N(R) 0    
控制域八位位组4 接收序列号N(R)    
S格式控制域标志
(编号的监视功能格式)
(不包含ASDU)
D7 D6 D5 D4 D3 D2 D1 D0    
控制域八位位组1 0 1    
控制域八位位组2 0    
控制域八位位组3 接收序列号N(R) 0    
控制域八位位组4 接收序列号N®    
U格式控制域标志
(不编号的控制功能格式)
(不包含ASDU)
(同一时刻TESTFR、STOPDT、STARTDT中只能有一个功能可以被激活)
D7 D6 D5 D4 D3 D2 D1 D0    
控制域八位位组1 TESTFR STOPDT STARTDT 1 1    
确认 命令 确认 命令 确认 命令    
控制域八位位组2 0    
控制域八位位组3 0    
控制域八位位组4 0    
                             
类型标识TI 1字节 取值 10进制 16进制 意义 类别   ASDU应用服务数据单元  
1 0x01 单点信息(遥信) 监视方向的过程信息    
3 0x03 双点信息 (遥信)    
9 0x09 测量值,归一化值(遥测)*    
11 0x0B 测量值,标度化值(遥测)    
13 0x0D 测量值,短浮点数(遥测)    
30 0x1E 带CP56Time2a时标的单点信息(遥信带时标)    
31 0x1F 带CP56Time2a时标的双点信息(遥信带时标)    
45 0x2D 单命令(遥控) 遥控    
46 0x2E 双命令(遥控)    
102 0x66 读单个参数命令(参数设置) 参数设置    
132 0x84 读多个参数命令(参数设置)    
48 0x30 预置/激活单个参数命令(参数设置)    
136 0x88 预置/激活多个参数命令(参数设置)    
70 0x46 初始化结束 系统命令 初始化结束    
100 0x64 召唤命令 系统命令 总召唤    
103 0x67 时钟同步/读取命令 系统命令 时钟同步    
105 0x69 复位进程命令 系统命令 复位进程    
                           
可变结构限定词 1字节 D7 D6 D5 D4 D3 D2 D1 D0    
取值方法 &0x80 &0x7F    
符号表示 SQ number    
意义 地址连续性 应用服务数据单元信息元素(单个信息元素或同类信息元素组合)的数目    
值及功能 0.地址不连续
1.地址连续
<0>∶=应用服务数据单元不含信息对象;<1..127>∶=应用服务数据单元信息元素的数目    
                           
传输原因 2字节 D7 D6 D5 D4 D3 D2 D1 D0    
取值及含义 T(test)

0.未试验

1.试验

P/N

0.肯定确认

1.否定确认

0 0x00 未用    
1 0x01 周期、循环 (遥测)    
2 0x02 背景扫描(遥信)(遥测)    
3 0x03 突发(自发) (遥信)(遥测)    
4 0x04 初始化完成    
5 0x05 请求或者被请求(遥信被请求)(遥测被请求)    
6 0x06 激活(激活)(遥控、参数设置 控制方向)    
7 0x07 激活确认(激活确认)(遥控、参数设置 监视方向)    
8 0x08 停止激活 (遥控、参数设置 控制方向)    
9 0x09 停止激活确认(遥控、参数设置 监视方向)    
10 0x0a 激活终止 (遥控 监视方向)    
13 0x0d 文件传输    
20 0x14 响应站召唤(总召唤)(遥信响应总召唤)(遥测响应总召唤)    
44 0x2c 未知的类型标识(遥控、参数设置 监视方向)    
45 0x2d 未知的传送原因(遥控、参数设置 监视方向)    
46 0x2e 未知的应用服务数据单元公共地址(遥控、参数设置 监视方向)    
47 0x2f 未知的信息对象地址(遥控、参数设置 监视方向)    
48 0x30 遥控执行软压板状态错误    
49 0x31 遥控执行时间戳错误    
50 0x32 遥控执行数字签名认证错误    
                           
应用服务数据单元公共地址 2字节 是一个系统参数,每一个配电终端对应唯一的一个值    
                           
信息对象地址
(单个或多个)
3字节 D7 D6 D5 D4 D3 D2 D1 D0    
地址表示 7位               0位    
15位               8位    
23位               16位    
描述 信息对象地址位三个字节(总召唤,信息地址为0)(时钟同步,信息地址为0)(复位进程地址为0)(初始化地址为0)    
                           
信息元素
(可能是单个
或多个
信息元素)
1字节 D7 D6 D5 D4 D3 D2 D1 D0    
单点遥信 0.有效
1.无效
0.当前值
1.非当前值
0.未被取代
1.被取代
0.未被闭锁
1.被闭锁
备用 备用 备用 0.开关分
1.开关合
   
双点遥信 0.有效
1.无效
0.当前值
1.非当前值
0.未被取代
1.被取代
0.未被闭锁
1.被闭锁
备用 备用 0.不确定或中间状态
1.确定开关分
2.确定开关合
3.不确定
   
遥控
单命令
0.遥控执行命令
1.遥控选择命令
备用 备用 备用 备用 备用 备用 0.开关分
1.开关合
   
遥控
双命令
0.遥控执行命令
1.遥控选择命令
备用 备用 备用 备用 备用 0.不允许,有错误
1.开关分
2.开关合
3.不允许,有错误
   
2字节 遥测 链路层传输顺序为低位在前,高位在后;低字节在前,高字节在后。如:69 01应该是01 69,即二进制0000 0001 0110 1001,转换成10进制是361    
参数设置
4字节
读取单个参数 在控制方向:空,在监视方向:返回参数(信息值为4个字节)    
读取多个参数 在控制方向:空,在监视方向:返回参数(信息值1为4个字节,信息值n为4个字节)    
预置/激活单个参数 在控制方向:参数值,在监视方向:返回参数镜像(信息值为4个字节),后缀设定命令限定词1字节    
预置/激活多个参数 在控制方向:参数值,在监视方向:返回参数镜像(信息值1为4个字节,信息值n为4个字节),后缀设定命令限定词1字节    
描述 总召唤无此项,时钟同步无此项,复位进程无此项,初始化结束无此项,    
         
限定词 1字节 总召唤限定词 20    
复位进程限定词 1    
初始化原因 0.当地电源合上,1.当地手动复位,2.远方复位    
品质描述词(遥测) 0(每个信息元素后缀1个字节)    
设置命令限定词
(参数预置)
D7 D6 D5 D4 D3 D2 D1 D0    
S/E QL    
1:选择预置参数
0:执行激活参数
0:缺省值    
描述 时钟同步无此项,遥信无此项,遥控无此项,    
                           
时标CP56Time2a 7字节 D7 D6 D5 D4 D3 D2 D1 D0    
第1字节 毫秒(低8位)    
第2字节 毫秒(高8位)    
第3字节 0 0 分钟(0~59)    
第4字节 0 0 0 小时(0~23)    
第5字节 星期(1~7) 日(0~31)    
第6字节 0 0 0 0 月(1~12)    
第7字节 0 年(0~99)    
描述 时钟同步带时标、总召唤无时标、进程复位无时标、初始化结束无时标、参数设置无时标    

遥信的解析例子:68  0E  0A  00  10  00  01  01  03  00  01  00  01  00  00  01(单点遥信),注意下面的所有运行 都需要把值转为10进制再进行运行比如(0A & 0x03-->11&0x03)

分析如下:

第一个字节68:起始符(固定的就是这个,转换成10进制就是104)

第二个字节0E: 报文长度(表示0E 后面的字节一共有多少个字节 即0A 到最后01一共14个字节,0E的十进制即为14)

第三个字节到第六个字节:都是控制域值 分三种

I帧是信息帧,作用是用于传输具体的通信数据的 长度必大于6个字节。
* S帧是用于确认接收的I帧,即当接收到I帧后需要返回一个S帧 长度等于6个字节。
* U帧是控制帧,用于控制启动/停止子站进行数据传输,或测试TCP链路连接,长度等于6个字
把第一控制域的值和 16进制的03进行与运算(0A & 0x03) 是1代表S格式, 3代表U格式,其余就是I格式

第七个字节 01 是类型标识符:对应上面的表 就是单点遥信类型 十进制值为1

第八个字节01 是可变结构限定词:这里可得出两个值,对应上面表

sq值:01 & 0x80的结果 如果为128 就是信息元素地址是顺序的,sq值设置为1。如果为0,sq值等于0 信息元素地址非顺序的

元素个数:01 & 0x7F 表示信息元素的个数。

第九个字节03到第十个字节00:表示传输原因,对应上表得出以下几个值:

注意:这里03带入计算表示第九个字节为03

T(test): 03&0x80 值为128 为已实验 ,值为0 表示未实验

PN值:03 & 0x40 值为64 为否定确认,值为0肯定确认

原因值:03 & 0x3F (对应上面的表,计算的值表示对应的原因)

第十一字节01到第十二字节00:表示应用服务数据单元公共地址 计算规则是 第十二字节在前第十一字节在后拼成 十六进制的格式:0001 然后计算出这个数的十进制值

第十三字节01到第十五字节00:表示信息对象地址 00 << 16 + 00<<8 + 01计算规则:第十五字节 << 16 + 第十四字节 << 8 +第十三字节 (记住字节转为十进制再计算)

第十六字节01:表示信息元素的值 这里一般会有多个或者一个

源码:https://github.com/wangtingsong/iec104_wts

iec104规约遥测遥信解析笔记相关推荐

  1. IEC-104报文结构及解析说明

    报文帧结构:                 APDU:应用规约数据单元:包含该帧报文的控制域和应用服务数据单元: APCI: 应用规约控制单元:定义了启动字符.APDU长度和控制域: ASDU:应用 ...

  2. 源码解析:Spring源码解析笔记(五)接口设计总览

    本文由colodoo(纸伞)整理 QQ 425343603 Java学习交流群(717726984) Spring解析笔记 启动过程部分已经完成,对启动过程源码有兴趣的朋友可以作为参考文章. 源码解析 ...

  3. React深入学习与源码解析笔记

    ***当前阶段的笔记 *** 「面向实习生阶段」https://www.aliyundrive.com/s/VTME123M4T9 提取码: 8s6v 点击链接保存,或者复制本段内容,打开「阿里云盘」 ...

  4. DLT645-2007 规约 电表 报文解析

    注:本文为转载 转载地址:https://wenku.baidu.com/view/cc10838283d049649b66580d.html DLT645-2007 规约 常见报文解析 //2012 ...

  5. javaSE基础——集合全面解析笔记

    javaSE基础--集合全面解析笔记 英文单词 一.容器定义 1.1.容器继承体系 二.Set--------容器类 部分方法数学集合意义 2.1 HashSet 2.1.1 基本用法 2.1.2 特 ...

  6. FastDFS中long2buff解析笔记

    long2buff解析笔记 在阅读fastdfs中遇到了long2buffer函数,对于里面的位移操作以及unsigned char* 操作感觉很迷茫> 查找资料后总结如下: void long ...

  7. mysql中10049是什么错误_【学习笔记】Oracle数据库10049用于分析SQL解析笔记案例

    [学习笔记]Oracle数据库10049用于分析SQL解析笔记案例 时间:2016-11-05 13:54   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Oracle研究 ...

  8. obs 源码解析笔记

    obs 源码解析笔记 由于obs rtp音频传输有问题,所以可能需要修改obs源码,学习了两天,发现官方文档有些混乱,国内有关说明又少,特此记录,也方便以后自己查阅.这里主要涉及工作有关源码其他基本略 ...

  9. IEC104 规约详细解读(二)交互流程以及协议解析

    流程 第一步:首次握手(U帧) 发送―>激活传输启动 : 68(启动符)04(长度)07(控制域) 00 00 00 接收―>确认激活传输启动: 68(启动符)04(长度)0B(控制域) ...

  10. IEC104 规约录波解析工具

    软件截图: 下载地址 lubo.rar 待解码录波文件样例: F1050_20161231003901.rar

最新文章

  1. Facebook人工智能副总裁:AI 这一领域很快就会「碰壁」
  2. centos快速安装npm-2.15.8
  3. Dapper试用简例
  4. 模式窗口showModalDialog的用法总结
  5. Oracle数据库日常管理之数据备份,恢复及迁移 (第五讲 )
  6. 关于IOS内存机制的较深入分析
  7. 【KMP】KMP 字符串匹配算法
  8. mysql实现高效率随机取数据
  9. ubuntu desktop 12 lts 安装 vmplayer 问题
  10. 我解决了net framework 4安装失败,提示找不到指定文件的问题
  11. 包装严重的 IT 圈,作为面试官,是如何甄别应聘者呢?
  12. caffe:最优化方法
  13. AS3多线程快速入门(三):NAPE物理引擎+Starling[译]
  14. 虚拟机安装和破解密码
  15. yolo和以往算法的区别/yolo为什么叫yolo
  16. 数字澳洋背后的用友云混合云架构支撑
  17. 人工智能领域最佳5种编程语言
  18. python爬取国家统计局2019年行政区划分数据
  19. C++第一阶段(远程控制)-卢嘉文-专题视频课程
  20. 夜神云手机技术正式发布,App试玩时代开启

热门文章

  1. HTML+CSS+JavaScript实现打字小游戏
  2. 【离散数学】集合论 第三章 集合与关系(1) 集合的概念与表示
  3. ibm服务器操作系统重装步骤,ibm服务器安装 操作系统安装步骤
  4. verifycode.php,php验证码|php图片验证码|php image.verifyCode.class.php
  5. 算法设计与分析期末考试
  6. QQ for Linux 安装和卸载
  7. VS2013 Codejock 实现 MFC 换肤
  8. 《数据结构:c语言版》(严蔚敏)知识点整合
  9. java实现PDF转word,使用jacob插件
  10. python语言程序设计实践教程答案上海交通大学_计算机二级教程 Python语言程序设计 第4章程序的控制结构...