APP下载

钩计划自动打印及其监测系统的研究与开发

2011-02-02

铁道通信信号 2011年3期
关键词:编组站线程打印机

崔 莉

钩计划自动打印及其监测系统的研究与开发

崔 莉*

主要提出钩计划打印及其监控系统的总体设计思路,并详细描述了系统设计方案,包括对传送的钩计划内容处理、自动打印、监控打印情况等功能的实现方法及过程。

编组站;钩计划;远程打印

钩计划打印及其监测控制系统(以下简称钩打监控系统)是编组站综合自动化系统(以下简称SAM)的重要组成部分。它的核心任务是控制SAM各钩打点的钩计划打印,并实时监测打印进度和打印机状态,报告打印结果。新钩打系统使用网络打印机或网络适配器驱动普通打印机,使用纯软件控制,不需要额外的硬件设备和专用网络,与第一代基于工控机传输和第二代基于嵌入式专用传输网关的钩打系统相比,具有成本低、操作简单、维护方便等优点,既简化了设备,又使功能更完善、操作及维护更便捷,使得钩计划打印自动化程度进一步提高,更适合现代编组站的要求。

1 钩打监控系统的总体设计

钩打监控系统是SAM的一个外围系统,通过松耦合方式与SAM连接。由SAM中的现车子系统通过FTP方式,将钩计划打印任务及打印内容以文本形式传输到本地,由监控系统对其传输情况进行实时监测,及时对钩计划进行解析,并在对应工作点进行打印,同时将各钩打机的打印状态呈现在监测界面,并把打印结果反馈给SAM系统。该监控系统是SAM系统、钩计划服务器与网络打印机的紧密结合,实现了编组站中钩计划的远距离、多点传输和打印的需求。

判断是否存在新的钩计划的依据是由线程不断监测指定文件夹中是否存在新传送的文件,如果存在,就将其移动到备份文件夹,并对其解析后分别写入打印任务文件和钩计划内容文件中。打印线程用轮询方式扫描到打印任务后,先取打印机状态,如果打印机处于故障状态,则报警并写日志;处于打印程序,则发送打印命令,并唤醒相应读取打印机状态的线程,开始探测打印是否成功并写日志,失败则报警。打印成功并且没有新的打印任务时,挂起此线程。钩打监控系统处理流程如图1所示,架构示意图如图2所示。

图1 钩打监控系统处理流程图

图2 系统架构示意图

2 钩打监控系统的详细设计

2.1 系统模块及功能

系统按功能共划分7大模块,如图3所示。

图3 系统模块结构图

1.新钩计划扫描模块。不断扫描存放新钩计划目录,一旦发现新钩计划,即将其移动到备份文件夹,发送收到钩计划的反馈信息并写入日志文件。如收到多份钩计划,则以列表形式传送给钩计划内容解析模块,逐份进行处理。

2.钩计划内容解析模块。将收到的信息进行解析,解析出该钩计划应由哪些工作点打印,打印多少份,并把信息写入相应的打印任务列表,同时在界面显示将要打印的任务,以便计划人员了解任务下达情况。

3.钩计划打印执行模块。系统采用多线程方式发送打印信息。当系统检测到有打印任务时唤醒相应的线程,在不同打印机上执行打印动作,实现多点同时打印钩计划的目的。打印时唤醒打印机状态监测线程,调用Windows的API函数取对应的打印机实时状态,并进行最近3个状态的记录,将打印成功与否的信息记录在日志文件中,打印异常的情况反馈给SAM系统并注明原因。

4.钩计划打印监测模块。监测界面主要显示钩打机的基本信息和实时状态,包括启用状态、连接状态和打印机正常、故障状态(包括卡纸、缺纸、缺墨、输出口满、舱门打开等25种)。在打印钩计划任务时,监控界面同步显示正在打印的钩计划的计划号,及共打印几份和当前正在打印第几份等信息。

5.钩打机信息设置模块。用户可通过该模块增加、修改、删除要控制的打印机的基本信息,也是每次启动各打印机初始状态的依据。

6.系统参数设置模块。对一些程序判断过程中使用的参数进行设置,例如:缺纸、缺墨等待时间,新下达的钩计划存放文件夹的位置等。

7.钩计划信息查询模块。支持系统有关信息的查询,主要以日志文件查询为主。

2.2 系统技术难点

钩打系统最大的难点是远程打印机的状态控制。目前操作系统提供的打印机控制命令比较简单,开发工具中提供的相应函数功能单一,不能捕捉打印机的状态,打印机不支持对开发工具直接反馈结果的功能。经过深入研究,发现Windows系统发送获取打印机状态命令时,驱动程序会将状态存放在缓冲区中。利用这一特点,本系统在开发工具中调用封装在WinSpool包中的WinAPI函数Get-Printer,在缓冲区中将打印机传回的状态取回,再根据打印机状态判断钩计划打印成功与否。此函数传入当前打印机句柄,返回值是指针类型变量,打印机的状态值是8位十六进制码,共反馈25种打印机状态。

第2个难点是对系统可靠性的保证。由于捕获的打印机状态只能是当前默认打印机的状态,而钩打监控服务器必须同时掌握多台打印机的状态。如果采用单线程,只能以排队的方式轮询打印机状态,对每个打印机状态的查询间隔增大,很容易丢失。为解决这个问题,本系统使用多线程方式采用锁机制对当前打印机变量、打印机信息存储文件等临界资源进行保护。但是线程个数制约了系统的执行速度,所以系统只有在判断出有打印任务时才启动线程,这样既不影响运行速度,又保证了打印机状态获取的完整性。

第3个难点是如何提供系统的容错能力。由于钩打监控器经常处于自动运行状态,必须具备一定的容错能力,能够处理掉电、断网等突发事件。系统设计时,在发送打印命令时采用单份打印方式,并在物理文件中记录最近3个状态,以便系统重新启动后可以还原事故发生前的打印进度。

3 结束语

随着编组站综合自动化的发展,编组站自动化水平不断提高,钩打自动化水平也在不断的更新和进步。新钩打监控系统的设计优势关键在于设备的简化,不再依赖专用设备,易于安装、设置与使用,既可减少人工干预,减轻工作人员的劳动强度,避免人为错误而产生的故障问题,又能减少设备投资,简化维护难度。目前,新设计的钩打监控系统已经在石家庄南等站进行测试,得到了比较满意的结果,将来还需要不断地研究、开发、更新完善,使得其可以更加灵活、健壮,满足更多的要求。

[1] 徐维民,李振清.编组站调车作业单传输系统∥编组站自动化论文集[M].北京:中国铁道出版社,1995.

This paper brought forward an overall design of hook plan printing and itsmonitoring system and gave a detailed description of system design,including realization methods and processes of such functions as content processing of hook plan,automatic printing,monitored printing.

Marshalling yard;Hook plan;Remote printing

*铁道部信息技术中心 助理工程师,100844 北京

2011-01-05

(责任编辑:温志红)

猜你喜欢

编组站线程打印机
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
SAM系统在哈尔滨南编组站的综合应用
我国编组站自动化技术现状与发展
浅谈linux多线程协作
另类3D打印机
编组站停车器自动控制开通方案
打印机基板大型注塑模具设计
FDM型混色3D打印机的设计
既有编组站CIPS系统改造应用