怎么做示爱的网站,城乡住房建设部网站,wordpress转域名收费吗,wordpress怎么开启下载收费功能注#xff1a;本文为 “ IEC104 协议” 相关合辑。 未整理去重#xff0c;如有内容异常请看原文。 图片清晰度限于引文原状。 电力 101/104 规约中遥测量类型转换
milletluo 于 2017-04-11 20:17:31 发布
引言
DL/T 634.5101-2002 与 DL/T 634.5104-2009 标准规定遥测量可…注本文为 “ IEC104 协议” 相关合辑。未整理去重如有内容异常请看原文。图片清晰度限于引文原状。电力 101/104 规约中遥测量类型转换milletluo 于 2017-04-11 20:17:31 发布引言DL/T 634.5101-2002 与 DL/T 634.5104-2009 标准规定遥测量可采用归一化值NVA、标度化值SVA及短浮点数R32-IEEE STD 754三种标识类型。本文基于共用体union数据类型给出字节序列与上述三种类型相互转换的规范化实现。方法定义 4 字节共用体各成员共享同一存储空间依时段承载不同数据类型。typedefunsignedcharBYTE;typedefunsignedlongDWORD;typedefunion{// 4 bytesboolbBool;// 1 byteBYTE byBuf[4];shortnInt;// 16-bit signedunsignedshortsnInt;// 16-bit unsignedlongl;// 32-bit signedDWORD dw;// 32-bit unsignedfloatf;// 32-bit IEEE 754}EXC_DataType;归一化值NVANVA 占 2 字节含 1 位符号位与 15 位数据位。正数为原码负数为补码数值区间[ − 1 , 1 − 2 − 15 ] [-1, 1-2^{-15}][−1,1−2−15]。位序D7D6D5D4D3D2D1D0高字节2 − 8 2^{-8}2−82 − 9 2^{-9}2−92 − 10 2^{-10}2−102 − 11 2^{-11}2−112 − 12 2^{-12}2−122 − 13 2^{-13}2−132 − 14 2^{-14}2−142 − 15 2^{-15}2−15低字节S2 − 1 2^{-1}2−12 − 2 2^{-2}2−22 − 3 2^{-3}2−32 − 4 2^{-4}2−42 − 5 2^{-5}2−52 − 6 2^{-6}2−62 − 7 2^{-7}2−7floatBytes2Float_NVA(constQByteArraybytes){EXC_DataType u;u.dw0;u.byBuf[0]bytes[0];// LSBu.byBuf[1]bytes[1];// MSBif(u.snInt0x8000){// 负数u.snInt^0xFFFF;u.snInt1;u.snInt|0x8000;// 恢复符号位}returnstatic_castfloat(static_castshort(u.snInt))/32768.0f;}标度化值SVASVA 占 2 字节格式与 NVA 相同但不经归一化直接以 16 位补码整数解释区间[ − 32768 , 32767 ] [-32768, 32767][−32768,32767]。floatBytes2Float_SVA(constQByteArraybytes){EXC_DataType u;u.dw0;u.byBuf[0]bytes[0];u.byBuf[1]bytes[1];returnstatic_castfloat(static_castshort(u.snInt));}短浮点数R32-IEEE STD 754短浮点数占 4 字节符合 IEEE 754 单精度格式位域符号 S1 bit指数 E8 bit尾数 F23 bit字节321–0C/C 中float类型即采用该格式可直接通过共用体完成字节序到浮点数的映射。floatBytes2Float_IEEE754(constQByteArraybytes){EXC_DataType u;u.dw0;u.byBuf[0]bytes[0];u.byBuf[1]bytes[1];u.byBuf[2]bytes[2];u.byBuf[3]bytes[3];returnu.f;}结语上述共用体方案在不依赖外部库的前提下实现了 DL/T 634.5101/104 规约中三种遥测量类型的精确转换可直接嵌入终端或主站软件。电力系统 104 规约帧报文解析黎陌 MLing 已于 2022-03-30 16:12:36 修改一、简介1.1 电力系统常见概念电力系统远动 (power system telemechanics)为电力系统调度服务的远距离监测、控制技术即管理和监控分布甚广的众多厂、所、站和设备、元器件的运行工况的一种技术手段。一般来说电力系统远动终端 RTU (Remote Terminal Unit) 具有 “四遥” 等功能。“四遥” 主要指的是遥测、遥控、遥调、遥信四种。其实从 “遥” 字面意思上我们也可以看到这注定是一个远程远距离的操控了。遥测远程测量。采集并传送运行参数包括各种电气量线路上的电压、电流、功率等量值 和负荷潮流等。遥控远程控制。接受并执行遥控命令主要是分合闸对远程的一些开关控制设备进行远程控制。遥信远程信号。采集并传送各种保护告警和开关量信息。遥调远程调节。接受并执行遥调命令对远程的控制量设备进行远程调试如调节发电机输出功率。ps:一遥遥信二遥遥信和遥测三遥遥信、遥测和遥控1.2 104 规约使用场景电力系统中常见的设备分为调度端控制站、主站、客户机, 服务端被控站、子站典型设备包含 TTU、RTU 等两者之间通过 104 规约来进行数据通信与传输。其传输层实际上使用的是 TCP 协议进行数据的传输。固定端口号为 2404。服务端不主动发起请求一直处于侦听状态当侦听到来自客户机的连接请求后则接受此请求由此建立一个 TCP 链接。控制站即调度系统作为客户机被控站即站端 RTU作为服务器。即实际的代码操作为主站按照: Socket ()-Connect () 的顺序进行RTU服务器端按: Socket ()-Bind ()-Listen ()-Accept () 的顺序进行。二、IEC104 协议结构传输接口 (用户到 TCP) 是一个面向流的接口它没有为 DLT 634.5101 中的 ASDU 定义任何启动或者停止机制。为了检出 ASDU 的启动和结束每个 APCI 包括下列的定界元素一个启动字符ASDU 的长度的规范以及控制域见图 4。可传送一个完整的 APDU (或者出于控制目的仅有 APCI 域见图 5)。APDU应用协议数据单元APCI应用协议控制单元ASDU应用服务数据单元帧报文的格式如下所示2.1. APCI2.1.1 启动字符默认固定为 68H意思就是只要是 IEC104 协议就是以 68H 开头2.1.2 APDU 的长度问题起始一个 apdu 的总长度不会超过 255 个字节在协议中的第二个字节会记录本 apdu 的长度但是这个记录的长度数是除开前面两个字节之外的长读数比如下面有个单点信息的 apdu 协议报文68 31 02 00 02 00 01 A4 14 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00其中第二个字节 31H 就是长度转为 10 进制为 49 个字节你可以数下后面肯定是 49 个字节如果不是就不是一个 apdu 协议2.1.3 控制域控制域主要是有两个功能报文的类型I 帧报文、U 帧报文或者 S 帧报文收发报文的个数104 规约帧报文分为三大类 ( I 帧、S 帧、U 帧):2.1.3.1 I 帧报文I 帧是信息帧作用是用于传输具体的通信数据的长度必大于 6 个字节。I 帧报文格式规定控制域 1 和控制域 3 的最低位为 0其他部分用于发送序列号和接收序列号的计数比如发送计数为 TxCounter 接收计数为 RxCounter控制域 1 TxCounter 0xFE控制域 2 (TxCounter 8) 0xFF控制域 3 RxCounter 0xFE控制域 4 (RxCounter 8) 0xFF2.1.3.2 S 帧报文S 帧是用于确认接收的 I 帧即当接收到 I 帧后需要返回一个 S 帧长度等于 6 个字节。S 帧报文格式规定控制域 1 的第 0 位为 1第 1 位为 0 和控制域第 0 位为 0S 帧报文的发送序列号都为 0S 帧只用于 APCI 中意思就是 S 帧的 apdu 报文只会有 apci 不会存在 asdu不能用于传输信息只用给对方信息的确认比如子站发送 8 条报文结束后主站就会给子站发送一个确认帧S 帧告诉子站我收到了 8 条报文。比如接收计数为 RxCounter控制域 1 0x01控制域 2 0x00控制域 3 RxCounter 0xFE控制域 4 (RxCounter 8) 0xFF2.1.3.3 U 帧报文U 帧是控制帧用于控制启动 / 停止子站进行数据传输或测试 TCP 链路连接长度等于 6 个字节。I 帧报文格式规定控制域 1 和控制域 3 的最低位为 0其他部分用于发送序列号和接收序列号的计数U 帧只用于控制并且只存在 APCI 中意思就是 U 帧的 apdu 报文只会有 apci 不会存在 asdu测试、停止和开启在一个 U 帧报文中只可能存在其中的一种(1) 如果用于【开启】则a. 激活第 2 位为 1 第 3 位 0如下表所示b. 激活确认第 2 为 0 第 3 位 1如下表所示U 帧启动主要是用于 主站连接子站时主站给子站发送一个 U 帧启动报文如下主站发送68 04 07 00 00 00子站回复68 04 0B 00 00 00(2) 如果用【停止】则a. 激活第 4 位为 1 第 5 位 0如下表所示b. 激活确认第 4 为 0 第 5 位 1如下表所示U 帧停止如下主站发送68 04 13 00 00 00子站回复68 04 23 00 00 00(3) 如果用【测试】则a. 激活第 6 位为 1 第 7 位 0如下表所示b. 激活确认第 6 为 0 第 7 位 1如下表所示比如子站发送 U 帧测试激活主站收到测试 U 帧就会回复一个 U 帧确认)子站发送68 04 43 00 00 00主站发送68 04 83 00 00 00Tips测试 U 帧一般用于子站判断主站是否还在连接子站主站判断子站是否还在运行保证数据传输的畅通性.2.2 ASDU2.2.1 类型标识类型标识占一个字节标识出后面的信息体的数据类型Tips一个 apdu 中信息体中的所有数据的类型都是一致的并且数据类型在类型标识这个位置标识类型的分类2.2.1.1 监视方向的用户类型标度化值类似 INT16归一值转换比较复杂参考网上的一个公式取值范围通常将大于 1 的数映射到 1 以内的空间通常就是用实际值除以额定值即得到归一化的小数只要双方约定好什么形式的转化无所谓短浮点值类似 float标度化值和归一化值占 2 个字节短浮点数占 4 个字节Tips一般为从站发送给主站2.2.1.2 控制方向的用户类型Tips一般为主站发送给从站2.2.1.3 监视方向的系统类型Tips当厂站从站短重新上电、初始化参数、重新分配缓存区等情况下厂站需要给主站发送该类型而主站收到该类型的 APDU 包主站一般会做一次总召唤从站发送给主站2.2.1.4 控制方向的系统类型Tips一般为主站发送给从站2.2.2 可变结构限定词SQ 0 信息对象的地址不连续意思就是每个信息对象都会一个对象地址SQ 1 信息对象的地址连续 只有第一个信息对象有地址其他对象的地址就是累加 1Tips总召唤时为了压缩信息传输时间 SQ1而在从站主动上传变化数据时因为地址不连续采用 SQ02.2.3 传送原因占 2 个字节T 0 未试验 T 1 试验 一般 T 0P/N 0 肯定 P/N 1 否定 正常为 P/N 0P/N 1 说明该报文无效源发地址用来记录来时哪个主站的响应数据一般写 0传送原因下面提到的上行[从站发送给主站 ]、下行[主站发送给从站 ]红色标记的是一些常用的其中【6,7,8,9,10】在一些遥控设定值时用的比较多例如从站发送一个 传送原因为 突发 的报文 则传送原因这个 2 个字节的情况如下突发 32.2.4 应用服务数据单元公共地址占 2 个字节规定高位字节 0x00站地址 1-254 为站地址255 为全局地址2.2.5 信息体2.2.5.1 连续信息传输型2.2.5.1.1 带绝对时标遥测时标有三种但是例外两种基本不用暂不去说明其中只有类型为【21】的【归一化测量值】不带品质描述词说明连续、带时标的 ASDU 数据部分结构如上表分为地址编号第一个信息体数据的地址只会出现一次重复信息体数据 品质描述词 地址 第一个地址按顺序 1 推算出来最后以绝对时标结束2.2.5.1.2 不带绝对时标遥测说明连续、不带时标的 ASDU 数据部分结构如上表分为地址编号第一个信息体数据的地址只会出现一次重复信息体数据 品质描述词 地址 第一个地址按顺序 1 推算出来2.2.5.1.3 带绝对时标遥信对于遥信状态量和品质描述词 合在了一个字节中2.2.5.1.4 不带绝对时标遥信对于遥信状态量和品质描述词 合在了一个字节中2.2.5.2 非连续信息传输型2.2.5.1.1 带绝对时标遥测说明 不连续、带时标的 ASDU 数据部分结构如上表分为每一个信息体数据都会有一个地址编号绝对时标结尾2.2.5.1.2 不带绝对时标遥测说明 不连续、带时标的 ASDU 数据部分结构如上表分为每一个信息体数据都会有一个地址编号2.2.5.1.3 带绝对时标遥信2.2.5.1.4 不带绝对时标遥信2.2.5.3 品质描述词分为 遥信品质描述词 和 遥测品质描述词:2.2.5.3.1 遥信品质描述词1. 单点信息品质描述词BL : 封锁标志BL0 未被封锁BL1 封锁SB: 取代标志SB0 未被取代SB 1 被取代NT刷新标志NT0 刷新成功NT1 刷新未成功IV有效标志IV 0 状态有效IV 1 状态无效RES 保留位SPI遥信状态值0 开1 合 【具体的值占一个 bit 位】1 确定状态的开2 确定状态的合3 不确定状态或中间装填【具体的值占 2 个 bit 为必然有 4 个值】2. 双点信息品质描述词BL : 封锁标志BL0 未被封锁BL1 封锁SB: 取代标志SB0 未被取代SB 1 被取代NT刷新标志NT0 刷新成功NT1 刷新未成功IV有效标志IV 0 状态有效IV 1 状态无效RES 保留位SPI遥信状态值0 不确定状态或中间装填1 确定状态的开2 确定状态的合3 不确定状态或中间装填【具体的值占 2 个 bit 为必然有 4 个值】2.2.5.3.2 遥测品质描述词BL : 封锁标志BL0 未被封锁BL1 封锁SB: 取代标志SB0 未被取代SB 1 被取代NT刷新标志NT0 刷新成功NT1 刷新未成功IV有效标志IV 0 状态有效IV 1 状态无效 (tips: 如何无效说明该遥测数据无效)RES 保留位OV溢出标志OV0 未溢出OV1 遥测超出量程发生溢出2.2.5.4 绝对时标IV IV 0 时标有效IV1 时标无效RES保留位2.2.5.5 遥控和设定值2.2.5.5.1 单点遥控单点遥控信息S/E 0 遥控执行命令S/E1 遥控选择命令QU 0 被控占内部确定遥控输出方式不有控制站选择1 短脉冲方式输出2 长脉冲方式输出3 持续脉冲方式输出其他值没有定义RES 保留位SCS 设置值 0 控开 1 控合2.2.5.5.2 双点遥控双点遥控信息S/E 0 遥控执行命令S/E1 遥控选择命令QU 0 被控占内部确定遥控输出方式不有控制站选择1 短脉冲方式输出2 长脉冲方式输出3 持续脉冲方式输出其他值没有定义DCS 0 无效控制1 控分2 控合3 无效控制Tips一个从站系统单点和双点只能存在一种2.2.5.5.3 设定值遥测除了类型编号 136 存在多点设定外其他都是单个信息体设置值QOS设定命令限定词S/E : 0 设定执行1 设定选择设定命令限定词 基本就是 0 因为其他并没有定义2.4 过程描述建立 tcp 连接主站给从站发送启动帧报文68 04 07 00 00 00从站收到启动帧给主站发送启动确认帧报文68 04 0B 00 00 00主站给从站发送总召唤报文68 0E 00 00 00 00 64 01 06 00 01 00 00 00 00 14从站收到主站的总召唤命令给主站发送总召唤确认报文68 0E 00 00 02 00 64 01 07 00 01 00 00 00 00 14从站上传遥信遥测电度等 I 帧信息帧发送完毕从站发送总召唤结束帧主站收到从站发送的结束帧会回复一个 S 帧的确认帧进入下一个周期其中如何数据有变化从站需要主动上报2.5 用到的参数解释其中 t3t1t2默认端口2404// 超时机制 int t1_calc; // 用于计数 int t1; // 发送或者测试 APDU 的超时 // 从站端启动 U 格式测试过程后等待 U 格式测试应答的超时时间 (超时处理断开连接) // 启动条件发送 U 测试帧 // 关闭条件接收 U 测试帧 int t2_calc; // 用于计数 int t2; // 无数据报文 t2t1 确认的超时 // 1) 以突发的传送原因向主站 (客户) 端上送了变化信息 // 2) 或以激活结束的传送原因向主站 (客户) 端上送了总召唤 / 电度召唤结束后 // 等待主站 (客户) 端回 S 格式的超时时间若超过此时间还没有收到就主动关闭 TCP 连接 // 处理完 I 格式帧后开始计时 (置 0)接收到 S 帧置 0 // 启动条件发送完所有 I 帧 // 关闭条件收到 S/I 帧 int t3_calc; // 用于计数 int t3; // 长期闲置 t3t1 状态下发送测试帧的超时 // T3: 当 RTU (服务器) 端和主站 (客户) 端之间没有实际的数据交换时任何一端启动 U 格式测试过程的最大间隔时间 (超时处理发送 U 测) // 启动条件建立连接 // 关闭条件断开连接 int K; // 发送序号和接收序号之间的最大差值 【发送方在发送 K 个 I 报文还未收到确认就应该关闭数据传送 默认值为 12从站使用】 int W; // 【接收方最迟收到 W 个 I 就必须要回复确认帧 默认值为 8主站使用这里不使用】 // W 不能够超过 K 的 2/3 QTimer*timer1; // 发送或者测试 APDU 的计时器 QTimer*timer2; // 无数据报文确认的计时器 QTimer*timer3; // 发送测试帧的计时器IEC104 规约调试数据库练兵场 于 2018-08-18 09:51:37 发布一、四遥信息体基地址范围“可设置 104 调度规约” 有 1997 年和 2002 年两个版本在流程上没有什么变化02 版只是在 97 版上扩展了遥测、遥信等信息体基体址区别如下二、一些报文字节数的设置此配置要根据主站来定有的主站可能设为 112我们要改与主站一致。三、以公共地址字节数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 帧。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遥信合0A00 00信息体地址第 10 号遥信01遥信分0B 00 00信息体地址第 11 号遥信02遥信合0C00 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遥测值 10A100品质描述89 15遥测值 158900品质描述发送→S 帧 68 04 01 00 08 00接收→结束总召唤帧 68启动符0E长度08 00发送序号02 00接收序号64类型标示01可变结构限定词0A00传输原因01 00公共地址00 00 00信息体地址14区分是总召唤还是分组召唤02 年修改后的规约中没有分组召唤发送→S 帧 04 01 00 0A 00第二步 : 发送对时报文 ( 通过设置 RTU 参数表中的 ” 对间间隔 ”, 单位是分钟 , 一般是 20 分钟 )发送→对时命令 68启动符14长度02 00发送序号0A00接收序号67类型标示01可变结构限定词06 00传输原因01 00公共地址00 00 00信息体地址01毫秒低位02毫秒高位03分钟04时81日与星期09月05年接收→对时确认 68启动符14长度0C00发送序号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信息体地址45QCC接收→召唤确认 (发送帧的镜像,除传送原因不同) 68启动符0E长度10 00发送序号06 00接收序号65类型标示01可变结构限定词07 00传输原因01 00公共地址00 00 00信息体地址45QCC发送→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可变结构限定词0A00传输原因01 00公共地址00 00 00信息体地址45QCC发送→S 帧 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长度1a00发送序号06 00接收序号1e类型标示单点遥信01可变结构限定词有 1 个 SOE03 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长度1c00发送序号06 00接收序号1f类型标示双点遥信01可变结构限定词有 1 个 SOE03 00传输原因表突发事件01 00公共地址即 RTU 地址0a00 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-0xb01482控合接收→遥控返校 68启动符0e长度0e 00发送序号06 00接收序号2e类型标示01可变结构限定词07 00传输原因01 00公共地址即 RTU 地址05 0b 00信息体地址遥控号0xb05-0xb01482控合发送→遥控执行 68启动符0e长度04 00发送序号18 00接收序号2e类型标示01可变结构限定词06 00传输原因01 00公共地址即 RTU 地址05 0b 00信息体地址遥控号0xb05-0xb01402控合接收→执行确认 68启动符0e长度12 00发送序号08 00接收序号2e类型标示01可变结构限定词07 00传输原因01 00公共地址即 RTU 地址05 0b 00信息体地址遥控号0xb05-0xb01402控合发送→遥控撤消 68启动符0e长度04 00发送序号18 00接收序号2e类型标示01可变结构限定词08 00传输原因01 00公共地址即 RTU 地址05 0b 00信息体地址遥控号0xb05-0xb01402控合接收→撤消确认 68启动符0e长度12 00发送序号08 00接收序号2e类型标示01可变结构限定词09 00传输原因01 00公共地址即 RTU 地址05 0b 00信息体地址遥控号0xb05-0xb01402控合补充说明:报文中的长度指的是除启动字符与长度字节的所有字节。注意长帧报文中的“发送序号”与“接收序号”具有抗报文丢失功能。常用的类型标识遥测 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 个字节时标的单点遥信04———带 7 个字节时标的双点遥信KWH 0f———不带时标的电能量每个电能量占 5 个字节10———带 3 个字节短时标的电能量每个电能量占 8 个字节25———带 7 个字节短时标的电能量每个电能量占 12 个字节其他2e———双点遥控2f———双点遥调64———召唤全数据65———召唤全电度67———时钟同步2、常用的传送原因列表1———周期、循环2———背景扫描3———突发4———初始化5———请求或被请求6———激活7———激活确认8———停止激活9———停止激活确认0a———激活结束14———响应总召唤详解 IEC104 规约【最详细版】CH_Qing 已于 2024-11-19 13:15:29 修改1. 基本概念IEC60870-5-104 是一种电力自动化系统中常用的通信协议使用 TCP/IP 协议作为底层通信协议用于监视和控制电力系统中的各种设备如变电站、发电机、开关等。1.1 控制站client\受控制站serverIEC104 协议是基于 TCP 的应用层协议。其架构为 client/Server 模式。 TCP Server 负责和实际的硬件控制数据采集命令执行等功能因此也叫受控制站/分站 IEC101 中还被叫做 Slave。TCP Client 负责远程控制获取 server 采集的数据配置 server 等因此也叫控制站IEC101 中还被叫做Master。1.2 链路层传输模式IEC104 支持两种传输模式平衡传输模式 和非平衡传输模式。非平衡传输模式在该模式下只有控制站client才能启动一次消息传输受控站server 只能响应控制站client的请求。在这种模式下控制站client通过依次轮询 所控制的 受控站server来获取对应的业务数据。该种模式下支持的传输服务类型如下表平衡传输模式当使用平衡模式传输时每个站client 和 server都可以启动消息传输。该种模式下支持的传输服务类型如下表服务描述SEND/CONFIRMSEND/NO REPLY这只能由具有多点对点配置中的广播地址的控制站启动在 IEC104 协议中平衡模式是最常用的。1.3 数据对象 编址Iec104 的数据对象 就是 信息对象本文第三章有非常详细的描述在此不必赘述。IEC104 定义了数据链路层的地址和应用层级的地址。链路地址COT 也叫传输原因长度可以是 0 1 2 byte 的长度后面会有详细描述。ASDU 地址 (通用地址COA)就是站点地址区分位于那个站点。1.4 基础的应用功能1.4.1数据采集iec104 协议中所有的数据都被缓存在受控站中Server因为数据产生的速度可能会比传输的速度更快。在非平衡传输的链路模式下受控站Server总是等待控制站发送的数据 polling 请求并给以回应。也就是常说的一问一答不问不答模式。在平衡传输的链路模式下受控站Server既可以回应 控制站 的各种请求 也可以当数据产生变化时或者周期性上报对象值时主动将对应的数据传输给控制站client)。现总结该模式下受控站Server的数据采集行为如下当数据对像的值产生改变时受控站Server主动上报其产生的数据当周期性上报数据时受控站Server主动上报其产生的数据回应控制站client) 的控制命令如总召唤等回应读请求1.4.2事件采集受控站Server的应用层级事件会自动发生。其在平衡传输模式和非平衡模式下采集方式和数据采集完全相同。1.4.3召唤Interrogation英文翻译叫询问官方翻译叫召唤。其实感觉询问更切近。当一个控制站初始化后或者控制站探测到相应信息有丢失控制站client)就需要发送召唤命令去请求受控站Server发送其 【所有】过程变量 的实际值。控制站client) 可以在仍何时候发送召唤命令以同步受控站Server中的所有过程变量的值。召唤命令分为总召唤和群组召唤现详细描述如下总召唤/general interrogation (GI)总召唤命令会请求受控站Server中所有群组的所有数据对象的值的更新给控制站。群组召唤在受控站Server端数据对象可以通过配置 COT 的值为 2036 来设定数据对象的召唤群组。20 代表总召唤2136 分别对应 INRO1INRO16分别对应 16 个召唤群组。控制站client) 在召唤时可以通过指定召唤群组来让该召唤组中的数据对象值更新。1.4.4时钟同步受控站Server和 控制站client) 必须保证时钟同步这样才能传输给控制站的数据和事件拥有保证精确的时标。系统初始化完成后控制站client) 应该应当发送一次一次时钟同步指令 此后通过发送时钟同步命令C_CS ACT来周期性地重新同步时钟。1.4.5命令传输遥控命令也被称作遥控是 控制站client) 用来改变受控站Server操作设备的状态的 API。一个命令可以由操作员发起也可以由控制台中的自动监控程序发起。命令遥控分为**直控命令单步命令*和*选控命令命令传输有两种类型直控命令Single command直控命令实际上就是去掉选择命令直接发执行命令。一般来说保护压板、保护复归为直控直控的一般流程如下: 主站下发执行命令→装置回执行确认报文。选控命令Select and execute和直控命令Single command相比该命令包含两个执行过程Select 阶段控制站发送一个该命令的 Select 的操作受控站会检查该命令该命令是否正确确认该命令是否已经有正确的执行操作。并把结论返回给控制站。execute 阶段Select 返回预期时执行命令。执行完成后 装置回执行确认报文。1.4.6累计量传输累计量是一个值在指定时间内的积分值。累计量的连续采集时间间隔和 Clock 是系统参数。有两种方法获取累计值的计数器信息Freeze-and-Read: 累计量采集Clear-and-Read: 增量信息的采集控制站client) 可以根据需要使用计数器召唤命令counter interrogation获取累计量计数器对象的值。累计量也可以被配成当计数器冻结操作counter freeze operations发生时主动上报其计数值。1.4.7协议和链路参数的更改当协议和链路参数的值发生更改时新值在提交后生效。1.4.8传输延迟的采集时间校正值由传输延迟和内部设备延迟之和确定传输延迟是可以通过参数化单独获取的值或者通过控制站启动一个时间校准进程来实现的。2. iec104 协议的帧结构iec104 基于 TCP/IP 传输是一个应用层协议 其帧结构被称为 APDUAPDU 一般由 APCI 和 ASDU 组成。2.1 APDU (Application Protocol Data Unit)APDU 被称为应用协议数据单元也就是一个 iec104 的协议帧的官方叫法。一个 APDU也就是协议帧可以只包含一个 APCI 或者 一个 APCI ASDU。APDUAPCI or APDUAPCI ASDUAPDU 的最大长度为 255byte。2.2 APCI (Application Protocol Control InformationAPCI应用控制信息类似于帧头由一个 1byte 的起始字节 0x68 1 byte ADPU 的长度 4 个 1 byte 控制位域CF组成。详细如下图所示。APCI 中第一个控制位域CF1的最低 2bit确定了帧的格式iec104 定义了 3 种格式的帧。其如下图所示I-format (information transfer format), last bit of CF0 是 0它用于控制 RTUserver slave 和 类 SCADAmaster client之间的信息传输其位可变长度。I-format 的数据帧APDU总是包含 ASDU。I-format 的控制位域表明了消息的方向其包含了两个 15bit 的序号数字每个方向上每个 APDU 的序号数字都会被有序的加 1。并且在 032767 之间循环。发送器在发送一个 iFrame 后会将发送端的发送序号自动加 1同时将该 iFrame 保存在发送缓冲区中 直到它接受到一个 ADPU该 APDU 中接收序号表明接收到发送端发送的对应发送序号以下的 iFrame这些 iFrame 会被从发送缓冲区移除。接受器接收到一个 iFrame 后会将接收端的接收序号自动加 1当接收序号到达设定的数量后会给发送端回应一个 sFrame 的 Ack。如果在一定的时间内接收端接收的 iFrame 未到达该设定的数量接收端也会发送一个 sFrame 的 Ack。如果接收端在一定的时间内都处于 idle 状态且存在没有回应的 iFrame, 接收端就会给其回应一个 sFrame 的 Ack。TCP 连接建立后发送/接收序号应当被置 0发送/接收序号由 CF 位域由 LSB 和 MSB 构成I-Format 的帧序号只有 15bit 如下图所示S-format (numbered supervisory functions), last bits of CF1 是 01一般作为一个/多个 iFrame 的 Ack 固定 APDU 长度S-format APDU 只有 APCI 没有 ASDU。在 iFrame 只是单向情况下 S-format 的 APDUs 必须被发送出去当相应的 iFrame 超时溢出或者到达 IFrame 接收的最大允许数量。U-format (unnumbered control functions), last bits of CF2 是 11被用于有序的控制功能 固定 APDU 长度U-format 的 APDU 只有一个 APCI没有 ASDU。其功能包括 TESTFR(测试帧), STOPDT (停止数据传输) or STARTDT (开启数据传输它们可以同时被激活。其 CF1 的二进制值如下图所示uFrame 用于 STARTDT开启数据传输STOPDT关闭数据传输和 TESTFR测试帧的激活确认机制。STARTDT 和 STOPDT 用于 clientmaster也称控制站点去控制 ServerSlave也称被控制站点去开启/关闭数据传输当连接建立时用户数据传输是没有被使能的默认是处于 STOPDT 状态的在这种状态下客户端通过这个连接是不能发送仍何用户数据的uFrame 是可以发送的。客户端必须发送一个**STARTDT 激活STARTDT activate指令去激活用户数据的传输服务器端将会回应一个STARTDT 确认STARTDT confirm**消息。如果没有收到该确认消息client 将会关闭此连接。只有 client 才可以发送 STARTDT 激活指令。当连接建立好后client 才可以向 server 发送 STARTDT 激活指令该指令只能被发送一次。激活后该连接才可以在仍何时间发送仍何消息 直到连接被 STOPDT 激活指令终止。client server 必须周期性地发送 TESTFR 帧去检测所有连接的连接状态和通信问题等.client server 必须周期性地发送**TESTFR 激活TESTFR activate指令对应的TESTFR 确认TESTFR confirm**帧必须被回应。在一定的时间内连接没有数据传输时client/server 就可以启动这个测试进程。2.3 ASDU 格式ASDU 包含两个主要的段数据单元识别符长度固定为 6Byte 和数据段。数据段由一个或者多个信息对象构成。数据单元识别符定义了数据的类型提供数据标识的寻址包含额外的信息如传输原因等。 每一个 ASDU 可以传输最大 127 个信息对象。 ASDU 的结构如下2.3.1 数据单元识别符数据单元识别符包含以下位域Type identification (TypeID, 1 byte)TypeID 的值0 不可用1127 用于标准的 IEC101 协议定义。128135 用于消息路由135255 为特殊使用。对于标准的 IEC101 协议有 58 个类型被定义其定义如下值的注意的是 TypeID 贯穿于整个 ASDU如果有多个信息对象被包含在该 ASDU 中这些信息对像就有相同的类型。SQ (Structure Qualifier) bitSQ 位域指定了信息对象信息元素如何被编址。SQ0 (一系列的信息对象):单个/多个信息元素的寻址如下图所示。信息元素被信息对象地址ASDU 可能由一个或者多个相同类型的信息对象组成这个信息对象的长度被变码成二进制并被定义在 Number of Objects 位域。SQ0 表示了一系列的信息对象这些信息对象都自己的地址数据单元识别符中用一个 7bit 的数据表示信息对象的个数。其如下图所示。因此它们可以装载多达 127 个信息对象。SQ1 (仅仅只有一个信息对象)编址一种信息对象的单个或者多个信息元素。一系列相同的信息对象例如相同格式的测量值被通过 information object address 位域寻址。信息对象的地址就是第一个信息元素的地址。信息元素根据不同的偏移被寻址。这个信息元素的长度被变码成二进制并被定义在 Number of Objects 位域。在这种情况该 ASDU 只有一个信息对象信息对象由一系列的信息元素组成。当 SQ1 时ASDU 只有一个信息对象 这个对象包含了一系列的信息元素。仅仅只有一个信息对象地址这个信息对象的地址就是第一个信息元素的地址。其如下图所示Number of objects/elements范围为 01270 表示没有包含信息对象1127 表示信息对象/信息元素的个数T (test) bit只用于测试不会控制处理器更改系统状态T0 (非测试模式), T1 (测试模式)P/N (positive/negative) bit积极/消极的激活确认。当使用控制命令时这个位域是有意义的。该位域通常表示控制命令是否被成功执行。P0 表示肯定确认P1 表示否定确认。 非控制命令这个位域总是置 0。Cause of transmission (COT)COT 用于控制通信种的消息路由该消息路由会把 ASDU 路由到正确的程序任务。控制方向的 ASDU 会相应的服务确认。COT 是一个 6 位码, 它被用于描述目标栈点的信息。0 没有被定义 147 用于标准定义。48-63 为特殊目的使用。Originator Address (ORG)这个是可选的它为控制栈点提供了一种明确识别自己的方式。当系统中只有一个控制栈点时是没有必要的。但多个控制栈点或者一些栈点是双栈模式是是有用的。在这种情况下始发方地址可用于将命令确认引导回特定的控制站而不是整个系统ASDU Address Field (Common Address of ASDU, COA),该地址称为公共地址是因为它与包含在 ASDU 内的所有对象相关联。其经常被解释为栈点地址。然而它可以被构造为形成一个站点/扇区地址其中各个站点由多个逻辑单元构成。COA 总是一个或者两个字节的长度。全局地址也叫做广播地址它会发送给所有的栈点。控制方向上的广播类 ASDU必须要要被回应回应是监控方向上的且必须带上自己的栈点地址。0 不被用 165534 被定义为站点地址。 65535 被定义为广播地址。当相同功能的应用被启动时使用广播地址。它仅限于以下 ASDUTypeID100 (询问命令): 在公共时间使用特定系统数据快照进行回复TypeID101 (反询问命令): 在公共时间冻结总计TypeID103 (时钟同步命令): 同步时钟到通用时间。TypeID105 (复位进程命令): 同时复位2.3.2 信息对象ASDU 在其结构中传输信息对象每一个信息对象都被信息对象地址IOA编址。IOA 用以识别站点内定义的数据。IEC104 中信息对象地址IOA的长度为 3byte。在控制方向上该地址为目标地址监控方向上该地址为源地址。通常情况下IOA的地址范围被限制到最大 355352 byte。在特殊情况下IOA的第三个字节仅用于结构化信息对象地址的情况以便在特定系统中定义明确的地址。如果 ASDU 的信息对象地址没有被用将被设置为0。在一个 ASDU 中被传输的所有信息对象都必须有相同的 ASDU Type。如果有多个不同类型的信息对象它们必须被装载进不同的 ASDU 中传输。在 IEC104 协议中每一个 ASDU 类型都有一对应的消息对象格式。例如信息对象有哪些信息元素构成等。下图展示了一个单点没有时间的信息对象ASDUtype1 这个对象有两种格式一个是 SQ0 和另一个是 SQ1。这个对象的合法 COT 是 2 (background scan), 3 (spontaneous), 5 (requested), 11, 12 (feedback), 20 G(interrogated by station interrogation)。一些信息对象包含一些元素例如下图显示了信息对象类型 10测量值归一化的时间标签 这个对象的 SQ 进为 0包含了 3 个信息元素 归一化值 NVA3byte质量描述符1byte和二进制的时间戳3bytes。其 COT 的合法值为 spontaneous (code 3) or requested (code 5。2.3.3 信息元素3. ASDU 类型描述对于每一种 ASDU 的类型IEC104 都定义了对应的信息对象类型。 下面我们将分类描述3.1 监视方向上的过程信息类型标识描述引用信息对象格式合法的 COT1单点信息M_SP_NA_1SIQ2,3,5,11,20,20G3双点信息M_DP_NA_1DIQ3,5,11,125步位置信息M_ST_NA_1VTI QDS2,3,5,11,12,20,20G732 比特串M_BO_NA_1BSI QDS2,3,5,11,12,20,20G9归一化测量值M_ME_NA_1NVA QDS2,3,5,11,12,20,20G11标量化测量值M_ME_NB_1SVA QDS2,3,5,11,12,20,20G13浮点型测量值M_ME_NC_1IEEE STD 754 QDS2,3,5,11,12,20,20G15累计值M_IT_NA_1BCR2,37,37G20带状态检出的成组单点信息M_PS_NA_1SCDQDS2,3,5,11,12,20,20G21不带品质描述的归一化测量值M_ME_ND_1NVA1,2,3,5,11,12,20,20G2229为将来的兼容定义保留30带时标 CP56Time2a 的单点信息M_SP_TB_1SIQ CP56Time2a3,5,11,1231带时标 CP56Time2a 的双点信息M_DP_TB_1DIQ CP56Time2a3,5,11,1232带时标 CP56Time2a 的步位置信息M_ST_TB_1VTI QDS CP56Time2a2,3,5,11,1233带时标 CP56Time2a 的 32 比特串M_BO_TB_1BSI QDSCP56Time2a3,534带时标 CP56Time2a 的归一化测量值M_ME_TD_1NVA QDSCP56Time2a3,535带时标 CP56Time2a 的标量化测量值M_ME_TE_1SVA QDSCP56Time2a3,536带时标 CP56Time2a 的浮点型测量值M_ME_TF_1IEEE STD 754 QDSCP56Time2a2,3,5,11,12,20,20G37带时标 CP56Time2a 的累计值M_IT_TB_1BCRCP56Time2a3,37,37G38带时标 CP56Time2a 的继电器保护装置事件M_EP_TD_1QDPCP16Time2aCP56Time2a339带时标 CP56Time2a 的继电器保护装置成组启动事件M_EP_TE_1SEP QDPCP16Time2aCP56Time2a340带时标 CP56Time2a 的继电器保护装置成组输出电路信息M_EP_TF_1OCI QDPCP16Time2aCP56Time2a3类型表示 115 中单数是不带时标的信息元素双数是带时标 CP24Time2a 的对应信息元素。其对象格式是给不带时标的信息元素格式的基础上CP24Time2a。引用的命名格式如下M_监视方向的信息元素_Nx不带时标_Tx 带时标_xAtype A: 有质量描述副的状态或归一化值_xBtype B: 有质量描述副的标量值_xCtype C: 有质量描述副的浮点值_xDtype D: 没有有质量描述副的归一化值信息对象格式描述了信息对象由那些信息元素组成。3.2 控制方向上的过程信息类型标识描述引用信息对象格式合法的 COT45单命令C_SC_NA_1SCO6,7,8,9,10,44,45,46,4746双命令C_DC_NA_1DCO6,7,8,9,10,44,45,46,4747步调节命令C_RC_NA_1RCO6,7,8,9,10,44,45,46,4748设点命令归一化值C_SE_NA_1NVA QOS6,7,8,9,10,44,45,46,4749设点命令标量值C_SE_NB_1SVA QOS6,7,8,9,10,44,45,46,4750设点命令短浮点值C_SE_NC_1IEEE STD 754 QOS6,7,8,9,10,44,45,46,475132 比特串C_BO_NA_1BSI6,7,8,9,10,44,45,46,475257为将来的兼容定义保留58带时标 CP56Time2a 的单命令C_SC_TA_1SCOCP56Time2a6,7,8,9,10,44,45,46,4759带时标 CP56Time2a 的双命令C_DC_TA_1DCOCP56Time2a6,7,8,9,10,44,45,46,4760带时标 CP56Time2a 的步调节命令C_RC_TA_1RCOCP56Time2a6,7,8,9,10,44,45,46,4761带时标 CP56Time2a 的设点命令归一化值C_SE_TA_1NVA QOSCP56Time2a6,7,8,9,10,44,45,46,4762带时标 CP56Time2a 的设点命令标量值C_SE_TB_1SVA QOSCP56Time2a6,7,8,9,10,44,45,46,4763带时标 CP56Time2a 的设点命令短浮点值C_SE_TC_1IEEE STD 754 QOSCP56Time2a6,7,8,9,10,44,45,46,4764带时标 CP56Time2a 的 32 比特串C_BO_TA_1BSICP56Time2a6,7,8,9,10,44,45,46,476569为将来的兼容定义保留引用的命名格式 C_ 控制方向的信息对象。注意控制方向的信息对象也叫命令必须要和对应类型的监视方向上的过程信息对象 产生 Map 才可以起作用否则命令无法起作用。3.3 监视方向上的系统信息类型标识描述引用信息对象格式合法的 COT70初始化结束M_EI_NA_1COI47199为将来的兼容定义保留3.4 控制方向上的系统信息类型标识描述引用信息对象格式合法的 COT100总召唤命令C_IC_NA_1QOI6,7,8,9,10,44,45,46,47101电能脉冲召唤命令C_CI_NA_1QCC6,7,8,9,10,44,45,46,47102读命令C_RD_NA_1无5103时钟同步命令C_CS_NA_1CP56Time2a3,6,7,44,45,46,47104(IEC 101) Test commandC_TS_NB_1FBP6,7,44,45,46,47105复位进程命令C_RP_NC_1QRP6,7,44,45,46,47107带时标 CP56Time2a 的测试命令C_TS_TA_1108109为将来的兼容定义保留3.5 控制方向上的参数类型标识描述引用信息对象格式合法的 COT110归一化测量值P_ME_NA_1NVA QPM6,7,9,10,20,20G,44,45,46,47111标量化测量值P_ME_NB_1SVA QPM6,7,20,20G,44,45,46,47112浮点测量值P_ME_NC_1IEEE STD 754 QPM6,7,20,20G,44,45,46,47113参数激活P_AC_NA_1QPA6,7,8,9,44,45,46,47114119为将来的兼容定义保留参数都是控制方向上的和监控方向的对象相比其值发生变化时不会上报只有总召唤时可以上报给数据的值。3.6 文件传输类型标识描述引用信息对象格式合法的 COT120文件已准备好F_FR_NA_1NOF LOF FRQ13121节点已准备好F_SR_NA_1NOF NOS LOF SRQ13122召唤目录选择文件召唤文件选择节F_SC_NA_1NOF NOS SCQ513123最后的节最后的段F_LS_NA_1NOF NOS LSQ CHS13124确认文件确认节F_AF_NA_1NOF NOS AFQ13125段F_SG_NA_1NOF NOS LOS segement13126目录F_DR_TA_1NOF LOF SOF CP56Time2a35127日至查寻-请求存档文件F_SC_NB_14. 信息元素详解信息元素是构成信息对象的基本单元就像 OOP 中的变量一样是构成 Object 的基础。我们给出一个 IEC104 的信息元素列表监视方向的过程信息元素类型描述长度byte使用的信息对象SIQ有质量描述符的单点信息11, 2, 30DIQ有质量描述符的双点信息13BSI二进制状态信息47, 8, 33, 51SCD状态更改探测420QDS质量描述符15, 6, 7, 8, 9, 10, 11, 12, 13, 14, 20, 32, 33, 34, 36VTI具有瞬态指示值15, 6, 32NVA归一化值29, 10, 21, 34, 48, 110SVA标度值211, 12, 49, 111IEEE STD 754短浮点数413, 14, 36, 50, 112BCR二进制计数器读数515, 16, 37保护元素类型描述长度byte使用的信息对象SEP保护设备的单个事件117, 38SPE保护设备启动事件118, 39OCI保护设备输出电路信息119, 40QDP保护设备事件的质量描述符118, 19, 39, 40命令元素类型描述长度byte使用的信息对象SCO单个命令145DCO双命令146RCO调节阶跃指令147时间元素类型描述长度byte使用的信息对象CP56Time2a七字节二进制时间74, 6, 8, 10, 12, 14, 16, 17, 18, 19, 31,32, 33, 34, 36, 37, 38, 39, 40, 103, 126CP24Time2a三字节二进制时间34, 5, 6, 8, 10, 12, 14, 16, 17, 18, 19, 31, 32, 33, 34, 36, 37, 38, 39, 40CP16Time2a二字节二进制时间217, 18, 19, 38, 39, 40, 106限定符元素类型描述长度byte使用的信息对象QOI讯问资格1100QCC反询问命令限定符1101QPM测量值参数限定符1110, 112QPA参数激活的限定符1111, 113QRP重置过程命令的限定符1105QOC命令的限定符145, 46, 47, 48, 49, 50QOS设定值命令的限定符148, 49, 50文件传输元素类型描述长度byte使用的信息对象FRQ文件就绪限定符1120SRQ节就绪限定符1121SCQ选择并调用限定符1122LSQ最后一节或段限定符1123AFQ确认文件或节限定符1124NOF文件名2120, 121, 122, 123, 124, 125, 126NOS段命名2121, 122, 123, 124, 125LOF文件/段的长度3120, 121LOS分段长度1125CHSChecksum1123SOF文件状态1126杂项元素类型描述长度byte使用的信息对象COI初始化原因170FBP固定测试位模式两个八位字节11044.1 SIQ 的数据格式bit7bit6bit5bit4bit3bit2bit1bit0IVNTSBBL000SPIIVVALID (0) / INVALID (1)。数据值是否有效当采集系统识别到异常的情况如更新设备丢失或无法运行将这个位域标为 1。该情况下信息对象的值不会被定义。这个位为 1 表示信息对象的值是不正确的不能被用。NT TOPICAL (0) / NOT TOPICAL (1)NT 为刷新标志位若最近的刷新成功则值就称为当前值若一个指定的时间间隔内刷新不成功或者其值不可用,值就称为非当前值。设备处于调试态或装置通讯中断都有可能造成非当前值。SBNOT SUBSTITUTED (0) / SUBSTITUTED (1)SB 为取代标志位当信息对象的值由值班员 (调度员) 输入即人工置数或者由当地自动原因模拟遥信所提供时即为被取代。如人工置数情况下。这意味着该值不是从正常测量中得出的。BLNOT BLOCKED (0) / BLOCKED (1)BL 为封锁标志位信息对象的值为传输而被封锁值保持封锁前被采集的状态。封锁和解锁可以由当地联锁机构或当地自动原因启动。SPI OFF (0) / ON (1)SPI 为遥信状态值。单点遥信0 分 1 合双点遥信1 开 2 合0 和 3 为中间状态。4.2 DIQ 的数据格式bit7bit6bit5bit4bit3bit2bit1~bit0IVNTSBBL00DPIDPI: Double Point InformationSPI 为遥信状态值。双点遥信1OFF 2ON0 和 3 为不确定中间状态。4.3 BSI 的数据格式32 位宽度的数据可以认为为 uint32。4.4 SCD 的数据格式**32 位宽度的数据可以认为为 uint32。**4.5 QDS 的数据格式bit7bit6bit5bit4bit3bit2bit1bit0IVNTSBBL000OVOV: NO OVERFLOW (0) / OVERFLOW (1)OV 为溢出标志位信息对象的值超出了预先定义值的范围 (主要适用模拟量值)。仅在遥测品质结构词中出现。4.6 VTI 的数据格式bit7bit6~bit0是否处于瞬变状态比他 6 为符号位取值范围为 -64…634.7 NVA 的数据格式16 位的标量值可以认为 int16转化为归一值需要除以 32768。归一化值NVA值的范围为[-11]。归一化即是将大于 1 的数映射到 1 以内的空间通常就是用实际值除以额定值即得到归一化的小数。具体表示法可以有 F13 或 F16 位的。占 2 个字节。在电力行业中通常是将数值归一到满码值。满码值是通信双方约定的一个值它会影响数值的误差。一般来说所内监控后台满码值为 4095 或 2047地调满码值为 4095中调满码值为 32767通常会要求 P、Q、I 按 1 倍额定值对应 15000 的码值的关系转换后上送母线电压、频率则按 1.2 倍额定值对应 15000 的码值的关系转换后上送。4.8 SVA 的数据格式16 位的标量值可以认为 int164.9 IEEE STD 754 的数据格式32 位可以认为 float324.10 BCR 的数据格式bit39bit38bit37bit36~bit32bit31bit0IV: 无效CA计数量被调整CY是否有进位顺序号 SQ计数器读数4.11 SEP 的数据格式bit7bit6bit5bit4bit3bit2bit1bit0预留SRD反向保护启动SIE接地电流保护启动SL3C 相保护启动SL2B 相保护启动SL1A 相保护启动GS总启动4.12 OCI 的数据格式bit7bit4bit3bit2bit1bit0预留CL3C 相保护命令输出至输出电路CL2B 相保护命令输出至输出电路CL1A 相保护命令输出至输出电路GC总命令输出至输出电路4.13 QDP 的数据格式bit7bit6bit5bit4bit3bit2bit1bit0IVNTSBBLEI0事件 03EIElapsed time invalid (EI)这与保护设备的事件一起使用。该位值位时表示时间间隔值elapsed time 无效这意味这这个时间间隔值elapsed time 应该不能被使用且需要忽略。4.14 SCO 的数据格式bit7bit6bit2bit1bit0S/E 为选择/执行位, 0 代表执行1 代表选择0 无另外的定义1短脉冲持续时间 (断路器),持续时间由被控站内的系统参数所确定2长脉冲持续时间,持续时间由被控站内的系统参数所确定3持续输出0SCS0:分/开1:合/关4.15 DCO 的数据格式bit7bit6bit2bit1~bit0S/E 为选择/执行位, 0 代表执行1 代表选择0 无另外的定义1短脉冲持续时间 (断路器),持续时间由被控站内的系统参数所确定2长脉冲持续时间,持续时间由被控站内的系统参数所确定3持续输出DCS:1 代表分/开2 代表合关0、3 代表不允许4.16 RCO 的数据格式bit7bit6bit2bit1~bit0同于 DCO同于 DCO步进命令1下一步为降档2 下一步升档其他不允许常用来进行调节分接头遥控不是所有厂家都支持此命令部分厂家将调节分接头遥控统一至单/双点遥控中。4.17 CP56Time2a/CP24Time2a/CP16Time2a 的数据格式字节序号描述byte0Milliseconds(D7–D0)byte1Milliseconds(D15–D8)byte2IV(D7) 预留 (D6) Minutes(D5–D0)byte3SU(D7) 预留 (D6-D5) Hours(D4–D0) SU 夏令时,0 标准时间, 1 夏令时byte4DayOfWeek(D7–D5) DayOfMonth(D4–D0)byte5预留 (D7–D4) Months(D3–D0)byte6预留 (D7) Year(D6–D0)4.18. QOI 的数据格式# TODO4.19 QCC 的数据格式# TODO4.22 QOC 的数据格式和 SCO DCO RCO 完全一致。4.23 QOS 的数据格式bit7bit6~bit0同于 DCO0: 默认1-63: 预留为标准定义64-127:特殊使用其他和文件传输相关的信息元素不再提及。本文参考文献如下1. 《Description and analysis of IEC 104 Protocol》2. 《运动设备及系统第 5-104 部分传输规约-采用标准传输协议集的 IEC 60870-5-101 网络访问》 国家电网 DL/T634.5104-2009 实施细则3. 《SSC600 IEC 60870-5-104 COMMUNICATION PROTOCOL MANUAL》4. 《Grid Automation REC615 and RER615 IEC 60870-5-101/104 Communication Protocol Manual》5. 《REX640 IEC 60870-5-104 Communication Protocol Manual》6. 《IEC-60870-5-104 Master Communication Protocol》IEC104 协议 | 帧格式 / 调试篇 1-CSDN博客https://blog.csdn.net/u013669912/article/details/144622175IEC104 协议 | 帧格式 / 调试篇 2-CSDN博客https://blog.csdn.net/u013669912/article/details/155851436via电力 101/104 规约中遥测量类型转换_104 遥测类型-CSDN 博客https://blog.csdn.net/lm409/article/details/70098126电力系统 104 规约帧报文解析 _104 报文解析-CSDN 博客https://blog.csdn.net/weixin_44462773/article/details/123569280详解 IEC104 规约【最详细版】_104 协议-CSDN 博客CH_Qing 已于 2024-11-19 13:15:29 修改https://blog.csdn.net/changqing1990/article/details/134327980-------104 规约详解https://blog.csdn.net/wojiuguowei/article/details/79413142IEC104 规约调试https://blog.csdn.net/weixin_40449300/article/details/81805782IEC104 规约详细解读 (一) 协议结构https://blog.csdn.net/lin819747263/article/details/112602951从零开始理解 IEC104 协议之一 ——104 规约帧格式https://www.jianshu.com/p/772582a9db11IEC104 协议与示例解析以及模拟工具的使用_iec104 协议详解-CSDN 博客https://blog.csdn.net/qq_53221728/article/details/143267474IEC104 规约一协议结构阐述https://www.cnblogs.com/yking/p/17620510.htmlIEC104 协议详解https://blog.csdn.net/chenyitao736866376/article/details/99120024IEC104 规约二协议报文解析 - 卷毛七号 - 博客园https://www.cnblogs.com/yking/p/17622619.html