IEC104规约流程

IEC104规约流程该规约在DF8900中规约号为104,在DF8002或DF1800系统中规约号一般为99,但也有个别现场因实际情况而不同.97版或2002版IEC104在流程上没有什么变化,只是扩展了遥测遥信等信息体基地址..索引项目部分报文字节个数参数地址范围流程常用类型标识

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

该规约在DF8900中规约号为104,DF8002DF1800系统中规约号一般为99,但也有个别现场因实际情况而不同.

97版或2002IEC104在流程上没有什么变化,只是扩展了遥测遥信等信息体基地址..

索引项目

部分报文字节个数

参数地址范围

流程

常用类型标识

常用传送原因列表

CP56Time2a时标格式

目前无论是DF8900还是DF8002DF1800系统都可以通过配置”iec104规约配置表.ini”文件来配置下来信息.

部分报文字节个数

类别

配置范围

公共地址字节数

12

传输原因字节数

12

信息体地址字节数

23

参数地址范围

类别

97版基地址

2002版基地址

遥信

1H——400H

1H——4000H

遥测

701H——900H

4001H——5000H

遥控

B01——B80

6001H——6100H

设点

B81H——C00H

6201H——6400H

电度

C01H——C80H

6401H——6600H

  1. 流程

下面以公共地址字节=2/传送原因字节=2/信息体地址字节=3,97版基地址为例.

报文中字符均为16进制表示,报文中长度指除启动符与长度字节外的所有字节.

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

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

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

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

第二步:总召唤,召唤YC,YX(可变长I帧)初始化后定时发送总召唤( DF8900系统通过设置RTU参数表中的”全数据扫描间隔”单位是分钟.DF1800/DF8002系统在程序中写定,一般15分钟召唤一次)

发送―>总召唤 :

68(启动符)0E(长度) 00 00(发送序号,2个字节)00 00(接收序号,2个字节)64(类型标识)01(可变结构限定词)06 00(传送原因,2个字节)01 00(公共地址,即RTU站址,2个字节)0000 00(信息体地址,3个字节)14QOI,区分是总召唤还是分组召唤,如果是2002版基地址的没有分组召唤)

接收―>S:(记录接收到的长帧,双方都可以按频率发送,文本规定最多接收8I帧回答一S,但我们要求接收一帧I帧就应答一S)

68 04 01 00 02 00:

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

68(启动符)0E(长度)00 00(发送序号,2个字节) 00 00(接收序号,2个字节) 64 (类型标识)01(可变结构限定词) 07 00(传送原因,2个字节) 01 00(公共地址,即RTU站址,2个字节)00 00 00(信息体地址,3个字节) 14 QOI

发送―>S:(记录接收到的长帧,双方都可以按频率发送,文本规定最多接收8I帧回答一S,但我们要求接收一帧I帧就应答一S)

68 04 01 00 02 00

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

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

发送―>S:

68 04 01 00 04 00

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

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

发送―>S:

68 04 01 00 06 00

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

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

发送―>S:

68 04 01 00 08 00

接收―>结束总召唤帧:

68(启动符) 0E(长度)08 00 (发送序号,2个字节)02 00(接收序号,2个字节) 64 (类型标识)01(可变结构限定词)0A 00 (传送原因,2个字节)01 00 (公共地址,即RTU站址,2个字节)00 00 00(信息体地址,3个字节) 14QOI

发送―>S:

68 04 01 00 0A 00

第二步:发送对时报文(通过设置RTU参数表中的”对时间隔”单位是分钟,默认是20分钟左右.)

发送―>对时命令:

68(启动符)14(长度) 02 00(发送序号,2个字节)0A 00(接收序号,2个字节)67(类型标识)01(可变结构限定词)06 00(传送原因,2个字节)01 00(公共地址,即RTU站址,2个字节)0000 00(信息体地址,3个字节)01 (毫秒低位) 02(毫秒高位) 03(分钟) 04() 81 (日与星期) 09() 05()

接收―>对时确认:

68(启动符)14(长度) 0C 00(发送序号,2个字节)04 00(接收序号,2个字节)67(类型标识)01(可变结构限定词)07 00(传送原因,2个字节)01 00(公共地址,即RTU站址,2个字节)0000 00(信息体地址,3个字节)** (毫秒低位) **(毫秒高位) **(分钟) 04() 81 (日与星期) 09() 05()

发送―>S:

68 04 01 00 0E 00

第三步:电度总召唤(如果没有电度此步骤可以省略且该步骤可以在对时之前发送,DF8900系统通过设置RTU参数表中的”全数据扫描间隔”单位是分钟.DF1800/DF8002系统在程序中写定,一般15分钟召唤一次,如果不需要召唤电度一定在RTU参数表中电度个数设置为0)

发送―>召唤电度 :

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

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

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

发送―>S:

68 04 01 00 12 00

接收―>电度数据:68(启动符) 1A(长度) 12 00(发送序号,2个字节) 06 00(接收序号,2个字节) 0F (类型标识)02(可变结构限定词,2个电度值) 05 00 (传送原因,2个字节)01 00(公共地址,2个字节)01 0C 00 (信息体地址,3个字节,0xc010号电度)00 00 00 00(电度值)00(描述信息)02 0C 00(信息体地址,3个字节,0xc011号电度)00 00 00 00 (电度值)01(描述信息)

发送―>S:

68 04 01 00 14 00

接收―>结束总召唤帧:

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

发送―>S:

  1. 04 01 00 16 00

第四步:如果RTU有变化数据主动上送

主动上送变位遥信,类型标识为13

接收―>变位遥信:

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

发送―>S:

04 01 00 18 00

接收―>变位遥信:

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

发送―>S:

04 01 00 1a 00

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

接收―>SOE

68(启动符) 15(长度) 1a 00(发送序号,2个字节) 06 00接收序号,2个字节) 1E(类型标识,单点)01(可变结构限定词,1SOE 03 00 (传送原因,2个字节,表突发事件)01 00 (公共地址,2个字节)08 00 00(信息体地址,3个字节,8号遥信) 00(分)AD 39 (毫秒,2个字节)1C(分) 10(时)7A(日与星期) 0B(月) 05(年)

发送―>S:

04 01 00 1c 00

接收―>SOE

68(启动符) 15(长度)1c 00(发送序号,2个字节) 06 00(接收序号,2个字节)1F(类型标识,双点)01(可变结构限定词,1SOE 03 00(传送原因,2个字节,表突发事件)01 00 (公共地址,即RTU站址,2个字节)0A 00 00 (信息体地址,3个字节,10号遥信)01(分) 2F 40 (毫秒,2个字节)1C(分) 10 (时)7A(日与星期) 0B(月) 05(年)

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

发送―>U: 68 04 43 00 00 00

接收―>应答: 68 04 83 00 00 00

第六步:遥控

发送―>遥控预置:68(启动符) 0E(长度)** **(发送序号,2个字节) ** **(接收序号,2个字节) 2E (类型标识)01(可变结构限定词) 06 00(传送原因,2个字节) 01 00(公共地址,2个字节) 05 0B 00(信息体地址,3个字节,遥控号=0xb05-0xb01= 4 82(控合)

接收―>遥控反校:68(启动符) 0E(长度) 0E 00(发送序号,2个字节) 06 00(接收序号,2个字节)2E(类型标识)01(可变结构限定词) 07 00 (传送原因,2个字节)01 00(公共地址,2个字节) 05 0B 00(信息体地址,3个字节,遥控号=0xb05-0xb01= 4 82(控合)

发送―>遥控执行:68(启动符) 0E(长度) 04 00(发送序号,2个字节) 18 00(接收序号,2个字节)2E(类型标识)01(可变结构限定词)06 00(传送原因,2个字节)01 00(公共地址,即RTU站址,2个字节) 05 0B 00(信息体地址,3个字节,遥控号=0xb05-0xb01= 4 02(控合)

接收―>执行确认:68(启动符) 0E(长度) 12 00(发送序号,2个字节)08 00(接收序号,2个字节)2E(类型标识)01(可变结构限定词) 07 00(传送原因,2个字节)01 00(公共地址,即RTU站址,2个字节)05 0B 00(信息体地址,3个字节,遥控号=0xb05-0xb01= 402(控合)

发送―>遥控撤销:68(启动符) 0E(长度) 04 00(发送序号,2个字节) 18 00(接收序号,2个字节)2E(类型标识)01(可变结构限定词)08(传送原因,2个字节)01 00(公共地址,即RTU站址,2个字节) 05 0B 00(信息体地址,3个字节,遥控号=0xb05-0xb01= 402(控合)

接收―>撤销确认:68(启动符) 0E(长度) 12 00 (发送序号,2个字节)08 00(接收序号,2个字节)2E(类型标识)01(可变结构限定词) 09 00(传送原因,2个字节,,停止激活确认)01 00(公共地址,即RTU站址,2个字节)05 0B 00(信息体地址,3个字节,遥控号=0xb05-0xb01= 402(控合)

  1. 补充说明

1.常用类型标识:

遥测: 0x09―――带品质描述的测量值,每个遥测值占3个字节

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

0x0b―――不带时标的标度化值,每个遥测值占3个字节(目前仅df8900支持)

0x0c―――3个字节时标的不带时标的标度化值,每个遥测值占6个字节

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

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

0x15―――不带品质描述的测量值,每个遥测值占2个字节

遥信: 0x01―――不带时标的单点遥信,每个遥信占1个字节

0x03―――不带时标的双点遥信,每个遥信占1个字节

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

SOE: 0x02―――3个字节短时标的单点信息

0x04―――3个字节短时标的双点点信息

0x1e―――CP56Time2a7个字节)时标的单点信息

0x1f―――CP56Time2a7个字节)时标的双点信息

KWH0x0f―――不带时标的电能脉冲计数,每个值占5个字节

0x10―――3个字节短时标的电能脉冲计数,每个值占8个字节

0x25―――7个字节时标的电能脉冲计数,每个值占12个字节

其他:

0x2e―――双点遥控

0x2f―――双点遥调

0x64―――召唤全数据

0x65―――召唤全电度

0x67―――时钟同步

2.常用传送原因列表:

1 ---周期、循环

2 ---背景扫描

3 ---突发

4 ---初始化

5 ---请求或被请求

6 ---激活

7 ---激活确认

8 ---停止激活

9 ---停止激活确认

0x0a---激活结束

0x14---响应总召唤

3CP56Time2a时标格式

Miliseconds(D7—D0)

Miliseconds(D15—D8)

IV(D7)

RES1

Minutes(D5–D0)

SU(D7)

RES2

Hours(D4—D0)

DAY of WEEK

DAY ofMONTH(D4—D0)

RES3

Month(D3—D0)

RES4

Years(D6—D0)

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

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

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


相关推荐

  • sqlyog数据库同步_数据库同步到另一个数据库

    sqlyog数据库同步_数据库同步到另一个数据库

    2022年10月15日
    4
  • JAVA实现QQ登录、注册等功能

    JAVA实现QQ登录、注册等功能本文主要应用的技术有:GUI、JDBC、多线程实现的功能具体如下:1、登录功能2、注册功能3、是否隐藏密码的选择以及实现功能4、选择性别功能5、密码与确认密码功能6、登录页面实时展示当前的时间7、当登录时用户名与密码在数据库中没有相匹配的数据,则会跳转到注册页面上去。8、同样,注册完毕后,数据会运用JDBC将数据写入数据库中,然后跳转回登录页面。…

    2022年8月10日
    5
  • CMD命令:不是内部或者外部命令也不是可运行的程序或批处理文件

    CMD命令:不是内部或者外部命令也不是可运行的程序或批处理文件前言:相信有很多小伙伴都比较喜欢使用Command命令来快速的打开或运行程序,但是有些时候命令提示符会和我们开个小玩笑。今天我就教大家如何管教这个不听话的cmd!场景:看有些大神在命令提示符里输入两句命令就能执行一大串东西,本着学习的态度,先试试再说!没成想出现了:“不是内部或外部命令,也不是可运行的程序或批处理文件。”通过各种查各种找,终于…

    2022年5月8日
    391
  • HTML网页精灵图的使用

    HTML网页精灵图的使用精灵图的使用我们在制作网页的时候有些图片是在一起的,没有办法进行插入图片,这样精灵图的使用就帮助我们解决了这一问题。一下方式为例:图片:精灵图使用的代码图片:   具体为:.good{height:30px;margin-left:-5px;background:url(image/icon.gif)no-repeat;background-posit…

    2022年5月13日
    56
  • Vue学习之v-if和v-for指令「建议收藏」

    Vue学习之v-if和v-for指令「建议收藏」Vue学习之v-if和v-for指令

    2022年4月23日
    102
  • java 分苹果_数据结构Java版

    java 分苹果_数据结构Java版有600个苹果,10个盒子,要求把600个苹果分装到10个盒子里。如果有人来买苹果随便说出一个数,直接拿这些盒子组装一下就可以给他不用拆分盒子。请问这10个盒子应该分别装多少苹果?代码如下importjava.util.Scanner;publicclassTest{ publicstaticvoidmain(String[]args){  intbox[]=

    2022年10月12日
    2

发表回复

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

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