IEC104规约流程
大家好,又见面了,我是你们的朋友全栈君。
该规约在DF8900中规约号为104,在DF8002或DF1800系统中规约号一般为99,但也有个别现场因实际情况而不同.
97版或2002版IEC104在流程上没有什么变化,只是扩展了遥测遥信等信息体基地址..
索引项目 |
---|
部分报文字节个数 |
参数地址范围 |
流程 |
常用类型标识 |
常用传送原因列表 |
CP56Time2a时标格式 |
目前无论是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(控合)
- 补充说明
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―――带CP56Time2a(7个字节)时标的单点信息
0x1f―――带CP56Time2a(7个字节)时标的双点信息
KWH:0x0f―――不带时标的电能脉冲计数,每个值占5个字节
0x10―――带3个字节短时标的电能脉冲计数,每个值占8个字节
0x25―――带7个字节时标的电能脉冲计数,每个值占12个字节
其他:
0x2e―――双点遥控
0x2f―――双点遥调
0x64―――召唤全数据
0x65―――召唤全电度
0x67―――时钟同步
2.常用传送原因列表:
1 ---周期、循环
2 ---背景扫描
3 ---突发
4 ---初始化
5 ---请求或被请求
6 ---激活
7 ---激活确认
8 ---停止激活
9 ---停止激活确认
0x0a---激活结束
0x14---响应总召唤
3.CP56Time2a时标格式
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.cn/151351.html原文链接:https://javaforall.cn
相关文章
- springboot的启动流程及原理_精馏的原理及流程
- Vue3源码09: 组件的渲染和更新流程
- c语言socket编程流程,C语言socket编程简单步骤「建议收藏」
- activity 工作流程引擎-如何画流程图
- GB28181中SSRC的使用和语音广播流程浅析
- BLE安全之配对流程剖析(3)
- React源码分析7-state计算流程和优先级6
- 一步一腳印的 iOS App 上架和更新流程
- app上架需要准备什么以及上架流程
- 【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量
- Hbuilder用自有证书打包 ios App上架AppStore流程
- 【2023新书】可信机器学习实战:透明和公平的AI流程
- 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmContinueOptimizati() 函数分析 )
- Git提交代码的流程——新手适用详解程序员
- MYSQL复制原理及其流程详解数据库
- 详解手机注册验证码操作思路与流程编程语言
- 前台 Linux:高效管理企业信息流程的必备工具(前台linux)
- 关于SQL存储过程入门基础(流程控制)