从零开始理解IEC104协议之一——104规约帧格式

前言

        本文根据相关标准、本司实际情况及个人调试经验编写,主要目的是针对104协议进行扫盲,共分为五大块。根据个人需求可选择相应段落进行阅读。

        这里做一个小推荐:

        1、仅需要了解报文含义,阅读文章的第一块内容即可;

        2、简单故障排查,阅读文章的第一块和第四块内容即可;

        3、稍复杂的故障排查,需要阅读文章的第一块、第三块及第四块内容;

        4、希望对104协议的实施有一个较为全面的认识,可以通读全文;

        5、希望对104协议有一个较为全面且准确认识,可以通读全文并参考相关标准。

        电力系统通信个人感觉还是较为复杂的,硬件不断更迭,软件也在不断更新。针对复杂故障一定要做到理论结合实际,多与厂家技术支持人员及研发人员沟通,切不可抱着扫盲文章和国家标准死扣字眼,更不可凭空想象,脱离理论。

        参考标准如下:

        1、IEC60870-05-104传输规约(国际电工委员会制定)

        2、广东电网DL/T634.5104-2002实施细则

        3、国家电网DL/T634.5104-2009实施细则

        4、南方电网DL/T634-2002远动协议实施细则

        另本人调试经历不长,理论水平也比较浅薄,更未参与过相关软硬件的开发工作,因此文章中不可避免的会出现错误、纰漏。欢迎大家进行批评指正。

        希望本文能够对您的工作有一定的帮助,感谢您的阅读!

一、104规约帧格式

IEC104协议的帧格式有三种(I帧、U帧、S帧),基本格式如下图所示:

I

        编号的信息传输格式(I帧),用于传输应用数据,捎带确认对方的发送。根据类型标识(TYP)不同,报文形式各有差异。总体格式为基本格式中的68H+APDU长度++

        I帧中的控制域1与控制域2为发送序号,控制域3与控制域4为接收序号。其格式图如下所示:

        从上图中可以看出控制域中含有发送序号和接收序号,但控制域1与控制域3的最低位固定为0(即控制域1、2组成的字节与控制域3、4组成的字节,其十进制形式固定以偶数递增)。所以控制域1及控制域3的最低位不用于构成序号。

        综上在计算序号时,要先转换成十进制数值,再除以2。且需要注意的是低位字节在前,高位字节在后,所以计算时要先做颠倒。在104规约中是通用规则。详细原因会在二、基础知识中解释。

        发送序号与接收序号是用于防止报文在传送过程中出现丢失或重复传送。发送方每发送一个I格式报文,其发送序号应加1,接收方每接收到一个与其接收序号相等的I格式报文后,其接收序号应加1,需要注意的是,每次重新建立TCP连接后,调度主站和子站RTU的接收序号和发送序号都应清零。

        综上,在双方开始数据传送后,接收方若收到一个I格式报文,应判断此I格式报文的发送序号是否等于自己的接收序号。若相等则应将自己的接收序号加1,若此I格式报文的发送序号大于自己的接收序号,这说明发送方发送的一些报文出现了丢失,若此I格式报文的发送序号小于自己的接收序号,这意味着发送方出现了重复传送。

        当报文接收方收到发送方的I格式报文后,如果没有I格式报文需要发送给对方,可以向对方发送S格式报文以对所接收的报文进行确认。I格式和S格式报文的接收序号表明了发送该报文的一方对已接收的I格式报文(一个或多个)的确认。发送方会将一个或几个报文保存到一个缓冲区里直到它将自己的发送序号作为一个接收序号收回,这个接收序号小于发送序号时有效。这样就可以删除缓冲区里正确传送过的报文。如果是很长的数据传输只在一个方向进行,就得在另一个方向发送S格式报文,在缓冲区溢出或超时前认可报文。

        若发送方发送的某一I格式报文后长时间无法在对方的接收序号中得到确认,这就意味着报文发生了丢失。

        当出现上述情况时,通常意味着TCP连接出现了问题,发送方或接收方应关闭现在的TCP连接然后再重新建立新的TCP连接,并再新的TCP连接上重新开始会话过程。

        把下面两张图看懂,对I帧中收发序号应该有了一个简单的认识。首先对途中的变量做一下解释。

        V(S)为发送状态变量,V(R)为接收状态变量,ACK为当前已经正确收到的所有I格式APDU的最新序号。I(a,b)为信息格式APDU,a为发送序号,b为接收序号。

        正常情况下的I帧:

        出现报文丢失的I帧:

    下面是类型标识,它定义了后续信息对象的结构、类型和格式。如下表所示:

        上图中黄色标记为常见类型标识符。这边主要讲一下单点与双点的区别,以遥信为例,单点就是用一位标识一个遥信量,比如开关位置,只采集一个常开的辅助接点,值为1表示合位,0表示分位;而双点需要采集常开合常闭两个辅助接点位置,,当常开点值为1并且常闭点值为0,即10,则认为开关在合位;当常开点值=0并且常闭点值为1,即01,认为开关在分位;当两个位置值都为1,或两个值都为0,则认为开关位置不能确定。遥控也是一样的道理。

        这里还有几个概念需要单独提出来说下:

①短时标与CP56Time2a时标(长时标)

        短时标与CP56Time2a时标(长时标)的结构,如下图所示:

        其中IV为有效位,RES为保留位。

②归一化值、标度化值、短浮点数

        归一化值(NVA),值的范围为[-1,1]。归一化,即是将大于1的数映射到1以内的空间,通常就是用实际值除以额定值,即得到归一化的小数。具体表示法可以有F13或F16位的。占2个字节。

        在电力行业中,通常是将数值归一到满码值。满码值是通信双方约定的一个值,它会影响数值的误差。一般来说,所内监控后台满码值为4095或2047,地调满码值为4095,中调满码值为32767(通常会要求P、Q、I按1倍额定值对应15000的码值的关系转换后上送;母线电压、频率则按1.2倍额定值对应15000的码值的关系转换后上送)。

        举个例子:110kV线路的CT变比为1200/5,电流采样裕度为1.2,满码值为4095,则电流真实值为1200,其归一化值为多少?归一化值00d3的真实值是多少?

第一问:

        电流遥测量的最大实际值=1.2*1200=1440A;

        电流真实值1200的归一化码值=(满码值*真实值)/最大实际值=3412.5;

        又归一化值只能表示为整数,其归一化值为0D54H。

第二问:

        归一化值00d3的码值=211;

        电流真实值=(归一化码值/满码值)*最大实际值≈74.2A

拓展:

        南瑞科技后台只需要把握住以下三个参数,其遥测值就能正常显示。

第一,标度系数;标度系数等于一次额定值/二次额定值;

        举例:PT变比为220kV/100,CT变比为1200/5,4~20mA的变送器对应-20~100度,求把电压标度系数,电流标度系数,功率(Kw)标度系数,频率标度系数,功率因素标度系数,温度标度系数。

        电压标度系数=220/100=2.2;电流标度系数=1200/5=240;功率标度系数=2.2*240=528;频率标度系数=功率因素标度系数=1;

        温度标度系数=输入最大值与输入0之间的温度差值。

        设其特性曲线为y=kx+b,通过4mA对应-20度,20mA对应100度,列方程组可以解出b=-50;

        那么温度标度系数=100-(-50)=150。

第二、参比因子;参比因子等于满码值/(二次额定值*1.2)

        已知,CT二次值为5A,PT二次值为100V,满码值为4095,求电流参比因子、电压参比因子、功率参比因子。

        电流参比因子=4095/(5*1.2)=682.5;电压参比因子=4095/120=34.125;功率参比因子=4095/(6*120*1.732)=3.284。

        另外频率参比因子等于满码值/(最大码值对应的频率与最小码值对应的频率之差);温度参比因子为2047;功率因素参比因子为1000。

第三、基值

        其意义为传输最小码值所对应的物理量,也就是码值为0对应的物理量。电压、电流、功率、功率因素基值都为0,频率基值为50Hz,温度的基值就是上面所提到的b。

        标度化值(SVA),值的范围为[-32768,~32767],即带符号整数。占2个字节。它的真实值就是标度值*小数点的位数,量程和小数点位置是固定的参数。

        例如电流76A,电压7.6kV,其传输的标度化值都为004CH,但其小数点的参数不同,电流的小数点为1;电压的小数点为0.1。

        注意:归一化值与标度化值都是两个字节。高字节的最高位为符号位, 0表示正数,1表示负数。15位数据位,正数是原码,负数是补码。

        下面举一个负数为例:设归一化值FA,求其对应的十进制数是多少?

        补码的求法:符号位不变,求反码;然后反码最低位加1,即为补码。

        FA=1111 1010;其反码为1000 0101;

        其补码为1000 0110=-1*2^7 +1*2^2+1*2^1 =-128+4+2=-122

        短浮点数(R32-IEEE STD 754),即计算机内浮点数的表示法,占4字节。其格式如下图所示:

        IEEE754标准在表示浮点数时,每个浮点数均由三部分组成:符号位S、指数部分E和尾数部分M。浮点数有以下两种基本格式:

        第一种,单精度格式(32位),除去符号位1位后,E占8位,M占23位;第二种,双精度格式(64位),E占11位,M占52位。

        这里的短浮点数即是32位的单精度格式。

        数符S,1位,决定了短浮点数的正负,0正1负;

        指数E,共计8位,以2为底,在这里称为阶码,为了表示指数的正负,阶码部分采用移码表示,移码值为127。对于规格化浮点数而言,阶码值即从1~254变为-126~+127,计算公式——阶码=阶码真值+127;

        尾数M,共计24位,约定小数点左边隐含有一位1,这样实际上使尾数的有效位数为24位,即尾数真值形如1. M。

还是举几个例子:

        第一问,如何将10进制数+178.125化为短浮点数?

        ⒈正数的符号位为0;

        ⒉将178转成二进制数,(178)D=(1011 0010)B;

        ⒊将0.125转成二进制数,(0.125)D=(0.001)B;

        ⒋合并计算结果,得到(178.125)D=(1011 0010.001)B;

        ⒌对上述二进制数进行规格化处理,如下:(1011 0010.001)D=1.0110010001*2^7 ,隐含小数点及其左边的1,化为原码,并扩展为23位,得到:0110 0100 0100 0000 0000 000;

        ⒍求阶码。上述规格化数得指数为7,根据计算公式,阶码=7+127=134,化为二进制,得到1000 0110。

        ⒎汇总上述结果可得:

        0100 0011 0011 0010 0010 0000 00000000

        化为16进制可得:43 32 20 00H

第二问:如何将浮点数C1 C9 00 00H转成十进制数?

            ⒈将十六进制化为二进制:C1C90000H=1100 0001 1100 1001 0000 0000 0000 0000B

            ⒉计算阶码真值,阶码真值=阶码-127。即1000 0011 -0111 1111=100,即十进制的4。

            ⒊将上述二进制数规格化,得1.100 1001*2^4

            ⒋将上述结果进行非规格化,得11001.001。

            ⒌转化为十进制数,并加上符号位。

              首先进行转化(11001.001)B=(25.125)D,

              随后加上符号位,可得最后结果为-25.125。

③品质描述词

        用于描述遥测、遥信、遥脉值的传输质量,分为遥信品质描述词和遥测(遥脉)品质描述词。遥脉中也有描述品质的信息,不过它和顺序号集成在一起,我们在遥脉的报文会对其加以分析。

        品质描述词结构如下图所示:

        其中:

        IV为有效标志位(0有效,1无效),若值被正确采集就是有效,在采集功能确认了信息源的反常状态(例如:装置的启动过程中或者一些配置错误),那么值就是无效的。信息对象的值在这些条件下没有被定义。标上无效用以提醒使用者,此值不正确而不能使用。

        NT为刷新标志位(0刷新成功,1刷新未成功),若最近的刷新成功则值就称为当前值,若一个指定的时间间隔内刷新不成功或者其值不可用,值就称为非当前值。设备处于调试态或装置通讯中断都有可能造成非当前值。

        SB为取代标志位(0未被取代,1被取代),当信息对象的值由值班员(调度员)输入(即人工置数)或者由当地自动原因(模拟遥信)所提供时,即为被取代。如人工置数情况下。

        BL为封锁标志位(0未被封锁,1封锁),信息对象的值为传输而被封锁,值保持封锁前被采集的状态。封锁和解锁可以由当地联锁机构或当地自动原因启动。

        OV为溢出标志位(0未溢出,1溢出),信息对象的值超出了预先定义值的范围(主要适用模拟量值)。仅在遥测品质结构词中出现。

        SPI为遥信状态值。单点遥信,0分1合;双点遥信,1开2合,0和3为中间状态。

        类型标识符讲完了,然后是可变结构限定词,其结构如下所示:

        当可变结构限定词最高位为1表示连续,其对应n个信息对象中,第一个信息对象中含有信息体地址(3个字节)表示此帧报文中的信息从这个地址开始,第二个信息对象中不再包含信息体地址,第二个信息对象地址是在第一信息对象中的信息体地址递增。

        当可变结构限定词最高位为0表示不连续,每个信息对象中都包含信息体地址。

        接下来是传送原因,共计2个字节。但传送原因实际上只是占两个字节中的6位。其完整结构如下图所示: 

        其中T代表试验位(0未试验,1试验),它说明了应用服务数据单元是在测试条件下所产生的,被用于测试传输和设备,但不控制过程。工程中很少使用。

        P/N位用以对由启动应用功能所请求的激活以肯定或者否定确认。P=0表示肯定确认,P=1表示否定确认。在工程上,主要用于表示遥控选择成功或失败。

        传送原因详表如下图所示:

        针对上表中的部分内容进行一个说明:

        第一、周期、循环(01H)与背景扫描(02H)光看标准的话会感觉他们两个差不多,我这里仅从实际应用上来讲述它们的区别。

        周期、循环(01H)适用于传输变化很慢的数据,例如水位、油温等,这类数据定时主动上送,并且不再响应总召唤过程中传送。而背景扫描(02H)则是从站周期性主动将响应总召唤过程中传送的数据上送,使得主站和从站数据库保持一致。背景扫描数据传送时可被中断,当同时又背景扫描数据和实时数据时,优先传送实时数据。

        第二、什么样的情况算是突发(03H)呢?有两种情况:1、当前的背景扫描发现该点的模拟量数据与前一次模拟量数据传输值的差值超出越死区传输设定值。即前后两次的模拟量数据差值不超出死区设定值,但与上次传输数据的累计差值超出死区设定值也立即作为突发数据向主站传输。2、当前的背景扫描发现该点的状态量数据与前一次状态量数据不一致,即发生了状态变位。

        第三、对于分组召唤,新版标准已对分组内容不做约定,但一般设计时仍以标准作为参考。

        上述结构中还有源发地址,他用来表明来自哪个主站的召唤,一般情况下不适用。规定源发地址不使用时,应置零。

        传送原因讲完了,我们接着来看ASDU公共地址和信息对象地址。

        首先ASDU地址为2个字节,一般作为站地址,在低版本远动程序中,一般高字节固定为0,1~254表示站地址,255表示全局地址。新远动程序则可支持1~65534为站地址,而65535为全局地址。

        全局地址用于再一个特定系统中在所有站在同一时刻同时启动同一个应用功能,一般只用于召唤、电度召唤、时钟同步、复位进程。

        控制站将舍弃那些公共地址未定义的ASDU。如果该地址设置与主站不一致,会出现遥测、遥信能正常刷新,但是无法上送初始状态,无法遥控的现象。

说明:

        1、部分厂家,会将ASDU公共地址的高字节定义为扇区,低字节定义为装置地址,总召唤将按扇区号进行。

        然后是信息对象地址,三个字节表示,最高字节一般置零,最多能够表达65535个信息。如果某些应用服务数据单元中信息对象地址是无关的,它就设置为零。同类信息对象地址必须连续。主站和对应厂站两侧的地址分配必须一致。

        同样控制站将舍弃那些信息对象地址具有未定义值的ASDU。且一个ASDU中的首个信息体必须具有信息地址。

        通俗来说,信息对象地址即通讯过程中的点号,104规约均对点号范围做了规定,常见问题就是遥测、遥控的起始点号与主站不一致。而且主站提供的点表一般都是从0或1开始的顺序号,我们需要确认0或1对应的实际起始信息体地址。

        关于上述内容再注意下面两张表格即可,下面这些内容都可以通过配置.ini文件——iec104规约配置表。

        目前常用的是02版的,故一个104通道,遥测最多可配16384个,遥测最多可配4096个,遥控最多可配256个,遥脉最多可配512个。

        上述配置要根据主站来定,有的主站可能设置为1,1,2,与主站一致即可,一般主站默认设置为2,2,3。

        下面就是信息体元素了,我们会举各种不同的报文来详细说明以下内容:

        首先我们先介绍一下双传输,信息体元素可以用同一个信息对象地址来构成不同的ASDU,即带时标或者不带时标的单点信息。

        在信息点的单个状态改变的情况下,具有同样信息对象地址的信息对象可以传输两次,一次不带时标,一次带时标。不带时标的信息对象通常尽可能地优先传输,对于控制站能尽快地反映过程控制是非常有用的。带时标的信息对象传输优先级较低,事后用以对事件系列校核。所有信息对象以传送原因3(突发)传送两次,这种模式就是“双传输”。这种模式必须由固定的站与特定参数加以定义。

        对于没有指明支持双传输的所有应用服务数据单元类型,单个状态改变将仅引起单个信息对象的传输。

        有了上面的基础知识,我们现在来看报文吧。

、遥信(数字量输入DI)

1、单点遥信(01)

Send:68(启动符)12(APDU长度)02 c7(发送序号)ce ca(接收序号)01(单点遥信)02(可变结构限定词)03

00(传送原因:突发)01 00(ASDU公共地址)49 01 00(信息对象地址)01(信息体元素)4a 01 00(信息对象地址)00(信息体元素)  2020/03/30 22:36:59::443(c306L时标) TaskId=1(任务ID) LinkId=85(链路ID)NodeId=0 (节点ID)

说明:

        查点表可知,213开关位置分位的ISCS点号为328,213开关位置合位的ISCS点号为329,104规约2002版的基地址为0001H,根据报文构成规则,可得213开关位置分位的信息体地址为01 49H,在报文中低位在前,高位在后,显示为49 01 00H。而213开关位置合位的信息体地址为01 4aH,显示为4a 01 00H。

2、双点遥信(03)

68(启动符)0e(APDU长度)18 00(发送序号)06 00(接收序号)03(双点遥信)01(可变结构限定词)03

00(传送原因:突发)01 00 (ASDU公共地址)06 00 00(信息对象地址)01(信息体元素)

3、带CP56Time2a时标的单点遥信(1e)

Send:68(启动符)15(APDU长度)f6 c6(发送序号)cc ca(接收序号)1e(带CP56Time2a时标的单点遥信) 01(可变限定结构词) 03 00(传送原因:突发) 01 00 (ASDU公共地址)49

01 00(信息对象地址) 01 (信息体元素)bf e0 (毫秒)24(分) 16(时) 1e(日期) 03(月) 14(年)  2020/03/30 22:36:58::693 TaskId=1 LinkId=85NodeId=0 ()

说明:

        信息对象地址为49 01 00,说明了SOE与单点遥信的信息体地址是一致的,在ASDU除时标的部分,除了类型标识与单点遥信不一致,其他并无差别。

        这里着重讲一下时标,现今常用时标为CP56Time2a时标。bf e0H是毫秒信息,根据报文构成规则,将e0 bfH化为10进制后得57535毫秒,即57秒535毫秒;24H是分钟信息,即36分;16H是小时信息,即22时;1e是日期信息,即30日;03是月份信息,即3月;14是年分信息,即20年。

4、带CP56Time2a时标的双点遥信(1f)

68(启动符)15(APDU长度)1c 00(发送序号,2个字节)06 00(接收序号,2个字节)1f(带CP56Time2a时标的双点遥信)01(可变结构限定词)03 00(传送原因:突发)01 00(ASDU公共地址)0A 00 00(信息对象地址)01(信息体元素)2f 40(毫秒)1c(分钟)10(时)7a(日期)0b(月)05(年)

说明:

        提一点,单点和双点的区别在类型标识那段中说明过,忘记的可以回头看看。我们继续来看下时标。这里的时标意为2005年11月26日星期六16时28分16秒431毫秒。

        可以看出,日期信息中的星期信息不是每个厂家都会进行定义,未定义时此段信息为0。

、遥控(数字量输出)

        遥控分为直控和选控,直控实际上就是去掉选择命令,直接发执行命令。一般来说保护压板、保护复归为直控;测控压板、刀闸开关、分接头的升降停为选控。

        选控的一般流程如下: 主站下发选择命令→装置回选择确认报文→主站下发执行命令→装置回执行确认报文→完成结束报文。

        直控的一般流程如下: 主站下发执行命令→装置回执行确认报文→完成结束报文。

        在整个遥控过程中,直到装置回执行确认前都可进行

        而遥控命令的格式如下所示:

        先讲共同部分,S/E为选择/执行位,0代表执行,1代表选择;QU代表遥控命令品质,0代表被控站内部确定遥控输出方式,不由控制站选择,1代表短脉冲方式输出,持续时间由被控站的系统参数决定,2代表长脉冲方式输出,持续时间由被控站的系统参数决定,3代表持续脉冲方式,其他值没有定义;

        SCS代表单点遥控命令状态,0代表分/开,1代表合/关;DCS代表双点遥控命令状态,1代表分/开,2代表合关,0、3代表不允许。

        QU一般为0,那么单点遥控——遥控选择分:0x80;遥控执行或遥控撤销分:0x00;遥控选择合:0x81;遥控选择或遥控撤销合:0x01;双点遥控——遥控选择分:0x81;遥控执行或遥控撤销分:0x01;遥控选择合:0x82;遥控选择或遥控撤销合:0x02。

1、单点遥控(2d)

Recv:68(启动符)0e(APDU长度)c6 cb(发送序号)c4 c6(接收序号)2d(单点遥控)01(可变结构限定词)06

00(传送原因:激活)01 00(ASDU公共地址) 09 60 00(信息对象地址) 80(信息体元素)  2020/03/30 22:36:53::993TaskId=1 LinkId=85 NodeId=0 ()

Send:68(启动符)0e(APDU长度)c6 c6(发送序号)c8 ca(接收序号)2d(单点遥控)01(可变结构限定词)07

00(传送原因:激活确认)01 00(ASDU公共地址)09 60 00(信息对象地址) 80(信息体元素)  2020/03/30 22:36:54::055TaskId=1 LinkId=85 NodeId=0 ()

Recv:68(启动符)0e(APDU长度)c8 cb(发送序号)e8 c6(接收序号)2d(单点遥控)01(可变结构限定词)06

00(传送原因:激活)01 00(ASDU公共地址)09 60 00(信息对象地址) 00(信息体元素)  2020/03/30 22:36:57::143TaskId=1 LinkId=85 NodeId=0 ()

Send:68(启动符)0e(APDU长度)e8 c6(发送序号)ca ca(接收序号)2d(单点遥控)01(可变结构限定词)07

00(传送原因:激活确认)01 00(ASDU公共地址)09 60 00(信息对象地址) 00(信息体元素)  2020/03/30 22:36:57::144TaskId=1 LinkId=85 NodeId=0 ()

说明:

        查点表可知,213位置遥控的ISCS点号为8, 104规约2002版的基地址为6001H,综上213位置遥控的信息体地址为6009H,在报文中低位在前,高位在后,显示为09 60。

        上面的报文为正线遥控报文,可以看出采用的是选控模式,但并没有完成结束的报文,这点区别于一般规则,其余一致。

2、双点遥控(2e)

      双点遥控以直控为示例:

R:68(启动符) 0e(APDU长度) 50 3f(发送序号) 62 31(接收序号)2e(双点遥控) 01(可变限定结构词) 06 00(传送原因:激活) 01 24(ASDU公共地址)33 60 00(信息对象地址)02(信息体元素)

S:68(启动符) 0e(APDU长度) 18 3a(发送序号) 3a 3f   (接收序号)2e(双点遥控) 01(可变限定结构词) 07 00(传送原因:激活确认) 01 24(ASDU公共地址)33 60 00(信息对象地址)02(信息体元素)

S:68(启动符) 0e(APDU长度) 1a 3a(发送序号) 3a 3f(接收序号) 2e(双点遥控) 01(可变限定结构词) 0a 00(传送原因:激活终止) 01 24(ASDU公共地址) 33 60 00(信息对象地址)02(信息体元素)

        当主站需要终止遥控时,会下发遥控撤销命令,其报文如下所示:

R:68(启动符)0e(APDU长度)04 00(发送序号)18 00(接收序号)2e(双点遥控)01(可变结构限定词)08(传送原因:停止激活)01 00(ASDU公共地址)05 0b

00(信息对象地址)02(信息体元素)

S:68(启动符)0e(APDU长度)12 00 (发送序号)08 00(接收序号)2e(双点遥控)01(可变结构限定词)09

00(传送原因:停止激活确认)01 00(ASDU公共地址)05 0b 00(信息对象地址)02(信息体元素)

3、步调节遥控(2f)

        常用来进行调节分接头遥控,不是所有厂家都支持此命令,部分厂家将调节分接头遥控统一至单/双点遥控中。

        另步调节遥控命令与双点遥控命令形式上一致,在步调节遥控命令中1代表降档,2代表升档。

        这里以遥控选择失败的报文为示例:

R:68(启动符)0e(APDU长度)12 05(发送序号)c8 4e(接收序号)2f(步调节遥控)01(可变限定结构词)06 00(传送原因:激活)01 1d(ASDU公共地址)0b 60 00(信息对象地址)82(信息体元素)

S:68(启动符)0e(APDU长度)90 4f(发送序号) 16 05(接收序号)2f(步调节遥控)01(可变限定结构词)47 00(传送原因:未知信息对象地址)01 1d(ASDU公共地址)0b 60

00(信息对象地址)82(信息体元素)

S:68(启动符)0e(APDU长度)92 4f(发送序号) 16 05(接收序号)2f(步调节遥控)01(可变限定结构词)0a 00(传送原因:激活终止)01 1d(ASDU公共地址)0b 60

00(信息对象地址)82(信息体元素)

      注:遥控选择时,如果遥控点号超范围或者遥控命令与类型标示符不符时,装置发送激活结束。

、遥测(模拟量输入)

        遥测的上送方式主要有定时主动上送(01H),响应总召唤上送(14H),越限上送(03H),而遥测值又分为归一化值、标度化值、短浮点数。各遥测报文。其报文主体结构未变,改变是传送原因及类型标识。

        这里解释以下越限上送,又叫越死区上送。正常情况下电力系统中有些遥测量变化不大,在远动中重复传送没有意义,反而加重两端装置和信道的负担。因此,可为每一个遥测设置一个阈值,当遥测量变化不超过阈值时就不传送。

        所以本文仅以总召唤(64H)形式来进行分析,其他形式类同,不再赘述。

        在初始化后或主站发现通信中断后又恢复正常时,必须总召唤。正常过程中,主站采用定时总召唤,总召唤的周期可以预先根据通信网络流量而确定(每次总召唤的间隔时间一般设为15分钟)。当预估通信网络流量太大时,可以不采用定时(周期无穷大)总召唤,总召只在初始化后或者主站发现通信中断后又恢复正常时,才总召唤。

        召唤品质描述词结构如下:

        根据值的不同(这里的值是10进制,注意换算),其含义不一。0代表不使用,1~19为兼容定义保留,20代表总召唤,21~36分别代表1~16组召唤,37~63为兼容定义保留,64~255为专用范围保留。

        总召唤报文如下所示:

Recv:68(启动符)0e(APDU长度)a0 ca(发送序号)f4 66(接收序号)64(总召唤)01(可变限定结构词)06 00(传送原因:激活)01 00(ASDU公共地址) 00 00 00(信息对象地址)14(召唤品质描述词)  2020/03/30 21:45:45::594TaskId=1 LinkId=85 NodeId=0 ()

说明:

        此帧为召唤全数据激活帧。

Send:68(启动符)0e(APDU长度)f4 66(发送序号)a2 ca(接收序号)64(总召唤)01(可变限定结构词)07 00(传送原因:激活确认)01 00(ASDU公共地址)00 00 00(信息对象地址) 14(召唤品质描述词)  2020/03/30 21:45:45::594TaskId=1 LinkId=85 NodeId=0 ()

说明:

        此帧为召唤全数据激活确认帧。

Send:68(启动符)85(APDU长度)f6 66(发送序号)a2 ca(接收序号)01(单点遥信)f8(可变限定结构词)14 00(传送原因:响应总召唤)01 00(ASDU公共地址)01 00 00(信息对象地址) 01(信息体元素)01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0101 01 01 01 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00  2020/03/30 21:45:45::694 TaskId=1 LinkId=85NodeId=0 ()

注:

        全遥信报文有很多条,只取一条进行说明。

说明:

        此帧为遥信数据帧,分析可变限定结构词f8H,可知其信息对象地址是以00 00 01H为起始地址的连续地址,ASDU中共含120个单点遥信。例如,对照地铁大厦点表可得,此帧中第一个遥信代表控制权限为中心,第二个遥信代表301P521装置工况正常,以此类推,不再赘述。

Send:68(启动符)d5(APDU长度)2e 67(发送序号)a2 ca(接收序号)0d(测量值,短浮点数)a8(可变限定结构词)14 00(传送原因:响应总召唤) 01 00(ASDU公共地址) 01 40 00(信息对象地址) 00 c0 c9 44 00(信息体元素,前四个字节为遥测值,第五个字节为品质描述词)00 00 c6 42 00 00 00 00 00 00 00 00 b8 42 00 00 a0 cb 44 00 00 00 68 43 00 00a0 cb 44 00 00 00 64 43 00 00 80 cb 44 00 00 8a 7f 47 00 00 80 cb 44 00 00 7e7f 47 00 00 00 53 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b9 7f 4700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0 17 44 00 00 80 22 44 00 00c0 11 44 00 00 80 48 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 2020/03/30 21:45:48::744 TaskId=1 LinkId=85 NodeId=0 ()

注:

        全遥测报文有很多条,只取一条进行说明。

说明:

        此帧为遥测数据帧,分析可变限定结构词a8H,可知其信息对象地址是以00 40 01H为起始地址的连续地址,ASDU中共含40个测量值(短浮点数)。例如,对照地铁大厦点表可得,此帧中第一个遥测值为201母线电压,其值为1614,品质正常;第二个遥测代表201进线电流,其值为99,品质正常;以此类推,不再赘述。

Send:68(启动符) 0e(APDU长度)5e 67(发送序号)a2 ca(接收序号)64(总召唤)01(可变限定结构词)0a  00(传送原因:激活终止)01 00(ASDU公共地址)00 00 00(信息对象地址)14(召唤品质描述词)  2020/03/30 21:45:51::444TaskId=1 LinkId=85 NodeId=0 ()

、遥调(模拟量输出)

        遥调用于远程读取修改系统的定值,定值上传一般使用的是短浮点数形。同时,因为控制器一次最多传送10个定值,因此主站需要一次性读取多个点号的定值时,从站会分多次上送。

1、读取(66H)

R:68(启动符)0d(APDU长度)00 00(发送序号)00 00(接收序号)66(读)01(可变结构限定词)05 00(传送原因:请求)01 00(ASDU公共地址)0D 50 00(信息对象地址)

S:68(启动符)10(长度)00 00(发送序号)02 00(接收序号)0b(测量值,标度化值)01(可变结构限定词)0a 00(传送原因:激活终止)01 00(ASDU公共地址)0D 50 00(信息对象地址) 02 00 00(信息体元素,前2个字节为定值内容,后一个字节为品质因数)

注:

        若读取多个定值,只需改变下行报文中的可变结构限定词即可,一般为顺序读取。分次上送时,只有最后一帧报文的传送原因为00 0aH,其余帧均为00 50H。

2、设点(31H)

        设点命令根据数形不同,指令各不相同。这里以31H(标度化值)为例:

R:68(启动符)10(APDU长度)02 00(发送序号)04 00(接收序号)31(设点命令,标度化值)01(可变结构限定词)06 00(传送原因:激活)01 00(ASDU公共地址)0D 50 00(信息对象地址)02 00 00(信息体元素,前2个字节为定值内容,后一个字节为品质因数)

S:68(启动符)10(APDU长度)00 00(发送序号)02 00(接收序号)31(设点命令,标度化值)01(可变结构限定词)07 00(传送原因:激活确认)01 00(APDU公共地址)0d 50 00(信息对象地址)02 00 00(信息体元素,前2个字节为定值内容,后一个字节为品质因数)

注:

        若设置多个定值,只需改变下行报文中的可变结构限定词即可,一般为顺序设置。

、遥脉(电度量)

        电度可以在对时之前发送。通过设置参数中”全数据扫描间隔”,单位是分钟,一般是15分钟召唤一次电度,如果不需要召唤电度一定要将参数中的电度个数设为0。

        在遥脉报文中有两个参数(计数量品质描述词、计数量召唤限定词)需要注意,其结构如下:

        来看顺序记号,IV为有效标志位(0有效,1无效),CA为调整标志位(0上次读数后未调整,1上次读数后被调整),CY为溢出标志位(0无溢出,1溢出),组内顺序号取值范围为0~31,表示此帧内电度值的顺序。

        接着是计数量召唤命令限定词(QCC),FRZ代表冻结命令词(0意为读,无冻结或复位;1意为计数量冻结不带复位,被冻结的值为累计量;2意为计数量冻结带复位,被冻结的值为累计量,3意为技术量复位)。RQT代表请求限定词(0未定义,1~4代表电度分组召唤,5代表电度总召唤,5~31兼容定义保留,32~63专用范围保留)

        电度量在电能脉冲召唤命令(65H)下,按“冻结→冻结返回→返回电度量”的方式执行。其报文如下所示:

R:68(启动符)0e(APDU长度)04 00(发送序号)0c 00(接收序号)65(电能脉冲召唤)01(可变结构限定词)06 00(传送原因:激活)01 00(ASDU公共地址)00 00 00(信息对象地址)45(QCC)

S:68(启动符)0e(APDU长度)0c 00(发送序号)04 00(接收序号)65(电能脉冲召唤)01(可变结构限定词)07 00(传送原因:激活确认)01 00(ASDU公共地址)00 00 00(信息对象地址)45(QCC)

S:68(启动符)1a(APDU长度)0e 00(发送序号)06 00(接收序号)0f(不带时标的遥脉值)02(可变结构限定词)05 00(传送原因:请求或被请求)01 00(ASDU公共地址)01 64 00 (信息对象地址)00 00 00 00 00 00(信息体元素,前4个字节是遥脉值,第5个字节是顺序记号)02 64 00 00 00 00 01

S:68(启动符)0e(APDU长度)14 00(发送序号)06 00(接收序号)65(电能脉冲召唤) 01(可变限定结构词)0a 00(传送原因:激活终止) 01 00(ASDU公共地址)00 00 00(信息对象地址)45(QCC)

说明:

        报文中其他内容都没什么好说的,主要说下计数量召唤命令限定词(QCC),45H=0100 0101B,那么FRZ=1,即代表计数量冻结不带复位,被冻结的值为累计量。RQT=5,即代表电度总召唤。

        在本司现场仪表中,不采用冻结机制,所以其QCC为05H,其FRZ=0,即读,无冻结或复位。另由于本司调度后台不识别遥脉的品质因数,所以顺序记号中不再带有品质因数,纯用做顺序记号。

        关于电度量冻结这里解释一下,为了统计全系统的电度量,要求在统一时间同时读取各厂站的电度量,所以需要对电度量进行冻结。一般来说,每一电度量都有两套计数器:主计数器和副计数器。任何时候主计数器的值都反映了所测时段的电能量。但发送到调度的电度量值总是副计数器的值。主计数器和副计数器的关系是:在收到统一读数的“电度冻结”命令后,副计数器的值就保持不变,等于收到“电度冻结”命令时主计数器的值;而在结束电度值上送会话后,副计数器又重新跟随主计数器,两者的值保持一致。

        对于要求比较高的厂站,电度解冻需要通过下列两种方法解冻:1、调度下发命令被动解冻,2、厂站传送3次电度量后自行解冻。

        一般整个遥脉传输过程为:冻结→冻结确认→读取→读取确认→传输遥脉→读取结束。

Ⅵ、对时

        对时命令使用条件:1、网络中的最大延时不会超过400ms;2、被控站的所要求的精度为1S。综上,时钟同步命令一般不再104规约中应用。

        若网络延时很大或者子站所要求的准确度很高(例如1ms),则变电站综合自动化系统必须安装精确度很高的全球定位系统(GPS)。

        若使用的话,时钟在系统初始化以后由控制站进行初始化同步,然后再以发送APDU定期同步,一般默认为20min。其报文如下所示:

R:68(启动符)14(APDU长度)02 00(发送序号)0a 00(接收序号)67(时钟同步)01(可变结构限定词)06 00(传送原因:激活成功)01 00(ASDU公共地址)00 00 00(信息对象地址)01 (毫秒低位)02(毫秒高位)03(分钟)04(时) 81 (日与星期)09(月) 05(年)

S:68(启动符)14(APDU长度)0c 00(发送序号)04 00(接收序号)67(时钟同步)01(可变结构限定词)07 00(传送原因:激活确认)01 00(ASDU公共地址)00 00 00(信息对象地址)01 (毫秒低位)02(毫秒高位)03(分钟)04(时) 81 (日与星期)09(月) 05(年)

说明:

        1、当子站需要接受主站的校时,收到校时报文后直接修正本地时间即可。由于网络路由延时的随机性,不像101规约会进行延时采集和传递。

Ⅶ、测试

        测试过程用于检查从控制站到被控站及其返回的全部路径。测试命令是控制站发出“测试命令”报文。被控站发出ASDU的镜像报文,即“测试确认”报文。控制站比较已发出的“测试命令”报文和镜像报文,如果两个报文一致,则其测试结果是好的。其报文如下所示:

R:68(启动符)0f(APDU长度)14 00(发送序号)28 00(接收序号)68(测试)01(可变限定结构词)06 00(传送原因:激活)02 00(ASDU公共地址)00 00 00(信息对象地址)aa 55(固定测试字)

S:68(启动符)0f(APDU长度)28 00(发送序号)16 00(接收序号)68 (测试)01(可变限定结构词)07 00(传送原因:激活确认)02 00(ASDU公共地址)00 00 00(信息对象地址)aa 55(固定测试字)

说明:

        1、固定测试字(FBP),顾名思义,它是固定不变的,恒为aa55H;

        2、通常主站如果发现接收误码,可以发出测试命令,启动测试过程,计算通道的最新误码率,然后可以根据需要切换至备用通道或者重新启动链路建立过程。

Ⅷ、复位进程

        104协议在链路层和应用层2个层面提供复位功能。在实际应用中,难免会出现厂站端远动通信装置死机或数据不刷新的现象。当出现上述问题时,使用复位进程命令很可能能够临时解决上述问题,这对于无人值守的变电站有很大的意义。

        如果主站发现发出的命令仅得到链路层的确认,那么从站的应用层一般已经出现异常。如果从站严格将链路层和应用层分层,并支持应用层的单独复位,那么主站就可以发送复位进程命令,从而通过复位快速解决从站的应用层故障异常。这种复位形式俗称软复位。

        而在工程实践中,通常不支持软复位(应用层的单独复位),一般在接收到主站的复位进程命令后,会直接将整个通信程序重启。

        其报文如下所示:

R:68(启动符)0e(APDU长度)00 00(发送序号)0a 00(接收序号)69(复位进程)01(可变限定结构词)06 00(传送原因:激活)02 00(ASDU公共地址)00 00 00(信息对象地址)00(QRP)

S:68(启动符)0e(APDU长度)0c 00(发送序号)00 00(接收序号)69(复位进程)01(可变限定结构词)07 00(传送原因:激活确认)02 00(ASDU公共地址)00 00 00(信息对象地址)00(QRP)

说明:

        1、复位流程:复位进程命令下发→复位进程命令确认→四次挥手(子站发起)→三次握手(主站发起)→STARTDT激活STARTDT确认→“初始化结束”报文。倒数二、三步为U帧,后文中会进行详述。

        2、QRP为复位进程命令限定词。0为未采用,1为进程的总复位,2为复位事件缓冲区等待处理的带时标的信息,3~127为兼容范围保留,128~255为专用范围保留。

Ⅸ、初始化结束

        通讯双方,任何一方重新上电后都有初始化的过程,在通讯之前双方必须建立链接,只有链路完好后方可交换应用数据。链接的关闭释放可以由主站或从站提出,但链接的建立只能由主站发起。

        主站和从站初始化过程分为以下三种情况:

        1、主站的就地初始化

        主站的就地初始化可以由电源的重启引起。在恢复通信时,由于所有数据均无效,因此所有数据均需立即重新召唤。

        2、从站的就地初始化

        从站的就地初始化可以由电源的重启引起。如果主站进行操作时,由于从站对主站报文的不确认,主站可以认为与从站的连接被中断了。

        3、主站的远方初始化

        从站的远方初始化可以由主站的“复位进程命令”报文来启动。从站必须用“确认复位进程命令”报文来响应。

        如何对以上情况进行区分呢?那就是初始化原因(COI),其结构如下所示:

        由上图可知,初始化原因包含了7位具体服务原因和1位当地参数改变标志。其中D0~D6为初始化原因,0代表当地电源合上,1代表当地手动复位,2远方复位,当初始化原因为其他值时,是未定义的,可由主从站双方自由定义;D7为参数标志,0代表本次初始化没有改变当地参数,1表示本次初始化改变了当地参数。

Ⅹ、其他

        这部分集中了一些比较多变或自定义或目前未在本司采用的类型标识,仅作为了解。

        继电保护装置事件(类型标识为38)、继电保护装置成组启动事件(类型标识为39)、继电保护装置成组输出电路信息(类型标识为40)根据设备厂家及设备型号不同,存在差异,需结合厂家资料理解。

        定值的读写除上文中提到形式,需要注意的是有厂家会使用自定义的类型标识。

        参数下装(110~113)用于改变已定义的参数,例如死区值定义了模拟量数据被传输的阈值。它只能作为操作命令从主站发出,从站回复“下装参数报文”确认报文作为响应,之后主站下发参数激活指令。被下装的参数必须保存在永久存储器内,以确保从站在重新启动时,这些参数能正确加载。

        文件传输这块,本司未涉及此块。这里仅做简要介绍,文件传输服务主要用于召唤终端的历史数据文件(如SOE事件记录、遥控操作记录、极值数据等)、录波文件等,文件传输过程分为召唤目录和文件传送过程,需要主站主动发起文件传输过程,文件传输宜采用7z压缩格式进行传输。接收方在收到以.7z结尾的文件时,将该文件以压缩格式进行处理,其余情况均按照非压缩格式处理。

说明:

        1、故障录波传输通常只采用配置文件(CFG)和数据文件(DAT)两个文件,其中配置文件采用ACSII格式,数据文件采用二进制格式。

        2、故障录波应包含故障发生时刻前和故障发生时刻后的波形数据,故障前不应少于4个周波,故障后不应少于8个周波。录波点数为不少于80点/周波,录波数据应包含A相电压、B相电压、C相电压、零序电压、A相电流、B相电流、C相电流、零序电流和遥信通道信息。

        3、数据文件(DAT)包含记录中每个采样所有输入通道的值。数据文件包含一个顺序号和每次采样的时标。这些采样值除记录模拟输入数据外,也记录状态,即开/关信号的输入。

        4、配置文件(CFG)用于正确地说明数据文件的格式。该文件诠释了数据文件所包含的信息,如通道信息(名称、单位、转换系数)、通道类型和数量、线路频率、采样速率等。

        另外根据用户需求,也会增加一些功能,如远程软件升级、下发计划值曲线。这些都要结合地方标准或厂家资料进行分析。

说明:

        1、计划值曲线是调度机构规定的电厂的出力计划,是电厂发电考核、发电电价结算的依据之一。电厂控制系统必须根据计划值曲线运行。

⑵U帧

Ⅰ、报文格式

        不编号的控制功能格式(U帧),控制用报文,一共6种,如下图所示:

从上表可以看出,U帧控制域的第2、3、4字节均固定为00H,但字节1中包含了TESTFR,STARTDT,STOPDT三种功能,同时只能激活其中的一种功能。

、通讯的建立

1、TCP连接的建立

        从站RTU作为服务器,在建立TCP连接前,应一直处于侦听状态并等待主站的连接请求,当TCP连接已经建立,则应持续地检测TCP连接的状态,以便TCP连接被关闭后能重新进入侦听状态(调用SOCKET的LISTEN函数)并初始化一些与TCP连接状态有关的程序变量。

        主站作为客户机,在建立TCP连接前,应不断地向站端RTU发出连接请求(调用SOCKET的CONNETCT函数),一旦连接请求被接收,则应监测TCP连接的状态,以便TCP连接被关闭后重新发出连接请求。

说明:

        ①套接字(SOCKET)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。通俗来说,套接字可以看成是两个网络应用程序进行通信时,各自通信连接中的一个端点。通信时,其中的一个网络应用程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过网络接口卡的传输介质将这段信息发送给另一台主机的Socket中,使这段信息能传送到其他程序中。因此,两个应用程序之间的数据传输要通过套接字来完成。套接字SOCKET=(IP地址:端口号)。

        ②每次TCP连接被建立后,主站和从站应将发送和接收序号清零,并且子站只有在收到了调度系统的STARTDT后,才能响应数据召唤及循环上送数据,但在收到STARTDT之前,子站对于遥控、设点等命令仍然响应。

2、数据传输的启动

        当TCP连接建立后, 连接上的用户数据传输不会从被控站自动激活。 即,当一个连接建立时STOPDT处于缺省状态。在这种状态下,被控站并不通过这个连接发送任何数据,除了未编号的控制功能和对这些功能的确认。控制站必须通过这个连接发送STARTDTact指令来激活这个连接中的用户数据传输。被控站用STARTDTcon 响应这个命令。如果STARTDT没有被确认,这个连接将被控制站关闭。这意味着站初始化之后, STARTDT必须总是在来自被控站的任何用户数据传输(例如,一般的询问信息)开始前发送。任何被控站只有在发送STARTDTcon后才能发送待发用户数据。

        当应用层的数据传输被成功激活之后,一般首先进行总召唤流程,随后进行对时流程(若有)。

3、数据传输启动流程图

、通讯的中断(计划内)

1、常见的引起通讯中断的情况(TCP连接中断)

        a、主站和从站之间的I格式报文传送出现丢失、错序或者发送U帧得不到应答时,双方均可主动关闭TCP连接,然后进行重连。

         b、主站系统重新启动后将与各个从站重新建立TCP连接。

         c、从站RTU合上电源或由于自恢复而重新启动后,将重新连接。

         d、 从站RTU收到主站的“复位进程命令”报文后,将关闭连接,然后重建连接。

2、数据传输的中断

        当主站需要从一个有效连接切换到另一连接时,主站首先在有效连接上传送一个STOPDTact指令, 从站停止这个连接上的用户数据传输并返回一个STOPDTcon确认。挂起的传输报文可以在被控站收到STOPDTact生效指令和返回STOPTDcon确认的时刻之间发送。收到STOPDTcon确认后,控制站可以关闭这个连接。另一连接上,同样需要一个STARTDT来启动该连接上来自于从站的数据传送。其流程图如下所示:

3、TCP连接的中断

        TCP连接中断采用四次挥手模式,这篇文章为讲解内容为应用层的104规约,所以不在拓展,有兴趣的自己查阅资料。

、U帧的测试帧

        未激活但已建立的连接通过发送测试APDU( TESTFR=激活)并得到接收站发回的TESTFR=确认,在两个方向上进行周期性测试。

        发送站和接收站在规定时间段内没有数据传输(超时)要启动测试过程。每接收一帧I帧、S帧或U帧将重新触发定时器t3.。

        测试帧主从站都可以发送,一般由从站监视连接,但是如果主站发来测试帧,那从站就不监视连接了。

        测试过程也可以在激活的连接上启动,这些连接缺乏活动性,但需要确保连通。

、总结

        首先通讯建立的过程中分为网络层的连接建立及应用层的连接建立,这点需要分清,其次网络层连接的中断可以直接进行,并不需要发STPPDT命令。

        STARTDT/STOPDT是一种控制站激活/解除激活监视方向的机制。 控制站即使没有收到激活确认,也可以发送命令或者设定值。发送和接收计数器继续运行,它们并不依赖于 STARTDT/ STOPDT的使用。

        另104协议中的几个定时器将在基础知识中讲解。

⑶S帧

        编号的监视功能格式(S帧),用于无应用数据可传输时,确认对方的发送。其控制域格式如下:

        从上表可以看出,S帧的控制域1+控制域2已经被固定为0001H,即S帧不存在发送序号,只有接收序号。其报文如下所示:

R:68(启动符)04(APDU长度)01 00 (控制域1+控制域2)2e 04(接收序号)

        主站可按频率发送S帧,比如接收8帧I帧回答一帧S帧,也可以接收1帧I帧就应答1帧S帧。与104规约中的特定参数有关。这些参数下文的基础知识中会有介绍。

        其流程图如下所示:

    好好消化一下,小电工马上回来!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345