当前位置:文档之家› 网络计算机联锁仿真系统联锁功能的设计与实现

网络计算机联锁仿真系统联锁功能的设计与实现

网络计算机联锁仿真系统联锁功能的设计与实现新型网络计算机联锁仿真系统采用网络技术、Web3D技术,实现对现场计算机联锁操作及各类信号设备的模拟仿真,具有广阔的应用前景。

其联锁功能设计采用C#技术,依据计算机联锁程序执行原理,对计算机联锁操作命令形成模块、操作命令执行模块及进路处理模块进行设计,并部署在Web应用服务器及数据库服务器端,实现在客户端浏览器进行操作与仿真的功能。

标签:网络;计算机联锁;仿真1 新型网络计算机联锁仿真系统简介随着我国高速铁路及城市轨道交通的飞速发展,设备的更新换代速度不断加快,对运营维护及运输组织人员提出更高要求,计算机联锁系统作为轨道交通安全运营的核心设备,对其熟练操作和掌握,具有充分的现实意义。

网络计算机联锁仿真系统主要用于对现场作业人员的模拟培训,其在局域网内采用B/S(浏览器/服务器)模式,计算机联锁系统人机交互界面在用户浏览器端自动生成,可模拟办理各种操作,在服务器端的Web服务器和数据库服务器中分别部署联锁程序模块和各类站场数据,同时在本系统中采用Web 3D技术,加入设备的三维仿真场景,通过在客户端浏览器加载三维仿真场景的方式,带来更直观的用户体验。

系统同时模拟各类常见故障现象,提高学员的故障处理能力。

网络计算机联锁仿真系统相比传统计算机联锁仿真系统,具有部署简易、交互方便、不受参训人员数量限制、可模拟多个站场,且当站场改扩建后可随时更改站场数据,了解设备动作原理等诸多优点。

本文就网络计算机联锁仿真系统联锁功能模块的设计与实现做主要分析和探讨。

2 联锁功能模块设计网络计算机联锁仿真系统主要针对计算机联锁操作仿真,同时模拟对现场信号设备的采集和驱动,主要功能模块包括操作命令形成模块、操作命令执行模块和进路处理模块[1]。

操作命令形成模块是将人员按压按钮的操作,转化为可识别的命令信息发送到服务器端,与服务器端数据表进行对比,形成有效操作命令。

操作命令执行模块是根据用户操作,判断命令类型,并在服务器端执行,同时返回执行结果。

进路处理模块对选出的进路进行选排一致性检查,进路锁闭及解锁等处理,同时将处理结果返回给用户。

本系统在框架下采用C#网络编程语言来实现。

2.1 操作命令形成模块操作命令形成模块通过记录和查询用户操作信息,判断其是否构成有效操作命令。

本系统采用XML文件记录用户操作信息,其优点是不占用数据库资源,可方便的删除历史操作日志,同时使用数据表形式读取和保存XML文件。

通过XML文件记录用户按压按钮等操作,同时使用数据表读取XML文件,并在服务器端查找操作命令是否在数据信息表中,若存在,则为有效操作命令并执行进路操作,反之则发出告警信息。

2.2 操作命令执行模块网络计算机联锁仿真系统根据计算机联锁程序执行原理,针对每种操作命令建立执行程序,组成操作命令执行程序模块,包括进路搜索子程序、取消进路子程序、人工延时解锁子程序、进路故障解锁子程序、区段故障解锁子程序等[2]。

操作命令执行模块通过调用数据库服务器中站场数据,在浏览器端生成站场平面图,在平面图中通过点击始终端按钮及其他按钮进行办理进路等操作。

按压按钮后触发鼠标点击事件,在服务器端作出响应,执行服务器端程序,之后将执行结果反馈给浏览器。

同时使用AJAX编程方法实现浏览器端的页面无刷新功能。

网络计算机联锁仿真系统在用户端办理进路时,进路锁闭和解锁对应轨道区段光带的颜色变化,采用AJAX技术,可实现光带颜色的及时刷新,带来较好的用户体验。

操作命令执行模块的执行流程为记录用户按压按钮操作、判断用户操作命令是否合法、判断操作命令类型,根据命令类型执行相应的程序模块,其示意图如图2所示。

2.2.1 进路搜索程序模块网络计算机联锁仿真系统执行进路搜索程序时,首先将办理进路所需的静态及动态数据存入临时进路表中,之后在进路总表中查找是否有临时进路表数据存在,若存在则为合法进路,同时与敌对信号数据进行对比,确定敌对信号未建立,并将占用标志设置在所建立进路的变量模块中,通过C#中的GDI+将既有道岔位置转换到所选进路中。

网络计算机联锁仿真系统的每一个数据模块包括数据场和指针场[3],用以存放该数据模块的数据和相邻模块的首地址,进路搜索时按照站场型数据结构,从一个模块出发查找相邻模块,直至搜索到目标进路为止[4]。

系统使用C#中的数组和指针实现数据模块的链接,使用数组的堆栈等操作,通过链接各模块从而找到目标节点。

2.2.2 取消进路子模块网络计算机联锁仿真系统中,取消已建立的进路通过取消进路子模块来实现,系统的取消进路操作需先按下总取消按钮,之后10秒内再按下进路始端按钮,为控制按压时间,需在按钮事件中添加一个计时器private Timer loginTimer。

随着进路的占用和空闲,其进路光带要有颜色变化,一般白色光带表示进路锁闭,绿色光带表示进路空闲,红色光带表示有车占用,进路光带颜色的变化通过GDI+中的绘图的方式来实现。

取消进路子程序执行过程中还需检查接近区段是否有车占用,通过弹出文字提示和变换进路内光带颜色的方法来模拟区段占用和出清,同时显示列车车次。

2.2.3 人工延时解锁子模块网络计算机联锁仿真系统的人工延时解锁子模块,用于因临时改变进路,需解除已处于接近锁闭状态的进路。

本系统将鼠标点击事件添加到在站场界面的按钮中,通过按压按钮来触发鼠标点击事件,并将联锁处理程序添加到在鼠标点击事件中,从而实现联锁功能。

联锁程序中用C#的委托来声明和触发事件,以人工延时解锁为例,首先在人工延时解锁程序中生成一个委托实例,然后将此委托实例添加到在人工解锁程序执行的事件列表中,进行事件订阅,再在操作命令执行中将人工延时解锁命令从订阅事件中取出。

涉及到的鼠标相关事件有MouseHover、MouseLeave、MouseEnter、MouseMove、MouseDown和MouseUp 分别代表捕捉鼠标停留指定区域、捕捉鼠标离开指定区域、捕捉鼠标进入指定区域、鼠标移动、鼠标按下、鼠标弹起[5]。

办理人工延时解锁,可在MouseDown 事件中添加人工延时解锁子模块程序,同时触发定时器功能。

需检查的联锁条件包括进路是否存在、接近区段是否空闲、信号是否开放、进路是否空闲。

2.2.4 区段故障解锁子模块区段故障解锁子模块是当轨道区段发生故障或其他原因导致无法正常解锁时办理的特殊解锁方式。

区段故障解锁操作需先后按下区段故障解锁按钮和相应的道岔按钮(无岔区段处按压以区段名称命名的按钮),将区段故障解锁程序添加到该鼠标点击事件中,通过按压按钮即可触发该事件并执行程序。

解锁后将引起光带颜色的变化,即将红色变为绿色。

区段故障解锁子模块程序执行前,需检查该区段是否存在、该区段信号是否关闭、本区段以及接近区段是否空闲、与其相邻的无岔区段和保护区段是否解锁。

网络计算机联锁仿真系统操作命令执行模块还包括重复开放信号子模块、非常关闭信号子模块、开放引导信号子模块等,这些模块功能的实现均是在鼠标点击事件中添加相应的处理程序,同时检查联锁条件是否建立,将响应结果显示在浏览器端。

2.3 进路处理模块本系统进路处理模块是进路生成以后按照进路条件对进路进行锁闭及解锁等处理的模块,主要包括选排一致性检查及道岔控制命令生成子模块、进路锁闭子模块、信号开放及信号保持开放子模块、进路自动解锁子模块,其执行过程为先检查进路选排一致性标志fxp,再检查锁闭标志fs和信号保持开放标志fXB,若满足条件则执行相应的处理程序,若不满足则执行下一命令。

流程如图3所示。

进路处理程序执行过程中需频繁检查各类联锁条件,包括进路空闲检查、道岔位置检查、敌对信号检查,以及各种照查条件检查等,利用C#的泛型编程机制,将类型参数化,可实现代码的灵活复用。

2.3.1 选排一致性检查及道岔控制命令生成模块选排一致性检查即确定选出进路的始终端与进路表中对比一致。

道岔控制命令生成模块,还需检查区段是否空闲、道岔是否单锁。

道岔转换可通过C#的GDI+绘制,同时为实现页面的无刷新功能,需使用AJAX方法。

本系统中的道岔控制命令对现场信号设备采集驱动的模拟,可通过Web3D 技术加入设备的三维仿真场景,三维仿真场景由Cult3D制作实现,Cult3D基于JA V A内核,其XML构架可方便浏览器与服务器之间的数据通信。

本系统对三维模型文件的管理是将三维模型文件存储为表示空间位置的二进制码或字符串,并利用Stream对象在关系型数据库中读取并输出模型文件。

2.3.2 进路锁闭模块本系统进路锁闭模块在进路中轨道区段空闲、道岔位置正确以及照查条件满足的情况下用于对已选出的进路执行锁闭操作。

本系统中浏览器端进路锁闭表现为进路光带颜色的变化,锁闭后由绿色变为白色。

进路空闲检查可预先设定该段时间内是否有车通过,对于敌对进路的检查,即检查该进路办理之前,站场内是否办理了影响该进路行车的其他进路,或开放了敌对信号,需与进路总表中的敌对信号进行对比,若存在敌对信号则不予办理,并发出提出信息。

2.3.3 信号开放及信号保持开放模块网络计算机联锁仿真系统模拟真实计算机联锁系统,将灯丝完整性检查纳入信号开放需检查的联锁条件中,通过三维仿真模型模拟灯丝继电器的吸起和落下,同时还需检查进路是否空闲且锁闭、道岔是否处在正确位置、敌对信号是否存在。

若联锁条件满足,则信号开放。

信号保持开放阶段,加载信号机主副灯丝及室内灯丝继电器三维仿真场景,模拟检查灯丝完整性,同时还需对其他信号开放条件进行检查,判断是正常关闭信号或者调车中途返回,若为前者,则进入进路解锁模块,若为后者,则需检查进路接近区段或第一区段是否空闲。

具体流程为:先检查进路处理进程标志是否为信号保持开放标志fXB,之后检查接近区段及进路第一区段是否空闲,若空闲则进入自动解锁模块,之后判断道岔位置是否正确、进路是否空闲,若满足条件则信号保持开放;若存在调车进路,则需检查是否出清进路第一轨道区段,若已出清则信号保持开放。

2.3.4 进路自动解锁模块本系统模拟实际计算机联锁系统,将进路自动解锁程序模块分为正常解锁程序模块和调车中途折返解锁程序模块两部分。

进路的正常解锁一般通过三点检查法来实现,即检查本区段,进路前方区段及进路后方区段的占用状态来判断进路能否解锁。

调车中途折返解锁又分为牵出进路有折返信号机和办理复合牵出进路两种情况[6]:若牵出进路中途有折返信号机,则需保证折返信号曾开放过、要解锁的区段空闲、折返信号内方第一轨道区段被占用;若车列较长,为满足转线作业要求,进路中途折返操作需办理复合牵出进路,需要检查的条件有:是否有车占用过牵出进路,且进路处于锁闭状态;当进路空闲时,进路的前方接近区段是否被占用;之后此接近区段是否又一次处于空闲状态。

相关主题