1.1 数据采集
机车远程能耗监测装置能计量机车的有功电能和无功电能以及网压、网流和频率等,通过隔离RS-485 与TAX 箱通信,实时获取机车运行的速度、公里标、时间、司机号、机车号、牵引总重、站号等运行信息[3],同时实时采集机车运行工况和手柄级位信息,并自动判断记录机车过分相点位置,实现对机车车质状态的动态监测、电量信息和运行信息实时采集。
1.2 数据存储
根据电量统计的需要,机车能耗监测装置测量数据时以参数变化作为记录条件。记录条件包括交路号、牵引总重、站号、分相点、司机号、机车号和级位等。只要以上条件发生变化,就记录当时的参数,包括电量、速度、时间、公里标等。
该装置采用了大容量的存储器。由于机车运行的数据较多,为了降低GPRS 的使用成本,对于所有采集的信息均采用非分区定长压缩方法[2]存储,每包数据定长35 个字节,由数据头、公共数据、数据帧标识、数据校验位等4 部分组成。数据头占一个字节,公共数据占32 个字节,数据帧标识和校验结果各占一个字节。由于每包数据只有35 个字节,不能包含所有的机车运行信息,因此在上电的时候将完整的一条机车运行信息拆分成两包发送。另外,@7 代表的级位变化大小N 的值可以在程序中设定。数据头及其具体含义如表1 所示。
1.3 GPRS 实时远程通信
通用无线分组业务GPRS(general packet radio service),具有资源利用率高、传输速率高、接入时间短、支持IP 协议和X.25 协议等优点[4]。
本系统采用的GPRS 模块实际是一款内嵌TCP/IP 协议的GPRS Modem。GPRS模块内嵌了完整的 TCP/IP 协议族,具有访问Internet 的能力。模块所有的Internet 参数和 GPRS 通信参数都通过软件设置(AT/AT+i 指令集)实现。模块具有永远在线的特点,即使掉电或重启也能够自动上线,可以有效地抵御各种恶劣环境,抗强电磁干扰,并且高温散热能力极强、体积小、适合于安装在电力机车这种干扰较强的环境中。
系统采用了GPRS 模块透明模式下的短连接功能,能够实现链路的自动释放和自动重连。当有数据发送的时候,模块会自动连接地面服务器;当数据发送完毕后,模块会自动释放链路,从而最大限度地节省费用。
2 机车能耗远程监测系统设计
基于 GPRS 的远程机车能耗地面监测系统的结构框如图2 所示。该系统主要实现一对多双向通信、数据处理、数据存储和数据查询等功能。
2.1 一对多的双向通信
机车能耗监测装置按照记录条件记录机车运行的各种参数,并且通过GPRS 实时向地面服务器传送记录的数据。
本系统为一对多双向通信结构,每个车载GPRS 模块中已经设置了地面接收服务器的IP 地址和开放的固定端口,可以实现一台地面服务器对多台电力机车车载能耗监测设备的双向通信。
通信均由车载GPRS 模块主动发起。一旦GPRS 模块建立起与地面服务器之间的联系,GPRS 与地面服务器之间的双向通道也就建立起来。地面服务器不仅可以接收GPRS 模块传送的数据,还可以向车载设备发送时间校准值或者要求模块发送地面所需的数据。当多块车载GPRS 模块向地面服务器提出连接请求时,服务器会给每个模块分配一个唯一的句柄号,据此即可实现一对多的双向通信。
车载GPRS 模块与地面服务器通信遵循事先约定的通信协议。GPRS 发送一包数据,地面服务器接收到数据后对数据先进行CRC 校验,将校验结果与所接收数据中的校验结果进行比对,并返回模块“#+校验结果+数据帧标识”。若校验结果正确,则车载模块的发送指针加1,数据帧标识加 1;反之,车载设备重新检查所发数据包,并重新发送数据。通过这些严格的校验、握手措施,可以保证收发数据的准确性。
为了实现Internet 上两个远程计算机之间的数据传送,Winsock 编程是一个十分便捷、快速的选择。Winsock通信是基于Client/Server 模式的,即服务器的Winsock 在某端口进行“侦听”服务,等待客户机的申请。通过设置Winsock 控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且可双向交换数据。
创建服务器应用程序应设置一个收听端口(LocalPort 属性)并调用Listen 方法。当客户计算机需要连接时就会发生ConnectionRequest 事件。为了完成连接,可调用ConnectionRequest 事件内的Accept 方法。一旦连接建立,两端均可使用SendData 或GetData 进行数据的发送或接收。事件DataArrival 将在另一端数据准备就绪时被触发。
数据通信程序流程如图3 所示。当多块车载GPRS 模块同时向地面服务器发送数据时,每发生一个ConnectionRequest 事件Index 就加1。这样每个ConnectionRequest 事件就对应唯一的Index,就可以实现一对多的通信。当Index 即将溢出时,清除所有Socket 连接。因为GPRS 模块会重新自动上线,所以能够保证系统的稳定。
2.2 数据处理
数据处理主要包括信息还原、数据判断和数据显示等。
对于接收的每包数据,解调的时候需要按照原始数据的压缩存储格式进行。
对于还原出来的信息,还要对其合法性进行判断,只有合法的数据才能写入数据库的相应数据表中。
显示是系统界面的主体部分。显示的信息分为动态信息显示和数据库查询信息显示两大部分。动态信息显示能够显示接收到的最新的机车信息。数据库查询信息显示能按要求显示所查询信息内容。系统还能追踪在线机车的最新运行情况等,还可以绘出机车运行的速度公里和功率-公里曲线。界面如图4 所示。
2.3 数据存储
本系统采用Oracle 9i 数据库来存储所有数据。Oracle 关系数据库系统是目前世界上流行的关系数据库管理系统[1],可伸缩性、可靠性和完整性方面有着很好的表现,是一种高效率、高可靠性并能适应高吞吐量的数据库解决方案。
VB 操作Oracle 使用了ADO 方法。ADO 的核心是Connection、Recordset 和Command 对象。首先用Connection 与服务器建立连接,然后用Command 对象执行命令,如查询、更新等。用Recordset 对象来操作和查看查询结果。
通过校验的合法数据全部存入数据库中对应的数据表中。数据表中包括的字段有机车设备号、数据头标识、机车号、时间、司机号、车次、牵引总重、交路、速度、站号、有功电量、无功电量、手柄级位、网压、频率等。
2.4 数据查询
数据表中每条数据都不包含所有的字段信息,因此决定了查询应采取组合、匹配的方法。用于匹配的字段包括机车号、机车设备号、时间、数据头标识等。
根据实际需求可以实现分司机、机车、区段和时间的组合查询。查询的结果以报表的形式显示出来,包括司机能耗数据报表、机车能耗数据报表、司机交接班数据报表、供电段能耗数据报表、机车分户帐数据报表、司机工作成绩报表等。这些报表可以为机务段、供电段等部门分析能耗、制定节能措施提供一个参考依据。
3 结束语
使用 VB6.0 开发的该系统已经实现了上述功能,在实际的测试运行中也取得了很好的数据,为进一步能耗分析奠定了基础。
本文来自电子快线javascript:;