基于VxWorks系统的GOOSE实现及其在数字化变电站中的应用

时间:2022-08-12 04:15:02

基于VxWorks系统的GOOSE实现及其在数字化变电站中的应用

【摘要】GOOSE是IEC61850定义的一种面向通用对象的变电站事件模型, 其解决方案是数字化变电站的亮点之一,去除装置之间、控制屏之间硬连接线的优点非常明显。本为结合VxWorks操作系统,从时序性、可靠性、报文的传输机制等几方面给出GOOSE实现方式,以及数字化变电站GOOSE技术继电保护应用方案,并已在实际工程中得到了应用。

【关键词】IEC61850;GOOSE;数字化变电站;传输机制

1.引言

GOOSE是通用面向对象的变电站事件的简称,在分布式变电站自动化系统中,智能电子设备共同协作完成自动化功能的应用场合越来越多,这些功能完成的重要前提是电子智能设备之间通信可靠性、实时性、一致性,基于此,61850定义的了通用变电站事件模型提供了快速和可靠的系统范围内传输信息。GOOSE在符合IEC61850的数字化变电站中具有广阔的应用前景。目前除了被应用于传送实时跳闸信号、间隔逻辑闭锁、检同期等功能外,基于GOOSE的分布式母线保护、分布式备自投、分布式低频减载等功能也开始在工程中应用。继电保护采用GOOSE机制后将大量减少二次电缆的设计、施工、调试工作,有效解决二次回路的电磁干扰,避免回路接触不良等情况,并可实现继电保护装置的状态检修。本文从可靠性的角度,结合VxWorks内核的特点,对GOOSE的实现机制进行了分析。

2.GOOSE报文传输机制

IEC61850标准针对变电站所有功能定义了比较完备的逻辑节点和数据对象,并提供了完整的描述数据对象模型的方法和面向对象的服务。这些抽象的通信服务、通信对象及参数通过特殊通信服务映射到底层应用程序。

图1

GOOSE报文的发送按照图1所示的规律执行。其中T0即心跳时间,(T0)为可能被事件打断的心跳时间,T1为事件发生后,最短的传输时间,T2、T3为直到获得稳定条件的重传时间。

a)GOOSE控制块自动使能,装置上电时,自动按数据集变位方式发送一次,将自身的GOOSE信息初始状态迅速告知接收方。第一帧状态改变计数器StNum = 1,此后装置平均每个T0时间发送一次当前状态,即心跳报文。GOOSE报文心跳间隔由系统配置工具在GOOSE网络通讯参数中的MaxTime参数中配置。

b)当GOOSE数据集中任何一个数据发生变化,装置马上发送改数据集的所有数据,然后间隔T1发送第二帧及第三帧,第四帧T2为2×T1,第五帧T3为2×T2,后续报文的发送时间间隔以2倍的规律逐渐增加,最后报文恢复心跳报文。T1由系统配置工具在GOOSE网络通讯参数中的MinTime 参数中设置。GOOSE报文变位后StNum+1,事件序列计数器SqNum=0。

c) GOOSE报文中含有报文允许生存时间Time Allow to live,超过2倍的生存时间没有收到报文即判接收超时。

3.基于VxWorks的GOOSE

3.1 VxWorks定时机制

VxWorks下提供了几种定时/延时机制,taskDelay提供了一个简单的任务睡眠机制,它的格式是STATUS taskDelay(int ticks /* number of ticks to delay task */),可以看出使用该函数实现延时的单位为tick(一般系统中一个tick都是ms级的)。在VxWorks下可以这样使用taskDelay()函数:taskDelay(sysClkRateGet()*1)。函数sysClkRateGet()返回系统的时钟速率,单位是tick数/每秒(利用函数sysClkRateSet()可以改变系统的时钟速率)。GOOSE发送时间是以ms时间递增,设置系统的时钟速率为1000,可以实现Goose任务ms级的唤醒。

3.2 VxWorks消息机制

GOOSE依赖于应用服务任务和GOOSE任务。VxWorks任务之间的通信方式有多种,这里采用的是消息队列方式,可以携带更多的有效信息。

当应用服务任务监视到某个GOOSE发送控制块所引用的数据集数据有变化时,调用VxWorks的消息发送函数msgQSend(),向GOOSE任务发送相应数据集变化信息。GOOSE任务悬挂等待消息唤醒。

GOOSE任务唤醒后,根据唤醒原因,判断是初始发送,数据变化发送,重复发送,定时发送调用不同的发送处理函数,对发送缓冲区和变量编码、组织报文发送。

3.3 VxWorks网络发送

GOOSE应用层专门定义了协议数据单元,经表示层编码后,不经TCP/IP协议层,直接映射到数据链路层和物理层。为了便于网络驱动程序和协议的开发,要求驱动程序和协议之间的耦合较松,所以VxWorks在协议层和数据链路层时间加了MUX层。在开发网络设备驱动时,程序员不需要考虑协议的影响,只要实现MUX提供的接口,同样,在开发协议时,也不需要考虑下层驱动的影响,只要遵循MUX层接口规范。VxWorks产生一个初始化网络任务,该任务调用muxDevLoad()例程把设备加载到系统中。设备加载成功后,函数muxDevStart()激活该设备,并为驱动程序注册一个中断服务例程。配置MUX层的服务地址映射,需要用到函数muxAddrResFuncAdd()和muxMCastAddrAdd()。注册服务地址映射函数为驱动程序和相应的网络协议提供需要的地址映射函数。一个网络协议提供一个例程给驱动程序分配一个网络服务地址。这个例程通过调用muxBind()例程把协议和驱动程序绑定起来。完成这一步后,网络协议就可以跟通信设备进行mux层数据收发了。 在实现向指定网卡发送GOOSE报文时调用muxSend()函数即可。MuxSend()将GOOSE报文移入到协议的待发送队列后由系统重新发送。

4.GOOSE工程应用

GOOSE机制是分布式保护或分布式自动化赖以实现的基础,其可靠性和实时性的优点使得GOOSE机制具有广阔的应用前景。不仅可以用于间隔层与过程层设备之间的纵向联系如跳闸信息等,而且还可以用于间隔层设备的横向联系,保护和测控等智能IED之间可以互相交换信息,更好地满足未来数字化变电站的互操作和功能自由分布的要求。GOOSE的应用改变了传统二次设计和实施过程。采用了GOOSE以后,二次电缆连线的设计和连接工作变成了GOOSE通信组态和GOOSE配置文件的下载。GOOSE的输入、输出与传统端子排任然存在对应的关系。因此,引入虚端子的概念将保持现有二次设计的规范改变最小,各二次设备厂家可以根据传统设计规范设计并提供其装置的GOOSE输入、输出端子定义。

在目前阶段的方案中,保护装置GOOSE

输入定义采用虚端子的概念,在以“GOIN”为前缀的GGIO逻辑节点实例中定义DO信号,这些DO信号与GOOSE外部输入虚端子一一对应,通过该GGIO中DO的描述和dU可以确切描述改信号的含义,作为GOOSE连线的依据。工程集成商以及施工调试人员可以通过GOOSE组态工具按照设计部门的设计图纸进行施工和配置。

5.结论

总的看来,Goose通信结构的选择是以传输速率和网络资源为出发点的。而由于无连接的网络在可靠性方面的缺陷,引进了重发机制,同时为避免重发引起的网络负荷过大,进行了重发时间间隔的控制。并且引入了优先级标志/VLAN,来保证Goose报文的发送性能。本文结合VxWorks操作系统内核的特点探讨了基于Vxworks实现IEC61850 GOOSE实现方案,结合在保证报文的实时性和可靠性的同时,在变电站中实现以软接线代替硬接线。

参考文献

[1]徐成斌,孙一民.数字化变电站过程层GOOSE通信方案研究[J].电力系统自动化,2007,31.

[2]窦晓波,周旭峰,胡敏强,等.IEC61850快速报文传输服务在VxWorks中的实现[J].电力系统自动化,2008,32.

[3]Q/GDW 396-2009.IEC61850 工程继电保护应用模型.

[4]孔祥营,柏桂枝.嵌入式实时操作系统VxWorks及其开发环境Tornado[M].北京中国电力出版社,2002.

作者简介:满威(1977—),女,2003年毕业于哈尔滨理工大学控制理论与控制工程专业,哈电集团•阿城继电器股份有限公司哈尔滨研发中心设计员,主要从事嵌入式系统基础开发、变电站综合自动化系统保护产品的研究与开发以及IEC61850数字变电站产品研发工作。

上一篇:运用现代技术 构建魅力课堂 下一篇:基于Lab Windows/CVI技术虚拟特征信号提取仪的...