智能配电终端遥信单元的设计与实现*

2016-03-22 06:55廖晓群
电子器件 2016年1期
关键词:遥信变位规约

廖晓群,秦 静,马 莉

(西安科技大学,西安710054)



智能配电终端遥信单元的设计与实现*

廖晓群,秦静*,马莉

(西安科技大学,西安710054)

摘要:采用STM32F103VE和i.MX287高性能处理芯片,设计了基于ARM9与Cortex-M3双处理器的遥信单元,对硬件总体的结构和遥信输入回路进行了详细的硬件设计,并对遥信单元和通信单元进行了相应的软件设计。依照IEC60870-5-104协议,对整个遥信单元实现了遥信的采集、数据存储及上传、SOE、系统对时、通信等功能。测试证明,遥信单元的设计符合需求规定,具有较好的应用价值。

关键词:双处理器;配电终端;IEC60870-5-104电力规约;遥信单元;SOE

项目来源:陕西省教育厅科技专项项目(14JK1486)

根据国家电网目前对智能电网的发展部署,我国将全面推进智能电网的建设[1]。遥信作为配电终端的重要功能,主要为配电监控中心提供变电站的开关、继电器以及断路器等的状态信息,直接反应电网、变电站的运行状态,是调度人员诊断电网故障的直接依据。然而配电网络在一些干扰情况下会出现遥信的误报,扰乱了调度人员对电网故障的判断,从而引起不必要的损失,甚至出现重大电力事故。加强遥信可靠性的研究,对提高我国供电的可靠性具有重要意义。在这样的背景,本文提出了一整套遥信解决方案,满足遥信在雪崩情况下能够正确上报遥信SOE、遥信SOE的分辨率达到1 ms的国家电力行业DL/T721-2013标准[2]。

本文在对IEC60870-5-104规约[3]和电力行业标准DL/T721-2013进行深入研究的基础上,选用ARMv7架构的32 bit芯片STM32F103VE处理器来设计遥信电路模块,然后采用基于ARM9内核的i.MX287处理器来设计CPU模块,遥信模块位于遥信板,CPU模块位于CPU板,遥信板还可配置不同的数量,来实现多路遥信的采集,多板卡设计可以满足不同的配电场合,具有很强的扩展性。然后在基于硬件的基础上完成遥信模块和CPU模块的软件编程,最后实现了CPU模块与遥信模块的通信、控制、遥信的数据采集与处理等任务。

1 IEC60870-5-104 电力规约简介

IEC60870-5-104电力规约(简称104规约),主要用于变电站远动设备和调度计算机系统之间以太网数据传输协议[4]。104规约是将IEC60870-5-101和TCP/IP提供的传输功能结合在一起,通过以太网实现远动设备和主站的通信功能[5]。

1.1104规约结构

104规约在传输层和网络层采用的是TCP协议,应用层传输的是从104规约和101规约中选取的应用服务数据单元[6],104规约结构如图1所示。

图1 104规约结构

1.2应用规约数据单元(APDU)

应用规约数据单元结构如图2所示。

图2 应用规约数据单元结构

104规约结构中应用规约数据单元(APDU)由应用规约控制单元(APCI)和应用服务数据单元(ASDU)组成[7]。APDU定义了启动字符、应用服务数据单元的长度规范,启动字符表示数据的开始,而应用服务数据单元的长度可以用来传输一个完整的应用规约数据单元。

2 硬件电路设计

2.1遥信系统总体结构设计

遥信单元主要包括两大部分,遥信模块和CPU核心模块,遥信模块主要负责遥信的采集以及将遥信信息通过CAN总线传输到CPU模块,而CPU模块则完成遥信信息的处理以及将遥信信息通过104规约的帧格式上报到主站。遥信单元总体结构框图如图3所示。

图3 遥信系统总体结构框图

2.2遥信模块硬件电路设计

遥信模块设计为32路遥信输入信号,主要对所监控线路的开关以及通信是否正常和储能完成情况等重要状态信息进行采集。遥信输入信号经过光耦PS2501L-1隔离,然后通过SN74HC245D缓冲芯片送到STM32F103VE处理器的FSMC总线上,FSMC将会自动读取遥信数据,最后送入CPU进行遥信的处理。第1路遥信回路如图4所示。其他31路与第1路相同。

图4 遥信输入回路

2.3 CPU核心模块的硬件设计

CPU模块的主要核心模块采用Emtronix公司的EM9287工控主板,上面搭载了FreeScale公司基于ARM9内核的iMX287处理器,454 MHz主频,计算能力强[8]。CPU模块主要完成遥信的采集、数据存储及上传、SOE、系统对时、通信等功能。CPU模块通过母板连接插座与遥信模块进行连接。

注:CPU模块主要采用集成好的核心模块,所以CPU板的开发主要涉及基于Linux-3.9.3操作系统下的软件开发,负责整个系统的通信,数据处理与传输,控制等任务。这将在软件设计与实现的通信模块软件实现部分做详细论述。

3 软件设计与实现

系统软件包括了遥信模块软件实现、通信模块软件实现2个主要部分。下面对这个2个部分的主要功能及它们之间的联系进行详细的分析与设计。

遥信模块主要实现了CAN通信,遥信的采集与处理,向CPU模块发送遥信SOE,在遥信模块设计中对遥信的SOE处理做了详细的设计。给出了CAN通信的详细数据格式。

通信模块主要包括主线程,网口线程和CAN线程3个部分。主要完成CPU模块与维护软件及遥信模块的通信、控制、数据处理。该设计主要采用多线程设计,由主线程对子线程进行调用,从而使各线程去完成各自的任务。软件系统框图如图5所示。

图5 软件系统框图

3.1遥信模块软件设计与实现

遥信模块采用CAN总线与CPU核心模块进行通信,在设计中对CAN协议给出了具体的应用格式,基于CAN总线的系统结构如图6所示。

图6 基于CAN总线的系统结构

CAN帧报文数据由数据包组成,其长度固定,为8个字节,下面给出具体的遥信SOE数据包具体定义如表1所示。

表1 遥信SOE数据包

基于上述CAN的数据传输格式,下面给出具体的CAN收发流程如图7所示。

图7 CAN收发流程

遥信的数据处理主要是遥信SOE分辨率判别处理,而遥信SOE(事件发生顺序)分辨率是指能正确区分遥信变位事件发生顺序的最小时间间隔[9]。在设计中将遥信判别处理函数置于定时中断服务子程序中,每隔1 ms的时间间隔,对全部的遥信量进行一次扫查,完成对遥信的变位检测[10]。当程序检测到有遥信变位,首先记录变位遥信,然后去判断变位遥信点的持续时间是否大于遥信防抖时间,如果大于遥信防抖时间,说明是有效的遥信变位,同时发送遥信SOE,否则是错误遥信,放弃当前变位遥信点,继续进行检测。

定时中断中遥信检测时序如图8所示。

图8 遥信检测时序

遥信SOE分辨率处理是通过SOE的判别处理函数SOE_HAVEDELAY(void)实现,函数在实现时首先需置对时标志,然后循环读取板卡遥信状态,直到读到稳定的板卡遥信状态退出循环,将上述读到的状态转存到遥信当前状态中,接着进行当前态与先前态的比较,有遥信变位则置位遥信变位标志位,遥信变位标志位的值为1时,表示发生了遥信变位,继续循环32点检测具体哪一路遥信发上了变位,并将具体发生遥信变位的信息储存到临时32点状态中,此时开始遥信变位时间计时,接下来对32点遥信状态循环检测,如果发生变位的遥信状态持续时间大于遥信的防抖时间,则认为是有效遥信变位,将当前态覆盖先前态,并将此时的遥信状态加时标进行CAN组包,将组好的数据包写入缓存,这样就完成了遥信SOE分辨率的判别处理[11]。遥信SOE分辨率处理流程如图9所示。

图9 遥信SOE分辨率处理

3.2通信模块软件设计与实现

通信模块,采用Linux的多线程编程技术,多线程程序采用多任务、并发的工作方式,提高了应用程序响应时间并且程序结构清晰。通信模块通过3个线程来实现,通信主线程、CAN子线程和网口子线程,所有线程共享CAN数据缓存区的数据,并设置互斥锁来确保一个时间段内只有一个线程在访问临界区的数据,达到线程间的同步[11]。

通信主线程在上电后,首先完成一些初始化工作以及规约参数的配置,然后就打开CAN口和网口,并分别创建CAN线程和网口线程,各自的线程创建好之后,各线程就会跳到自己的接收线程完成自己的功能。而主线程接着进入主循环体,完成CAN的数据发送,规约组包和定时监测功能。通信主线程流程图如图10所示。

图10 通信主线程流程图

CAN线程采用Socket CAN方式,Socket CAN不像基于字符设备那样每更换CAN控制器,都需要更换设备驱动并且调整应用程序来适应新驱动的应用程序接口。Scoket CAN使用的是socket接口和Linux网络协议栈,这种方法使得CAN设备驱动可以通过网络接口函数来调用,这样就可以采用Linux网络编程来实现CAN通讯[12]。

在主程序中打开CAN口,然后就进入CAN的接收线程。CAN接收线程如图11所示。在CAN的接收线程中进行CAN的数据处理[13]。

图11 CAN接收线程流程图

CAN设备在读取数据时,CAN总线与标准套接字通信有所不同,每一次通信都采用can_frame结构体将数据封装成帧用来接收数据。结构体定义如下:

struct can_frame {

canid_tcan_id;//CAN标识符

__u8 can_dlc;//数据长度

__u8 data[8]__attribute__((aligned(8)));//数据

};

定义CAN发送结构体如下:

typedef struct{

struct can_frame CanTx;//发送数据帧

PACKET CanSend[CANSNUM];//发送报文数组

PACKET *wr;//发送写指针

PACKET *rd;//发送读指针

pthread_mutex_t Lock;//定义互斥锁,防止多线程同时写入

}CANSEND

网口线程主要是用来传输基于104规约的帧结构数据,在主线程中打开网口,等待网络进行连接,当连接以后就会创建网口的线程,创建网口线程的流程图如图12所示。

图12 创建网口线程的流程图

在104规约解析中,将会调用固定帧解包函数sFRAME(void*pcomm)和数据帧解包函数dFRAME (void*pcomm)来分别处理U帧、S帧、I帧的数据。104规约公用数据单元结构体定义如下:

struct IEC101_104_ASDU{Uchar Type;//类型标识

union VOS_REG Vos;//可变帧结构协定词

union COT_REG Cot;//传输原因低字节

UcharCotH;//传输原因高字节

UcharCaddrL;//公共地址低地址

UcharCaddrH;//公共地址高地址

UcharRa[256];//信息对象可变数组

}

新遥信SOE的产生在设计中采用信号量机制,因为遥信SOE的产生有时会很大,但通常情况下遥信又不是时刻会发生变位,为了去判断新遥信SOE的产生,调用遥信板状态获取函数CheckIO(),只要有新的遥信SOE就置遥信事件,释放遥信信号量,对遥信信号量作加1操作,而在网口线程中去申请遥信信号量,一旦申请到遥信信号量就去发送遥信SOE,这样就实现了遥信有变位发送无变位不发送,很好地完成了遥信的上报任务。

4 测试结果及分析

遥信单元主要对遥信雪崩和遥信SOE分辨率进行测试。最终测试要达到遥信在雪崩之后,全部遥信点能够正确上报,遥信SOE分辨率能达到1 ms的标准,下面给出两项测试的结果和分析。

(1)遥信雪崩测试

遥信雪崩测试为极限情况下,所有的遥信点发生变位后都能够准确无误地上报。测试通过对全部的32个遥信点进行一次分合操作,在维护软件的遥信SOE界面观察遥信雪崩情况如图13所示。

图13 遥信雪崩测试结果

对于遥信雪崩测试,由于开关分别进行了分合操作,点号33-64的32个遥信点分和状态之和恰好为64条遥信SOE。测试结果表明,64条遥信SOE在雪崩情况下准确无误上报。

(2)遥信SOE分辨率测试

图14 遥信SOE分辨率测试结果

遥信SOE分辨率的测试主要是测试开关在相间隔一个固定的时间间隔,遥信SOE是否能准确上报,其中这个固定时间就是遥信SOE的分辨率。在测试中,使用继电保护测试仪输出3路开关量,分别代表开关1、开关2、开关3,它们之间合闸的时间相差1 ms,然后同时断开,它们之间合的状态持续时间分别为102 ms、101 ms、100 ms,这就表明遥信SOE的分辨率达到了1 ms的标准。在维护软件中观察遥信SOE界面结果如下图14所示。

由维护软件显示结果可知,测试中选择了3路遥信,对应的遥信点号9、10、11,点号9、10、11它们的时分秒时间都相同,只需分析ms即可。分的时间均为108 ms,然后对应的合时间分别为008 ms、007 ms、006 ms,分合状态对应的时间之差则为开关合的持续时间,它们对应的合闸持续时间为100 ms,101 ms、102 ms。3个开关合闸时间相差1 ms,合闸持续时间相差1 ms,测试结果表明遥信SOE分辨率为1 ms。

5 结论

本文在分析研究IEC60870-5-104规约帧结构的基础上,结合嵌入式技术,设计了上述配电终端遥信单元的软硬件。最后,利用所研发的遥信单元,通过以太网在维护软件下进行测试,验证遥信在雪崩情况下能够正确上报,并且遥信SOE分辨率满足1 ms的技术指标。

参考文献:

[1]智能配电网关键技术及工程实践[J].华东电力,2014,42(7):1346-1350.

[2] DL/T721-2013.电力行业标准[S].北京:中华人民共和国电力工业部,2013:4-9.

[3] DL/T634.5104-2002/IEC60870-5-104:2000.远动设备及系统第5-104部分:传输规约采用标准传输协议子集IEC6O870-5-101网络访问[S].北京:中国电力出版社,2002:88-93.

[4]闫飞飞.基于IEC60870-5-101规约和104规约的FTU的设计与实现[D].西安:西安科技大学,2012.

[5]王雷.基于IEC 61850标准的开闭所监控终端DTU模型研究[D].北京:华北电力大学,2012.

[6]DL/T 634.5101-2002/IEC 60870-5 101:2002基本远动任务配套标准[S].北京:中国电力出版社,2002:14-18.

[7]赵渊,沈智健.基于TCP/IP的IEC60870-5-104远动规约在电力系统中的应用[J].电网技术,2003,27(10):56-60.

[8]张连生.基于ARM的综合电力网络监控仪表的研制[D].山东:山东大学,2012.

[9]周斌,鲁国刚,黄国方.变电站远动装置SOE时间标注方法分析[J].江苏电机工程,2007,26(1):61-62.

[10]谢大卫,杨晓忠.调度自动化系统中远动技术网络化的实现[J].电网技术,2004,28(8):34-37.

[11]柳永智,刘晓.电力系统远动[M].北京:中国电力出版社,2005:80-83.

[12]陈诚.宽带电力线视频监控系统设计[D].重庆:重庆大学,2011.

[13]徐小聪.电能质量监测仪通信程序设计[D].武汉:华中科技大学,2012.

廖晓群(1968-),男,陕西籍,高级工程师,研究方向为行业信息化;

秦静(1985-),男,山西籍,在读硕士,研究方向为基于嵌入式的DTU智能电网监控终端,175986039@qq.com。

Research on Digital FPGA-Based Control Method of Brushless DC Motor

JING Guanghong*

(Department of Mechanical and Electrical Engineering,Chengdu Vocational College of Agricultural Science and Technology,Chengdu 611130,China)

Abstract:In order to achieve a simple and efficient brushless DC(BLDC)motor drive system of the brushless DC motor,a simple model of FPGA is presented based on the digital pulse width modulation(PWM)controller,model and control algorithm. The controller will take BLDC motor flux distribution of the ladder as a digital system,low power and the alternate use of high-powered speed adjustment,it is easy to realize the design and implement. In ad⁃dition,a current sensor design is proposed only by using the DC link to reduce the cost and the complexity of hard⁃ware. And through the simulation experiment of the proposed control method was verified,the results show that the maximum error of the proposed method is decreased below 5%. Therefore,the control technology is very suitable for applications that don't require high accuracy.

Key words:BLDC;field programmable gate array;motion control;pulse width modulation

doi:EEACC:832010.3969/j.issn.1005-9490.2016.01.023

收稿日期:2015-04-02修改日期:2015-05-06

中图分类号:TN710

文献标识码:A

文章编号:1005-9490(2016)01-0104-07

猜你喜欢
遥信变位规约
传统自然资源保护规约的民俗控制机制及其现实意义
基于Python的遥信抑制分析系统
基于无线自组网和GD60规约的路灯监控系统的设计
一种在复杂环境中支持容错的高性能规约框架
一种改进的LLL模糊度规约算法
西班牙语动词变位学习法之探讨
基于图解法的压力机变位齿轮齿根过渡圆弧分析
调度监控系统画面数据信息纠错方法讨论
浅析奶牛真胃变位与日粮精粗比关系
浅谈无人变电所计算机监控系统