104规约总结「建议收藏」

104规约总结「建议收藏」一.概念遥测:远程测量。采集并传送运行参数,包括各种电气量(线路上的电压、电流、功率等量值)和负荷潮流等。遥控:远程控制。接受并执行遥控命令,主要是分合闸,对远程的一些开关控制设备进行远程控制。遥信:远程信号。采集并传送各种保护告警和开关量信息。遥调:远程调节。接受并执行遥调命令,对远程的控制量设备进行远程调试,如调节发电机输出功率。二.基地址对比类别1997版基地址2002版基地址遥信1H—-400H1H—-4000H遥测701H–

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

一. 概念

  • 遥测:远程测量。采集并传送运行参数,包括各种电气量(线路上的电压、 电流、功率等量值) 和负荷潮流等。
  • 遥控:远程控制。接受并执行遥控命令,主要是分合闸,对远程的一些开关控制设备进行远程控制。
  • 遥信:远程信号。采集并传送各种保护告警和开关量信息。
  • 遥调:远程调节。接受并执行遥调命令,对远程的控制量设备进行远程调试,如调节发电机输出功率。

二.基地址对比

类别 1997版基地址 2002版基地址
遥信 1H—-400H 1H—-4000H
遥测 701H—-900H 4001H—-5000H
遥控 B01H—-B80H 6001H—-6100H
设点 B81H—-C00H 6201H—-6400H
电度 C01H—-C80H 6401H—-6600H

三.区分

从报文中的第七个字节区分类型 如0D –》13 (测量值,短浮点数)

  • U格式:不计数的控制功能类型,用于传输控制命令的报文。
    在这里插入图片描述
  • I格式:信息传输格式类型,用于传输含有信息体的报文和确认对方I格式的信息报文。
    在这里插入图片描述
  • S格式:计数的监视功能类型,用于传输对站端的确认的报文。
    在这里插入图片描述

四.总召唤和电度召唤

  • 总召唤:启动时就要发总召,并间隔一定的时间发总召,不然遥信的数据就不会推送过来;
  • 电度召唤(累计值):需间隔一定时间内发电度召唤,将收到电量数据处理,转换为电度。

五.通道

在之前我做过项目中,是根据约定的注册码来区分通道,必须建立连接之后,从站先发注册码(ascII格式),主站再发起始帧,没有接到注册码,不回复报文。

六.常用的类型标识

数据类型 值(16进制) 含义描述
遥信 01 不带时标的单点遥信,每个遥信占1个字节
03 不带时标的双点遥信,每个遥信占1个字节
14 具有状态变位检出的成组单点遥信,每个字节8个遥信
遥测 09 带品质描述的测量值,每个遥测值占3个字节
0A 带3个字节时标的且具有品质描述的测量值,每个遥测值占6个字节
0B 不带时标的标准化值,每个遥测值占3个字节
0C 带3个时标的标准化值,每个遥测值占6个字节
0D 带品质描述的浮点值,每个遥测值占5个字节
0E 带3个字节时标且具有品质描述的浮点值,每个遥测值占8个字节
15 不带品质描述的遥测值,每个遥测值占1个字节
遥脉 0F 不带时标的电能量,每个电能量占5个字节
10 带3个字节短时标的电能量,每个电能量占8个字节
25 带7个字节短时标的电能量,每个电能量占12个字节
SOE 02 带3个字节短时标的单点遥信
04 带3个字节短时标的双点遥信
1E 带7个字节短时标的单点遥信
1F 带7个字节短时标的双点遥信
其他 2E 双点遥控
2F 双点遥调
64 召唤全数据
65 召唤全电度
67 时钟同步

七.传送原因(COT):2字节,低字节在前,高字节在后。

值(16进制) 传送原因描述
01 00 周期、循环
02 00 双点遥调
03 00 突变
04 00 初始化
05 00 请求或被请求
06 00 激活
07 00 激活确认
08 00 停止激活
09 00 停止激活确认
0A 00 激活结束
14 00 响应总召唤

八.过程描述

以公共地址字节数=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有变化数据主动上送,主动上送变位遥信,类型标识为1或3
接收→变位遥信 :
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,类型标识为0x1e或0x1f
接收→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(控合)

九.超时时间

  • t0:连接建立的超时 =30s
    规定了主站端和子站RTU端建立一次TCP连接的最大允许时间

  • t1:发送或测试APDU的超时 =15s
    规定发送方发送一个I格式报文或U格式报文后,必须在t1的时间内得到接收方的认可

  • t2:无数据报文t2<t1时确认的超时 =10s
    规定接收方在接收到I格式报文后,若经过t2时间未再收到新的I格式报文,必须向接收方发送S格式帧对已经接收到的I格式帧进行认可

  • t3:长期空闲t3>t1状态下发送测试帧的超时 =20s
    规定调度端或子站RTU端每接收一帧I帧、S帧或者U帧将重新触发计时器t3,若在t3内未接收到任何报文,将向对方发送测试链路帧TESTFR

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

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

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


相关推荐

  • chmod 命令——chmod 755与 chmod 4755区别

    chmod 命令——chmod 755与 chmod 4755区别755和4755的区别chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。一般是三个数字:第一个数字表示文件所有者的权限第二个数字表示与文件所有者同属一个用户组的其他用户的权限第三个数字表示其它用户…

    2022年7月16日
    15
  • executeupdate mysql_使用Mysql中的executeUpdate在SQL语句中创建表

    executeupdate mysql_使用Mysql中的executeUpdate在SQL语句中创建表我有以下内容doGet():protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{MysqlDataSourceds=newMysqlConnectionPoolDataSource();ds.setServer…

    2022年10月20日
    2
  • 如何利用Python和win32编程避免重复性体力劳动(一)——开始、FindWindow和FindWindowEx

    如何利用Python和win32编程避免重复性体力劳动(一)——开始、FindWindow和FindWindowEx本系列文章假设各位看官对python是足够熟悉的,但却不太了解win32编程。嘛。。其实我也没学过win32编程,脸请各位看官随意招呼。需求:最近因为做课题,要把800个FaceGen软件生成的三维面孔保存成图片,以后不排除每一张面孔还要生成某个特质上连续变化的图片。FaceGen以抽取面孔的特征向量来构建面孔,所以保存的文件相当精简,只需要300字节就能无损保存面孔的全部信息。一般的三维

    2022年5月31日
    70
  • idea修改文字大小_为什么idea设置不了字体大小

    idea修改文字大小_为什么idea设置不了字体大小idea设置修改字体大小与样式详细步骤【备注】:不同idea版本设置方法类似,找到对应的面板设置即可第一步:点击工具栏最上方的File选项第二步:选择Setting选项第三步:选择Appearance选项,选择size设置自己喜欢的大小即可,我设置为14第四步:选择Editor选项中的font面板,同样找到size,设置对应的大小,即可设置代码主窗口的字体大小ide…

    2022年8月29日
    3
  • js动画requestAnimationFrame详解「建议收藏」

    js动画requestAnimationFrame详解「建议收藏」看这篇文章之前我希望你会用setTimeout做简单的动画,也就是利用递归来代替setInterval做动画。requestAnimationFrame()他的作用就是代替定时器做更加流畅高性能的动画,做可以匹配设备刷新率的动画,他解决了定时器做动画时间间隔不稳定的问题(也就是解决定时器做动画不流畅的问题)。他的用法与setTimeout差不多。与setTimeout一样的是都会返回一个唯一标识,setTimeout可以通过clearTImeout()关闭定时器。那么requestAnimatio.

    2022年8月31日
    4
  • v4l2驱动框架(Windows驱动开发技术详解)

    环境:OS:Ubuntu16.04(Win10hypev)KernelVersion:3.13.0-24-generic这里终极目标是注册一个/dev/video0的设备,再通过一个应用程序去读取它:#include&lt;linux/module.h&gt;#include&lt;linux/videodev2.h&gt;#include&lt;media/v…

    2022年4月12日
    197

发表回复

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

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