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

 

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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