iec104规约遥测遥信解析笔记「建议收藏」

iec104规约遥测遥信解析笔记「建议收藏」最近在写104规约的解析暂时做一个笔记,先写一个遥信的后期再补全规约解析表如下:104规约解析 启动字符 1字节 取值 68H APCI应用规约控制信息 APDU应用规约数据单元 …

大家好,又见面了,我是你们的朋友全栈君。

最近在写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.否定确认

00x00未用  
10x01周期、循环 (遥测)  
20x02背景扫描(遥信)(遥测)  
30x03突发(自发) (遥信)(遥测)  
40x04初始化完成  
50x05请求或者被请求(遥信被请求)(遥测被请求)  
60x06激活(激活)(遥控、参数设置 控制方向)  
70x07激活确认(激活确认)(遥控、参数设置 监视方向)  
80x08停止激活 (遥控、参数设置 控制方向)  
90x09停止激活确认(遥控、参数设置 监视方向)  
100x0a激活终止 (遥控 监视方向)  
130x0d文件传输  
200x14响应站召唤(总召唤)(遥信响应总召唤)(遥测响应总召唤)  
440x2c未知的类型标识(遥控、参数设置 监视方向)  
450x2d未知的传送原因(遥控、参数设置 监视方向)  
460x2e未知的应用服务数据单元公共地址(遥控、参数设置 监视方向)  
470x2f未知的信息对象地址(遥控、参数设置 监视方向)  
480x30遥控执行软压板状态错误  
490x31遥控执行时间戳错误  
500x32遥控执行数字签名认证错误  
              
应用服务数据单元公共地址2字节是一个系统参数,每一个配电终端对应唯一的一个值  
              
信息对象地址
(单个或多个)
3字节D7D6D5D4D3D2D1D0  
地址表示7位       0位  
15位       8位  
23位       16位  
描述信息对象地址位三个字节(总召唤,信息地址为0)(时钟同步,信息地址为0)(复位进程地址为0)(初始化地址为0)  
              
信息元素
(可能是单个
或多个
信息元素)
1字节D7D6D5D4D3D2D1D0  
单点遥信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个字节)  
设置命令限定词
(参数预置)
D7D6D5D4D3D2D1D0  
S/EQL  
1:选择预置参数
0:执行激活参数
0:缺省值  
描述时钟同步无此项,遥信无此项,遥控无此项,  
              
时标CP56Time2a7字节D7D6D5D4D3D2D1D0  
第1字节毫秒(低8位)  
第2字节毫秒(高8位)  
第3字节00分钟(0~59)  
第4字节000小时(0~23)  
第5字节星期(1~7)日(0~31)  
第6字节0000月(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

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151378.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RPC接口简介「建议收藏」

    RPC接口简介「建议收藏」什么是RPCRPC(RemoteProcedureCallProtocol)远程过程调用协议。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。比较正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC的特点:RPC是协议。只是协议,而非实现。RPC实现包括:Dubbo、Thri…

    2022年10月13日
    0
  • 用idea搭建springboot项目_springboot入门项目

    用idea搭建springboot项目_springboot入门项目Idea搭建springboot项目

    2022年9月12日
    0
  • pvzβ版下载_掌上生活app下载安装

    pvzβ版下载_掌上生活app下载安装环境要求HttpRunner是一个基于Python开发的测试框架,可以运行在macOS、Linux、Windows系统平台上。这里使用macOS系统进行演示对于python版本要求:py

    2022年7月30日
    3
  • 虚拟机VMware安装苹果系统macOS,超级详细教程,附文件下载,真教程!!

    虚拟机VMware安装苹果系统macOS,超级详细教程,附文件下载,真教程!!1.准备工作1、虚拟机VMware®Workstation15Pro,小编使用的版本是15pro2、Unlocker或MK-Unlocker3、一个MacOS镜像2.资源下载…

    2022年9月25日
    0
  • 学习PrintWriter类[通俗易懂]

    学习PrintWriter类[通俗易懂]java.io包1)首先先知道它的八种构造方法,但怎么记住这八种呢?我们都知道PrintWriter是一种过滤流,也叫处理流。也就是能对字节流和字符流进行处理,所以它会有:PrintWriter(OutputStreamout) 根据现有的OutputStream创建不带自动行刷新的新PrintWriter。PrintWriter(Writerout) 创建不带自动行刷新

    2022年8月10日
    4
  • android加密参数定位方法

    android加密参数定位方法作者正在编写一本爬虫逆向相关的书籍《书名还没有想好》。目前刚写了50页,上图是文章目录的一部分,想问一下大家现在对哪阶段的内容会更感兴趣,或者哪部分的内容会更有学习力,或者帮我想个书名。可在本文末留言告知,感谢大家。下面开始本文正文内容。在逆向一个Android程序时,如果只是盲目的分析需要阅读N多代码才能找到程序的关键点或Hook点,本文将分享一下如何快速的找到APP程序的加密参数位置,其实不论是找关键位置、找hook点,找加密参数、代码逻辑追踪,都是类似的处理方法。巧用搜索-静态分析

    2022年5月17日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号