大家好,又见面了,我是你们的朋友全栈君。
该规约在DF8900中规约号为104,在DF8002或DF1800系统中规约号一般为99,但也有个别现场因实际情况而不同.
97版或2002版IEC104在流程上没有什么变化,只是扩展了遥测遥信等信息体基地址..
目前无论是DF8900还是DF8002或DF1800系统都可以通过配置”iec104规约配置表.ini”文件来配置下来信息.
-
类别
配置范围
公共地址字节数
1或2
传输原因字节数
1或2
信息体地址字节数
2或3
类别 |
97版基地址 |
2002版基地址 |
遥信 |
1H——400H |
1H——4000H |
遥测 |
701H——900H |
4001H——5000H |
遥控 |
B01——B80 |
6001H——6100H |
设点 |
B81H——C00H |
6201H——6400H |
电度 |
C01H——C80H |
6401H——6600H |
下面以公共地址字节=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个字节)14(QOI,区分是总召唤还是分组召唤,如果是2002版基地址的没有分组召唤)
接收―>S帧:(记录接收到的长帧,双方都可以按频率发送,文本规定最多接收8帧I帧回答一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帧:(记录接收到的长帧,双方都可以按频率发送,文本规定最多接收8帧I帧回答一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个字节,从第0x701即0号遥测开始)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个字节) 14(QOI)
发送―>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个字节)45(QCC)
接收―>召唤确认(发送帧的镜像,除传送原因不同):
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个字节,0xc01,0号电度)00 00 00 00(电度值)00(描述信息)02 0C 00(信息体地址,3个字节,0xc01,1号电度)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个字节) 45(QCC)
发送―>S帧:
-
04 01 00 16 00
第四步:如果RTU有变化数据主动上送
主动上送变位遥信,类型标识为1或3
接收―>变位遥信:
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主动上送,类型标识为0x1e或0x1f
接收―>SOE:
68(启动符) 15(长度) 1a 00(发送序号,2个字节) 06 00(接收序号,2个字节) 1E(类型标识,单点)01(可变结构限定词,1个SOE) 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(可变结构限定词,1个SOE) 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= 4)02(控合)
发送―>遥控撤销:68(启动符) 0E(长度) 04 00(发送序号,2个字节) 18 00(接收序号,2个字节)2E(类型标识)01(可变结构限定词)08(传送原因,2个字节)01 00(公共地址,即RTU站址,2个字节) 05 0B 00(信息体地址,3个字节,遥控号=0xb05-0xb01= 4)02(控合)
接收―>撤销确认:68(启动符) 0E(长度) 12 00 (发送序号,2个字节)08 00(接收序号,2个字节)2E(类型标识)01(可变结构限定词) 09 00(传送原因,2个字节,,停止激活确认)01 00(公共地址,即RTU站址,2个字节)05 0B 00(信息体地址,3个字节,遥控号=0xb05-0xb01= 4)02(控合)
-
补充说明
遥测: 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―――带CP56Time2a(7个字节)时标的单点信息
0x1f―――带CP56Time2a(7个字节)时标的双点信息
KWH:0x0f―――不带时标的电能脉冲计数,每个值占5个字节
0x10―――带3个字节短时标的电能脉冲计数,每个值占8个字节
0x25―――带7个字节时标的电能脉冲计数,每个值占12个字节
其他:
0x2e―――双点遥控
0x2f―――双点遥调
0x64―――召唤全数据
0x65―――召唤全电度
0x67―――时钟同步
1 ---周期、循环
2 ---背景扫描
3 ---突发
4 ---初始化
5 ---请求或被请求
6 ---激活
7 ---激活确认
8 ---停止激活
9 ---停止激活确认
0x0a---激活结束
0x14---响应总召唤
-
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)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151351.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...