王洪伟 夏明超 北京交通大学电气工程学院
电力机车能耗以及由于无功造成的罚款是电力机务段的主要运营成本[1] 。现在各型电力机车使用的机械式电度表测量精度低,必须采用人工抄表,而且人工抄表只能反映机车整趟作业的功耗,无法确知机车在运行各阶段的区间瞬时能耗。而区间瞬时能耗是评价司机操作是否合理以及电力机车牵引部件状态是否良好,从而实现机车从定修向状态修过渡的重要性能指标。本文设计的远程能耗监测系统可以对电力机车运行过程中的能耗进行定时定点记录,并通过GPRS自动发送到地面服务器,通过软件可以实现电量的分人、分车、分段的自动统计。
本系统采用专用电能测量芯片,高速准确采集能耗信息,提高了能耗计量的分辨率和准确度。可以实现有功、无功电能的正、反向计量,在替代了机车上原有3只机械式电表的同时,增加了反向无功计量功能;此外,本装置还可以实时检测弓网电压、电流、频率以及离线率等弓网供电参数,通过对以上参数的监测,为供电系统维护提供科学的实测数据,改善供电品质。可以实现分区间用电记录,作为不同供电段以及不同路局之间电能结算的依据。由于系统基于GPRS进行数据转储,极大地降低了工作人员的工作强度,节约了管理成本。
电力机车远程能耗监控系统的总体结构如图1所示,包括上部的车载电能采集终端和下部的监控中心服务器软件两部分。
图1 系统总体结构框图
车载电能采集终端适合于电力机车主变压器副边额定频率50 Hz、交流100 V电能的计量,可测量电力机车的正向有功、正向无功、反向有功、反向无功、供电频率、网压、离线率以及机车级位手柄等电参数。并通过RS-485接口从机车上的安全综合信息平台TAX箱(简称TAX箱)获取机车号、机车型号、时间、车次、司机号、牵引总重、记长、辆数、公里标、区间段、站号、速度等机车运用信息,这些运行信息作为电参数记录的标尺。记录的信息通过GPRS远程传输到监控中心,服务器软件对接收的能耗及状态参数实时显示,并记入ORACLE数据库,实现分人、分时、分车、分区段的统计与计量,机务、供电及路局等各级用户还可根据自己的权限通过网络实现数据的查询与管理。
车载电能采集终端是系统的核心,其原理框图如图2所示。
图2 车载能耗监测装置原理图
该装置采用16位单片机MC9S12A64作为CPU,利用SA9904B作为电能测量芯片,为提高抗干扰能力,在CPU和SA9904B之间利用光耦加以隔离。CPU通过RS485通讯从机车两端的TAX箱获取机车运行信息,由于列车运行过程中只有一端的TAX箱上电工作,因此CPU需要在两个TAX箱间自动切换直至找到正确的数据源。同时CPU还利用A/D变换采集机车操作手柄的级位,采集的信息通过6位LED数码管进行显示,并将符合条件的数据记录到非易失RAM芯片AT45DB041中,记录的数据可以通过GPRS或IC卡两种方式进行转储。同时,为了对能耗装置进行校准,保留了校准脉冲的输出。
电量测量主要通过SA9904B实现,它可测量三相交流电的有功功率、无功功率、电压、频率及电能,CPU通过SPI串行接口访问其内部寄存器的测量值。对SA9904B来说,其电流输入端可连接电流互感器的副边,电压输入端需要通过如图3所示的电阻网络配置其电压感应输入。流入电压感应输入端(虚拟输入端)的电流应在额定条件设为14 μARMS,电压感应输入饱和于±25 μA峰值的输入电流。
分压网络(见图3)应将C5之前的电压分为14 VRMS,R8用于设定电压感应输入的电流,阻值为1 MΩ。
设:
当电力机车相电压为100 V时,为了能够在C5前分得14 V的电压,有如下关系:
当 R13 为 24 kΩ 时,RB=23.44 kΩ,RA=143.98 kΩ。
因此,只要将R16、R19及R22的串联电阻值配置为144 kΩ即可。
图3 电压感应输入通道配置网络
本系统采用AT45DB041进行车载数据的记录。由于空间有限,既要保证数据的完整又要尽可能少的记录数据。因此,必须采用合理的数据压缩记录算法。
本系统需要记录的数据包括机车运用信息和机车能耗状态信息两部分。机车运用信息中,除了时间、站号和公里标等随车辆运动变化的数据以外,其它数据变化频率很低,大约每8~10h才会变化一次,在运行过程中不需要重复记录,能耗信息则需要在每包数据中都加以记录。
为了实现分人、分车、分区段的能耗计量,本系统将上电、交路号、司机号、总重、站号及过分相点作为数据记录条件。每条记录26个字节,由数据头(2 Bytes)、变化数据(2 Bytes)、公共数据(21 Bytes)和校验字节(1 Bytes)组成。由于26个字节无法完全记录上电时所有的机车运用及能耗状态信息,因此通过"@0"和"@1"两个不同数据头的数据帧进行记录。此后,只有关注的机车运用信息发生变化后才进行记录,交路号、司机号、总重、站号和分相点的变化分别用"@2~@6"作为数据头加以区别,数据头格式及具体含义见表1。
表1 记录数据头及含义
车载装置采用GPRS无线模块进行数据发送。GPRS模块实际是一款内嵌TCP/IP协议的GPRS Modem,具有访问Internet的能力。车载装置通过CPU的串行接口连接GPRS模块,将存储的数据逐条发送到监控中心。数据发送采用指针发送方式,AT45DB041中同时保存着数据记录指针和数据发送指针,只要发送指针小于记录指针,就说明有数据等待发送。
所有的数据通讯均由车载GPRS模块主动发起。本系统采用GPRS透明传输模式下的短连接功能,该模式下GPRS内部配置了接收服务器的IP地址及端口。当模块接收到CPU串口发送的数据后,若模块未在线,则自动建立与地面服务器之间的链接。链接一旦建立,地面服务器不仅可以接收GPRS模块传送的数据,还可以向车载设备发送时间校准值或者要求模块发送地面所需的数据。当多台车载GPRS模块向服务器提出连接请求时,服务器会给每个模块分配一个唯一的句柄号,通过该句柄,即可实现一对多的通讯。
车载GPRS模块与地面服务器通讯遵循事先约定的通讯协议。服务器接收到GPRS发送一包数据后,先对数据进行CRC校验,若校验正确,将给车载终端发送应答帧。车载终端接收到正确应答帧后,模块的发送指针调整到下一包要发送数据的首地址。否则,车载设备重新检查所发数据包,并重新发送数据。通过这些严格的校验、握手措施,可以保证准确的收发数据。若网络繁忙或连接中断,由于接不到应答,车载终端会重发同一包数据,因此不会出现数据丢失的情况。若网络空闲,CPU将一直发送数据直到发送指针与记录指针重合,此时表明记录的数据已全部发送完毕,系统会自动停止发送。
服务器软件的设计环境为Visual 2003.NET,其内部的Socket提供了访问TCP和UDP网络服务的方便途径。Visual 2003.NET通过设置WinSock控件的属性并调用其方法就可轻易地实现网络连接。在Visual 2003.NET中,Winsock有2种数据传送格式:字符串型和字节流型,本系统采用字节流型。
为了在服务器端创建Socket应用程序,需要设置一个收听端口(LocalPort属性)并调用Listen方法。当客户计算机需要连接时就会发生ConnectionRequest事件。为了完成连接,可调用ConnectionRequest事件内的Accept方法。一旦连接建立,两端均可使用SendData或GetData进行数据的发送或接收。格式如下:
功能为向当前连接发送SendText中的字符串;功能为接收字符串,并保存在变量GetText中。
当多个车载终端同时向地面服务器发送数据时,每发生一个ConnectionRequest事件,WinSock1的Index就加1,这样每个ConnectionRequest事件就对应唯一的Index,因此可以实现一对多的通讯。当Index达到设定值后,清除所有Socket连接,由于GPRS模块会自动重新上线,因此能够保持接收软件正常运行。服务器端应用Socket控件接收数据的程序流程如图4所示。
图4 Socket数据接收程序流程
由于Socket控件接收的都是二进制数,为了弄清各字节的含义,需要进行解压处理,解压即按照原始数据的压缩存储格式进行反向解释。对于还原出来的信息,还需要进行合法性检验,例如,若解压出来的时间中分钟大于60,说明数据不合法,应予剔除。只有通过合法性检验的数据包才能写入数据库。
服务器采用0racle 9i数据库来存储数据。Oracle关系数据库是一种高效、可靠的适应高吞吐量的数据库解决方案。Oracle数据库采用ADO方法操作,其核心是Connection,Recordset和Command对象。首先利用Connection与服务器建立连接,然后用Command对象执行诸如查询、更新等命令,用Recordset对象来操作和查看查询结果。
数据显示是人机界面的主体,显示的内容分为动态信息和数据库查询结果两大部分。动态信息显示接收的机车运行及状态信息;用户可以实现对司机、机车、区段和时间的组合查询,对于查询的结果,采用DataReport控件生成相应的报表,便于查看和打印。
论文针对当前电力机车能耗计量中的诸多不足,设计了电力机车远程能耗监测系统,通过车载终端实时采集机车电能等状态参数和运行参数,并通过GPRS传送到地面服务器,服务器端通过Visual 2003.NET编制的软件实现了数据的接收、存储及查询,可通过不同条件的组合实现电力机车能耗的分人、分时、分车、分段的统计与计量。