用于铁路信号网络的控制系统的制作方法

文档序号:6566901阅读:245来源:国知局
专利名称:用于铁路信号网络的控制系统的制作方法
技术领域
本发明涉及用于预备和检查要由数据驱动控制系统执行的应用数 据的方法,更具体地涉及用于铁路信号网络的固态联锁,并且其中所述网络包括至少一个中央联锁处理单元以及一个或多个远程或 外围操作单元,这些远程或外围操作单元例如是用于执行机械任务的一个或多个致动器、和/或一个或多个单或多方面信号单元、和/或用于 测量物理和/或化学参数的一个或多个传感器;所述网络进一步包括一个或多个数据通信线,数据通信线将所述 一个或多个远程或外围操作单元的每个连接到中央联锁处理单元,用 于将所谓的输入数据电文发送到中央联锁处理单元,以及用于接收由 中央联锁处理单元生成的输出电文或命令电文;所述中央处理联锁单元包括通用硬件平台,该通用硬件平台执行 所谓的控制解释器或联锁功能程序的通用软件,用于执行系统管理任 务,并用于解释表示多个远程或外围操作单元之间的逻辑关系的特定 于网络的应用数据,以及用于解释管理控制系统的特定于应用的控制 规则也就是所谓的联锁逻辑,从而使得施加到所述应用数据或联锁逻 辑的控制解释器可产生特定于控制系统的控制功能;该方法包括利用具有人类用户友好语法的第一编程语言来表示所 述应用数据并利用软件工具即编译器用第二语言来转换所述应用数据 的步骤,该第二语言具有可以由中央联锁处理单元处理的机器友好语 法,即二进制代码。
背景技术
以上公开的控制系统也就是所谓的已知固态联锁系统(SSI)。这 种系统是所谓的数据驱动类型。该系统的体系结构也是已知的,并且 该系统包括计算机化的处理单元,该单元由传统通用硬件和通用软件
结合而形成,当执行通用软件时,允许通用硬件来执行通用读和写循 环或轮询循环。严重依赖于网络配置的形成控制系统的网络的多个远 程或外围操作单元之间的逻辑关系,也就是也严重依赖于形成网络配 置的管理控制过程的规则,采用所谓的应用数据的形式。概括说来, 应用数据表示了这样的规则,由中央处理单元基于这种规则所执行的 通用软件操作并定义了系统的特定联锁功能。通用程序和应用数据之 间的关系中,前者作为后者的解释器。所以,由中央处理单元执行的 通用软件通常被称为中央解释器,而应用数据也被称为联锁逻辑。关 于本发明的方法所具体涉及的方法和特定固态联锁系统的更深和更详 细的信息,在Cribbens A.H.: Solid State Interlocking(SSI): an Integrated Electronic Signalling System for Mainline Railways. IEE Proceedings, Part B: Electric Power Applications, Volume 134, Issue 3, ppl48-158. IEE(1987)中进行了公开。如本领域技术人员已知的,为了提供能够满足更高安全性要求的 控制过程的软件工具,已经开发出了固态联锁的体系结构。具体地, 铁路信号网络需要高度的故障保护操作。通过从中央联锁处理单元执 行的通用软件中,与网络配置和用于管理控制系统的网络的规则相关 地分离出特定于网络的应用数据,从安全性要求的观点来说,已经从 通用基本软件中明确地分离出高度关键的数据,该通用基本软件涉及 管理通用硬件平台的原级(primitive)任务和其他管理任务,例如管理 通信线和协议等。中央联锁处理单元的基本硬件构造包括微处理器,该微处理器与 保存通用程序和应用数据的RPROM协作。RAM存储器被用于输入和 输出装置。RAM存储器还被用于保存控制系统的状态记录,其被本领 域技术人员称为系统的图像或内部状态。固态联锁按如下起作用对 输入的数据电文进行解码,并处理相关联的应用数据。此外,还处理 与输出命令电文相关联的数据。 关于固态联锁,数据预备的一个问题是,行为非常像编程。在一 些技术领域中,如铁路信号网络,由控制表格给出规范说明,控制表 格不严格地指出可以驱动特定操作单元执行特定动作之前必须满足的 所有条件,例如在可以将信号灯从红色切换到绿色从而允许火车进入 下一轨道段之前要满足的所有条件。这些表格具有定义的语法,这种 语法对于技术人员具有清楚的意义,但是也由于联锁特别是铁路联锁 所固有的巨大组合复杂性,而非常难以利用这种语法工作。没有方法 来描述规范说明的完整性,因此需要验证根据所述规范说明导出的代 码满足了特定于应用的安全性能,例如禁止两辆火车同时占用相同的 轨道段的可能性。根据简单的反编译器和语法比较器上,以及在仿真网络上的离线 测试和现有网络上的在线测试,传统的验证方法是基于对于控制表格 的检查和对于导出的应用数据的检查。由于高组合复杂性,通常穷尽式仿真是不可能的。此外,应用数据的语法性质也使得目视检查(visual inspection)实际上是不可能的或 不可靠的。所以,难以发现说明数据中的深度错误类问题或甚至难以 发现微小错误如语法错误,该语法错误例如编码的问题。如已经公开的,已经通过所谓的高级语言来写应用数据,高级语 言的语法是人类用户友好的。源代码被翻译为机器或目标代码的过程, 是通过软件翻译工具也就是所谓的编译器来完成的。预备可执行软件工具以及具体地应用数据的实际方法的主要缺点 在于这样的事实,人类用户不能直接査看或编辑目标代码。因此,直 接编辑是不可能的,并且不能校正错误,也不能更新软件工具。此外, 还不能直接验证源代码到目标代码的编译过程是否正确执行。这通常 通过提供反编译工具也就是所谓的反编译器把用目标代码表示的应用 数据转换回到用源代码表示的应用数据、以及通过将用源代码表示的
最初应用数据和通过所述反编译过程所获得的应用数据进行比较来实 现。由于这样的事实,也就是编译不是简单和直接的翻译,而是还提 供了源代码翻译(例如宏扩展)步骤,反编译不能完整地或准确地重 建源代码语法中的应用数据,所以不能以完全自动的方式来执行比较, 而必须由人类操作员验证,比较过程所凸现的差异只是由于反编译过 程的所述限制,而不是由于编译器自身的故障。每次要修改或更新应用数据时,人类用户需要修改或更新源代码, 并且再次执行编译过程,用于获得目标代码中的应用数据的修改或更 新后的版本,以及如果为了安全的目的而需要验证编译器,则人类用 户还需要再次执行上述的反编译和比较过程。当考虑通过仿真来验证联锁系统的以上情况时,意图实现控制系 统的完整安全的操作,并且在两个级别上执行验证,也就是在以源代 码语法表示的应用数据的级别(通过代码检查)执行验证,以及在以 目标或机器代码表示的应用数据的级别(通过测试)执行验证。此外,目标代码的测试需要基于测试软件来构造虚拟模型,测试 软件自身不能避免上述的问题且涉及故障保护编译过程。这种模型非 常复杂,因为源代码是通过从人类用户的实际现象观点开始而基于非 常具体的语法,目标代码仅仅通过应用描述控制系统的具体现象结构的语法以及可被压縮到硬件中的语法也就是通常的纯二进制代码来改 变观点的。实际上显然需要减少多种测试的成本和负担,并提高联锁系统的生产率。已知这样的语言,这些语言被定义为中间语言或代码,它们被用 在编译过程中,例如在AHO A等的"Compilers Principles, techniques and Tools", reading Addison-Wesley Publishing CO, US1986 或"Encyclopedia of Computer Science" A. Ralston, E.D. Reilly, D. Hemmendinger, 2003 John Wiley & Sons, Chicester UK中进行了公开。以上文档中公开的传统编译器技术中使用的中间表示,被用来通 过在生成目标代码之前将源代码转换为存储器中的中间数据结构,从 而协助编译过程。传统编译器中的中间数据表示不能被用来验证编译 过程而只能用来协助编译过程。因此依然需要编译验证过程。中间表 示不是从源代码和目标代码产生的。数据的传统的中间表示不是按足 够严谨的方式定义的,从而不能定义数据的语义。该事实导致传统的 中间表示不能帮助克服现有的反编译问题。发明内容本发明的目的是提供一种用于预备和检查要由数据驱动控制系统 执行的应用数据的方法,更具体地是提供用于开始描述类型的铁路信 号网络的固态联锁,使得可按简单且可靠的方式满足上述需求。根据本发明的原理,通过用于预备和检查要由用于执行程序的可 编程控制装置或设备来执行的应用数据的方法,达到了上述的目的,其中a) 提供用于表示软件工具的编程语言,该语言基于抽象语法,更 具体地是面向对象的语法;b) 从源代码语言和目标代码语言二者生成所述编程语言;c) 用所述编程语言来表示控制程序;d) 通过将按基于抽象语法的语言表示的所述控制程序翻译成源 代码格式的语言和目标代码格式的语言,来生成控制程序的源代码格 式和/或目标代码格式。被称为中间数据语言的上述编程语言,可以使用与应用数据的具 体源代码和目标代码语法相区别但可相比较的语法,以抽象方式来表 示联锁系统应用数据;并且,可以以准确方式来表示联锁系统应用数
据,从而可以规范地分析应用数据的特性。中间数据语言主要是要用 来验证应用数据从源代码到目标代码的编译,但是也可以被用于其他 数据预备和验证行为。如已经指出的,应用数据中间代码不能与传统编译器技术中使用 的中间表示相混淆,后者被用来在生成目标代码之前将源代码转换为 存储器中的内部数据结构,从而协助编译过程。首先,根据本发明的 中间代码可以被用来从源代码和目标代码二者生成中间代码,从而验 证编译过程而不是协助编译过程。具体地,中间代码被引入主要是作为用于在安全关键的系统上的应用的不同技术(diverse technique)。 其次,使用规范化的规范说明技术来定义应用数据的语义,按照比传 统编译器技术中使用的多数中间表示更严格的方式,对应用数据中间 代码进行定义。具体地,本发明的目的是一种用于预备和检查要由数据驱动控制 系统执行的应用数据的方法,更具体的目的是用于铁路信号网络的固 态联锁,其中.-所述网络包括至少一个中央联锁处理单元和一个或多个远程或外 围操作单元,例如用于执行机械任务的一个或多个致动器、和/或一个 或多个单或多方面信号单元、和/或用于测量物理和/或化学参数的一个 或多个传感器;所述网络进一步包括一个或多个数据通信线,数据通信线将所述 一个或多个远程或外围操作单元的每个连接到所述中央联锁处理单 元,用于将所谓的输入数据电文发送到中央联锁处理单元,并且用于 接收由中央联锁处理单元生成的输出电文或命令电文;所述中央处理联锁单元包括通用硬件平台,通用硬件平台执行通 用软件,也就是所谓的控制解释器或联锁功能程序,这些程序用于执 行系统管理并用于解释特定于网络的应用数据,特定于网络的应用数 据表示多个远程或外围操作单元之间的逻辑关系以及管理控制系统的 应用特定控制规则也就是所谓的联锁逻辑,从而,施加到所述应用数
据或联锁逻辑的控制解释器产生特定于控制系统的控制功能;该方法包括这些步骤用第一编程语言来表示所述应用数据,第 一编程语言具有人类用户友好的语法,也就是所谓的源代码;并利用 软件工具也就是所谓的编译器,用第二语言对所述应用数据进行翻译, 第二语言具有机器友好的语法,也就是二进制码,即所谓的目标代码,目标代码可以由中央联锁处理单元进行处理。 其特征在于提供具有面向对象语法的第三语言,用于表示所述应用数据; 在所述第一编程语言也就是源代码中的应用数据的语法和/或在 所述第二语言也就是目标代码中的应用数据的语法,可以从用具有面 向对象语法的所述第三语言生成的所述应用数据的语法导出;提供自动翻译程序,用于在所述第三语言与所述第一和/或所述第 二语言之间翻译所述应用数据。根据本方法的进一步的特征,还提供翻译装置,用于分别地将用 所述第一或所述第二语言表示的所述应用数据从所述第一和/或所述第 二语言翻译为所述第三语言。第一语言是表示控制程序的人类用户友好的语言,也就是所谓的源代码,典型地是高级语言,而第二语言是机器友好的语言,也就是 所谓的机器或目标代码,典型地是二进制代码。根据以上的方法,通过将致动器、信号单元、传感器和联锁逻辑 设置为等于基于面向对象语法的语言的对象,可以描述应用数据中包 括的控制系统配置和管理控制过程的规则。本领域技术人员知道,面向对象的语言通常定义这样的对象,当 对象具有相同的属性、函数或允许相同操作时,则被划分到(相同)类。利用对象之间的关系或链接,来表示每个对象影响其他对象的方 式。在每个类中,可以使用约束项来定义每个对象允许的操作或指令, 或关于每个对象的操作或指令。与典型的源代码语法以及典型的目标代码语法相比,面向对象的 语言的语法可以被看作是一种抽象语法。这些语言可以被看作是在源 代码的语言和目标代码的语言之间的中间语言,并且通过所述中间语 言,可以利用该中间代码语法,以这种抽象形式来表示应用数据。可以没有任何问题地用源代码和/或目标代码语法来翻译或编译 所述中间代码表示的应用数据,所述中间代码基于控制系统的配置的 抽象,该控制系统的配置涉及形成控制系统的操作单元并且涉及管理 系统的逻辑。相类似地,用源代码语法和/或目标代码语法表示的应用 数据可以被翻译成中间代码语法。因为中间代码基于抽象语言,中间 代码以完全独立的方式描述了控制系统及其逻辑,所以可以获得中间 代码至源和/或目标代码或相反方向的自动和完整翻译,完全独立的方 式是指独立于由人类用户考虑的硬件的具体现象感知和描述;从硬 件自身的观点考虑的硬件的具体现象感知和描述。更具体地,使用结构化和规范化的规范说明方法,通过定义表示 各种数据类型及其关系的类和关联(association)来组合UML和 VDM十+记号,获得作为中间语言的所述第三语言的语法并且其中按面 向对象的方式描述所表示的应用数据。有利地,类定义还包含应用数据的语义的规范说明,该规范说明 包括为了正确解释数据所要求的该数据必须满足的约束条件的规范说 明,以及如何解释数据也就是定义数据的意义的规范说明。可以根据VDM++模型来定义语义规范说明,按特定控制装置或设 备的配置来表示处理单元的状态。用中间代码把控制系统或控制网络的特定配置的数据描述为一组 对象和所述对象之间的链接,根据该中间语言的语法规定的类和关联 来例示这些对象和链接。UML和VDM+十是已知的语言,在文档"The VDM Tool Group, The IFAD VDM++ Language Technical Report", IFAD, 2000年10月中进行更深入的描述。用基于面向对象的语法的所述第三语言来表示应用数据,能够克 服以上公开的缺点并提供多个功能优点。从以所述第三语言也就是上面定义的中间代码来表示应用数据开 始,总是可以按人类用户友好的方式来表示应用数据。通过直接修改 表示成中间代码也就是用所述第三语言表示的应用数据,可以容易地 执行控制程序的更新,该控制程序的更新是由于控制系统或网络结构 的硬件更新所导致的。从以所述第三中间语言来生成所述应用数据开 始,可以用源代码和目标代码语法来翻译应用数据。利用中间代码符号表示的应用数据可以被容易地打印到纸或显示 在监视器上,并具有人类可以理解的形式和语法。作为一种抽象,总 是可以采用确保人类用户可快速明确理解的方式,利用自动软件工具 来容易地转换和表示以第三语言也就是以中间代码语法表示的应用数 据。所述转换或表示软件工具可以是能够在写入和/或图形表示中呈现 应用数据的类型。根据本发明的方法的优点在于这样的事实,给出控制系统或网络 的特定结构配置,例如具有一定轨道段、信号、点致动器等等的铁路 网络,并且给出用于管理所述网络的特定规则,可以按完全独立于在 具有相同结构配置的不同联锁系统中使用的特定源代码语法和特定目 标代码语法的方式,利用所述中间语言来写应用数据。因此,在相同 的但是以源代码和/或目标代码记号表示的应用数据中,通过提供以中
间代码语法表示的应用数据的适当翻译器,可以将用中间语言表示的 相同应用数据用于所述联锁系统的每个。应用数据的中间代码记号协 助提供进一步的功能性或特征。例如,当考虑编译过程以及编译过程的验证时,用中间代码记号 来表示的应用数据帮助避免用源代码语法最初表示的应用数据和根据 目标代码记号利用反编译而获得的应用数据之间的不对应所导致的问 题。此外,在用源代码和中间代码记号表示的应用数据上,都可以完 成应用数据语法语义的多种检查(如验证其是良好形成的,以及验证 其符合控制系统和解释器所施加的容量和处理限制条件以及应用所需 要的安全相关的限制条件),其中, 一个检查验证源代码中包含的表 达符合为具体语法的项而指定的一定文本限制条件,而其他检查则验 证以中间代码描述的对象和链接满足为抽象语法的类和关联而指定的 语义限制条件。在这种情况下,因为使用中间代码语法预备应用数据允许在以中 间代码记号从源代码记号编译应用数据的同时,执行应用数据有效性(validity)检査,并且以中间代码记号来从目标代码记号反编译应用 数据也对应于应用数据检查,所以还执行应用数据编译过程的双验证。为了验证从以源代码符号表示的应用数据到以目标代码符号表示 的应用数据的编译过程,可以根据以下步骤来执行所述多种检查和比较提供以第一语言也就是以源代码记号表示的应用数据;提供编译器,用于检查并且将以所述第一语言也就是以源代码记 号表示的应用数据翻译成以第二语言也就是以目标代码记号表示的应用数据;提供第三语言,用于表示应用数据,所述语言具有面向对象的语 法;提供第二编译器,用于将以所述第一语言表示的应用数据翻译成 以所述第三语言表示的应用数据,并且用于多样地检查以所述第三语 言表示的应用数据;提供反编译器,用于利用所述第三语言来翻译以第二语言表示的 应用数据,获得所谓的反编译应用数据;将以所述第三语言编译的应用数据和所述反编译应用数据做比较;如果在所述比较中没有检测到差异,则将以第二语言表示的应用 数据定义为有效;针对在所述比较中检测到的任何差异,发送出错消息或指示 (indication)。第一语言是表示控制程序的人类用户友好的语言,也就是所谓的 源代码,典型地是高级语言,而第二语言是机器友好的语言,也就是 所谓的机器或目标代码,典型地为二进制代码。所述第三语言是上面已经公开的中间代码,并且如上所述,它是 基于面向对象语法的编程语言,较之以源代码和以目标代码记号表示 的应用数据可以按更抽象的方式来描述控制系统的配置、功能和状态。与典型的源代码语法和典型的目标代码语法相比,面向对象语言 的语法可以被看作一种抽象语法。这些语言可以被看作源代码的语言 和目标代码的语言之间的中间语言,并且利用所述中间语言,可以将 以这些抽象形式表示的控制系统和控制程序或逻辑表示为中间代码。通过定义表示多种数据类型和它们之间的关系的类和关联,使用结合UML和VDM++记号的结构化和规范化的规范说明方法,以面向 对象的方式描述作为中间语言并且其中表示中间代码的所述第三语言 的语法。
有利地,类定义还包含应用数据的语义的规范说明,包括数据为 了被正确解释所必须满足的限制条件的规范说明,以及包括如何解释 数据也就是定义数据的意义的规范说明。可以根据¥0 4++模型来定义语义规范说明,按特定的控制装置或 设备的配置表示处理单元的状态。利用中间代码,将用于控制系统或网络的特定配置的数据描述为 一组对象和所述对象之间的链接,这些对象和链接是从由中间语言的 语法指定的类和关联进行实例化而得到的。UML和VDM++是已知的语言,它们在以下的文档中进行更深入 的描述"The VDM Tool Group, The IFAD VDM++ Language Technical Report", IFAD, 2000年10月。在上述公开的情况下,需要强调,第一和第二语言也就是源代码 和目标代码的语法都是具体的语法,其与控制系统或网络的现象具体 硬件结构以及管理控制系统或网络的逻辑是具体相关的。用源代码语 法和目标代码语法表示的应用数据是强数据相关的。与之相反,中间 代码语法基于控制系统或网络的现象结构以及管理所述控制系统或网 络的规则的抽象。要由该控制系统控制的过程的特定例子是铁路信号联锁系统的情 况,其中,需要根据在该领域中传统使用的安全性规则来控制铁路网 络上的列车运行。网络包括由铁轨段形成的不同铁路路线,称作轨道电路的致动 器,用于检测所谓的区间闭塞(block)上的列车的存在,或者还用于 停止一个区间闭塞上的列车,致动器用于移位铁路道岔(railroad
point);用于指示自由通过、警告(caution)或用于停止列车通路的 信号(单元);以及还包括典型的交通控制装置、信号单元或传感器。处理单元也就是所谓的中央联锁处理单元,其能够如前已经讨论 来执行应用数据。在这些联锁系统中,发生错误会造成巨大的和非常危险的后果,所以需要非常高级的安全性和故障保护的操作,并高度重视待由联锁 处理单元执行的应用程序的测试和验证。这些测试和验证过程意图测试和验证作为源代码形式的应用数据 的正确性,并且还验证和测试源代码到机器或目标代码的翻译也就是 所谓的编译,并且通常还提供仿真工具,该仿真工具使得能够通过软 件级的仿真来离线测试应用数据的功能性,而不需要将中央联锁处理 器与以上列出的实际铁路网络和实际外围或远程操作单元连接起来。 在这样的情况下,通常通过施加致动器、信号单元和传感器的预定操 作状态,来给出铁路网络的特定状态,这些预定操作状态由变量的适 当值来表示,而变量在控制程序中定义具体的驱动信号、状态信号和 测量信号,并且通过读取所述控制程序针对所述变量确定的变化,来 分析由联锁处理器执行的控制程序的响应,所述变化可能导致一定致 动器或信号单元的驱动,从而改变其功能或操作状态,并由此导致对 应变量值的变化。可以测试铁路网络的任何类型的理论上看似合理的 操作情况,甚至在严格的情况下,致动器、信号单元或传感器的至少 一个或一些未能正确操作。本发明的目的是提供一种用于预备和检测待由控制系统执行从而 执行过程的软件工具的方法,其克服了上述的缺点,不仅确保提供软 件工具的更容易的预备,并且还确保按更简单且更可靠的方式执行软 件工具的自动检査,该自动检查通过要被控制的过程的仿真来检查软 件工具的功能,或者检査源代码到目标代码的翻译也就是编译过程的 正确性。根据所述第三语言的语法而表示为以上述中间代码的控制程序或 应用数据的另外应用,包括应用数据也就是控制程序的语义规范说明 和验证。如上所述,所述第三语言也就是所谓的中间语言,已经提供了一 种方法,用于定义应用数据也就是生成处理单元模型的控制程序的语 义。在这种情况下,已经使用Rational Rose和IFAD VDM++CASE工具开发了语言规范说明,其提供了一些验证工具,例如语法检查器和 类型检查器。IFAD VDM++CASE工具还包括动画模拟工具(animation facility),该动画模拟工具使得能够相对于处理单元状态的模型来执行 处理单元的模型。验证规范说明的能力提供关于语言是正确的、完整的且符合管理 要被控制的过程的原理的置信度等级。还使得能够通过引入新语言特 征来进行实验。所以,本发明提供了一种用于应用数据也就是控制程序的语义的 规范说明和验证的方法,该方法包括以下步骤a) 根据之前公开的用于预备和检查软件工具的方法提供第三语 言,该第三语言的语法不同于用户友好语言和机器友好语言的语法;b) 所述第三语言具有面向对象的语法,并包括用于应用数据的语 义规范说明的方法;c) 所述规范说明生成处理单元的模型;d) 通过相对于中央联锁处理单元状态的模型来执行中央联锁处理 单元的解释器的模型,从而执行语义的验证。
参考以上公开的固态联锁,输入消息和输出消息明确地定义了中 央联锁处理单元的所谓内状态。在这种情况下,可以离线仿真控制系 统的实际功能。从控制系统中设有的不同外围单元生成输入数据电文, 通过读取由中央联锁处理单元生成的输出电文,来测试应用数据的功 能。这些输入电文和输出电文明确地定义了中央联锁处理单元的所谓 内状态,并且如果正确地参考控制系统的网络中设置的远程或外围操 作单元,可以从电文推导出外围或远程操作单元的状态的虚拟图像(virtualimage),并且如果己经利用中央联锁处理单元正确地设置了 这些操作单元,也可以进行控制。如上所述,用抽象语法的中间代码语法表示的应用数据,允许定 义应用数据的语义,得到了中央联锁处理单元的解释器的模型。这允 许通过以所述中间代码语法来表示输入和输出电文,从而执行中央联 锁处理单元的功能的离线仿真测试。将中央联锁处理单元的解释器的模型与中央联锁处理单元状态的 模型进行比较,允许验证应用数据中指定的联锁逻辑。使用Rational Rose和IFAD VDM++ CASE工具来开发第三语言规 范说明。作为进一步的应用,用作为中间语言的上述第三语言表示的应用 数据或控制程序也被用于仿真工具的验证,其可以被开发以执行控制 系统的在线测试。本发明还涉及用于验证针对过程的控制系统的仿真的方法,该方 法包括以下步骤a) 根据之前公开的用于预备和检查软件工具的方法,来提供第三 语言,该第三语言的语法不同于用户友好语言和机器友好语言的语法;b) 所述第三语言具有面向对象的语法,并且包括用于应用数据的
语义的规范说明的方法;C)该规范说明生成中央联锁处理单元的解释器的模型;d) 用机器友好语言,从所述第三语言翻译应用数据,从而获得目 标代码;e) 通过基于所述第三语言的模型,生成应用数据解释器和中央联 锁处理单元的状态的模型;f) 通过处理单元来离线地执行目标代码;g) 通过基于所述第三语言的模型和目标代码的离线执行的比较, 来验证仿真。


通过例子和附图,在下面的描述中更详细地公开了本发明和从其得到的优点,在这些附图中图1是示出所谓固态联锁类型的通用控制系统的结构的方块图;图2是示出控制系统和面向对象的语言之间的关系的方块图;图3是以简化方式示出的铁路网络或设备中的用于控制铁路交通的控制系统的例子;图4是示出如何从以中间语言表示的应用数据中得到应用数据的不同具体源和目标代码表示的方块图;图5示出用于通过使用所述中间语言来对编译过程进行故障保护验证的方法,其中,所述中间语言用于利用中间代码记号来表示应用数据;图6-9示出了多个步骤的方框图,这些步骤用于利用以中间代码 记号表示的应用数据,来执行控制系统的离线仿真;图10示出了 UML对象图的例子,该例子示出了许多从名为 "RouteMemoryTest "的类派生的类;图11示出UML对象图,该对象图示出RouteMemoryTest作为名 为MemoryTest的类的子类;图12示出分配给保留用于路由的CIXL存储器的部分中的索引53 的路由的状态的图13示出RouteSetTest类的对象的图,已经在中央联锁系统CIXL 应用数据中创建了该对象,作为中间代码表示的结果。
具体实施方式
参考图1,利用方块图示意性地示出了所谓固态联锁类型的用于 控制过程的通用可编程控制系统。通过包括一个或多个用于执行过程 的控制功能的通用致动器1的硬件结构,来形成控制系统。例如,在 用于按受控方式将液体馈送到用户装置中的设备中,这些流体可以按 特定比率混合,这些致动器可以包括调节阀。可以利用驱动信号或命 令101来远程驱动所述阀,配备有驱动单元,并可以具有用于指示它 们操作状态201的装置,该操作状态201例如是最大开口位置和关闭 位置之间的允许用于阀的不同开口位置。控制系统的通用设备还可以包括信号装置,该信号装置用于以可 见方式指示特定状态。并且,信号单元2具有用于接收和执行驱动命 令102的驱动单元,以及还可以具有用于指示这些驱动单元的操作状 态202的装置。这些信号可以是例如多方面光或相似的信号单元。通用设备还可以设有传感器3,例如压力指示器、电流或电压指 示器等或其他传感器,这些其他传感器被用于测量控制系统的设备或 被自身控制的过程的特性参数。设备的特征进一步在于这样的硬件结构,该硬件结构表现为致动 器的数量和类型、和/或信号单元的数量和类型、和/或传感器的数量和 类型的列表。致动器1和/或信号单元2和/或传感器3通过它们的状态指示装置 与可编程中央联锁处理单元4的输入端口 104进行通信。此外,可编 程中央联锁处理单元4与驱动单元通信,用于利用输出端口 204执行 致动器1的命令101和信号单元2的命令102。
在控制程序中描述了硬件特别是设备或网络的结构,以及支配设 备或网络用于执行控制过程的规则,以及描述了基于致动器l、信号单 元2和传感器3的状态数据和由传感器测量的数据来确定它们之间的 相互作用的规则,从而可以利用处理单元4来执行应用数据。在固态联锁系统中,利用通用硬件结合通用软件,形成处理单元 4,该通用硬件包括用于输入电文和输出电文的处理器和存储器,而通用软件用于管理读和写循环,并且用于管理和远程外围单元的通信,该远程外围单元例如所述的致动器1、信号单元2和传感器3。如图2所示,在另外的软件也就是所谓的应用数据中表示出以下 涉及由致动器1的驱动单元和信号单元2所接收的驱动信号的结构和 类型的规范说明;以及涉及由致动器l、信号单元2和传感器3生成和 传输的状态信号的结构、类型和意义的规范说明;它们之间的逻辑关 系以及支配控制过程的规则。当在中央联锁处理单元4中加载和执行应用数据连同通用管理软 件时,处理单元能够根据支配控制过程并且包括在应用数据中的规则, 也就是所谓的联锁逻辑,来正确地解释由致动器l、信号单元2和传感 器3生成的输入数据电文,以及能够生成输出电文也就是所谓的命令 电文至所述单元l、 2和3的一个和多个中。当前,通过使用基于人类用户友好的语法的编程语言,来书写控 制程序,该编程语言也就是所谓的高级语言。这种形式的控制程序被 称为源代码。高级语言是非常接近人类语言的某种类型的浓縮和简化 的语言。为了由处理单元执行,需要利用翻译程序,将控制程序翻译 成基于机器友好语法的语言。表示的方式通常是二进制码或类似形式。 这种形式的控制程序被称为机器或目标代码。目标代码不能直接被人 类用户所理解,所以不能由人类操作员来执行例如编辑、查看或检查
目标代码的行为,或者即使执行这些行为例如打印目标代码,结果对 于人类用户也是无用的。图3示出了由所谓的固态联锁处理器控制的简化铁路网络。在该 简化的例子中,铁路网络包括每个关联到用IO表示区间闭塞(block) 的轨道电路。用ll表示道岔(switch),并且该道岔11包括道岔驱动 装置和道岔状态指示器。具有两个信号单元例如多方面灯12。以上的每个装置通过通信线与联锁系统14连接,该联锁系统14包括执行控制程序或应用数据的联锁处理器。要被控制的过程是铁路交通,而用 于控制该过程的规则是在每个铁路网络中传统定义的规则。用于预备应用数据的语言可以是以上提到的语言,该语言被表示为基于抽象语法的中间语言,而该应用数据要被中央联锁处理单元4 执行,或例如被联锁处理器14执行。这种语言使得可获得多个优点,并且允许定义用于预备和检査应 用数据或其中涉及控制程序的其他行为的新方法。在进入涉及中间代码及其对于不同过程的使用的更多实际细节之 前,参考铁路联锁系统的例子,描述和简要地讨论了中间代码的形式 的通用例子。以下的例子示出了中间代码相对于其源代码和目标代码对应部分 所采用的形式。源代码R103 s目标代码
中间代码data.routeSetTest("R103")该例子示出了用来表示"rout set test"的源代码、目标代码和中间 代码语法,这是用来确定是否设置了给定路由的测试,其中,符号
"R103"标识该路由。该测试的源代码形式使用助记符来表示,例如用"S"代表设置。该测试的目标代码形式被表示为目标代码指令,该目标代码指令 由数字代码组成,其中,第一数字(十六进制)代码表示目标代码指 令的类型(例如路由设置指令),而其他两个数字(十进制)代码是该指令的参数(例如,"53"是记录有用于路由"R103"的数据的中 央联锁系统存储器的索引)。该测试的中间代码形式被表示为函数调用,从而在中央联锁系统 应用数据中创建类"RouteSetTest"的对象(由词i吾"data"表示), 其中,传递该函数作为参数,例如路由的名称。图4示出方块图,其表示以基于抽象语法的语言即这里定义的中 间代码表示的应用数据的可能使用。应用数据的中间形式,也就是这里所谓的中间代码,是适用于多 种工具的开发的表示,这些工具可以在数据预备和检査过程期间使用。 例如,为了编辑、查看或检査目的,根据这种表示,可以容易地投影 数据的很多不同视图(view)。可以从中间代码产生相同数据的源代码 (具体语法)和目标代码(对象代码)。并且,可以为不同的用户应 用程序生成可选择的源形式和可选择的目标形式,如不同的方块源形 式1和2以及目标形式1和2所示的。以这种方式,只要保留了中间 形式的底层语义,可以设计出面向特定系统的具体语法。还可以容易 地将应用数据移植到不同的目标平台。最终,新的数据类型可以按它 们的中间形式进行引入和验证,并将对应的源和目标形式适当地分配 给它们,这些源和目标形式是通过将以所述中间形式也就是以所述中 间语言表示的应用数据翻译(编译或反编译)成源形式和目标形式的 语言而获得的。
中间语言通过识别由中央联锁处理单元的解释器处理的基本实体(essential entity)和属性,在概念上描述了应用数据。与用于构造离 线的控制程序或应用数据的具体源代码语法、以及用于表示在线应用 数据的具体目标代码语法相比,应用数据的这种形式被称为语言的抽象语法。通过定义表示多种类型的应用数据类型和它们之间的关系的类和 关联,使用结构化和规范化的规范说明方法结合UML和¥01^++记号, 以面向对象的方式描述了抽象语法。类定义还包含应用数据的语义的 规范说明,包括应用数据为了被正确地解释和处理而必须满足的限制 条件的规范说明,以及还包括如何解释数据的规范说明(也就是定义 数据的意义的规范说明)。利用VDM++模型定义了语义规范说明,按 特定系统如特定铁路运营商的配置来表示处理单元的状态。利用中间代码将特定模式的应用数据描述为一组对象以及这些对 象之间的链接,这些对象和链接是从由抽象语法指定的类和关联的实 例(UML和VDM++是已知的语言,它们在以下文献中得到了更深入 的描述"The VDM Tool Group, The IF AD VDM++ language Technical Report", IF AD, 2000年10月")。使用规范说明方法指定中间代码语言的语法(形式)和语义(意 义),该规范说明方法结合UML和VDM+十记号的使用,UML和VDM++ 记号是用于软件规范说明的标准记号。UML记号是图解的,因此可以 用于按图示的方式描述软件。¥01^++是基于数理逻辑的形式记号,以 及可用于按精确的方式来对软件进行具体说明。UML和VDM++语言都包含用于定义对象的类的构造(construct)。 因为语言使用相似的机构用于描述类的特性和关联,所以可以在两种 记号之间转换。具体地,可以使用¥0]^++记号来表示类特性的类型(在
UML语言中其被称为"属性",而在VDM++语言中其被称为"实例使用两个商业开发的工具来应用UML/VDM++组合方法,这些工 具来自Rational公司且命名为Rose,用于使用来自IFAD的UML和 VDM++工具箱来构建模型(软件规范说明),用于使用VDM++语言 来构建模型。VDM++工具箱中的工具可以被用来在UML模型和 VDM++模型之间进行转换。在下面,描述了使用中间代码来处理控制程序的一些特别的方法。语义规范说明和验证如上所述,根据本发明的新语言或其抽象语法已经提供了一种用 于定义应用数据的语义的方法,从而得到中央联锁处理单元的解释器 的模型。使用Rational Rose和IFAD VDM++ CASE工具来开发语言规 范说明,提供了很多验证工具,例如语法检验器和类型检验器。IFAD VDM++ CASE工具还包括动画模拟工具,该动画模拟工具使得能够与 中央联锁处理单元状态的模型相比较地执行(execute)数据解释器的模 型。验证规范说明的能力提供了语言正确、完整且与管理待控制过程 的原则相符合的可信度。关于本申请的具体例子,这些原则是控制特 定铁路网络中的铁路交通的原则。作为中间代码如何被用于规范说明数据语言的语义的例子,以下 是中央联锁系统应用数据的UML/VDM++规范说明的简化摘录 (extract)。图10的UML对象图示出了从名为"RouteMemoryTest"的类派生 出的若干类,使用这些类,通过检查记录有用于给定路由的数据的中
央联锁系统(CIXL)存储器,从而测试该路径的各种特性。RouteMemoryTest类的派生类(或子类)之一是之前提到的RouteSetTest类。如图11的UML对象图所示,RouteMemoryTest类自身是名为 "MemoryTest"的类的子类,"MemoryTest"类的子类被用来测试多 种类型的给定信号对象的各种特性,例如信号、道岔、路由、轨道段等°中央联锁系统CIXL存储器被划分为很多区域,其中,具有一个 分区用于每个类型的信号对象。表示信号对象的当前状态的数据按索 引位置被记录在相关存储分区中。例如,图12示出记录有路由的当前 状态的存储器区域,其中,用两个位来表示路由的状态, 一个位指示 是否设置了该路由,而另一个位则指示是否禁止该路由。图12示出分 配给索引53的路由的状态。在任何给定时间的CIXL中央联锁系统的所有存储器分区中记录 的数据的组合值,形成了中央联锁系统的当前状态的部分。如在用于存储器测试的图11的UML对象图中所见,每个存储器 测试与给定的存储器索引(memorylnd)相关联,该索引是相关中央联 锁系统(CIXL)存储器分区中的索引,该存储器分区包含数据,要相 对于当前中央联锁系统CIXL状态来测试该数据。这在以下的 MemoryTest类的VDM++规范说明中被形式化(formalise)。Class MemoryTest Instance variablesprotected memorylnd: CIXLState、Memorylndex; operations public
memorylndex: () = = > CIXLState、 Memory Index memorylndex O = = return memoryind; end MemoryTest为了进行描述,图13描述了 RouteSetTest类的对象,在CIXL应用数据中创建了该对象,作为以下中间代码表示的结果data扁teSetTest("R103")在此说明中之前已经对其进行了介绍。在这种情况下,对该对象分配了存储器索引53,该索引是被分配 给识别为"R103"的路由的CIXL路由存储器中的索引。如下示出RouteMemoryTest类的VDM+十规范说明 Class RouteMemoryTest is subclass of MemoryTest operations publicconsistent : CIXLApplicationData = = > boolconsistent (data)==returndata.objectDeclared ( mk_token(<route〉), memoryind);publicevaluate : CIXLState * CIXLApplicationDate = => boolevaluate (state, data)==returnevaluateMemory(state.memory(mk_token(<route>), memoryind)pre consistent(data); protectedevaluateMemory : Memory = => bool evaluateMemory (memory) = = is subclass responsibility; end RouteMemoryTest该规范说明包含涉及所有类型的路由存储器测试的三个操作。第一操作关于路由存储器中包含的中央联锁系统(CIXL)应用数 据指定了路由存储器测试的条件。该条件规定(state),在中央联锁系统 (CIXL)应用数据中必须具有与路由存储器测试的存储器索引相对应 的类型々oute〉的对象的声明。换句话说,必须分配路由存储器测试的 存储器索引,作为中央联锁系统(CIXL)路由存储器中的索引。第二操作定义在当前CIXL状态的情况(context)下如何评估路 由存储器测试,以及定义包含测试的中央联锁系统(CIXL)应用数据。 该操作规定,评估的结果是关于存储器测试的存储器索引处的路由存 储器的数据值来评估路由存储器测试的结果。例如,在以上介绍的路 由设置测试对象的情况下,关于索引53处的中央联锁系统的路由存储 器的〈state〉和〈prohibited〉数据的值来进行评估。第二操作的前提是,路由存储器测试相对于作为第一操作所规定 条件的数据是一致的。这意味着,例如,为了正确地评估路由设置测 试,假设在中央联锁系统的路由存储器的索引53处存储数据。在路由存储器上执行的实际测试依赖于路由存储器测试的类(在 VDM十+规范说明中利用表达式"is subclass responsibility"来表示)。在 路由设置测试的情况下,在路由存储器测试的存储器索引处的中央联
锁系统的路由存储器的"et〉数据的值必须等于1。在以下给出的 RouteSetTest类的操作中对此解释(interpretation)进行了规定。Class RouteSetTest is subclass of RouteMemoryTest operations privateevaluateMemory: Memory = => bool evaluateMemory(memory)==return memory.dataEqualTo(mk—token(<set〉),l); end RouteSetTest因此,给出在索引53处的路由存储器的々et〉数据的当前值,实 例路由设置测试将被评估为真。编译过程的验证使用人类用户友好的语言的控制程序或应用数据的离线预备过程 包括在源代码上执行必需的语法和语义检査以及控制系统的特定数 据的任何必要翻译之后,将应用数据源代码转换为目标代码,该目标 代码要被在线地安装在处理单元中,而上述必要翻译是将仅仅被离线 支持的控制系统的特定数据翻译成被在线处理器支持的等效数据。编译器通常还执行冗余的操作,以验证源代码到目标代码的正确 转换,并且在应用数据上执行另外的安全性和复杂性分析。所述冗余操作的目的是,验证应用数据上的语义检查,以及验证 源代码到目标代码的正确转换。这些操作在以中间格式表示的代码上 执行,该以中间格式表示的代码将从源代码和编译目标代码生成。如 在¥0^1++规范说明中规定的,通过"executing it"以及验证得到的目 标(object)满足中央联锁系统应用数据的不变性,在中间源代码(从 源代码生成)上执行冗余语义检查。通过执行从编译目标代码生成的
中间代码与从源代码生成的中间代码的比较,来验证源代码到目标代 码的正确转换。根据本发明,通过使用以新语言表示的控制程序或应用数据的形 式,来执行以上操作,该新语言在这里被定义为中间语言,并且已经 被更详细地进行公开。翻译程序例如第二编译器被用来基于所述中间语言,将以源代码 格式生成的应用数据转换为中间代码格式。又一翻译程序例如反编译器被用来基于所述中间语言,将以目标 代码格式表示的应用数据转换为中间代码格式。通过传统的编译器过程,从源代码获得目标代码。通过翻译获得的中间代码格式形式的控制程序或应用数据,被进 行比较从而评估它们之间的一致性(identity),该翻译也就是将源代 码编译成所述中间代码以及将目标代码翻译成所述中间代码。图5以 方块图示出用于如上所述验证编译器的原理步骤。基于新语言使用此方法的较大优点在于这样的事实,也就是源代 码到中间代码以及目标代码到中间代码的翻译不受编译和反编译的典 型效应的影响,这种效应就是不能通过目标代码的反编译进行重建源 代码的某些部分,因此引入了在用于验证编译器的比较过程中的固有 系统差异。这种技术优点使得可以实际上按完全自动的方式来执行用 于验证编译过程的比较。如上面已经解释的,根据本发明的基于抽象语法的新语言的使用 允许根据不同的高级编程语言来生成源代码,高级编程语言具有人类 用户友好的语法。 以相同的方式,从应用数据的一种和相同的中间代码格式,根据 本发明的基于抽象语法的新语言的使用允许根据不同的机器语言来生 成不同的目标代码。仿真的检验数据预备和检验还可以包括目标代码的离线仿真。如果与数据解 释器和联锁处理单元状态的VDM++模型结合使用,则在编译过程期间 生成的中间代码可以被用作检验仿真的工具。在图6到图9的图中,更详细地公开了该方法的例子。图6的图描述了用于特定联锁应用程序的结构。在这里,应用程序的存储器被配置为保存关于相关信号对象(铁路的图像)的状态以 及关于在中央联锁处理器和轨道旁对象和其他联锁子系统之间的通信 的信息,连同保存用于特定铁路模式的编译的应用数据。离线仿真器工具可以在这种构造的特定表示上操作,该特定表示 可以是目标表示。可以根据铁路图像和通信信息的数据库模式、特定 应用数据的数据库模式和编译数据的解释器,来描述仿真器工具。当 然,该仿真器工具还仿真中央联锁处理单元应用程序的全部性能(也就是中央联锁处理单元事件的排序和时序)。(图7)根据数据语言规范说明,中央联锁处理单元应用程序的VDM++ 模型是基于中央联锁处理单元状态的对象模型(object model)、包括 应用数据的中间形式的对象模型、以及指定如何解释数据的规范语义 模型的。(图8)还按可执行方式规范地指定中央联锁处理单元的整体行为,因此 能够例如利用VDM++工具结合之前所述的UML工具使得该模型完全 动画式模拟。因此然后,仿真的性能可以与VDM++模型的性能相比较。 以这种方式,模型可以作为相对于中央联锁处理单元应用程序自身来 检验仿真器工具的性能的工具。模型检查除了定义数据类型的操作语义,也就是对于中央联锁处理单元应 用程序如何处理它们的描述,还可以为了其他检验目的而指定涉及它 们的其他特性。通过指定路由释放数据的转换(transition)表示来考虑 铁路交通控制系统的特定例子,该转换表示规定何种条件下可以释放 路由、何种条件下一组道岔可以自由移动、以及何种条件下使得可以 设置路由,可以使用模型检查方法,来自动地验证一组应用数据满足 基本安全性能。如从以上以及从图9可以明显看到的,数据类型的公共中间表示 作为基础,用于开发模型检查工具。也就是说,联锁解释器的规范说 明之下的数据类型的相同模型,可以与可选择的语义规范说明一起使 用,从而在应用数据自身上执行模型检査。详细公开的以上例子和方法清楚地示出,具有抽象语法并被用来 表示要被执行的控制程序和/或由中央联锁处理单元处理的应用数据的 新语言是用于数据预备和检查工具的有用的通用格式。
权利要求
1.用于预备和检查软件工具的方法,所述软件工具由可编程控制装置或设备执行,用来执行过程,其中a)提供编程语言,用于表示所述软件工具,该语言基于抽象语法尤其是面向对象的语法;b)从源代码语言和目标代码语言都生成所述编程语言;c)用所述编程语言来表示控制程序;d)通过把用基于抽象语法的语言表示的所述控制程序翻译成该抽象语法的源代码格式和/或目标代码格式的语言,得到所述控制程序的源代码格式和/或目标代码格式。
2. 根据权利要求1所述的方法,其特征在于所述可编程控制装 置是数据驱动控制系统,具体是用于铁路信号网络的固态联锁,并且 其中所述网络包括至少一个中央联锁处理单元,和一个或多个远程 或外围操作单元,所述操作单元例如是执行机械任务的一个或多个致 动器和/或一个或多个单方面或多方面信号单元、禾卩/或用于测量物理和 /或化学参数的一个或多个传感器;所述网络进一步包括一个或多个数据通信线,所述数据通信线将 所述一个或多个远程或外围操作单元的每个连接到所述中央联锁处理 单元,用于将输入数据电文发送到所述中央联锁处理单元,并且用于 接收由所述中央连锁处理单元生成的输出电文或命令电文;所述中央联锁处理单元包括通用硬件平台,所述通用硬件平台执 行通用软件,所述通用软件也就是控制解释器或联锁功能程序,用于 执行系统管理任务,并用于解释特定于网络的应用数据和特定于应用 的控制规则,所述特定于网络的应用数据表示各种远程或外围操作单 元之间的逻辑关系,而所述特定于应用的控制规则用于管理所述控制 系统,也称作联锁逻辑,从而,被施加到所述应用数据或联锁逻辑的 所述控制解释器产生特定于该控制系统的控制功能;所述方法包括以下步骤用第一编程语言来表示所述应用数据, 所述第一编程语言具有人类用户友好的语法;并利用称作编译器的软 件工具将所述应用数据翻译成具有机器友好语法的第二语言,也就是 可以由所述中央联锁处理单元处理的二进制代码;并且其中,提供进一步的步骤提供具有面向对象语法的第三语言,用于表示所述应用数据; 从利用具有面向对象语法的所述第三语言表示的所述应用数据的 语法,导出以所述第一编程语言也就是所述源代码表示的应用数据的 语法和/或以所述第二编程语言也就是所述目标代码表示的应用数据的 语法;提供自动翻译程序,用于在所述第三语言与所述第一和/或第二语 言之间翻译所述应用数据。
3. 根据权利要求1或2所述的方法,其特征在于所述应用数据利 用基于面向对象语法的编程语言来表示,并且通过定义各对象以及各 对象之间的链接来描述有关下述的配置、功能和状态所述设备的致 动器、信号单元和传感器、网络或装置,所述致动器、信号单元和传 感器之间的逻辑关系,以及用于管理其应用数据待由中央联锁处理单 元执行的过程的规则。
4. 根据前述权利要求中的一项或多项所述的方法,其特征在于 所述基于抽象语法的语言,通过利用结构化和规范化的规范说明来使 用面向对象的语法,所述规范说明是通过结合UML和VDM十+记号以 及通过定义类和关联来获得,所述类和关联表示各种数据类型以及它 们之间的关系。
5. 根据前述权利要求中的一项或多项所述的方法,其特征在于 所述类定义还包含所述应用数据的语义的规范说明,该规范说明包括 数据为了被正确解释而必须满足的限制条件的规范说明以及如何解释 数据也就是定义所述数据的意义的规范说明。
6. 根据权利要求5所述的方法,其特征在于根据VDM++模型来定义语义规范说明,用于按特定控制装置或设备的配置来表示所述 中央联锁处理单元的状态。
7. —种用于执行过程的软件工具,该软件工具由可编程控制装置或设备执行,其特征在于该软件工具利用基于抽象语法的编程语言来表示,特别是利用根据前述权利要求中的一项或多项所述的面向对 象的语法来表示。
8. 根据权利要求7所述的软件工具,其特征在于所述软件工具被保存在固定的或可移除的存储器装置上,所述存储器装置可以设置 在处理单元中,或可以连接到该处理单元并可由该处理单元读取,用 于执行所述软件工具。
9. 一种用于执行控制过程的系统,其包括硬件装置和软件工具的组合,利用根据前述权利要求中的一项或多项所述的方法来预备和/或 检査所述软件工具。
10. 根据权利要求9所述的系统,其特征在于该系统是用于控制铁路网络上铁路交通的铁路信号联锁系统。
11. 根据前述权利要求1到6中的一项或多项所述的方法,其特征在于该方法是软件工具检査方法,包括以下步骤a) 提供第一编程语言,具有人类友好或机器友好的语法;b) 提供具有抽象语法的第二编程语言;c) 用所述第一编程语言来表示所述软件工具;d) 用所述第二编程语言来表示所述软件工具;f)提供可执行仿真程序,用于执行用所述第一编程语言表示的所 述软件工具的仿真;e) 所述第二编程语言具有根据前述权利要求1到6中的一项或多 项所述的抽象语法;f) 基于用所述第二编程语言表示的软件工具来构建可执行模型;g) 把用所述第一编程语言表示的软件工具的仿真得到的模型的 状态与基于用所述第二编程语言表示的软件工具的可执行模型的状态 进行比较。
12. —种用于对中央联锁处理单元中执行的应用数据进行故障保 护编译的方法,包括以下步骤a) 提供用户编写应用数据,也就是所谓的用人类用户友好的语言 编写的最初源代码;b) 提供中央联锁处理单元,其可以通过解释所谓的目标或机器代 码来执行任务,而所述目标或机器代码是用具有可以由装置解释的语 法的装置友好语言来编写的;c) 提供检査器和称作编译器的翻译程序,检查以所述源代码语法 表示的应用数据,并将其翻译为以所述目标或机器代码语法表示的应 用数据;以及所述方法进一步的特征在于以下步骤d) 提供根据前述权利要求1到6的方法所述的第三语言,所述第 三语言的语法不同于所述用户友好语言和所述机器友好语言的语法;e) 提供第二编译器,用应用数据的所谓中间代码记号来翻译最初 用所述源代码语法表示的应用数据,其中,利用所述第三语言来表示 应用数据,并且所述第二编译器执行用所述第三语言表示的应用数据 的冗余检查;f) 反编译器包括翻译程序,该翻译程序将用所述目标代码语法表 示的应用数据翻译成应用数据的中间形式,在所述中间形式中,用所 述第三语言语法来表示所述应用数据;g) 通过比较利用所述第二编译器从最初用所述源代码语法表示 的应用数据生成的用所述第三语言语法表示的应用数据和利用所述反 编译器从用所述目标代码语法表示的应用数据生成的用所述第三语言 语法表示的应用数据,来执行最初用所述源代码语法表示的应用数据 和反编译的应用数据的比较。
13. 根据权利要求12所述的方法,其特征在于所述软件工具是待由控制系统的所述中央联锁处理单元执行的控 制程序或应用数据,所述控制系统是所谓的数据驱动类型,并且特别 是固态联锁系统。
14. 根据权利要求12或13所述的方法,其特征在于所述第三 编程语言或工具基于面向对象的语法,并且通过定义各对象和各对象 之间的链接来描述有关下述的配置、功能和状态设备或装置的致动 器、信号单元和传感器,所述致动器、信号单元和传感器之间的关系 以及管理控制过程的规则。
15. 根据前述权利要求12到14的一项或多项所述的方法,其特征在于所述基于抽象语法的第三语言通过使用结构化和规范化的规范说明来使用面向对象的语法,所述规范说明是通过组合UML和 VDM++记号以及通过定义类和关联来获得的,所述类和关联表示各种 数据类型以及它们之间的关系。
16. 根据前述权利要求12到15的一项或多项所述的方法,其特征在于所述类定义还包括所述应用数据的语义的规范说明,所述应用数据的语义的规范说明包括数据为了被正确解释而必须满足的限制 条件的规范说明以及如何解释数据也就是定义数据意义的规范说明。
17. 根据权利要求16所述的方法,其特征在于根据VDM++模 型来定义所述语义规范说明,用于按特定控制装置或设备的配置表示 处理单元的解释器的状态。
全文摘要
用来预备和检查由可编程控制装置或设备执行的、用于执行过程的软件工具的方法,其中a)提供用于表示软件工具的编程语言,该语言基于抽象语法,特别是基于面向对象的语法;b)从源代码语言和目标代码语言都生成所述编程语言;c)用所述编程语言来表示控制程序;d)通过将用基于抽象语法的语言表示的所述控制程序翻译成抽象语法的源代码格式和/或目标代码格式的语言,来得到控制程序的源代码格式和/或目标代码格式。
文档编号G06F9/44GK101167050SQ200680010366
公开日2008年4月23日 申请日期2006年4月5日 优先权日2005年4月21日
发明者希德尼·明科维茨, 弗朗切斯科·特拉蒙塔纳 申请人:阿尔斯通铁路公开有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1