基于 VB.NET WinForms 编写的铁路信号机点灯、进站模拟程序。用于演示信号机在不同进路(直向、侧向、双黄预警等)下的显示逻辑,以及故障状态下的显示切换。
.
├── 信号机点灯模拟系统.sln # 解决方案文件
├── 信号机点灯模拟系统.vbproj # 项目文件
├── App.config
├── Module1.vb # 程序入口(Sub Main),负责创建并显示各窗体
├── Form1.vb / .Designer.vb / .resx # 主控制窗体:操作按钮、进路选择
├── Form2.vb / .Designer.vb / .resx # 辅助窗体
├── Form3.vb / .Designer.vb / .resx # 信号机示意图绘制窗体(LineShape 灯位定义)
└── My Project/ # VB.NET 项目自动生成的设置、资源文件
- Windows + Visual Studio 2019 或更高版本
- .NET Framework 4.7.2
- 使用 Visual Studio 打开
信号机点灯模拟系统.sln。 - 还原/确认依赖引用(
Microsoft.VisualBasic.PowerPacks等,均为 .NET Framework 自带或随 Visual Studio 安装)后,直接按F5启动调试,或选择生成 -> 生成解决方案后运行生成的 exe。 - 启动后会依次弹出 Form1(主控制窗体)、Form2、Form3(信号机示意图),在 Form1 上进行进路操作即可观察灯位变化。
以下术语用于描述信号机之间的位置关系与操作:
| 术语 | 含义 |
|---|---|
| line | 指信号机右侧一条线 |
| me | 指我们研究的信号机 |
| a | 指左侧共线距离较近一个开关(信号机) |
| b | 指左侧共线最远端、线路终点一个开关(信号机) |
| c | 指左侧不共线一个开关(信号机) |
| 取消 | 界面下方“取消”按钮 |
| 人解 | 界面下方“人解”按钮 |
灯位:LineShape_red1, LineShape_red2, LineShape_red3, LineShape_red4_1, LineShape_red4_2, LineShape_red4_3, LineShape_red4_4, LineShape_red6_1, LineShape_red6_2, LineShape_red6_3, LineShape_red6_4, LineShape_red6_5, LineShape_red6_6, LineShape_red8, LineShape_red9
点亮顺序:XJZ220—RD1—DJ5-6—LXJ41-43—HBⅠ1-Ⅰ3—LXJ63-61—RD3—XJF220
灯位:LineShape_red1, LineShape_red2, LineShape_red3, LineShape_yellow4, LineShape_yellow5_1, LineShape_yellow5_2, LineShape_yellow6, LineShape_yellow7, LineShape_yellow8_1, LineShape_yellow8_2, LineShape_yellow8_3, LineShape_yellow9_1, LineShape_yellow9_2, LineShape_yellow9_3, LineShape_yellow9_4, LineShape_yellow9_5, LineShape_red8, LineShape_red9
点亮顺序:XJZ220—RD1—DJ5-6—LXJ41-42—ZXJ81-82—TXJ21-23—LUXJ21-23—UBⅠ1-Ⅰ3—LXJ62-61—RD3—XJF220
灯位:LineShape_red1, LineShape_red2, LineShape_red3, LineShape_yellow4, LineShape_yellow5_1, LineShape_green6_1, LineShape_green6_2, LineShape_green6_3, LineShape_yellow7_1, LineShape_yellow7_2, LineShape_yellow7_3, LineShape_yellow7_4, LineShape_yellow9_5, LineShape_red8, LineShape_red9
点亮顺序:XJZ220—RD1—DJ5-6—LXJ41-42—ZXJ81-82—TXJ21-22—LBⅠ1-Ⅰ3—LXJ62-61—RD3—XJF220
先亮一个单黄:
LineShape_red1, LineShape_red2, LineShape_red3, LineShape_yellow4, LineShape_yellow5_1, LineShape_yellow5_2, LineShape_yellow6, LineShape_yellow7, LineShape_yellow8_1, LineShape_yellow8_2, LineShape_yellow8_3, LineShape_yellow9_1, LineShape_yellow9_2, LineShape_yellow9_3, LineShape_yellow9_4, LineShape_yellow9_5, LineShape_red8, LineShape_red9
再接着:
LineShape_dy1, LineShape_dy2, LineShape_dy3, LineShape_dy4, LineShape_dy5, LineShape_dy6_1, LineShape_dy6_2, LineShape_dy6_3, LineShape_dy7_1, LineShape_dy7_2, LineShape_dy7_3
点亮顺序:
XJZ220—RD2—2DJ5-6—LXJ71-72—ZXJ71-73—TXJ11-13—2UBⅠ1-Ⅰ3—LXJ62-61—RD3—XJF220
XJZ220—RD2—DJ5-6—LXJ41-42—ZXJ81-83—2DJ21-22—LUXJ21-23—UBⅠ1-Ⅰ3—LXJ62-61—RD3—XJF220
上述操作的恢复操作:取消 → me,恢复为单红。
Role.Null 的单红:
LineShape_red1, LineShape_red2, LineShape_red3, LineShape_red4_1, LineShape_red4_2, LineShape_red4_3, LineShape_red4_4, LineShape_red6_1, LineShape_red6_2, LineShape_red6_3, LineShape_red6_4, LineShape_red6_5, LineShape_red6_6, LineShape_red8, LineShape_red9
叠加蓝:
LineShape_blue4_1, LineShape_blue4_2, LineShape_blue5_1, LineShape_blue5_2, LineShape_blue5_3, LineShape_blue6_0, LineShape_blue6_1, LineShape_blue6_2, LineShape_blue6_3, LineShape_blue6_4, LineShape_blue7_1, LineShape_blue7_2, LineShape_red8, LineShape_red9
点亮顺序:
XJZ220—RD1—DJ5-6—LXJ41-43—HBⅠ1-Ⅰ3—LXJ63-61—RD3—XJF220
XJZ220—RD2—2DJ5-6—LXJ71-72—YXJ71-72—YBBⅠ1-Ⅰ3—YXJ62-61—LXJ63-61—RD3—XJF220
恢复操作:人解 → me,恢复为单红。











