SCADA系统中交流采样器设计
SCADA(Supervlsory Control and Data Acquisition)系统即数据采集与监视控制系统,是一种以微型计算机为核心,综合利用计算机、通信、控制等技术完成遥控、遥测、遥信、遥调(四遥)的控制系统:”。由于DSP技术的发展,在电力、石油、电气化铁路等行业的SCADA系统中,电量的采集(即遥测功能)由过去的基于变送器的直流采样逐渐向交流采样过渡。本文介绍基于TI公司的工业控制用DSP —TMS320LF2407A和工业控制中广泛使用的基于CAN总线的交流采样器的设计。该交流采样器作为SCADA的功能模块.具有如下功能特点:
(1)计算功能。对电压、电流、有功、无功、功率因素、频率、相序等参数进行计算。
(2)报警功能。当发生越限、跳闸时报警。
(3)录波功能。录波功能包括手动录波(录波正常)和故障录波。
(4)CAN总线接口功能。采样系统和上位机的应用层通信协议选用DeviceNet协议。
(5)人机接口功能。扩展RS 232口与PC机连接,可以利用PC机的超级终端作采样系统的显示器,便于调试和监测。
1硬件设计
1.1系统总体框图
该交流采样器采用DSP处理器.与上位机的通信采用CAN总线。系统框图如图1所示。
(1)DSP选用TI公司的TMS320LF2407A,其主要特点为:片内32K字(16位字宽)的FLASH,不用外扩程序存储器,带有一个CAN口.支持CAN2、OB协议规范.一个RS232通信口,3.3V供电,二个8通道10位ADC,最小转换时间500ns(2 MSPS)。
(2)ADC选用MAXIM公司的MAXl25CEAX.14位并行转换,A、B二组8通道,每组4通道同步转换。
(3)选用3.3V供电的MAX3232做RS232接口芯片,CAN收发器用82C250T,5V和3.3V的电平转换器选用 SN74ALVCl64245。
在电力系统变电所,为实现对电压电流的监测,先将原边的高电压或大电流通过一级电力型电压互感器或电力型电流互感器变换为次边的100V电压或5A电流信号。这些信号引入到变电站的控制室,供控制系统设备使用。在交流采样中.要采样的信号就是前一级的 100V或5A信号。这时还需要引入第二级互感器,将100V或5A信号变换为DSP或MCU可以处理的小信号。一般将100V电压信号或5A电流信号经电压或电流互感器变换为2mA左右的电流信号。图2是第二级的电压互感器的信号调理电路,互感器的变比为IOOV/2mA,输出电压Vout等于次边电流I2乘以电阻R503,即Vout=R503×I2,C502起滤波作用,后面的运放接成跟随器模式,起信号隔离缓冲作用。因为MAXl25的输入模拟电压为—5V~+5V,Vout的最大有效值为3.535V,所以要根据这个原则选取R503的阻值。为保护LM324,可以在运放的输入端并联7V左右的双向稳压管。
图2中R503=1 209Ω,输入100V时,输出Vout=1 209×0.002=2.418V。
1.3电平转移电路分析
LF2407A的工作电压为3.3V,A/D转换器MAXl25的工作电压为5V.不能直接接口,需要引入电平转换电路,这里选取16位的SN74ALVCl64245做电平转换器。转换器左侧B端是5V的逻辑电平.与MAXl25 A/D转换器接口;右侧A端是3.3V的逻辑电平,与LF2407A接口。具体电路见图3。
(1)SN74ALVCl64245的输出允许OE端接LF2407A的IS信号端.DSP以I/O口方式访问MAXl25。当DSP访问MAXl25时,IS信号有效,ALVCl64245的输出允许OE端有效,ALVCl64245工作;其他情况下,ALVCl64245的数据线呈高阻状态。
(2)SN74ALVCl64245的1DIR、2DIR接LF2407A的19脚W/R,DSP写时W/R=DIR-4245=1。ALVCl64245的数据从A到B;DSP读时W/R=DIR-4245=0,ALVCl64245的数据从B到A;
(3)SN74ALVCl64245的A端数据线接DSP的数据线,B端接MAXl25的数据线。
1.4 A/D转换电路设计
为实现高精度的交流采样,本系统的ADC选用MAXIM公司的14位MAXl25CEAX。有关该芯片的资料参见文献[6],图4为具体应用电路。
(1)CHlA~CH4A、CHlB~CH4B分别接PT/CT(电压/电流互感器)调理电路的输出电压。DO~D13接电平转移器件的5V数据线,经电平转移后接DSP的D0~D13。
(2)DSP的IOPF6直接接MAXl25的CONVST端,IOPF6端发一个正脉冲启动一次A/D转换。转换结束时,MAXl25的INT端输出低电平,通过5V—3V电平转移电路接到DSP的IOPA2(XINn)脚,程序查询IOPA2(ⅪNT1)是否为低电平,为低则读取转换结果。
(3)DSP的IS脚直接接MAXl25的CS端.DSP将MAXl25视为一个I/O端口,用端口指令访问。DSP的电平可以直接驱动MAXl25的控制端。
下面是对MAXl25操作的DSP C语言实例。
(1)写命令到MAXl25
outport(MAXl25,0x03);//input Mux A/Four—Channel
(2)发出启动MAXl25进行A/D转换的脉冲
MAXl25CONV_HIGH;//IOPF6=1
MAXl25CONV_LOW;//需要大于30ns的负脉冲
MAXl25CONV_HIGH;//上升沿启动转换
(3)查询IOPA2(ⅪNT1)是否为低电平(转换完成)
while(*PADATDIR&0X0004)
{KICKDOG;}
(4)读转换结果
for(i=0;i <4;i++)//read result about Ila、Va、Ib、Vb
{
ADC_Result[i]=portl;
Ch_RealData[i][Dots_Index]=(ADC—Result[i ]<<2)/4;
//14 bits dala change to 16 hits data}
1.5 CAN总线接口电路设计
LP2407A集成了CAN控制器,扩展一片CAN收发器就构成了CAN接口电路。收发器选用Philips公司的P82C250,具体电路如图5。
P82C250是5V电源供电,与LF2407A连接要加电平转移电路。R301、D301完成3.3V电平向5V电平转移;R302、R303完成5V电平向3.3V电平转移。
其他如串口扩展电路、SRAM扩展电路、液晶扩展电路等为通用电路.在此不做阐述。
2软件设计
2.1嵌入式软件设计思想
借鉴Windows编程中基于消息驱动的思想,在嵌入式软件中引入基于消息的处理方泫。嵌入式系统的消息可以分为:键盘输入命令、系统接口电路产生的状态信息(如报警、越限等)以及上位机命令。消息的接收采用中断方式,确保消息可靠及时的接收;时间要求非常苛刻的消息,如电机保护,在中断直接处理;其他消息在主程序中对消息进行解析执行。程序设计思想可以用图6表示。
本系统通过CAN总线接收上位机的命令(接收消息)。CAN接收方式采用中断方式.当上位机下达命令时,该装置通过中断及时接收.实时任务直接在中断程序中完成,满足系统的实时性要求;非实时任务则将该命令存入消息(或命令)缓冲区,等待在主函数中查询处理。
2.2程序整体框图
整个程序由主函数、功能函数、CAN通信中断函数、DSP的定时器T1的周期中断(采样中断)函数构成。
DSP的CAN控制器接收中断采用DSP的内核中断1;定时器T1的周期中断采用DSP的内核中断2,用来定期触发MAXl25进行A/D转换。关于LF2407A的中断编程可参见文献[1~2]。
主函数main()的流程如图7所示。
主函数先初始化系统,启动实时采样,实时采样一直运行并始终保持有多个周期的波形数据,供故障录波后观察故障点前后几个周期的波形,以便分析故障原因。然后进入消息处理的循环程序。从流程图可以看到,程序先检查消息(或命令)缓冲区,若有消息/命令,则调用相应功能函数执行命令,判断是否到计算周期以确定是否调用计算函数,然后回到消息处理入口;若没有消息等待处理,则判断100ms计算周期是否到(计算周期可以调整)。若到,则计算一遍电参数,判断是否有越限情况。若有越限则通知上位机,然后返回到消息处理入口,重复开始消息(或命令)的解析执行。消息接收程序以中断方式在后台运行。
2.3功能函数设计
功能函数由主函数main()调用,下面介绍几种主要的功能函数。限于篇幅,函数没有展开,只列出函数名。
计算电参数的函数:void Calc();
向上位机传送电参数值的函数:unsigned int Send_AcqData();
执行参数设定命令的函数:unsigned int Set_Parameter();
向上位机传送报警数据的函数:unsigned Int Send_AlarmnData();
向上位机传送录波数据的函数:unsigned Int Send_WaveRecordData();
本交流采样系统已运行在铁路水电远动系统的FTU(Field Terminal Unit)中,与上位机通信的应用层协议采用DeviceNet协议。实际证明该系统功能正常、性能稳定。
评论
查看更多