列车运行控制系统实验二实验报告
列车运行控制实验报告

实验一:绘制列车限制速度曲线一、实验内容二、问题分析根据题目要求画出全线的限速示意图如下:速度防护曲线应该是全线各个限制条件共同作用下的最低速度,所以应该分别绘制出400~500米的速度限制曲线,550~700米的速度限制曲线,1450米处停车的速度限制曲线,和全线的限速,最后在每一个距离点处取不同限速曲线速度点的最小值,最终形成的曲线就是速度防护曲线。
首先设计1450m处停车的速度限制曲线,列车在制动过程中,近似做初速度为当前速度,末速度为0的匀减速直线运动,减速度为1.7m/s/s,根据牛顿运动学公式:但是,当车载设备输出制动命令时列牵引切断和力真正达到100% 需要一定时间,称为制动延。
因此,车载设备开始触发制动需经过两个阶段。
第一阶段为空走阶段,列车制动力为0,做持续时间是牵引切断延时的匀速直线运动;第二阶段才为完全制动阶段。
所以实际的目标距离会更短,考虑制动延时后目标距离减少了4*Vm,在保证安全的前提下,Vm取全线限速的最大值,即100km/h。
所以:400m处和550m处的速度限制曲线也用同样的表达式绘制,只需要改变目标距离x和Vt的值。
经过上述分析,得到速度限制曲线的Matlab表达式如下:400米处:v3=(sqrt(2*a*(400-s-s1)+vt_1^2)*3.6) .*(s<=400-s1)550米处:v4=(sqrt(2*a*(550-s-s1)+vt_2^2)*3.6) .*(s<=550-s1)1450米处:v1=sqrt(2*a*(1450-s-s1)+vt^2)*3.6;当列车从低速限速区段驶入高速限速区段时,要保证车尾通过低速限速区段才能解除限速,所以低限速区间的长度应该延长车长70m,Matlab表达式如下:400~500限制速度:90.*(s>400-s1 & s<=500+l)550~700限制速速:45.*(s>550-s1 & s<=700+l)全线限制速度:v2=100.*(s>=60 & s<=1450);使用分段函数绘制出各个限制条件下的速度-距离曲线,再用函数v=min([v1,v2,v3,v4]),得到每个距离点s上对应的最小速度点v。
列车运行控制系统实训报告

列车运行控制系统实训报告一、实训目的和要求本次实训的目的是通过模拟列车运行控制系统进行实际操作,掌握列车运行控制系统的原理、组成部分和使用方法,了解列车运行控制系统的安全运行规程和应急处理措施,使学生能够熟练操作列车运行控制系统,处理紧急情况,并做好相关记录报告工作。
实训要求:学生应认真学习相关理论知识,了解列车运行控制系统的基本原理和组成部分,掌握列车运行控制系统的操作方法,严格按照安全规程操作,保证安全生产,及时处理紧急情况,并做好相关记录报告工作。
二、实训内容和安排1.实训内容本次实训主要包含以下内容:(1)列车运行控制系统的组成和原理及其作用;(2)列车运行控制系统的操作方法和操作流程;(3)列车运行控制系统的应急处理措施和安全规程。
2.实训安排本次实训分为两个部分,第一部分是理论学习,第二部分是实际操作和实训。
(1)理论学习:在课堂上,学生将学习列车运行控制系统的基本知识、原理、组成部分和使用方法,并了解列车运行控制系统的安全规程和应急处理措施。
(2)实际操作和实训:在模拟车站进行实际操作和实训,学生将按照列车运行控制系统的操作流程进行操作,熟练掌握列车运行控制系统的应急处理措施和安全规程,并做好相关记录报告工作。
三、实训教学过程1.理论学习在课堂上,老师讲解了列车运行控制系统的基本原理、组成部分和使用方法,并介绍了列车运行控制系统的安全规程和应急处理措施。
学生认真听讲并记笔记,加深对列车运行控制系统的理解。
2.实际操作和实训在模拟车站进行实际操作和实训之前,老师针对列车运行控制系统的操作流程和应急处理措施做了详细的讲解,并强调了安全操作和及时处理紧急情况的重要性。
学生按照列车运行控制系统的操作流程,先进行模拟操作,在掌握操作技巧后,进行实际操作和实训。
学生根据模拟情况作出相应的应急处理措施,并做好相关记录报告工作。
操作完成后,学生进行了讨论和总结,对列车运行控制系统的操作方法和注意事项进行了总结和归纳。
实训列车软件系统的总结

实训列车软件系统的总结
实训列车软件系统是一个模拟火车行驶的软件系统,主要功能是模拟车辆行驶、信号控制、列车调度等火车运行中的各种情况。
在学习和使用该系统过程中,我总结出以下几点经验:
1. 熟悉系统界面和功能。
系统界面和功能对于使用软件非常重要,因此我们需要花时间进行学习和熟悉,比如学习系统的图标和按钮功能、操纵信号机、更改列车行驶速度等等。
2. 认真进行模拟操作。
需要认真操作每个步骤,不能草率应付,否则容易出现错误。
比如列车进站、出站时,需要注意列车速度,避免撞车等意外情况的发生。
3. 调度合理。
调度主要是指车站之间车次选择和发车间隔的控制,需要掌握车站位置、列车速度以及发车时间等情况,并根据这些情况进行车次选择和车次间隔控制等。
4. 合理利用系统提供的功能。
实训列车软件系统提供了许多功能,比如列车合并功能、显示隧道进口、显示列车位置等,需要灵活利用这些功能,帮助我们更好地模拟车辆行驶。
5. 注意安全。
在操作软件过程中,要注意交通安全规则,避免发生危险情况。
以上是我在使用实训列车软件系统过程中总结的一些经验,希望能对其他用户提供帮助。
轨道车辆控制系统PLC实验报告

S7-200 PLC 轨道车辆控制系统编程廖裕豪13225010机电1306实验一(1)任务描述如图所示,要以A1、A2控制箱体的液位。
初始状态A1关闭,A2开启,水位超过最大值Hmax。
a、当出口门A2开一定时间(即延时10S)或液位下降到规定的最低值Hmin时,关闭A2,打开A1。
b、当液位上升到最大值Hmax,就将入口门A1关闭,打开A2。
(2)任务分析此实验要求较为简单,是一个水箱水位的循环反馈控制,可根据设定的初始条件运用顺序功能图法或者直接使用经验法进行编写,其中顺序功能图法思路较为清晰,而经验法则需要有较为深厚的功底,也不失为一种好方法,此实验中我们选用了经验法。
另外程序中需要一个延时10s的定时器,可使用一个接通延时定时器。
在所给初始条件(A2开,A1关,水位超过Hmax)下:放水口工作的条件:总开启开关打开(I0.0为高电平)停止开关断开(I0.1设为常闭触点)且最高水位检测产生了脉冲信号,通过中间寄存器M1.0使之自锁,在高水位脉冲消失后仍能继续保持A2开启,同时在满足开启放水口条件的同时需出发定时器,定时器时间到后要切断放水口开启进水口,故需串联定时器的常闭触点在放水口线路中,检测到最低水位脉冲时亦停止放水,故串联低水位I0.3的常闭触点,在M1.0后并联放水口输出信号Q0.1高水位信号I0.2的常开触点;进水口开启条件:最低水位检测信号的常开触点与定时器的常开触点并联,另需并联进水口的输出信号Q0.0以自锁,同时串联最高水位的检测信号的常闭触点。
(3)硬件设计①I/O地址分配表以及其他编程元件地址分配表其他编程元件定时器T37100(10s)放水阀放水限时(4)软件设计流程顺序功能图:二次接线图:梯形图:实验结果:水箱水位在最高与最低水位间循环1、I0.0动作后(程序启动),Q0.1指示灯亮(A2口开启)。
2、延时1秒后,Q0.1指示灯熄灭(A2口关闭),Q0.0指示灯亮(A1口开启);或者I0,1动作后(水位过低信号触发),Q0.1指示灯熄灭(A2口关闭),Q0.0指示灯亮(A1口开启)。
列车运行自动控制系统设备维护实训报告总结

列车运行自动控制系统设备维护实训报告总结
实训报告总结的目的是总结列车运行自动控制系统设备维护实训过程中的关键点和经验,以下是一个总结的示例:
在列车运行自动控制系统设备维护实训中,我对系统中的各个设备及其功能有了更深入的了解。
在实训过程中,我主要参与了调试、检修以及故障处理等工作,积累了一定的实践经验。
首先,我学习了列车运行自动控制系统的基本原理和结构。
通过分析系统的工作原理,我能够更好地理解各个组件的作用以及它们之间的相互关系。
其次,我熟悉了各种设备的安装和调试流程。
在实训过程中,我学会了正确使用设备调试工具,并能根据操作手册进行设备的合理安装和调试,确保系统的正常运行。
在维护过程中,我重视设备的日常检查和保养工作。
通过定期进行设备检查,我能够迅速发现潜在的故障,并及时采取措施进行修复。
此外,我也加强了对设备的保养,保证其长时间的稳定运行。
当系统出现故障时,我能够根据系统的报警信息和现场情况进行故障诊断和处理。
通过合理的故障排查方法和解决方案,我成功解决了一些常见的故障问题,并修复了设备,最大程度地减少了列车运行中的停车时间。
通过参与列车运行自动控制系统设备维护实训,我不仅增加了对自动控制系统的理论知识的了解,还熟练掌握了实际操作的技巧和方法。
我相信这段实训经历对我的职业发展会有很大的帮助。
总的来说,列车运行自动控制系统设备维护实训是一次宝贵的经历,让我对系统的运行和维护有了更深入的了解。
通过实际操作和维护,我提升了自己的技能和知识水平,为将来的工作打下了坚实的基础。
铁路实训实验报告

铁路实训实验报告实验目的本次实验的目的是通过实训培训,了解铁路交通管理的基本原理和操作方法,提升学员的铁路交通管理能力。
实验背景铁路交通管理是指对铁路运输过程中的各种资源进行合理配置和控制,以保障铁路交通的安全、高效和顺畅。
在实际操作中,铁路工作人员需要了解铁路规章制度、交通运输法律法规以及相关的安全操作规范。
通过实习实训,学员们能够深刻理解铁路交通管理的工作内容和流程。
实验内容本次实训分为两个部分,分别是理论培训和实操操作。
理论培训在理论培训中,我们学习了铁路交通管理的基本知识和相关法律法规。
其中包括铁路行车规则、列车运行控制方法、车站交接班制度等内容。
通过学习这些理论知识,我们能够更好地理解铁路交通管理的工作原理和职责。
实操操作在实操操作中,我们亲自参与了铁路交通管理的各个环节。
首先,我们在模拟车站进行了列车进出站操作。
通过操作站务终端设备,我们掌握了车站进出站的流程和规范,包括车票检票、站务信息录入、车站信号的控制等。
接下来,我们进行了列车运行控制操作。
在控制室内,我们使用列控系统进行了列车的追踪、监控和调度。
通过学习列车运行图和运行计划,我们能够准确把握列车的运行状态和位置,及时作出调度决策,确保列车的安全和正常运行。
最后,我们还参与了应急处理演练,学习了在突发情况下的应急处理方法和流程。
通过模拟真实场景,我们了解了如何处理故障列车、车站恶劣天气情况等突发事件,提高了应对突发情况的能力。
实验总结通过本次实训,我们对铁路交通管理有了更深入的了解,掌握了相关的理论知识和操作技能。
在实操操作中,我们通过亲身参与,更加深刻地感受到了铁路交通管理的重要性和复杂性。
本次实训不仅提升了我们的专业技能,还培养了我们的团队合作精神和应急处理能力。
在今后的工作中,我们将运用所学知识和技能,认真履行自己的职责,确保铁路交通的安全和高效运行。
同时,我们也会不断学习和进修,提升自己的专业素养,为铁路交通事业的发展做出更大的贡献。
CTCS-2级列控系统行车许可使用

CTCS-2级列控系统行车许可使用班级自动化11042.1实验目的(1)理解CTCS-2级列车运行控制系统地面设备工作原理。
(2)理解CTCS-2级列控系统车载设备使用MA的原理。
(3)掌握列控系统车载设备基本工作原理。
(4)初步具备解决列控系统实际工程问题的能力。
2.1实验内容列车在装备CTCS-2级列控设备的线路上运行。
但是,当前的仿真程序由于车载控车部分的程序不完善,会出现超速或冒进等危险。
本实验要求实验人员:(1)补充完成CTCS-2级车载安全防护程序ATPprotection,使列车可安全地在该线路上运行(不超速、不冒进),并且能够完成以下典型场景:区间运行正线接车侧线接车侧线大号码道岔接车侧线引导接车(选做)(2)编写完成后,请利用仿真程序测试你的程序功能。
2.3实验报告(1)所编写程序ATPprotection的流程图。
开始(2)为验证结果正确所设计的测试案例及测试结果,格式如下:测试案例测试程序的正线接车停车功能测试步骤1、设置初速度200km/h ,加速运行;2、选择正线接车进路类型,直到列车停车;3、观察所计算的允许速度曲线是否正确;4、查看记录文件。
测试结果正线接车测试结果截图正线接车测试案例测试程序的18号道岔以下接车停车功能测试步骤1、设置初速度200km/h ,加速运行;2、选择18号道岔以下接车进路类型,直到列车停车;结束计算列车当前所在轨道区段接收轨道电路码确定前方空闲区段接收CurrentPos确定目标距离及目标速度计算当前曲线限速确定线路限速综合考虑当前点限速值确定BrakeFlage 取值3、观察所计算的允许速度曲线是否正确;4、查看记录文件。
测试结果18号道岔以下接车测试结果截图18号道岔以下接车测试案例测试程序的18号道岔以上接车停车功能测试步骤1、设置初速度200km/h,加速运行;2、选择18号道岔以下接车进路类型,直到列车停车;3、观察所计算的允许速度曲线是否正确;4、查看记录文件。
列车运行控制实验报告

实验一:绘制列车限制速度曲线一、实验内容二、问题分析根据题目要求画出全线的限速示意图如下:速度防护曲线应该是全线各个限制条件共同作用下的最低速度,所以应该分别绘制出400~500米的速度限制曲线,550~700米的速度限制曲线,1450米处停车的速度限制曲线,和全线的限速,最后在每一个距离点处取不同限速曲线速度点的最小值,最终形成的曲线就是速度防护曲线。
首先设计1450m处停车的速度限制曲线,列车在制动过程中,近似做初速度为当前速度,末速度为0的匀减速直线运动,减速度为1.7m/s/s,根据牛顿运动学公式:但是,当车载设备输出制动命令时列牵引切断和力真正达到100% 需要一定时间,称为制动延。
因此,车载设备开始触发制动需经过两个阶段。
第一阶段为空走阶段,列车制动力为0,做持续时间是牵引切断延时的匀速直线运动;第二阶段才为完全制动阶段。
所以实际的目标距离会更短,考虑制动延时后目标距离减少了4*Vm,在保证安全的前提下,Vm取全线限速的最大值,即100km/h。
所以:400m处和550m处的速度限制曲线也用同样的表达式绘制,只需要改变目标距离x和Vt的值。
经过上述分析,得到速度限制曲线的Matlab表达式如下:400米处:v3=(sqrt(2*a*(400-s-s1)+vt_1^2)*3.6) .*(s<=400-s1)550米处:v4=(sqrt(2*a*(550-s-s1)+vt_2^2)*3.6) .*(s<=550-s1)1450米处:v1=sqrt(2*a*(1450-s-s1)+vt^2)*3.6;当列车从低速限速区段驶入高速限速区段时,要保证车尾通过低速限速区段才能解除限速,所以低限速区间的长度应该延长车长70m,Matlab表达式如下:400~500限制速度:90.*(s>400-s1 & s<=500+l)550~700限制速速:45.*(s>550-s1 & s<=700+l)全线限制速度:v2=100.*(s>=60 & s<=1450);使用分段函数绘制出各个限制条件下的速度-距离曲线,再用函数v=min([v1,v2,v3,v4]),得到每个距离点s上对应的最小速度点v。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
列车运行控制系统实验二实验报告集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)列车运行控制CTCS-2级列控系统行车许可使用实验报告学院:电子信息工程学院班级:自动化 1301成员:目录1 实验目标1.1 实验整体目标理解CTCS-2级列车运行控制系统地面设备工作原理及车载设备MA的使用原理;掌握列控系统车载设备基本工作原理;初步具备解决列控系统实际工程问题的能力。
学会使用excel仿真环境对列车运行状况进行模拟和分析,初步了解VB编程,并能通过程序对列车运行进行超速防护。
1.2 实验具体目标1.2.1 正线接车排列正线接车进路,终点为出站信号机,覆盖正线股道,列车即将进入正线,停在出站信号机之前。
其轨道电路码序及模式曲线如下图:1.2.2 18号以下道岔接车排列侧线接车进路,且接车进路上最小道岔为18号以下道岔时,覆盖侧线股道,列车即将进入侧线,终点为出站信号机。
当列车行至接近区段时,显示UU码,列车通过码序得知即将进入侧线,并且道岔要求限速为40km/h,以此为目标速度控制列车运行,并且在通过道岔后,根据实际进路长度计算至进路终点的限速曲线,控制列车运行。
其轨道电路码序及模式曲线如图:1.2.3 18号以上道岔接车排列侧线接车进路,且接车进路上最小道岔为18号的大号码道岔时,与侧线18号以下道岔接车类似,区别为:接近区段发UUS码,道岔要求限速为80km/h。
其轨道电路码序及模式运行曲线如图:1.2.4 侧线引导接车排列侧线引导接车进路,接近区段发HB码,车载设备进入引导模式,此时限速40km/h,因此车载设备需将允许速度立即设置为模式限速,且维持到通过咽喉区的无码,列车进入股道后,再根据行车许可终点计算模式曲线,控制列车运行。
其轨道电路码序及模式曲线如图:2 实验过程2.1 原理分析2.1.1 CTCS-2级列控系统行车许可生成原理CTCS-2级列控系统是基于轨道电路和应答器传输列车行车许可信息,采用目标距离模式曲线监控列车安全运行的列控系统。
CTCS-2级列控系统地面设备中,轨道电路通过发送18个低频信息,连续向车载设备发送列车前方空闲闭塞分区数量信息以及列车接近的车站信号机开放经道岔侧向位置进路信息。
应答器进行闭塞分区长度信息和限速信息的传输。
当列控车载设备接收到地面设备信息后,对列车许可相关信息综合使用,生成目标—距离模式曲线控制所需要的信息。
2.1.2 车载设备超速防护功能工作原理车载设备基本工作流程如下图所示:其中,超速防护功能部分可进行具体展开,基本工作流程如下:2.2 仿真环境本实验的仿真在excel中完成,为了简化起见,将列车运行的线路设定为:该线路共由11个闭塞分区构成,线路上列车只会经过两个应答器组,固定应答器组BG1和进站口的有源应答器组BG2,当列车经过应答器组的时候,会收到它们提供的信息:(BG1:提供固定的各闭塞分区长度和线路限速;BG2:提供列车进路长度和进路处的线路限速)具体仿真环境结构如下图所示:2.3 程序编写2.3.1 程序分析若要实现列控车载设备的超速防护功能,控制程序主要分为以下几部分:测速测距;读取列车当前所在区段的轨道电路码信息;读取应答器信息,获得轨道区段长度信息;生成行车许可,并判断是否需要制动或缓解制动。
其中,前三部分已由现有的仿真环境完成,实验需完成最后生成行车许可部分的程序,即ATPprotection()。
根据车载超速防护功能的原理,可得实现需完成的程序ATPprotection()部分需要各模块提供的闭塞分区长度、线路限速、轨道电路码、当前速度和当前位置的信息输入等信息。
2.3.2 程序框图2.3.3 程序代码(注:由于源代码较长,本部分只对部分代码进行注释说明,源代码请查看附录。
)For i = 0 To 10s = s + Blocks(i)If s > CurrentPos ThenFor j = 0 To iL = L + Blocks(j)NextExit ForEnd IfNext//L为走行距离If TrackSignal = "L5" Then //L5表示收到的码序,其他程序模块类似For k = (i + 1) To (i + 7)TargetDistance = TargetDistance + Blocks(k)NextTargetDistance = TargetDistance + L – CurrentPos //得到目标距离TargetSpeed = 0 //得到目标速度TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed) //得到曲线限速If CurrentPos <= LineAllowSpeed(1, 0) ThenIf TrainAllowSpeed > LineAllowSpeed(0, 1) ThenTrainAllowSpeed = LineAllowSpeed(0, 1)End IfElseIf CurrentPos >= LineAllowSpeed(2, 0) ThenIf TrainAllowSpeed > LineAllowSpeed(2, 1) Then TrainAllowSpeed = LineAllowSpeed(2, 1)End IfElseIf TrainAllowSpeed > LineAllowSpeed(1, 1) Then TrainAllowSpeed = LineAllowSpeed(1, 1)End IfEnd If//通过比较得到最终限速If CurrentSpeed > TrainAllowSpeed ThenBrakeFlag = TrueElseBrakeFlag = False //判断是否进行制动End Ifp = p + 1student.Cells(p, 1) = CurrentPos //记录数据3 实验结果分析4 实验总结本次实验过程中,课堂时间充裕,因此对于系统和程序都有了较为深入的了解。
在解决问题,确定整体思路过程中,不仅深入了解了CTCS-2级系统的行车许可原理,也对不同路线接车的码序,不同码序对应的速度更为熟悉。
同时,在编写程序的过程中,我和队友也体会到,问题的解决不仅要有正确清晰的思路,还要注意完善细节,尤其对于程序来说,任何细节的错误都可能导致结果的错误。
此外,本次实验过程中我们也意识到,扎实的理论基础是完成实验的必备条件。
在开展实验前,应先深入完整的学习相关的理论基础知识,就本次实验而言,应先弄清楚实验指导书中的内容,在进行实验,可以达到事半功倍的效果。
附 ATPprotecting()源代码Dim p As IntegerPublic Function ATPProtection(Blocks() As Single, LineAllowSpeed() As Single, TrackSignal As String, CurrentSpeed As Single, CurrentPos As Single)'[code here begin]Dim i As IntegerDim k As IntegerDim L As SingleDim s As SingleDim j As IntegerDim TargetDistance As Single Dim TargetSpeed As Singles = 0L = 0TargetDistance = 0For i = 0 To 10s = s + Blocks(i)If s > CurrentPos ThenFor j = 0 To iL = L + Blocks(j)NextExit ForEnd IfNextIf TrackSignal = "L5" ThenFor k = (i + 1) To (i + 7)NextTargetDistance = TargetDistance + L - CurrentPos TargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed) ElseIf TrackSignal = "L4" ThenFor k = (i + 1) To (i + 6)TargetDistance = TargetDistance + Blocks(k)NextTargetDistance = TargetDistance + L - CurrentPos TargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed) ElseIf TrackSignal = "L3" ThenFor k = (i + 1) To (i + 5)TargetDistance = TargetDistance + Blocks(k)NextTargetDistance = TargetDistance + L - CurrentPos TargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed) ElseIf TrackSignal = "L2" ThenFor k = (i + 1) To (i + 4)NextTargetDistance = TargetDistance + L - CurrentPos TargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed) ElseIf TrackSignal = "L" ThenFor k = (i + 1) To (i + 3)TargetDistance = TargetDistance + Blocks(k)NextTargetDistance = TargetDistance + L - CurrentPos TargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed) ElseIf TrackSignal = "LU" ThenFor k = (i + 1) To (i + 2)TargetDistance = TargetDistance + Blocks(k)NextTargetDistance = TargetDistance + L - CurrentPos TargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed) ElseIf TrackSignal = "U" Thenk = i + 1TargetDistance = TargetDistance + L - CurrentPos TargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "U2" ThenTargetDistance = L + Blocks(9) - CurrentPosTargetSpeed = 45TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "UU" ThenTargetDistance = L - CurrentPosTargetSpeed = 45TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "U2S" ThenTargetDistance = L + Blocks(9) - CurrentPosTargetSpeed = 80TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "UUS" ThenTargetDistance = L - CurrentPosTargetSpeed = 80TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "HB" ThenTrainAllowSpeed = 40ElseIf TrackSignal = "B" ThenTrainAllowSpeed = 40ElseIf TrackSignal = "HU" ThenTargetDistance = L - CurrentPosTargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)End IfIf CurrentPos <= LineAllowSpeed(1, 0) ThenIf TrainAllowSpeed > LineAllowSpeed(0, 1) Then TrainAllowSpeed = LineAllowSpeed(0, 1)End IfElseIf CurrentPos >= LineAllowSpeed(2, 0) ThenIf TrainAllowSpeed > LineAllowSpeed(2, 1) Then TrainAllowSpeed = LineAllowSpeed(2, 1)End IfElseIf TrainAllowSpeed > LineAllowSpeed(1, 1) Then TrainAllowSpeed = LineAllowSpeed(1, 1)End IfEnd IfIf CurrentSpeed > TrainAllowSpeed ThenBrakeFlag = TrueElseBrakeFlag = FalseEnd Ifp = p + 1student.Cells(p, 1) = CurrentPosstudent.Cells(p, 2) = CurrentSpeedstudent.Cells(p, 3) = TrainAllowSpeedstudent.Cells(p, 4) = TrackSignalstudent.Cells(p, 5) = Speed_Limit_Staticstudent.Cells(p, 6) = Speed_Limit_Curvestudent.Cells(p, 7) = BrakeFlag'[code end]End Function。