铁路控制系统初探

在探讨控制系统前,先说说控制系统的需求:

1> 控制铁路轨道上各种设备的工作

2> 协调各设备之间协作

这2点有些过于抽象了,任何一个系统都有这些特性。

从系统设计的角度, 要做2方面的事情。

1> 确定控制系统与外部设备间的通信接口与协议

2> 确定内部系统构成与功能。

1.1 关于通信协议与接口, 行业上通用的是modbus接口, 参考网站: http://libmodbus.org/

另外一些协议均是与公司有关,设计到保密协议,无法深入讨论。个人感觉最深的是, 均是udp协议,这颠覆了我一直认为tcp更安全的偏见。

通过学习这些接口,也学会了如何利用sequence ID 与Time设计一个稳定安全的内部通讯协议。

1.2 关于数据,整个控制系统使用的均是开关信号, 将它看成一个BitTable, 数学上理解就很简单了。

2.1 关于控制系统

基本上分为2个系统,一个是监控与log系统, 一个是逻辑控制系统。

第一个系统, 和通用系统没啥区别,用linux构建,完成系统状态的监控与显示。

第2个是逻辑控制系统, 基本是基于PLC设计原理。

基本思路: 定周期Timer触发处理流程

读取各系统状态与输入设备缓冲区状态

依次执行PLC控制逻辑

读取输出状态,通过外设继电器控制各种设备状态。

难点: 如何设计控制规则

了解下来,基本工具类似Ladder, 也就是常说的梯形图, 关于Ladder参考 (http://www.ladder-logic.com/hello-world/)

通过工具设计好控制逻辑后,将控制逻辑导出,并通过通信协议,传输到控制系统。

这样,整个控制系统就是可编程的了。

系统从技术上来说就2个难点, 1, 如何设计控制逻辑, 2 如何通过GUI,显示整个控制系统,并提供良好的人机交互。

2.2 安全

整个系统的稳定性是靠系统冗余来解决的。即所有设备和通信网络均由2个, 这样,假设单线的故障概率为0.001, 整个系的故障概率就为 (0.001)的4次方,

很低了。

这里有个难点是,主从系统如何切换,如何处理冗余系统, 这就又回到第一个问题,通信协议的设计了。

铁路控制系统初探,布布扣,bubuko.com

时间: 2024-12-17 15:56:03

铁路控制系统初探的相关文章

实时嵌入式软件开发的25个常见错误

英文原文由David B. Stewart撰写,  这篇论文对实时嵌入式软件开发的易犯错误做了深入分析,对我们的开发非常有指导意义. David B. Stewart Software Engineering for Real-Time Systems Laboratory Department of Electrical and Computer Engineering and Institute for Advanced Computer Studies University of Mary

【转载】实时嵌入式软件开发的25个常见错误

原文地址:http://blog.csdn.net/myaccella/article/details/7003308 英文原文由David B. Stewart撰写,  这篇论文对实时嵌入式软件开发的易犯错误做了深入分析,对我们的开发非常有指导意义. David B. Stewart Software Engineering for Real-Time Systems Laboratory Department of Electrical and Computer Engineering an

《Android编程权威指南》-读书笔记(三)Git初探

<Android编程权威指南>-读书笔记(三)Git初探 版本控制-Git 为什么要使用版本控制 什么是版本控制?我为什么要关心它呢?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制. 如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能).采用版本控制系统(VCS)是个明智的选择.有了它你就

Git 版本控制系统的基本使用、常用操作

以Ubuntu16.04操作系统为例(其他系统类似),主要记录常用的.基本操作: 0. 安装Git 分散型版本控制系统(CVS): sudo apt-get install git 1. 初始化本地配置git或其他配置等(配置仓库或者全局选项) git config --global user.name "your_name" git config --global user.email "[email protected]" git config --global

进阶之初探nodeJS

一.前言 在"初探nodeJS"随笔中,我们对于node有了一个大致地了解,并在最后也通过一个示例,了解了如何快速地开启一个简单的服务器. 今儿,再次看了该篇随笔,发现该随笔理论知识稍多,适合初级入门node,固萌生一个想法--想在该篇随笔中,通过一步步编写一个稍大一点的node示例,让我们在整体上更加全面地了解node. so,该篇随笔是建立在"初探nodeJS"之上的,固取名为"进阶之初探nodeJS". 好了,侃了这多,那么我们即将实现一个

从273二手车的M站点初探js模块化编程

前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数据. 273这个M站点是产品推荐我看的.第一眼看这个产品时我就再想他们这个三次加载和翻页按钮的方式,那么小分页的pageIndex是怎么计算的.所以就顺便看了下源码. 提到看源码时用到了Chrome浏览器的格式化工具(还是朋友推荐我的,不过这个格式化按钮的确不明显,不会的话自行百度). 三次加载和分

[转载]HDFS初探之旅

转载自 http://www.cnblogs.com/xia520pi/archive/2012/05/28/2520813.html , 感谢虾皮工作室这一系列精彩的文章. Hadoop集群(第8期)_HDFS初探之旅 1.HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上.它所具有的高容错.高可靠性.高可扩展性.高

MongoDB初探系列之二:认识MongoDB提供的一些常用工具

在初探一中,我们已经可以顺利的将MongoDB在我们自己的机器上跑起来了.但是在其bin目录下面还有一些我们不熟知的工具.接下来,将介绍一下各个小工具的用途以及初探一中MongoDB在data文件夹下创建的文件的用途. 1.bin目录下面的各种小工具简介及使用方式 bsondump.exe 用于将导出的BSON文件格式转换为JSON格式mongo.exe mongoDB的客户端 mongod.exe 用于启动mongoDB的Server mongodump.exe 用于从mongodb数据库中导

Asynchronous Pluggable Protocols 初探

Asynchronous Pluggable Protocols,异步可插入协议,允许开发者创建可插协议处理器,MIME过滤器,以及命名空间处理器工作在微软IE4.0浏览器以及更高版本或者URL moniker中.这涉及到Urlmon.dll动态链接库所公开(输出)的可插协议诸多功能,本文不进行深入的原理讲解,只对它其中之一的应用进行解析,那就是如何将一个应用程序注册为URL协议. 应用场景: tencent协议: 当我们打开"tencent://message/?uin=要链接的QQ号 &qu