张 旭,邓志光,彭 韬
(中国核动力研究设计院 核反应堆系统设计技术重点实验室,成都 610213)
DCS 的仿真方法主要有3 种,包括纯模拟(Simulation)、虚拟实物(Emulation)和实物模拟(Stimulation)[1,2]。采用纯模拟的方法,将被仿真DCS 系统的算法逻辑翻译到另一套仿真平台,这种方法被称为翻译模拟(Translation)[3-5]。翻译模拟与虚拟实物和实物模拟相比具有技术简单、成本低的优势;同时,比根据顶层设计,在仿真平台人工绘制组态图的方法,节约了大量的工作量。

图1 基于Simulink代码生成器的翻译式虚拟DCS流程图Fig.1 Flow chart of a translating virtual DCS based on Simulink code generator
以Simulink 作为仿真平台的仿真方法有两种:一种是以Simulink 作为运算内核,通过外部程序调用Simulink 进行运算;另一种是以Simulink 作为组态显示工具及代码生成器,通过组态翻译软件将DCS 系统的组态逻辑翻译到Simulink 上,由Simulink 生成代码,再将其编译成*.dll 或*.lib 算法文件,并被周期性调用,构成基于Simulink 代码生成器的翻译模拟式虚拟DCS,实现仪控系统的仿真功能。本文详细介绍第二种方法构建的翻译模拟式虚拟DCS。
系统主要包括两部分,即虚拟DCS 与Simulink。虚拟DCS 实现组态翻译、代码编译、周期调用算法运算等功能。Simulink 实现组态画面显示、代码生成等功能。如图1 所示,其中,虚拟DCS 主要由两部分组成,即组态翻译软件与运算调度软件。
基于Simulink 代码生成器的翻译式虚拟DCS 系统架构,如图2 所示。组态翻译软件读取被翻译DCS 平台的组态文件,按照翻译逻辑识别,通过向Matlab 发送命令行的方式,调用Simulink 绘制算法块与连接线,构成组态图;再使用Simulink 作为代码生成器,把图形组态转换为C++代码,再编译为*.lib 格式的算法文件。……