电气自动化技术网

基于DCS系统控制组态仿真软件设计和实现

时间:2014-07-27 来源:EDN 编辑:编辑部 点击:次 字体设置:

1 引言

    DCS/' target='_blank'>集散控制系统(DCS)是应用计算机技术对生产过程进行集中监视、操作、管理而对现场装置的控制分散的基本控制技术。集散控制系统的重要组成部分是组态软件。传统的工业控制软件重复使用率低开发周期长,很难满足工业自动化的要求。工业自动化组态软件的出现为解决实际工程中的问题提供了一种新的方法,它能够使用户根据自己的控制对象和控制目的任意组态,使自动化工程人员能够面向问题的设计。

    控制组态仿真软件要比传统仿真软件作出改进,使其不仅仅可以供控制人员进行一些控制的组态构建,还可以提供给操作人员进行仿真培训,以及进行控制管理人员的培训。只要使其控制组态的模式和现场模式保持一致,就可以达到仿真的目的,而不必在实际的dcs控制室进行试验和调试,这样可以减少投资,并减小和避免工艺投放风险。因此,开发结构合理、安全可靠、简单实用的仿真系统控制组态软件,具有很好的应用前景。

2 系统结构及其实现

    2.1 控制组态概述

    控制组态仿真软件作为集成的图形编程语言,是针对dcs系统所开发的全中文界面的控制方案组态工具,它与dcs系统流程图组态软件联合完成对系统的图形组态,是新型dcs系统组态软件的重要组成部分之一,也是算法控制组态的核心部分。

    本设计参考了国际电工委员会iec61131-3提供的用于控制的4种编程语言标准:梯形图,结构化高级语言,方框图,指令助记符,采用了简单方便易于用户学习和使用的方框图形式的编程语言,使编程环境更加高效,更加人性化。

    本文根据面向对象的设计思想,基于目前控制领域通用的windows2000平台,采用visualc++6.0语言实现了程序设计。这样,不仅使人机界面更加友好,而且能够更好地利用windows系统的资源,使组态软件的功能更为强大。

    系统的结构如图1所示。各部分的功能及实现方法叙述如下。

 点击放大图片

图1  系统结构图

    2.2 算法显示模块和控制算法组态

    该软件向工程人员提供了一个图形化的控制算法组态平台,工程人员可以根据实际工业过程,选用合适的控制算法,用图形的方式,即选用算法显示模块,组成各种控制回路,然后将组态信息保存到组态文件中。控制算法组态的主界面如图2所示。

 点击放大图片

图2  控制组态主界面

    图2算法显示模块指的是对具体算法的抽象显示。在图形化组态界面上,每种具体的控制算法对应一种算法显示模块,以方框图的形式显示,用户只需用简单的鼠标操作就能将指定的算法显示模块添加到指定的控制回路中,或删除和修改参数,从而完成控制算法的组态。其在控制组态界面中的显示是带有输入输出端子的矩形,图3是一个加法显示模块的外观及显示说明:

 点击放大图片

图3  算法显示模块图

    其中,模块在回路中的编号只有在进行过编译且用户确定后才正确显示,编译前不显示。而模块流水号只是在绘制过程中记录的全局唯一的模块的id号,它由系统自动生成,用户不能修改。

    设计控制组态仿真软件的界面时,主要是实现组态用到的算法显示模块、连线和文本注释的绘制和显示。从共性的角度考虑,决定将对算法模块的实现用一个从cobject类派生的类cfunmod来统一实现和管理,在该类中设定标志变量对具体的算法显示模块类型进行区分,同时标记该模块的输入输出端子数目。连线使用从cobject类派生的类clinkline实现,包含对连线两端所连算法显示模块的标记。而文本注释则由另一个从cobject类派生的类ctext来实现,为普通注释时,记录字符串类型的注释参数,而与数据库中的点关联时,记录点名。在绘制回路的过程中,它们都是由基于各类的链表来操作和管理的。

    为支持对算法显示模块和文本注释的参数配置,需实现属性对话框,这是很容易实现的。这样,通过鼠标双击算法模块,弹出属性对话框,用户填入相应的参数,点击确定保存即可。

    2.3 控制算法库

    控制算法库是整个系统仿真运行的基石。系统中内置了若干种控制算法。为了保证控制算法的可扩展性和统一性,所有的控制算法实现了一个统一的接口,供算法运行模块调用。

    具体来讲,是采用模块化设计的思路,将dcs的控制算法分解成若干个功能独立的、能分别设计、编码和调试的算法模块,组成控制算法库。每个算法模块完成的功能既明确又单纯,从而使处理的问题局部化和简单化。算法模块作为控制组态仿真软件结构中的最基本元素,实际上就是完成一个特定算法功能的独立程序。算法模块的接口简明而又统一,且能彼此隔离和独立。从用户角度看来,控制算法库中的各种控制算法都是完全一样的,而且系统也是采用统一的接口对各种算法进行调用的,用户无需关心每个控制算法的具体实现细节。另外,用户使用时,只需对控制算法模块的参数进行修改,而无需修改算法模块的代码。

    将各算法编成独立的可反复调用的算法模块,对应每一个功能模块都有一个参数列表和输入列表,系统运行时,控制调度程序依据这些信息,顺序依次执行。

    设计算法库时,先设计一个算法基类cfunction,其中实现一个虚函数fun,具体算法从该类中派生。在程序中,采用统一调用各算法模块的fun函数的方法实现对控制算法的调用,这样的接口简单明了。

2.4 虚拟信号发生器

    信号发生器是一种应用极为广泛的仪器,它通常作为标准信号发生器,用于电子电路的性能试验或参数测量。传统的信号发生器价格昂贵、操作复杂、不易开发、维护和升级,而使用基于visual

    c++编程工具,软件开发的虚拟信号发生器,具有简单、直观、操作方便等特点,而且可以通过调用或修改信号源函数中的不同的功能函数,得到不同的信号,如正弦波、方波、三角波等。

    虚拟信号发生器即信号源模块又分为三个子模块,参数设置模块,信号发生模块,波形显示模块。如图4所示。

 点击放大图片

图4  虚拟信号发生器结构图

 信号源数据的内容主要为波形数据、要发生波形的参数;其波形数据的来源主要有信号发生模块;波形数据的终点是信号发生以及发生波形及其参数的显示,以及提供给控制算法进行模拟仿真运行。各子模块间的关系及所对应的数据流图如图5所示。

 点击放大图片

图5  虚拟信号发生器数据流图

    信号源模块能够产生正弦波、三角波、方波等常用的波形,能够对要发生波形的各种参数进行方便灵活的设置,能够对正发生的波形进行实时显示。注意,模拟的信号采集频率与主控卡实际采集频率相同,这样才能保证对主控卡实际运行的模拟仿真等准确。

    在此信号源模块中,用户可设定两种模式:自动和手动。自动时,采用系统提供的一些标准输入信号类型。手动时,用户可随时直接设置逻辑和控制变量的值。这是在线仿真系统的运行的必要条件。

    在此模块中采用了多线程技术,参考主控卡的采集周期,定时运行信号发生函数改变模拟输入点的值。设置了手动改变数据的按钮,用户在手动模式下改变模拟输入点的数据时,直接调用此按钮的相应函数,执行此改变。

3 模拟仿真运行

    先对用户组态的信息进行检查,看是否数据连接类型不匹配,是否回路断开等,同时,对于图形化组态平台来说,如何根据控制回路图的拓扑结构建立起控制组态信息的数据流是很重要的,也就是需对回路中的算法模块执行顺序进行排列,上述内容都是编译过程中的工作。检查确定组态无误后,利用虚拟信号发生器产生的信号,作为控制回路算法模拟仿真运行的输入信号,运行控制算法,实时显示仿真数据,及仿真报警,并输出仿真波形。这是一个可调试的仿真过程,用户观察仿真结果判断对控制算法的组态是否满足要求,若不满足,则可“在线”调整算法功能模块的参数,甚至重新组态,仿真和调试,直到仿真结果满足指定要求。

    在模拟仿真时也采用了多线程技术。开辟工作者线程,进行控制算法的计算。为实现“在线”参数整定,在用户修改参数时,再开辟一个工作者线程,这样能提高程序的运行效率。

顶一下
(0)
0%
踩一下
(0)
0%
打 印】【顶 部】【关 闭】【挑 错
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
版权与免责声明:
①凡本网注明"来源:电气自动化技术网"的所有作品,版权均属于电气自动化技术网,转载请必须注明出处“电气自动化技术网http://www.dqjsw.com.cn”。违反者本网将追究相关法律责任。
②本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
③如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
>> 相关文章
栏目导航:互感器 | 智能电网 | 无功补偿 | 电容器 | 变压器 | 电源 | 避雷器 | 电抗器 | opc | 三菱PLC | 西门子PLC | 欧姆龙PLC | PLC视频教程 | 电工基础知识
© www.dqjsw.com.cn 2008-2013 版权所有 ICP网站备案:渝ICP备11003104号