一、四遥信息体基地址范围

104调度规约有1997年和2002年两个版本,在流程上没有什么变化,02版只是在97版上扩展了遥测、遥信等信息体基体址,区别如下:

类别

1997版基地址

2002版基地址

遥信

1H------400H

1H------4000H

遥测

701H------900H

4001H------5000H

遥控

B01H------B80H

6001H------6100H

设点

B81H------COOH

6201H------6400H

电度

C01H------C80H

6401H------6600H

二、一些报文字节数的设置

类别

配置方式

公共地址字节数

2

传输原因字节数

2

信息体地址字节数

3

此配置要根据主站来定,有的主站可能设为1,1,2,我们要改与主站一致。

三、详细报文分析

以公共地址字节数=2,传输原因字节数=2,信息体地址字节数=3为例对一些基本的报文分析

第一步:首次握手(U帧)

发送→激活传输启动     :68(启动符)04(长度)07(控制域)00  00  00

接收→确认激活传输启动 : 68(启动符)04(长度)0B(控制域)00  00  00

第二步:总召唤(I帧)

召唤YC、YX(可变长I帧)初始化后定时发送总召唤,每次总召唤的间隔时间一般设为15分钟召唤一次,不同的主站系统设置不同。

发送→总召唤     :

68(启动符)0E(长度)00  00(发送序号)00  00(接收序号)64(类型标示)01(可变结构限定词)06  00(传输原因)01  00(公共地址即RTU地址)00 00 00(信息体地址)14(区分是总召唤还是分组召唤,02年修改后的规约中没有分组召唤)

接收→S帧 :

注意:记录接收到的长帧,双方可以按频率发送,比如接收8帧I帧回答一帧S帧,也可以要求接收1帧I帧就应答1帧S帧。

68     04  01  00  02  00

接收→总召唤确认(发送帧的镜像,除传送原因不同) :

68(启动符)0E(长度)00  00(发送序号)00  00(接收序号)64(类型标示)01(可变结构限定词)07  00(传输原因)01  00(公共地址即RTU地址)00 00 00(信息体地址)14(同上)

发送→S帧 :

注意:记录接收到的长帧,双方可以按频率发送,比如接收8帧I帧回答一帧S帧,也可以要求接收1帧I帧就应答1帧S帧。

68  04  01  00  02  00

接收→YX帧(以类型标识1为例) :

68(启动符)1A(长度)02  00(发送序号)02  00(接收序号)01(类型标示,单点遥信)04(可变结构限定词,有4个遥信上送)14  00(传输原因,响应总召唤)01  00(公共地址即RTU地址)03 00 00(信息体地址,第3号遥信)00(遥信分)

发送→S帧 :

68  04  01  00  04  00

接收→YX帧(以类型标识3为例) :

68(启动符)1E(长度)04  00(发送序号)02  00(接收序号)03(类型标示,双点遥信)05(可变结构限定词,有5个遥信上送)14  00(传输原因,响应总召唤) 01  00(公共地址)01 00 00(信息体地址,第1号遥信)02(遥信合)06 00 00(信息体地址,第6号遥信)02(遥信合)0A 00 00(信息体地址,第10号遥信)01(遥信分)0B 00 00(信息体地址,第11号遥信)02(遥信合)0C 00 00(信息体地址,第12号遥信)01(遥信分)

 发送→S帧 :

68  04  01  00  06  00

接收→YC帧(以类型标识9为例) :

68(启动符)13(长度)06  00(发送序号)02  00(接收序号)09(类型标示,带品质描述的遥测)82(可变结构限定词,有2个连续遥测上送)14  00(传输原因,响应总召唤)01  00(公共地址)01 07 00(信息体地址,从0X0701开始第0号遥测)A1 10(遥测值10A1)00(品质描述)89 15(遥测值1589)00(品质描述)

发送→S帧 :

68  04  01  00  08  00

接收→结束总召唤帧 :

68(启动符)0E(长度)08  00(发送序号)02  00(接收序号)64(类型标示)01(可变结构限定词)0A  00(传输原因)01  00(公共地址)00 00 00(信息体地址)14(区分是总召唤还是分组召唤,02年修改后的规约中没有分组召唤)

发送→S帧 :

68      04  01  00  0A  00

第三步:发送对时报文(通过设置RTU参数表中的对间间隔”,单位是分钟,一般是20分钟)

发送→对时命令 :

68(启动符)14(长度)02  00(发送序号)0A  00(接收序号)67(类型标示)01(可变结构限定词)06  00(传输原因)01  00(公共地址)00 00 00(信息体地址)01(毫秒低位)02(毫秒高位)03(分钟)04(时)81(日与星期)09(月)05(年)

接收→对时确认 :

68(启动符)14(长度)0C  00(发送序号)02  00(接收序号)67(类型标示)01(可变结构限定词)07  00(传输原因)01  00(公共地址)00 00 00(信息体地址)**(毫秒低位)**(毫秒高位)**(分钟)04(时)81(日与星期)09(月)05(年)

发送→S帧 :

68  04  01  00  0E  00

 第四步:电度总召唤(如果没有电度此步骤可以省略且可以在对时之前以送.通过设置参数中全数据扫描间隔”,单位是分钟一般是15分钟召唤一交,如果不需要召唤电度一定要将参数中的电度个数设为0)

发送→召唤电度 :

68(启动符)0E(长度)04  00(发送序号)0E  00(接收序号)65(类型标示)01(可变结构限定词)06  00(传输原因)01  00(公共地址)00 00 00(信息体地址)45(QCC)

接收→召唤确认(发送帧的镜像,除传送原因不同) :

68(启动符)0E(长度)10  00(发送序号)06  00(接收序号)65(类型标示)01(可变结构限定词)07  00(传输原因)01  00(公共地址)00 00 00(信息体地址)45(QCC)

发送→S帧 :

68  04  01  00  12  00

接收→电度数据 :

68(启动符)1A(长度)12  00(发送序号)06  00(接收序号)0F(类型标示)02(可变结构限定词,有两个电度量上送)05  00(传输原因)01  00(公共地址)01 0C 00(信息体地址,从0X0C01开始第0号电度)00 00 00 00(电度值)00(描述信息)02 0C 00(信息体地址,从0X0C01开始第1号电度)00 00 00 00(电度值)01(描述信息)

发送→S帧 :

68  04  01  00  14  00

接收→结束总召唤帧 :

68(启动符)0E(长度)14  00(发送序号)06  00(接收序号)65(类型标示)01(可变结构限定词)0A  00(传输原因)01  00(公共地址)00 00 00(信息体地址)45(QCC)

发送→S帧 :

68      04  01  00  16  00

第五步:如果RTU有变化数据主动上送,主动上送变位遥信,类型标识为13

接收→变位遥信 :

68(启动符)0E(长度)16  00(发送序号)06  00(接收序号)01(类型标示,单点遥信)01(可变结构限定词,有1个变位遥信上送)03  00(传输原因,表突发事件)01  00(公共地址即RTU地址)03 00 00(信息体地址,第3号遥信)00(遥信分)

发送→S帧 :

68  04  01  00  18  00

接收→变位遥信 :

68(启动符)0E(长度)18  00(发送序号)06  00(接收序号)03(类型标示,双点遥信)01(可变结构限定词,有1个变位遥信上送)03  00(传输原因,表突发事件)01  00(公共地址即RTU地址)06 00 00(信息体地址,第6号遥信)01(遥信分)

发送→S帧 :

68  04  01  00  1a  00

主动上送SOE,类型标识为0x1e0x1f

接收→SOE :

68(启动符)15(长度)1a  00(发送序号)06  00(接收序号)1e(类型标示,单点遥信)01(可变结构限定词,有1个SOE)03  00(传输原因,表突发事件)01  00(公共地址即RTU地址)08 00 00(信息体地址,第8号遥信)00(遥信分)ad(毫秒低位)39(毫秒高位)1c(分钟)10(时)7a(日与星期)0b(月)05(年)

发送→S帧 :

68  04  01  00  1c  00

接收→SOE :

68(启动符)15(长度)1c  00(发送序号)06  00(接收序号)1f(类型标示,双点遥信)01(可变结构限定词,有1个SOE)03  00(传输原因,表突发事件)01  00(公共地址即RTU地址)0a 00 00(信息体地址,第10遥信)01(遥信分)2f(毫秒低位)40(毫秒高位)1c(分钟)10(时)7a(日与星期)0b(月)05(年)

第六步:如果主站超过一定时间没有下发报文或RTU也没有上送任何报文则双方都可以按频率发送U,测试帧

发送→U帧 :

68  04  43  00  00  00

接收→应答 :

68  04  83  00  00  00

第七步:遥控

发送→遥控预置 :

68(启动符)0e(长度)20  00(发送序号)06  00(接收序号)2e(类型标示)01(可变结构限定词)06  00(传输原因)01  00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)82(控合)

接收→遥控返校 :

68(启动符)0e(长度)0e  00(发送序号)06  00(接收序号)2e(类型标示)01(可变结构限定词)07  00(传输原因)01  00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)82(控合)

发送→遥控执行 :

68(启动符)0e(长度)04  00(发送序号)18  00(接收序号)2e(类型标示)01(可变结构限定词)06  00(传输原因)01  00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)

接收→执行确认 :

68(启动符)0e(长度)12  00(发送序号)08  00(接收序号)2e(类型标示)01(可变结构限定词)07  00(传输原因)01  00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)

发送→遥控撤消 :

68(启动符)0e(长度)04  00(发送序号)18  00(接收序号)2e(类型标示)01(可变结构限定词)08  00(传输原因)01  00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)

接收→撤消确认 :

68(启动符)0e(长度)12  00(发送序号)08  00(接收序号)2e(类型标示)01(可变结构限定词)09  00(传输原因)01  00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)

补充说明:

1、 报文中的长度指的是除启动字符与长度字节的所有字节。

2、 注意长帧报文中的“发送序号”与“接收序号”具有抗报文丢失功能。

3、 常用的类型标识

遥测:

09———带品质描述的测量值,每个遥测值占3个字节

0a———带3个字节时标的且具有品质描述的测量值,每个遥测值占6个字节

0b———不带时标的标度化值,每个遥测值占3个字节

0c———带3个时标的标度化值,每个遥测值占6个字节

0d———带品质描述的浮点值,每个遥测值占5个字节

0e———带3个字节时标且具有品质描述的浮点值,每个遥测值占8个字节

15———不带品质描述的遥测值,每个遥测值占2个字节

遥信:

01———不带时标的单点遥信,每个遥信占1个字节

03———不带时标的双点遥信,每个遥信占1个字节

14———具有状态变位检出的成组单点遥信,每个字节8个遥信

SOE:

02———带3个字节短时标的单点遥信

04———带3个字节短时标的双点遥信

1e———带7个字节时标的单点遥信

1f———带7个字节时标的双点遥信

KWH:

0f———不带时标的电能量,每个电能量占5个字节

10———带3个字节短时标的电能量,每个电能量占8个字节

25———带7个字节短时标的电能量,每个电能量占12个字节

其他:

2e———双点遥控

2f———双点遥调

64———召唤全数据

65———召唤全电度

67———时钟同步

4、常用的传送原因列表:

1———周期、循环

2———背景扫描

3———突发

4———初始化

5———请求或被请求

6———激活

7———激活确认

8———停止激活

9———停止激活确认

0a———激活结束

14———响应总召唤

转载请注明出处:https://www.cnblogs.com/meandme/

IEC104协议规约解析的更多相关文章

  1. C# 串口操作系列(4) -- 协议篇,文本协议数据解析

    C# 串口操作系列(4) -- 协议篇,文本协议数据解析 标签: c#uiobjectstringbyte 2010-06-09 01:50 19739人阅读 评论(26) 收藏 举报  分类: 通讯 ...

  2. RTP协议全解析(H264码流和PS流)(转)

    源: RTP协议全解析(H264码流和PS流)

  3. html文件在head标签中引入js地址和直接写js代码,所用时间是不同的,因为引入js地址,文件加载的时候需要通过通讯协议去解析地址,读取外部文件

    html文件在head标签中引入js地址和直接写js代码,所用时间是不同的,因为引入js地址,文件加载的时候需要通过通讯协议去解析地址,读取外部文件

  4. TCP协议 状态解析和状态统计

    一.三次握手和四次挥手 1.建立连接(三次握手)   (1)服务器会处于listen状态,客户端发送一个带SYN标志的TCP报文到服务器.   (2)服务器端回应客户端的请求,这是三次握手中的第2个报 ...

  5. 使用 C# 实现 CJ-T188 水表协议和 DL-T645 电表协议的解析与编码

    一.协议的定义 要对某种协议进行编解码操作,就必须知道协议的基本定义,首先我们来看一下 CJ/T188 的数据帧定义(协议定义),了解请求数据与响应数据的基本结构. 1.1 CJ/T188 水表通讯协 ...

  6. C# 串口操作系列(3) -- 协议篇,二进制协议数据解析

    原文地址:http://blog.csdn.net/wuyazhe/article/details/5627253 我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要 ...

  7. 【Win10 UWP】URI Scheme(一):Windows Store协议的解析和使用

    协议是Windows Phone和Windows Store应用的一个重要特点,可以做到在不同应用之间进行互相呼起调用.小小协议,学问大着呢.我打算写几篇关于协议在UWP中使用的文章. 这一讲的主要对 ...

  8. TCP/IP协议全解析 三次握手与四次挥手[转]

    所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立.所谓四次挥手(Four-Way Wavehand) ...

  9. HTTP 协议报文解析

    说明转载自https://blog.csdn.net/chf1142152101/article/details/74162755 本篇主要是为了记录HTTP中报文的格式,以便针对报文进行解析.首先会 ...

随机推荐

  1. 企业IT管理员IE11升级指南【10】—— 如何阻止IE11的安装

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  2. Java实现递增数组的二分查找

    package com.algorithm; import java.util.ArrayList;import java.util.List; /** * 类功能描述: * * @author Ba ...

  3. 吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection)

    对于异常检测算法,使用特征是至关重要的,下面谈谈如何选择特征: 异常检测假设特征符合高斯分布,如果数据的分布不是高斯分布,异常检测算法也能够工作,但是最好还是将数据转换成高斯分布,例如使用对数函数:

  4. Go语言单元测试与基准测试

    目录 单元测试 概述 go test参数解读 单元测试日志 基准测试 基础测试基本使用 基准测试原理 自定义测试时间 测试内存 控制计时器 Go语言拥有一套单元测试和性能测试系统,仅需要添加很少的代码 ...

  5. [Swift]LeetCode73. 矩阵置零 | Set Matrix Zeroes

    Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in-place. Exampl ...

  6. [Swift]LeetCode218. 天际线问题 | The Skyline Problem

    A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...

  7. [Swift]LeetCode333. 最大的二分搜索子树 $ Largest BST Subtree

    Given a binary tree, find the largest subtree which is a Binary Search Tree (BST), where largest mea ...

  8. [Swift]LeetCode926. 将字符串翻转到单调递增 | Flip String to Monotone Increasing

    A string of '0's and '1's is monotone increasing if it consists of some number of '0's (possibly 0), ...

  9. 了解 HTTPS,读这篇文章就够了

    今天接到个活儿,让我科普 HTTPS .讲 HTTP 我都“方”,想要通俗易懂的说完 HTTPS, 我有点“圆”.在讲什么是 HTTPS 之前,我们先来看个漫画.   △ 图片来源于阮一峰的网络日志 ...

  10. zabbix备份数据库

    #全库备份(数据量大很慢且会告警) mysqldump -uzabbix -pzabbix --opt zabbix | bzip2 > zabbix.sql.bz2 #备份配置表 mysqld ...