APP下载

基于SCADE和梯形图的可视化联锁逻辑实现方法

2018-10-22崔佳诺

铁路通信信号工程技术 2018年9期
关键词:模型库梯形图图形化

王 东 崔佳诺

(北京全路通信信号研究设计院集团有限公司,北京 100070)

1 概述

为确保联锁系统功能的正确性和的安全性,需要清晰、准确地表述计算机联锁软件中实现的联锁逻辑关系。不正确的、含糊的、有歧义的表述方式,将在业主、工程技术人员和联锁软件开发人员之间的造成误解的可能,从而危及系统的安全性。常见的计算机联锁软件实现方式有两种[1],一种是根据6502电气集中联锁系统的继电联锁电路,分别写出每个继电器电路的布尔逻辑表达式,用计算机软件模拟每个继电器的动作过程,实现联锁功能;另一种是根据联锁系统的功能需求,设计软件架构和数据结构,用计算机程序实现联锁逻辑运算功能。以上两种方法,都需要程序员通过文本编辑器手动编写源代码。因此,对程序设计语言并不十分熟悉的工程技术人员和业主将很难直接通过源代码看懂系统实现的联锁关系,进而需要通过程序员手绘的图表或者借助于第三方工具才能以间接的方式进行解,增加人为转换的环节,为系统安全埋下隐患。

为使计算机联锁软件实现联锁逻辑功能图形化、可视化,本文首先建立一套基于高安全性应用开发环境(Safety-Critical Application Development Environment,SCADE)的梯形图模型库,并基于该模型库提出一种基于SCADE和梯形图的可视化联锁逻辑实现方法。该方法一方面可以使软件开发人员在开发联锁业务逻辑功能时,直接以绘制梯形图的方式代替既有的代码编写方式进行图形化开发。工程技术人员和业主可以通过梯形图直接了解软件实现的联锁逻辑功能,减少人为转换的环节。另一方面在程序开发过程中,还可以直接利用成熟的继电电路设计经验指导程序开发,进一步提高联锁功能的正确性和安全性。

2 基于SCADE的梯形图模型库

SCADE是一种针对高安全性系统的基于模型的嵌入式软件开发环境[2]。其中SCADE Suite是专用于控制软件设计的一个图形化开发工具,为用户提供了模型建立、模型仿真和自动生成代码等功能,其中的代码生成器获得了包括EN 50128 SIL3/4在内的国际安全标准认证[3]。用户可以在SCADE Suite中设计具有相应功能的模型,利用软件提供的仿真环境进行模型级调试,最终利用代码生成器生成基于C语言或Ada语言的源代码。

梯形图(Ladder Diagram,LD)是一种广泛应用于可编程序控制器(Programmable Logic Controller,PLC)的图形化编程语言,已被纳入GB/T 15969.3作为PLC的标准编程语言之一[4]。梯形图沿用了继电器电路中的继电器元件的形式,以线圈和触点之间的连接组合作为控制逻辑的实现方式,因此可以与继电器电路之间进行直接、简便的转换。

在本文中,为了能在SCADE Suite里使用梯形图设计图形化的联锁逻辑功能,提出一套新的基于SCADE的梯形图模型库。如表1所示,首先在SCADE Suite里建立了在GB/T 15969.3中第4.2节列举的梯形图元素的模型,并且按照标准中的功能描述,实现该元素应具有的功能。表1展示了联锁逻辑中常用的线圈、常开触点、常闭触点等梯形图元素模型。在功能设计中,仅使用由SCADE Suite提供的基本模块,其具体功能描述可以参见SCADE Suite用户手册[5]。为了使基于SCADE的梯形图模型库与标准中的梯形图元素在外观上统一,使开发人员和工程设计人员在外观上就可以直接确定每个模型的功能,重新设计SCADE梯形图模型的外观,使其与标准中描述的符号基本一致。

表1 基于SCADE的梯形图模型库Tab.1 SCADE-based ladder diagram model base

续表Continued

在功能设计过程中,使用SCADE中bool类型的true代表梯形图中的接通(ON)状态,使用bool类型的false代表断开(OFF)状态,使用SCADE模块之间的连线代表链接元素。常开、常闭触点模型外观上左下角的“×”形符号是SCADE Suite开发工具中对隐藏输入(Hidden Input)的默认表示方式,与梯形图无关。

3 可视化联锁逻辑实现方法

在本节中,提出一种基于SCADE和梯形图的联锁逻辑实现方法。开发阶段的流程如图1所示,其中白色矩形代表基于SCADE的基本开发步骤,灰色矩形代表提出的基于SCADE和梯形图的开发步骤,具体描述如下。

图1 开发阶段流程图Fig.1 Flow chart in Development phase

在接到用户需求后,开发人员首先应进行需求分析和架构设计,划分联锁业务逻辑功能模块和适配层模块,并行开发。针对联锁业务逻辑应进行详尽的功能分析,将功能需求转化为等价的梯形逻辑。如果能够获得既有的成熟继电器电路设计方案,则可以将其中实现的联锁关系直接转化为以梯形图表示的梯形逻辑。下一步,利用在第2节中提出的梯形图模型库,开发人员在SCADE Suite中绘制梯形图,建立业务逻辑的梯形图模型。SCADE Suite提供了模型级的仿真功能,在建立梯形图模型的过程中,就可以对其进行仿真调试,验证设计思路的正确性。在模型开发验证完成后,利用SCADE代码生成器自动生成梯形图模型对应的C语言或Ada语言的源代码。结合由人工编写代码方式实现的适配层软件代码,最终编译链接生成可执行程序。

开发人员在SCADE中建立的联锁业务逻辑梯形图模型,是以标准化、图形化的形式表示的计算机联锁软件实现的业务逻辑功能,因此可以由SCADE文档生成工具自动归档后直接提供给工程技术人员和业主进行审核,无需在代码和逻辑图纸之间进行二次转化,减少了人为操作的中间环节,降低出错的可能。

4 典型联锁功能示例

为了验证本文提出方法的可行性,本节选取联锁逻辑中的进路选择功能,按照新提出的实现方法进行示例开发。局部站场图如图2所示,其中关注由列车信号机X到IG的下行接车进路,以及由调车信号机D3到D17的调车进路。

图2 局部站场图Fig.2 Partial station yard

基于6502定型电路实现的上述两条进路的进路选择继电器电路如图3所示[6]。当按下始、终端列车按钮或调车按钮后,在联锁条件满足时,继电器X/D3 JXJ、1/3 2DCJ、9/11 1DCJ和 D17 JXJ将顺序励磁吸起并自保,完成顺序选出信号点和道岔定位的功能。

下一步,将继电器电路表示的继电逻辑转化为以梯形图表示的梯形逻辑。通过将继电器转化为线圈、前接点转化为常开触点、后接点转化为常闭触点,可以将图3所示的继电器电路直接转化为图4所示的梯形图。这里以继电器X/D3 JXJ的励磁和自保电路为示例。

图3 6502进路选择继电器电路Fig.3 6502-type relay circuit for selecting routes

在得到如图4所示的联锁业务逻辑功能梯形图表示后,在SCADE Suite中利用本文提出的梯形图模型库建立如图5所示的梯形图模型。

在建立梯形图模型的过程中,应注意如下几点。

1) 梯形图中线圈的相关布尔变量(如X_D3_JXJ等),应在SCADE模型中设置为bool类型输出。

2) 梯形图中除线圈以外的常开、常闭触点的相关布尔变量(如X_D3_LAJ等),应在SCADE模型中设置为bool类型输入。

3) 梯形图中某触点需使用相关布尔变量上个运行周期的状态时,应在SCADE模型中使用“last‘变量名”的语法形式实现。

对比图4、5可以发现,在图5中取消了图4中两侧的左右电源轨线。梯形图中上下梯级之间扫描的先后顺序,在SCADE模型中将由“last ‘变量名”的语法结构实现。这种设计方式可以将一整张梯形图的各个梯级都进行独立的切分,梯级之间的排列顺序不再受限于程序的扫描顺序,使整个模型可以按功能聚类,更有利于构造出内聚性更强的功能模块。

图4 进路选择梯形图Fig.4 Ladder diagram for selecting routes

图5 基干SCADE的进路选择梯形图模型Fig.5 SCADE-based ladder diagram model for selecting routes

在梯形图模型开发过程中,可以使用SCADE Suite提供的仿真功能进行仿真调试。在仿真过程中,梯形图中链接元素的ON/OFF状态,将以true/false的形式实时显示在SCADE模块之间的连线上。按下始、终端列车按钮,励磁电路接通,继电器JXJ励磁吸起的仿真结果如图6所示。

图6 仿真JXJ励磁吸起Fig.6 JXJ relay energized in simulation

在设计完毕调试通过以后,通过代码生成器自动生成梯形图模型对应的C语言源代码。如图7所示,图7截取自动生成代码中进路选择功能对应的部分源代码。对比图5和图7可以看出,通过梯形图表示的联锁业务逻辑将比由代码表示的更为清晰直观,易于理解。

图7 由进路选择梯形图模型自动生成的部分源代码Fig.7 Source codes generated automatically by the ladder diagram model for selecting routes

5 结束语

本文建立了一套基于SCADE的梯形图模型库,并基于该模型库提出了一种基于SCADE和梯形图的可视化联锁逻辑实现方法,该方法具有以下优点。

1) 可以使计算机联锁软件实现的联锁逻辑功能图形化、可视化,便于工程技术人员和业主审核。

2) 可以直接利用成熟的继电电路设计经验指导计算机程序设计,提高系统功能的正确性和安全性。

3) 取消了梯形图中的电源轨线,使梯级之间的排列关系更加灵活,有利于将业务逻辑拆分成内聚性更强的功能模块。

4) 在梯形图模型开发过程中,可以对梯形图模型进行仿真调试,进一步缩短了开发流程。

本文虽然是在SCADE Suite开发工具的基础上提出的可视化联锁逻辑实现方法,但是该方法同样适用于其他的基于模型的可视化开发工具,如MathWorks公司的Simulink[7]等。

本文提出的基于SCADE和梯形图的联锁逻辑实现方法,本质上属于基于模型的设计(Model-Based Design,MBD)开发方法[8]。一方面,这种以模型建立、模型仿真、自动生成代码为重心的开发方法,使得开发人员可以将更多的精力集中于模型设计阶段,而不是传统的代码编写阶段,这将使得整个开发工作在效率和安全性上得到较大提升[9]。另一方面,可以持续构建更复杂的更贴近于用户域的业务功能基本模型,进而使用基本模型搭建控制系统。这不仅使基本模型有进一步定型化的可能,降低开发工作的复杂性;而且使得用户需求变更的影响范围可以进一步缩小到与变更业务功能相关的基本模型,从而降低整个生命周期的维护成本。

猜你喜欢

模型库梯形图图形化
LKJ自动化测试系统图形化技术研究
基于VC的梯形图编程软件开发技术
继电器电路转为梯形图教学经验浅谈
运用图形化听写式复习,构建高效地理课堂
基于模型库系统的金融体系流动性风险预警机制研究
PLC梯形图程序设计技巧及应用
图形化地区电网无功优化软件开发与应用
基于模型库的现代成本会计计量系统研究
图形化仪表控制系统上位机软件的设计与开发
GIS地形分析模型库管理系统的设计与实现