APP下载

EAST极向场电源本地控制器软件设计与实现

2018-02-05,,

计算机测量与控制 2018年1期
关键词:共享内存管理程序整流器

,, , ,

(中国科学院合肥物质科学研究院 等离子体物理研究所,合肥 230031)

0 引言

超导托卡马克核聚变实验装置(experimental advanced super-conducting tokamak,EAST)是国家“九五”重大科学工程。极向场电源系统是托卡马克装置的核心子系统之一,由12组独立可调的晶闸管相控变压器向14组相互耦合的极向场超导线圈供电[1],对于装置运行的性能与安全,物理实验的成败与效率,有着至关重要的作用。

随着极向场电源控制系统硬件的升级,各部分软件也进行了全面重新设计。如图1所示为升级后的极向场电源控制系统结构,包括核心控制、数据采集、设备监控、同步控制4层。核心控制实现变流器实时控制及实时保护,数据采集包括分布式采集与数据库,设备监控包括主控制器、监控系统、本地控制等,同步控制实现各控制器对时。

本地控制器程序运行于QNX系统,原有的一台本地控制程序控制一套电源[2-3],升级后控制两套电源。升级后的本地控制器软件采用主从架构,更换模拟采集板卡、数字输入输出板卡等,同时重新设计其驱动与应用程序,对整流器移相控制由模拟量输出控制改为数字移相输出控制,改变与现场总线的通信方式及数据处理方式,对现场总线通信性能进行测试并优化。设计有序的故障检测逻辑,增加状态机实现系统状态的有序转换。

图1 EAST极向场电源控制系统

1 系统设计及实现

1.1 系统设计

如图2所示为一台本地控制器程序框图,包括主程序与从程序,主程序为一个管理程序,从程序为两个控制程序。管理程序根据接收到的来自主控制器的配置信息,启动或者停止控制程序,二者通过共享内存进行数据交互。管理程序包括多个进程,进程间通过共享内存实现数据读写操作,脉冲式消息传递触发进程的执行。管理程序通过现场总线实现对设备状态的搜集与开关控制,通过数字输入输出板卡cPCI-7432实现对晶闸管开关与旁通的控制,通过模拟信号采集板卡PXI-6220采集电流信号,通过反射内存网络与主控制器进行数据交互,同时管理程序实现系统逻辑处理、故障检测与状态转换。控制程序通过alpha板卡实现对整流器的相位控制,根据当前运行模式下采集的电流判断整流器是否正常运行,将状态上报给管理程序。

图2 电源控制器程序框图

1.2 进程间数据交互

QNX系统进程间数据主要交互形式包括消息传递、信号、消息队列、共享内存、管道等。共享内存是被多个进程共享的一部分物理内存,是进程间共享数据高性能、最快速的方法,一个进程向共享内存区域写入数据,共享该内存区的其他所有进程都可以立即看到其中的内容,即对共享内存的读写是非同步的。本地控制器需要实现实时控制,要求各个进程间能够进行快速的数据交互,各个进程只是对部分变量进行操作,所以本文选择共享内存作为进程间数据交互的方式。管理程序中各个进程之间的共享内存操作如图3(a)所示,管理程序对共享内存访问的频率和占用互斥的时间较少,故管理程序内部共享内存为一块,同时具备读写的权限。管理程序与控制程序之间的共享内存操作如图3(b)所示,二者之间的访问频率较高,为了避免互斥等待时间过长,设置双通道单工的共享内存区,即一片共享内存区仅具备单向的写能力和另一方仅具备单向的读能力,以降低互斥的几率提高共享内存数据的周转速度。

图3 共享内存操作

1.3 进程执行逻辑

管理程序包括多个进程,进程执行逻辑是个关键问题,本文在定时器进程中定义定时器,定时到后向其它进程发送脉冲触发信号,其它进程阻塞式等待接收脉冲。消息传递(Message passing)是进程间通信的一种方式,以客户/服务器模式实现。如图4所示为定时器进程(客户端)与模拟采集进程(服务端)之间的脉冲消息传递过程。定时器自身定时250 us,模拟采集进程触发周期1 ms。脉冲式消息传递过程如下:

1)客户端与服务端建立消息传递通道;

2)客户端向服务端发送脉冲信号,不等待服务端回复,即客户端不阻塞;

3)服务端阻塞式等待接收脉冲信号,接收到脉冲后解除阻塞。

图4 进程触发逻辑

对于接收脉冲的服务端,使用动态内存池对象将脉冲信号进行排队。如果脉冲产生速度大于服务端处理速度,那么内存占用过多导致没有空间留给后续脉冲,内核不再响应脉冲请求,从而导致错误。所以服务端执行周期的选择至关重要。根据极向场电源运行特性,整流器运行周期为1 ms,所以进程执行周期尽量不大于1 ms。现场总线进程1 ms读写周期时丢包严重且读写的是慢信号,根据测试选择4 ms周期。如图5所示为各进程执行时序图。现场总线在4 ms周期内可以正确的读写数据,其他进程在1 ms周期内都可以正确且长期稳定的执行,满足系统要求。

图5 管理程序各进程执行时序

1.4 与主控制器数据传输

本地控制器与主控制器通过反射内存网络实现控制、状态与数据交互。接收主控制器的控制参数,实现对开关与整流器的控制,同时将信号状态、故障代码等上传给主控制器,根据主控制发送的状态请求,控制设备进入不同的运行阶段,从而实现系统状态转换。反射内存(RFM)网络是一种基于光纤的超高速共享内存实时网络,由反射内存板卡通过光纤或同轴电缆等传输介质连接而成,主要有环形连接和星型连接两种网络拓扑结构。本文采用环型网络连接,通过光纤将各控制器连接到光纤交换机。使用反射内存卡PMC-5565,其使用方式是简单的读写内存,读写双方设置同一块内存区域,一方可随时写入数据,另一方可随时读取数据。所以反射内存程序设计中关键是物理内存地址的映射,读写双方保持地址一致。如下图所示为内存区域设置。

图6 本地控制器反射内存起始地址设置

反射内存卡不需要网络协议,直接硬件操作,与以太网等传统的网络相比具有更低的网络传输延时、更快的传输速度[4]。如图7所示为读写数据延时测试。CH2为主控制器端,CH3为本地控制器端。图7(a)主控制器向本地控制器写入128字节的数据,平均延时时间为137 us,图7(b)本地控制器向主控制器写入88字节的数据,平均延时时间为69.6 us。

图7 反射内存读写数据延时测试

1.5 整流器运行控制与状态检测

控制程序实现对整流器的运行控制与状态检测。整流器运行模式包括单桥运行、正桥并联运行、反桥并联运行、环流运行与四象限运行。如图8所示为整流桥运行控制与状态检测基本框图。根据预设电压、运行模式以及读取的整流器电流,打开对应桥的脉冲封锁,计算其移相角度,输出到alpha板卡,从而实现对整流器的相位控制。通过模拟采集板卡PX-6220读取的电流还用于整流器运行状态判断,包括过流、环流、差值状态等,控制程序将整流器状态通过共享内存传输给管理程序,管理程序将其上报给主控制器。以四象限运行模式为例,该运行模式根据采集的总电流idc来判断整流器当前应该处于哪个运行模式,可能经历环流阶段、正向单桥阶段、正桥并联阶段、反向单桥阶段、反桥并联阶段。整流器电流处于不同的范围,对来自主控制器的预设电压经过不同的分析计算、逻辑比较等处理,获得移相角,该移相角通过数字alpha板卡输出实现对整流器的相位控制。

图8 整流器运行控制与状态检测

1.6 现场总线数据通信

图9 现场总线对设备的控制与状态获取

本文现场总线使用Wago模块[5],现场总线控制器通过电口交换机与本地控制器网络连接,采用Modbus UDP通信协议,单播通信方式。现场总线进程负责采集现场设备数字信号与模拟信号、失超保护时打开快速开关以及控制晶闸管电容充放电开关。如图9所示为现场总线进程实现框图。现场总线进程包括主线程与接收线程。主线程创建与定时器进程的消息传递通道,定时器进程每4 ms向现场总线进程发送定时到脉冲。主线程接收到定时脉冲后向现场总线控制器发送数据请求信号,并发送开关控制信号。接收线程阻塞式等待接收数据,接收到数据后,对数据包进行解析,根据解析出的对方IP判断数据来自哪个设备,从而将信号赋值给对应设备的变量。现场总线通信信息帧包括信息头与信息内容,信息头中最重要的是功能代码,信息内容包括数据个数(字节数或者位数)与实际数据。

图10 现场总线读取数字信号信息桢设置及返回数据包

图12 本地控制器故障检测

如图10(a)所示为读数字信号时的Modbus请求信息帧,图10(b)为现场总线控制器返回的数字信号信息帧。读数字信号功能代码为0x01,同时需要在数据区填写需要读取的数字信号个数(Bit count)。现场总线返回的头信息包含了功能代码,以供判断返回的是模拟信号还是数字信号,返回的字节个数为0x01,数据为0x75,本地控制器管理程序取出一个字节的数据buffer[9],并逐位赋给对应变量即可。若返回数据不止一个字节,则依次向后递推,即buffer[10]、buffer[11]等。

如图11所示为现场总线收发延时测试,即向现场总线写入数据,然后阻塞式等待接收数据,收到回复数据与发送数据请求的时间差值记为延时。本次测试收发延时平均值为471 us,最大延时超过1 ms。丢包测试,采用4 ms周期向现场总线控制器发送读数字信号请求,接收线程阻塞式等待接收数据,测试程序在4 ms内检测是否收到数据包,没有收到则为丢包。多次测试的最大丢包率为3/19756987(0.15*10-6)。

图11 现场总线收发延时测试

1.7 系统故障检测

实现对设备的实时监控与保护,有效的故障检测必不可少。本地控制器故障检测原理如图12所示。故障检测分为4个级别,信号级、设备级、程序级与系统级。信号级是信号相关的故障,通过现场总线读取的信号,每个信号都可能导致对应故障位置位或者清零。设备级是设备相关的故障,每个设备都会有n个不同的信号,任意一个信号状态的异常都会导致设备故障。程序级包括管理程序与控制程序故障检测,管理程序管理的设备包括整流器、晶闸管、隔离开关、失超保护系统、旁通、电抗器等,任何一个设备的故障都会导致管理程序故障,控制程序管理整流器运行,整流器运行相关的任何故障都会导致控制程序故障。系统级是指本地控制器故障,管理程序或控制程序故障会导致其故障。任何故障将会使系统进入故障态,阻止系统状态转换,从而实现对设备的保护。

2 测试结果

该程序已在EAST多轮实验中进行测试,如图13所示,为电源PS8运行时的典型电压电流波形,运行模式为四象限运行,关断模式。图中的4个波形分别为参考电压REFV8、桥电流PS8IDCCU1C1、关断电阻电压PS8VDCSNU以及总电流PS8IDC1。

图13 典型电压电流波形

3 结束语

升级后的EAST极向场电源本地控制器程序采用主从软件架构,只有在实验过程中控制程序才会启动,有效的实现了对整流器的控制与保护,同时实现了对现场设备的实时状态检测、设备保护、开关远程控制等,性能稳定,配合完成了EAST 2015~2017年所有的放电实验,最长放电长度102 s。

[1]Gao G,Huang L,Tang L,et al. Upgrade of converter unit of EAST poloidal field power supply[A].Fusion Engineering and Design (SOFE),2011 IEEE/NPSS 24th Symposium on IEEE[C].2011:1-5.

[2]陈海春,傅 鹏,吴 勇. 基于QNX的实时电源控制系统的设计[J]. 计算机测量与控制,2004,12(5):431-434.

[3]何诗英,傅 鹏,杨亚龙. 基于QNX的EAST极向场电源现场层实时控制的设计与实现[J]. 化工自动化及仪表,2011:44-47.

[4]郑 锐,傅 鹏,何诗英. 反射内存网在EAST极向场电源控制系统中的实现[J]. 化工自动化及仪表,2009,36(3):64-66.

[5]郭 威,孟宪伟,王晓辉. WAGO750模块与PC机之间的通讯[J]. 仪器仪表学报,2005,26(8):511-515.

猜你喜欢

共享内存管理程序整流器
军事保密管理程序法治化及其对军民协同创新发展的促进研究
三电平PWM整流器下的地铁牵引供电系统探讨
通过QT实现进程间的通信
基于PCI总线的多处理器协同机制研究
关于EPC总承包项目设计管理程序文件的研究
三相电压型PWM 整流器研究
PWM整流器启动瞬时电流过冲抑制策略
三相PWM整流器解耦与非解耦控制的对比
QNX下PEX8311多路实时数据采集的驱动设计
FMC移动性管理程序