104远动规约学习笔记
- 格式:docx
- 大小:15.59 KB
- 文档页数:3
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- IEC-60870-5-104:应用模型是:物理层,链路层,网络层,传输层,应用层物理层保证数据的正确送达,保证如何避免冲突。
(物理层利用如 RS232上利用全双工)链路层负责具体对那个slave的通讯,对于成功与否,是否重传由链路层控制(RS485 2线利用禁止链路层确认)应用层负责具体的一些应用,如问全数据还是单点数据还是类数据等(网络利用CSMA/CD等保证避免冲突的发生)--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 基本定义:端口号2404,站端为Server 控端为Client,平衡式传输,2Byte站地址,2Byte传送原因,3Byte信息地址。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 注:APDU 应用规约数据单元(整个数据)= APCI 应用规约控制信息(固定6个字节)+ ASDU 应用服务数据单元(长度可变)--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- APDU长度(系统-特定参数,指定每个系统APDU的最大长度)APDU的最大长度域为253(缺省)。
104远动规约学习笔记使用国产的PMA规约软件来模拟104的主站,与西门子SICAM eRTU 装置进行104通讯测试。
在过程中,发现当双方静止一段时间后,PMA软件(主站)发S帧,但立刻报“接收失败,重新链路!:10053”错误。
这个问题困扰了我一段时间,不知道这是哪一边出的问题。
后来,我用秒表测量了PMA软件收到从站最后一帧I帧至发出S帧的间隔时间,均为15秒多一点。
查阅104规约文本后,我理解规约的原意是这样的:对于最后一次总召命令后从站回应的长帧报文(I帧),主站需发送S帧来确认,何时发送是受两个参数触发的:t2和w,两者应是“或”的关系,即任何一个达到就发送S帧确认。
在这之前的召唤过程中,主站是通过每一次的总召唤命令,对上一次的从站答复进行确认的(接收序号)。
但最后一次总召命令后,主站只能通过t2超时发S帧来确认(此时从站回应的I帧数量小于w)。
如果这一步成功,且双方仍然保持静止(即没有I帧报文发送),后面又将以t3为循环间隔时间,双方通过发测试帧(U帧)来维持链路,直至双方有新的I帧报文进行发送。
根据测到的间隔时间,我认为PMA软件设置的t2是15秒(或实际效果是15秒),而没有设为规约推荐的10秒,造成主站的t2>=从站的t1(要求t2小于t1),从站在收到S帧之前因t1超时而关闭socket。
后来联系该软件的作者,修改软件中相应的设置(PMA软件版本也由 2.85调为2.87),再试时问题已消除。
超时的定义参数默认值备注选择值t0 30s 连接建立的超时t1 15s 发送或测试APDU的超时t2 10s 无数据报文t2<t1时确认的超时t3 20s 长期空闲t3 >t1状态下发送测试帧的超时所有超时值的最大范围:1 到255s,精确到1s。
1、经过路由器的104规约调试1)远动机需要修改的地方:A、sysinit.1/usr/ucb/ifconfig en3 node3 netmask 255.255.255.240;掩码/usr/ucb/route add 10.21.170.110.21.178.46;主站IP及网关B、hosts配置相应的网卡的IP地址,按照主站要求设置C、ser.cfg修改: 4 TCP SERVER 964 10.21.170.1 ;IP address of remote server主站(注意,切记;前的空格少不得)D、先察看程序上送遥测帧是上送的带时标的(15)还是不带时标的(09),看调度需要那个类型。
不然改动src/rtu/104/q104.c1239 RTU_AI_CHG_104(1)1575 UCT=1修改后编译2、不需要经过路由器的104规约调试只需要修改ser.cfg和hosts里面的内容,sysinit.1里面内容不需要修改3、104规约报文解析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个字节其他:0x2d―――单点遥控0x2e―――双点遥控0x2f―――双点遥调0x64―――召唤全数据0x65―――召唤全电度0x67―――时钟同步2)常用传送原因列表:1 ---周期、循环2 ---背景扫描3 ---突发4 ---初始化5 ---请求或被请求6 ---激活7 ---激活确认8 ---停止激活9 ---停止激活确认0x0a ---激活结束0x14 ---响应总召唤3)流程下面以公共地址字节=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个字节)00 00 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个字节)00 00 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个字节)00 00 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个字节)00 00 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帧:6804 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 00SOE主动上送,类型标识为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(传送原因,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 0B00(信息体地址,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(控合)例子:遥测实体报文解析68 起始符15 报文长度,后面报文总数为21帧00 00 00 001E不带品质描述的测量值,每个遥测值占2个字节01 遥测个数03 00 传送原因,主动上送01 00 主站地址63 00 00 遥测地址00 1D 遥测数据6D 05 11 15 08 07 时间遥信实体报文解析680E00 00 00 0001 单点遥信01 个数03 0001 00AA 04 00 地址119400信号复归附:一段遥测遥控遥信报文<<=68 04 01 00 02 00=>>68 14 00 00 00 00 15 02 03 00 01 00 0F 40 00 94 52 10 40 00 CB 55<<=68 0E 24 00 02 00 2E 01 06 00 01 00 77 60 00 82YKSEL-RTU: 33CTRL04D2D1 CHNo=4 bON=1Get MSG_LON_CTRL_SEL_OK=>>68 0E 00 00 00 00 2E 01 07 00 01 00 77 60 00 82<<=68 04 01 00 02 00<<=68 0E 26 00 02 00 2E 01 06 00 01 00 77 60 00 02YKRUN-RTU: 33CTRL04D2D1 CHNo=4 bON=1=>>68 0E 00 00 00 00 2E 01 07 00 01 00 77 60 00 02Get MSG_LON_27/28(or 37/38)Get MSG_LON_27/28(or 37/38)Get MSG_LON_YX_CHANGE Index:450 Val:1=>>68 0E 00 00 00 00 01 01 03 00 01 00 C3 01 00 01=>>68 15 00 00 00 00 1E 01 03 00 01 00 C3 01 00 01 B3 BA 21 09 18 08 07 Get MSG_LON_YX_CHANGE Index:3053 Val:0=>>68 0E 00 00 00 00 01 01 03 00 01 00 EE 0B 00 00=>>68 15 00 00 00 00 1E 01 03 00 01 00 EE 0B 00 00 D1 BA 21 09 18 08 07 Get MSG_LON_YX_CHANGE Index:444 Val:1=>>68 0E 00 00 00 00 01 01 03 00 01 00 BD 01 00 01=>>68 15 00 00 00 00 1E 01 03 00 01 00 BD 01 00 01 EF BA 21 09 18 08 07 <<=68 04 01 00 02 00。
电力系统104规约学习小记104相关数据地址范围:在这里需要注意的是,遥测,遥信,遥控有的是从1开始的,有的是冲0开始的。
一、固定长度报文:1、格式:启动字符长度控制域一控制域二控制域三控制域四启动字符:68长度:该字节之后的报文的字节数目。
短帧都为042、常见帧:启动链路: 68 04 07 00 00 00启动链路确认:68 04 0B 00 00 00测试帧: 68 04 43 00 00 00测试确认: 68 04 83 00 00 00监视帧: 68 04 01 00 00 00 U 八位位组3 八位位组4八位位组2最高位代表是否连续,1代表连续,后面代表本次传送信息个数。
传送原因控制方向:<6> : = 激活<8> : = 停止激活在监视方向:<7> : = 激活确认<9> : = 停止激活确认<10> : = 激活终止<44>: = 未知的类型标识<45>: = 未知的传送原因<46>: = 未知的ASDU公共地址<47>: = 未知的信息对象地址上送报文类型标识:(位置见后面举例报文中类型)0x01:单点遥信0x09:归一化遥测(整型)0x0D:浮点型遥测0x03:双点遥信0x1e:SOE(事件记录)0x67:对时0x25:电度0x64:总召0x2d:单点遥控报文举例:1.主站发送请求链路,握手68 04 07 00 00 00起始字符:68H应用规约数据单元长度(APDU):04H(4个字节,即07 00 00 00)控制域第一个八位组:07H --> 00000111由前两位11可知是U格式帧;由第三四位01可知是链路连接请求帧(TESTFR:CON=0,TESTFR:ACT=0,STOPDT:CON=0,STOPDT:ACT=0,STARTDT:CON=0,STARTDT:ACT=1) 控制域后三个八位组:00H 00H00H(无意义)2.子站确认68 04 0B 00 00 00起始字符:68H应用规约数据单元长度(APDU):04H(4个字节,即0B 00 00 00)控制域第一个八位组:0BH --> 00001011由前两位11可知是U格式帧;由第三四位10可知是链路连接确认帧(TESTFR:CON=0,TESTFR:ACT=0,STOPDT:CON=0,STOPDT:ACT=0,STARTDT:CON=1,ST ARTDT:ACT=0)控制域后三个八位组:00H 00H00H(无意义)3.总召唤命令68 0E 00 00 00 00 64 01 06 00 01 00 00 00 00 14起始字符:68H应用规约数据单元长度(APDU):0EH(14个字节,即00 00 00 00 64 01 06 00 01 00 00 00 00 14)控制域第一个八位组:00H --> 00000000由第一位0可知是I格式帧;控制域第二个八位组:00H --> 与第一个八位组的第2-8位组成0000 0000(高位)0000 000(低位)所以,发送序号N(S)=0(注:I格式帧计数)控制域第三四八位组:00H 00H --> 0000 0000(第四个八位组,高位)0000 000(第三个八位组的第2-8位,低位)所以,接收序号N(R)=0(注:I格式帧计数)类型标识:64H(CON<100>:=总召唤命令)可变结构限定词:01H(SQ=0,number=1)传送原因:06H 00H(Cause=6,激活)注:用两个八位组表示传送原因,且低位在前、高位在后,即Cause=0006H,本文中的所有报文顺序都是由高至低。
104规约(2002版)报文解析1、 初始化● 主站发: 68 04 07 00 00 00目的:给子站发请求链路状态命令。
子站回答:68 04 0B 00 00 00目的:子站向主站响应链路状态。
子站回答:68 0E 00 00 00 00 46 01 04 00 01 00 00 00 00 00 目的:初始化结束。
2、 对时 时钟同步命令一般不在104中应用,因为网络路由的延时永远不定(随机),导致对时不准。
● 主站发:68 14 2C 00 6A 00 67 01 06 00 01 00 00 00 00 E5 3F 00 0F 09 0C 04目的:向子站发送对时报文。
357 毫秒 16 秒 0分 15小时 9日 12月 4年3、 总召唤● 主站发:68 0E 00 00 06 00 64 01 06 00 01 00 00 00 00 14目的:向地址为01的子站发总召唤命令。
子站回答:68 0E 08 00 02 00 64 01 07 00 01 00 00 00 00 14目的:子站响应总召唤。
子站回答:68 2D 0A 00 02 00 01 A0 14 00 01 00 01 00 00 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 目的:子站向主站以ASDU1方式连续上送全遥信,此为第一帧。
报文解析:子站回答:68 2D 0C 00 02 00 01 A0 14 00 01 00 21 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 目的:子站继续上送全遥信的下一帧。
…………子站回答:68 2D 20 00 02 00 01 A0 14 00 01 00 61 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 目的:子站向主站上送全遥信的最后一帧。
104规约遥测数值转换(实用版)目录1.104 规约的概述2.遥测数值转换的定义和目的3.104 规约在遥测数值转换中的应用4.104 规约的优势和局限性5.我国在遥测数值转换领域的发展正文【104 规约的概述】104 规约,全称为 DL/T 634.5104-2002 远动协议实施细则,是我国电力系统自动化领域中的一项重要标准。
它主要应用于电力系统中的遥测、遥信、遥控和遥调等远动信号的传输和处理,以实现对电力设备的远程监控和管理。
【遥测数值转换的定义和目的】遥测数值转换,是指将遥测信号中的模拟量或数字量转换为适合计算机处理和存储的数值形式。
其主要目的是为了实现对遥测信号的数字化处理,以便更好地满足电力系统自动化和信息化的需求。
【104 规约在遥测数值转换中的应用】在遥测数值转换过程中,104 规约起到了关键的作用。
首先,104 规约明确了遥测信号的传输格式和内容,包括采样率、量化级数、数据长度等参数,为遥测数值转换提供了统一的标准。
其次,104 规约规定了遥测信号的传输方式,包括单点传输和多点传输,以满足不同场景下的传输需求。
最后,104 规约还规定了遥测信号的错误检测和纠正机制,以确保遥测数据的准确性和可靠性。
【104 规约的优势和局限性】104 规约在遥测数值转换中的应用,具有以下优势:一是统一了遥测信号的传输格式和内容,提高了数据交换的效率和准确性;二是明确了遥测信号的传输方式,满足了不同场景下的传输需求;三是规定了遥测信号的错误检测和纠正机制,确保了遥测数据的准确性和可靠性。
然而,104 规约也存在一些局限性,例如:一是适用范围主要限于电力系统,对其他领域的遥测数值转换的指导作用有限;二是规约的更新速度相对较慢,可能无法及时适应新技术和新设备的发展。
104规约归纳整理目录1 总体介绍 (4)1.1 适用范围 (4)1.2 总体规则 (4)2 基本格式 (4)2.1 基本报文格式 (4)2.2 报文格式分类 (5)2.3 不同报文格式的控制域 (5)2.3.1 I格式报文控制域 (5)2.3.2 S格式报文控制域 (6)2.3.3 U格式报文控制域 (6)3 报文实例 (6)3.1 约定 (6)3.2 初始化 (7)3.2.1 初始化流程 (7)3.2.2 初始化结束指令 (7)3.3 总召唤命令 (7)3.3.1 总召唤流程 (7)3.3.2 总召唤指令格式 (7)3.4 时间同步命令 (8)3.4.1 时钟同步流程 (8)3.4.2 时钟同步指令格式 (8)3.5 时间读取命令 (8)3.5.1 时间读取流程 (8)3.5.2 时间读取指令格式 (9)3.6 复位进程命令 (9)3.6.1 复位进程流程 (9)3.6.2 复位进程指令格式 (9)3.7 遥信数据上报 (9)3.7.1 遥信数据上报流程 (9)3.7.2 遥信数据上报指令格式1(SQ=0) (10)3.7.3 遥信数据上报指令格式2(SQ=1) (10)3.8 遥测数据上报 (11)3.8.1 遥测数据上报流程 (11)3.8.2 遥测数据上报指令格式1(SQ=0) (11)3.8.3 遥测数据上报指令格式2(SQ=1) (12)3.9 遥控命令 (12)3.9.1 遥控操作流程 (12)3.9.2 遥控操作指令格式 (13)3.10 故障事件(新增) (13)3.10.1 故障事件上报操作流程 (13)3.10.2 故障事件上报指令格式 (13)3.11 参数设置 (14)3.11.1 参数设置操作流程 (14)3.11.2 参数设置指令格式1(单个) (14)3.11.3 参数设置指令格式2(多个) (14)3.12 参数读取 (15)3.12.1 参数读取操作流程 (15)3.12.2 参数读取指令格式1(单个) (15)3.12.3 参数读取指令格式2(多个) (16)3.13 文件传输 (16)3.13.1 文件传输-召唤目录操作流程 (16)3.13.2 文件传输-传输段操作流程 (16)3.13.3 文件传输-传输节操作流程 (17)3.13.4 文件传输指令格式 (17)1 总体介绍1.1 适用范围规定了配电网自动化主站系统和配电自动化终端之间进行数据传输的帧格式、数据编码及传输规则。
104规约定义一. 104报文的一般格式:以下图中:APCI 为应用规约控制信息ASDU 为应用服务数据单元APDU 为应用规约数据单元图 1 –远动配套标准的APDU定义图2 –远动配套标准的APCI定义1、104规约报文:启动字符为68H,没有结束字符(比如:101规约中的结束字符16)。
2、“APDU的长度”定义了APDU体的长度,◆它包括APCI中的四个控制域八位位组和ASDU。
既从控制域的第一个八位位组开始,到报文的最后结束。
◆ASDU的最大长度限制在249以内,因为APDU域的最大长度是253(APDU最大值=255减去启动和长度八位位组),控制域的长度是4个八位位组。
二、控制域的定义(I 格式、S 格式和U 格式)三种类型的控制域格式:用于编号的信息传输(I 格式)编号的监视功能(S 格式) 未编号的控制功能(U 格式)。
1、I 格式定义控制域第一个八位位组的第一位 = 0 定义了I 格式,I 格式的APDU 常包括APCI 和一个ASDU (数据单元)。
I 格式的控制信息如图3所示比特图 3– 信息传输格式类型的控制域(I 格式)2、S 格式定义控制域第一个八位位组的第一位 = 1 并且第二位 = 0 定义了S 格式,S 格式的APDU只包括APCI 。
S 格式的控制信息如图4所示。
比特 8 7 6 5 4 3 2 1图 4 –编号的监视功能类型的控制域(S 格式)3、U 格式定义控制域第一个八位位组的第一位= 1 并且第二位=1 定义了U 格式,U 格式的APDU 只包括APCI 。
在同一时刻,TESTFR, STOPDT 或 STARTDT 中只有一个功能可以被激活。
.U 格式的控制信息如图5所示八位位组 1 八位位组 2 八位位组 3 八位位组 4八位位组1 八位位组 2 八位位组 3 八位位组 4比特图 5 –未编号的控制功能类型的控制域(U 格式)三、数据传输过程1、 用启/停进行传输控制控制站(例如,A 站)利用STARTDT(启动数据传输)和STOPDT(停止数据传输)来控制被控站(B 站)的数据传输。
104远动规约学习笔记
使用国产的PMA规约软件来模拟104的主站,与西门子SICAM eRTU装置进行104通讯测试。
在过程中,发现当双方静止一段时间后,PMA软件(主站)发S帧,但立刻报“接收失败,重新链路!:10053”错误。
这个问题困扰了我一段时间,不知道这是哪一边出的问题。
后来,我用秒表测量了PMA软件收到从站最后一帧I帧至发出S帧的间隔时间,均为15秒多一点。
查阅104规约文本后,我理解规约的原意是这样的:对于最后一次总召命令后从站回应的长帧报文(I帧),主站需发送S帧来确认,何时发送是受两个参数触发的:t2和w,两者应是“或”的关系,即任何一个达到就发送S帧确认。
在这之前的召唤过程中,主站是通过每一次的总召唤命令,对上一次的从站答复进行确认的(接收序号)。
但最后一次总召命令后,主站只能通过t2超时发S帧来确认(此时从站回应的I帧数量小于w)。
如果这一步成功,且双方仍然保持静止(即没有I帧报文发送),后面又将以t3为循环间隔时间,双方通过发测试帧(U帧)来维持链路,直至双方有新的I帧报文进行发送。
根据测到的间隔时间,我认为PMA软件设置的t2是15秒(或实际效果是15秒),而没有设为规约推荐的10秒,造成主站的t2>=从站的t1(要求t2小于t1),从站在收到S帧之前因t1超时而关闭socket。
后来联系该软件的作者,修改软件中相应的设置(PMA软件版本也由2.85调为2.87),再试时问题已消除。
超时的定义
参数默认值备注选择值
t0 30s 连接建立的超时
t1 15s 发送或测试APDU的超时
t2 10s 无数据报文t2<t1时确认的超时
t3 20s 长期空闲t3 >t1状态下发送测试帧的超时
所有超时值的最大范围:1 到255s,精确到1s。
当报文接收方收到发送方的I格式报文后,如果没有I格式报文需要发送给对方,可以向对方发送S 格式报文以对所接收到的报文进行确认;
为了防止I格式报文在传送过程中丢失或重复传送,IEC 60870-5-104的I格式报文的控制域定义了发送序号N(S)和接收序号R(S),发送方每发送一个I格式报文,其发送序号应加1,接收方每接收到一个与其接收序号相等的I格式报文后,其接收序号也应加1。
需要注意的是,每次重新建立TCP连接后,调度主站和子站RTU的接收序号和发送序号都应清零,因此在双方开始数据传送后,接收方若收到一个I格式报文,应判断此I格式报文的发送序号是否等于自己的接收序号。
若相等则应将自己接收序号加1,若此I格式报文的发送序号大于自己的接收序号,这说明发送方发送的一些报文出现了丢失;若此I格式报文的发送序号小于自己的接收序号,这意味着发送方出现了重复传送。
此外,I格式和S格式报文的接收序号表明了发送该报文的一方对已接收到的I格式报文的确认,若发送方发送的某一I格式报文后长时间无法在对方的接收序号中得到确认,这就意味着发生了报文丢失。
当出现上述这些报文丢失、错序的情况时,通常意味着TCP连接出现了问题,发送方或接收方应关闭现在的TCP连接然后再重新建立新的TCP连接,并在新的TCP连接上重新开始会话过程。
在主站端和子站RTU端进行通信时,接收方可以使用S格式报文(当有应用服务单元需要发送给对方时,可使用I格式报文)对已接收到的I格式报文进行确认,以免发送方超时收不到确认信息而重新建立TCP 连接。
这就存在一个接收方收到多少个I格式报文进行一次确认的问题,以及发送方应在多少个I格式报文未得到确认时停止发送数据。
IEC 60870-5-104规定了两个参数k和w,其取值范围为1到32767,其中k表示发送方在有k个I格式报文未得到对方的确认时,将停止数据传送,w 表示接收方最迟在接收了w个I格式报文后应发出认可;IEC 60870-5-104规定k和w的默认值分别为12个APDU和8个APDU。
在实际中,k和w的具体取值可以根据TCP连接双方的数据通信量来加以确定,对于子站RTU端来说,每收到一个调度端的I格式报文都应立即进行响应,其w的取值实际上为1,由于RTU端可以循环向调度端发送遥信、遥测等信息,因此k的取值与其循环发送的定时
周期有关,通常12到20个APDU就足够了;对于主站端,由于不停接收到RTU的数据,因此应及时地给以确认,通常w取小于8个APDU的值。
2.4 关于超时时间的理解为了能对TCP连接进行检查和维护,IEC 60870-5-104规定了几个超时时间,即t0、t1、t2、t3,它们的取值范围为1~255s,准确度为1s。
t0规定了主站端和子站RTU端建立一次TCP连接的最大允许时间,主站端和子站RTU端之间的TCP连接在实际运行中可能经常进行关闭和重建,这发生在4种情况下:
①主站端和子站RTU端之间的I格式报文传送出现丢失、错序或者发送U格式报文得不到应答时,双方均可主动关闭TCP连接,然后进行重建;
②主站系统重新启动后将与各个子站重新建立TCP连接;
③子站RTU合上电源或由于自恢复而重新启动后,将重建连接;
④子站RTU收到主站端的RESET_PROCESS(复位远方终端)信号后,将关闭连接并重新初始化,然后重建连接。
每次建立连接时,RTU都调用socket的listen( )函数进行侦听,主站端调用socket 的connect( )函数进行连接,如果在t0时间内未能成功建立连接,可能网络发生了故障,主站端应该向运行人员给出警告信息。
t1规定发送方发送一个I格式报文或U格式报文后,必须在t1的时间内得到接收方的认可,否则发送方认为TCP连接出现问题并应重新建立连接。
t2规定接收方在接收到I格式报文后,若经过t2时间未再收到新的I格式报文,则必须向发送方发送S格式帧对已经接收到的I格式报文进行认可,显然t2必须小于t1。
t3规定调度端或子站RTU端每接收一帧I帧、S帧或者U帧将重新触发计时器t3,若在t3内未接收到任何报文,将向对方发送测试链路帧TESTFR。