原文地址:http://hi.baidu.com/timse/blog/item/71cf1b46cefd49006b63e594.html

在近年的规约测试工作中,笔者曾遇到了一些应用方面的问题,这些问题虽然不大但通常会影响规约至关重要的互操作和互联。在此,我们把这些遇到过的典型情况与广大网友共享,希望能够有益于大家今后的规约开发和研究工作。
    IEC60870-5系列的3个标准101、103和104规约在国内已经应用多年了,但在对多个该类规约产品的测试中,我们发现依然存在许多能够造成互操作障碍的规约实现问题,典型的情况例举如下:

1.物理接口:
    103规约规定的物理接口之一是RS-485。但各厂家的接口还是有些不同,如两线485接口(TX+和RX+)、4线485接口(TX+、 RX+,TX-、RX-),有的则提供DB9联接器,更有的提供以太网接口,即采用以太网传输的103规约。这么多接口类型,从某种程度上降低了规约设计 的初衷——即插即用的特性。比如DB9联接器,采用哪些针脚作为发送端和接收端等都是厂家自定义的,参与互联的厂家则需要在现场焊接自己的联接器,如果稍 有不慎,则会给日后的通信运行留下隐患。

2.时钟同步:
    101、103和104规约都提供了相应的时钟同步功能。在该功能规约测试中,我们发现90%的厂家没有严格执行规约中的应用层应答,多数都是采用报文镜 像的方式应答,而非标准规定的:应答报文的时标应是控制站发送对时命令时对应的被控站当地时间。另外,部分厂家的软件设计还缺少对校时命令的时间的合理性 检查,即在我们的否定测试环节,在接受到无效时间(如13月32日61分)的时钟校时命令时,或者稍加处理的将其改为1月1日1分,或者不加处理的直接用 来修改当地时钟。这样的试验意在模拟现场普遍存在的干扰环境(如电磁干扰)对通信线路的编码造成的影响,以考验装置的容错能力。如果厂家的开发人员在产品 研发时没有注意这个细节,那么如果在现场发生了此类情况,则会造成一系列不利于通信正确性的问题,如事件和报警的时标不具备合理性和有效性等。

3.命令传输:
    遥控过程作为IEC60870-5系列规约所实现的主要功能之一,是规约测试的重点。多数被测厂家都能完成命令传输的功能,但对于以下情况,缺乏细节上的处理:
    a)   对不可控点的遥控。这种情况在控制站与被控站的信息点表配置不匹配时可能会出现,那么被控站(装置)应该能对所控点的类型和状态进行判断,如果在 装置上未配置该信息点或该地址不属于控制点,则应向控制站做相应的符合规定的应答,如101规约中规定可采用传输原因COT=47(未知的信息对象地址) 或COT=7(P/N位=1,否定确认)。在测试中,有些厂家或者不应答,或者一律做肯定确认却不做任何实际处理,都是不恰当的。这样做的后果是让监控主 站或调度站误以为传输通道出现问题而重发命令,或者干脆以为现场装置出了故障,最后造成不必要的麻烦。
    b)   执行遥控命令时又发生另一遥控命令。这种情况的出现跟控制站的软件设计有关,跟操作员的操作习惯也有关系。一方面控制站由于可设置多任务同时执 行,允许操作员同时进行同一装置多个点的遥控;另一方面由于通道(如以太网)的延迟或者被控站(装置)的命令处理较慢,操作员在等不及的情况下可能在发出 某点控制命令后,再次点击发送该点控制命令。以上情况均可能造成短期内装置收到两个或更多的遥控命令,在103规约里对其处理方式做出了严格规定:在对前 一次的命令做出认可之前,间隔单元又收到控制站的命令报文,装置应进行新的控制命令进行否定认可。而测试中,我们发现很多厂家不是作出了与标准相反的处理 (对旧的命令做否定认可),就是干脆不对新的命令做任何应答。这样既违背了标准的规定,同时由于应答过程不完整,还会存在一些互操作的麻烦。
    c)   选择和执行命令之间的延时。在104和101规约测试中,我们发现有的被控站不能设置选择超时时间,这样在通道不稳定的情况下是非常不安全的。例 如控制站某选择命令成功后发出执行命令,在网络或通道传输延迟的情况下,等该命令到达被控站时,由于其传输时间已经超过了控制站自身对该命令进程设置的超 时时间而被控制站取消,而被控站却依然执行了该命令。这种执行的结果并不是控制站所预期的,因此现场运行时很有可能造成一些危险。

4.品质描述的使用:
    IEC60870-5系列规约的显著特点之一就是使用了品质描述,但在测试中我们发现品质描述常常造成了沟通和互联的障碍。品质描述主要包括无效 (IV)、NT(当前值)、OV(溢出)、SB(替代)、BL(闭锁)等,通常用于遥测、遥信、遥脉等信息对象的额外的品质信息。例如,101规约中,装 置调试期间产生的信息可以采用SB=1(替代)描述;装置长时间刷新不成功的信息可用NT=1(非当前值)描述;装置在信息源反常状态时可将对应的信息对 象值设置为IV=1(无效)等等。
    在互操作测试中,有的控制站对被控站上送的信息的品质描述不加判断,造成数据分类和处理的缺陷;有的被控站在调试状态或故障时,没有在相关遥测、遥信和事件等信息中用品质描述,造成现场状态不能如实反映到控制站,影响了系统监控的实时性和准确性。
    同样,在时标中的IV(无效)位也没有得到很多厂家的重视。由于事件信息、控制信息(104规约)、时钟同步命令中都带有时标,因此该位的处理也是至关重 要的。101规约中明确定义了“如果时钟在特定时间周期内没有进行同步,IV位设置为1)”,103中也规定“继电保护设备最后一次同步后超过23小时未 再同步”,应“在时间信息元素的第三个八位位组的无效位(IV)位置1”。遗憾的是,这个规约提供的品质描述目前还没有厂家应用到实践中去.

转载于:https://www.cnblogs.com/zhaobl/archive/2011/03/29/1998701.html

101/103/104规约应用典型问题例举【转】相关推荐

  1. 时标CP56Time2a 时间格式转换 电网101、104规约解析(Java)

    电网101.104规约解析(Java) https://blog.csdn.net/ZhangYu971014/article/details/79841555?utm_medium=distribu ...

  2. java103 101 104 101_编写一个java程序将100,101,102,103,104,105这6个数以数组的形式写入到D:\\test.t...

    展开全部 你问的不明白,我在代码里给你写了,你自己看吧 import java.io.FileWriter; import java.io.IOException; import java.util. ...

  3. 编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上。

    编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上. package p1;import java.io ...

  4. 104规约报文类型,和传送原因

    目录 104规约报文类型 在监控方向过程中信息 在控制方向的过程信息 传送原因 104规约报文类型 在监控方向过程中信息 遥信,遥测,SOE,KWH 1:单点信息 2:带短时标的单点信息 3:双点信息 ...

  5. Faas 典型场景——应用负载有显著的波峰波谷,典型用例-基于事件的数据处理...

    Serverless适用的两大场景 场景一:应用负载有显著的波峰波谷 Serverless化与否的评判标准并不是公司规模的大小,而是其业务背后的具体技术问题,比如业务波峰波谷明显,如何实现削峰填谷.一 ...

  6. 习题6 3.6.2 典型题例解析 3.6.3 自测训练

    //utf-8 <理论书>C语言程序设计教程 主编杨路明 习题6 选择题 ​ ABDA/A 填空题 ​ 函数原型 ​ 静态 ​ 局部 ​ 9 ​ 125 ​ 运行 ​ # ​ 11 写出下 ...

  7. 贴片电容102 103 104 105 106分别是多少?

    贴片电容102 103 104 105 106分别是多少,贴片电容型号有很多种换算方法,但是我们只需要知道一种就好了,下面我们来看看贴片电容102 103 104 105 106容值大小怎么表示. 贴 ...

  8. 51单片机复习程序例举004--HD44780控制的1602LCD

    1.在HD44780控制的1602LCD的显示屏上显示两条字符串 和 两个用户自定义的字符 /***************************************************** ...

  9. 例举计算机网络连接的主要对象,《计算机网络技术基础教程》课后习题答案_刘四清版...

    清华刘四清版网络习题答案 第一章 1. 2. 3. 4. 5. 6. 7. 8. 9. 计算机网络是计算机技术与通信技术结合的产物. "网络"主要包含连接对象.连接介质.连接控制机 ...

最新文章

  1. 寒武纪开盘暴涨350%,市值突破1000亿,85后创始人身家超300亿!千亿盛宴背后隐忧不可忽视!...
  2. 在区块链上表白——使用C#将一句话放入比特币的区块链上
  3. 自备干货!如何有效的做竞品迭代分析
  4. neuroph轻量级神经网络框架
  5. Golang slice和map的申明和初始化
  6. vue-electron 写一个markdown文章编辑器(一)
  7. 把combobox控件添加到datagridview控件中_自定义系列:控件属性添加
  8. C++ inline 函数简介
  9. python换行不执行_PYTHON无法换行问题,求指点
  10. 设置居中_安卓手机时间怎么显示在中间 时间居中设置教程
  11. linux中vi后如何退出命令,linux用VI编辑后保存退出命令是什么啊?
  12. redis作为消息队列的原理
  13. 使用Atmel Studio7和USBasp烧写器烧写AVR单片机
  14. 四大汽车总线:LIN、CAN、FlexRay、MOST简述
  15. Mac 系统下 xcode 卸载 清理
  16. @RequestParam@PathVariable【注解区别】
  17. RPG Maker MV 路标,随机移动,随机对话
  18. 使用gb2312乱码,utf-8正常
  19. ARM处理器比较:A8/A9
  20. Java 如何将线程挂起呢?

热门文章

  1. Docker 与虚拟化技术浅析第一弹之 docker 与 Kubernetes
  2. 收购德邦,京东物流打的什么算盘?
  3. c语言编程题素数和,程序设计入门——C语言 第4周编程练习 1 素数和(5分)
  4. 2020西山居暑假SEED训练营游戏开发
  5. 私域电商个人号IP运营指南 私域流量池之微信个人号基础操作手册
  6. Redis事件-文件事件、时间事件、事件调度与执行
  7. 字符串的引用和初始化
  8. Java方法怎么写怎么用
  9. js数据结构与算法--双向链表的实现
  10. 合并多个PDF文件:Adobe Acrobat DC