2007年度CPA全国统一考试上海考区报名简章
2007-04-18
更新时间:2005-12-20 00:00:00作者:未知
摘要 介绍一种多分布传式MARX发生器能源计算机监控系统.详细叙述了系统的硬件构成,计算机与各能源系统之间的通讯原理和通讯协议,以及系统的软件实现,同时简要说明了系统抗干扰解决办法。
关键词 MARX发生器 程控电源 RS485总线 Visual Basic
脉冲能源装置在加速器、自由电子激光研究、X光闪光照相和粒子聚变等脉冲功率技术研究领域广泛使用,通常使用数量较多,分布较广,同时周围电磁干扰较强,控制操作和参数测量都比较复杂,同时也需要较多的人力来维护。
随着计算机技术的发展,当今世界上基于PC的自动化方案已成为主流,PC在自动化领域的应用正迅速增长,通过将所有的功能集成于这个统一开放的平台上,通过人机界面可以使复杂的控制和数据处理变得更加简单化。
整个系统有多台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转换,经内部单片机处理,并与设定的电压值进行比较,比较后的结果用来实现自停控制,这样可有效防止通讯故障所造成失控现象。
① 程控电源接通供电电源时的输出为0伏,开关量输出为假(开路)。
②首先上位机发出各种设置参数到指定地址程控电源。如,上升时间、上升速度、保持时间、充电电压等。
③程控电源收到电压回传命令后,将两路模拟量的值传送到上位机。
④上位机发出启动指令后,指定地址程控电源的输出开始从0伏慢慢线性上升到设定值,保持到指定的时间后关断输出。当上位机发出所有电源都启动指令后,所有程控电源都启动。
⑤上位机发出立即停止指令后,指定地址程控电源的输出立即停止上升,保持到指定的时间后关断输出,当上位机发出所有电源都停止指令时,所有程控电源都立即停止。
⑥上位机发出接地打开指令后,指定地址程控电源的开关量输出为1,电磁铁吸合,当上位机发出所有程控电源的接地都断开命令时,所有程控电源的接地电磁铁都吸合。
⑦上位机发出接地指令后,指定地址程控电源的开关量输出为0,电磁铁释放,当上位机发出所有程控电源都接地时,所有程控电源的接地电磁铁都释放。
软件采用Visual Basic6.0编程,作出十分直观的人机界面,采用RS-485通信标准和上述的问答方式进行数据通信,通过上位机向串口读写数据,并通过光纤485总线将各种控制信息传送到现场的每路MARX充电子系统,上位机就可以监控网络上任何一台MARX能源了,予置数值可以分别显示在PC机软件窗口和单片机系统的予置数字表头上。同时,现场实测电压信号也可以实时显示在PC机的界面上。此设计界面直观,而且利于对现场信号进行实时监测。因此,采用本系统,大大提高了现场信号予置精度,对实验操作人员来说人机界面良好,简单易懂。
根据系统功能的要求,上位机需发送2种类型的命令:(1)同期命令,它由定时器触发引起,每隔一个定时周期发送1次,例如发往各充电单元的数据和状态回传命令;(2)非周期性命令,它由操作者按动相应命令按钮引起,非周期性发送。所有命令均采用ASCII码方式传送,为了防止通讯错误,各子机正确收到上位机发来的命令后返回相应的确认字符。
在VB6.0中使用了MSCOMM控件,用来实现串行通信。MSComm控件有很多属性,其中最基本的有以下几个:
Commport属性 设置并返回通信端口号,用于指定使用PC机的哪一个串行端口。
Setting属性 以字符串的形式设置并返回波特率、奇偶校验、数据位和停止位。
Portopen属性 设置并返回通信端口的状态,用于打开或关闭端口。
Output属性 用于发送数据,可以是文本数据或二进制数据。
Input属性 从接收缓冲区返回和删除字符,用于接收数据。
本系统VB程序初始化上位机通信程序如下:
MSComm1.CommPort=2 ;选串行端口2
MSComm1.Settings=“57600,n,8,1” ' 设置通信参数
MSComm1.OutBufferSize=512 ' 设置发送缓冲区大小
MSComm1.OutBufferCount=0 ' 清除输出缓冲区
Mscomm1.Inputlen=0 ' 读入接收缓冲区全部字符
MSComm1.PortOpen=True ' 打开串行端口
由于数据是动态接收,所以数据的处理也是动态进行,程序中使用了一个Timer控件,其命令发出与数据的接收均在Timer控件的定时期间进行,在Timer控件的定时期间依次调用模拟量和状态量返回子过程,同时监视是否有命令按钮按下,当按下某操作命令按钮时调用命令处理子过程,部分程序如下:
Private Sub Timer1_Timer()
IF CmdPress=True Then Call SendCmd ' 当按下某操作命令按钮时转入命令处理子过程
UpdateAI 更新各模拟量数据的显示
UpdateDI更新各状态量
End Sub
Private Sub sendCmd()
UpdateDO (Cmd) ' 输出控制开关量
………
End Sub
监控系统在工业中的应用越来越多,由于现场的电气环境比较复杂,容易形成各种干扰源,特别是在大电流、强脉冲实验环境中,因此研究解决系统抗干扰问题对确保系统的稳定运行有着非常的意义。
该系统中使用RS485总线,RS485总线是采用差分平衡电气接口,本身具有较强的抗电磁干扰能力,但在实际当中仍然会现一些问题,为此应注意以下几个方面:
(1)与远距离上位机通讯采用光纤传输,子机之间不方便采用用光纤传输时,应选择合理的网络拓扑结构。
(2)采用双绞线作为RS485传输线时,虽然对电磁感应噪声有较强的抑制能力,但对静电感应引起噪声的抑制能力较差,因此应选用带屏蔽的双绞线,同时双绞线的屏蔽层要正确接地。
(3)通过在总线两端加入匹配电阻的方法,解决信号反射问题
(4)系统的供电方式有两种:一种是集中供电方式,即电源都引自同一处,另一种是分布式供电,各子设备在安装位置附近取电源,从抗干扰效果的角度讲,应选择集中供电方式,这样可基本消除各处参考电位不等的情况。
本文提出的主从分布式多机通信系统硬件电路简单,控制灵活。与其他语言相比,用VB语言实现上位机数据传送的优点是可方便地控制通信对象的选择,具有较大的灵活性,且编程容易。此外,由于RS485总线的通讯方式仍属于串行通讯方式,在通讯速度上有些偏低,在操作上表现为数据刷新时间稍微偏长,当系统子设备较多时,其控制的实时性不很理想,此时需对控制系统作进一步的改进。
1. 曾伟民、邓勇刚等 Visual Basic 6.0高级实用教程 电子工业出版社1999.10
2. 蔡祥荣. RS-485总线应用中的几个问题. 力源电子工程,2001