摘要 介绍一种多分布传式MARX发生器能源计算机监控系统.详细叙述了系统的硬件构成,计算机与各能源系统之间的通讯原理和通讯协议,以及系统的软件实现,同时简要说明了系统抗干扰解决办法。
关键词 MARX发生器程控电源RS485总线Visual Basic
1 引言
脉冲能源装置在加速器、自由电子激光研究、X光闪光照相和粒子聚变等脉冲功率技术研究领域广泛使用,通常使用数量较多,分布较广,同时周围电磁干扰较强,控制操作和参数测量都比较复杂,同时也需要较多的人力来维护。
随着计算机技术的发展,当今世界上基于PC的自动化方案已成为主流,PC在自动化领域的应用正迅速增长,通过将所有的功能集成于这个统一开放的平台上,通过人机界面可以使复杂的控制和数据处理变得更加简单化。
2控制系统硬件构成
整个系统有多台Marx需要控制,每台发生器由充电控制和触发两部分组成,需要控制的量有充电电压的起停控制、电压检测、接地装置的通断控制、触发以及开关上的气压检测等,通过一条总线将将系统中的各个被控量连接在一起,构成一分布式控制系统,这里采用工业上广泛使用的RS485总线,RS485总线是美国电子工业协会(EIA)制定的平衡发送、平衡接收的标准异步串行总线,具有传输距离远、通讯速率高,抗干扰能力强,软硬件支持丰富与现场仪表接口简单,易于实现和扩展等特点,接口总线上可连接32个设备,加中继器后最多可达255个设备,因此完全满足该能源控制要求。控制系统框图
图1 控制系统结构图
该系统由一台主控上位机PC和一系列MARX发生器充电电源设备构成,由于环境电磁干扰较为严重,在选择通信介质时可优先采用光纤通信方式,通讯速率57.6kB/s,通讯距离可达1.2km,通过上位机(PC)发送参数及控制命令,给电容器充电到事先设定的电压值(0到100kV之间任意值)。在以上各子设备中,经常要用程控电源去控制MARX发生器的充电电压、充电速度。通过一台工控PC机灵活地控制多台充电电源,以达到控制各MARX发生器充电的目的。针对这一需要,采用带有RS485通信接口的具有线性升压功能的可编程交流电源,该电源内部自带单片机系统和看门狗定时器,每个电源赋予各自独立的地址码用以识别身份,同时它属于正弦波调压,可有效避免采用传统的采用可控硅调压方式时屡次损坏高压变压器的情况,使操作者能够方便灵活地对其进行控制。
每路Marx发生器充电部分包括程控电源、双极性高压变压器,分压器和接地装置等三部分,见图2 所示,程控电源给高压变压器初级提供缓慢上升的电压,变压器高压侧经整流后给MARX发生器充电,电压检测是通过10000:1的高压分压器将分压后的信号送给程控电源内部A/D转换,经内部单片机处理,并与设定的电压值进行比较,比较后的结果用来实现自停控制,这样可有效防止通讯故障所造成失控现象。
图2Marx发生器能源部分线路图
3MARX发生器能源制过程
① 程控电源接通供电电源时的输出为0伏,开关量输出为假(开路)。
②首先上位机发出各种设置参数到指定地址程控电源。如,上升时间、上升速度、保持时间、充电电压等。
③程控电源收到电压回传命令后,将两路模拟量的值传送到上位机。
④上位机发出启动指令后,指定地址程控电源的输出开始从0伏慢慢线性上升到设定值,保持到指定的时间后关断输出。当上位机发出所有电源都启动指令后,所有程控电源都启动。
⑤上位机发出立即停止指令后,指定地址程控电源的输出立即停止上升,保持到指定的时间后关断输出,当上位机发出所有电源都停止指令时,所有程控电源都立即停止。
⑥上位机发出接地打开指令后,指定地址程控电源的开关量输出为1,电磁铁吸合,当上位机发出所有程控电源的接地都断开命令时,所有程控电源的接地电磁铁都吸合。
⑦上位机发出接地指令后,指定地址程控电源的开关量输出为0,电磁铁释放,当上位机发出所有程控电源都接地时,所有程控电源的接地电磁铁都释放。
4 监控软件设计
软件采用Visual Basic6.0编程,作出十分直观的人机界面,采用RS-485通信标准和上述的问答方式进行数据通信,通过上位机向串口读写数据,并通过光纤485总线将各种控制信息传送到现场的每路MARX充电子系统,上位机就可以监控网络上任何一台MARX能源了,予置数值可以分别显示在PC机软件窗口和单片机系统的予置数字表头上。同时,现场实测电压信号也可以实时显示在PC机的界面上。此设计界面直观,而且利于对现场信号进行实时监测。因此,采用本系统,大大提高了现场信号予置精度,对实验操作人员来说人机界面良好,简单易懂。
根据系统功能的要求,上位机需发送2种类型的命令:(1)同期命令,它由定时器触发引起,每隔一个定时周期发送1次,例如发往各充电单元的数据和状态回传命令;(2)非周期性命令,它由操作者按动相应命令按钮引起,非周期性发送。所有命令均采用ASCII码方式传送,为了防止通讯错误,各子机正确收到上位机发来的命令后返回相应的确认字符。