姜 娜 李 柠 王华忠 李少远
(上海交通大学电子信息与电气工程学院1,上海 200240;华东理工大学信息科学与工程学院2,上海 200237)
重油常压塔硬件在环模拟仿真系统开发
姜 娜1李 柠1王华忠2李少远1
(上海交通大学电子信息与电气工程学院1,上海 200240;华东理工大学信息科学与工程学院2,上海 200237)
针对工业控制系统所面临的安全攻击威胁,对工业安全性测试床进行了研究,搭建了一个用于安全测试的重油常压塔控制器硬件在环模拟仿真系统。以Shell公司的重油常压塔模型为基础,在Matlab上建立其仿真模型;以西门子S7-300的PLC为控制器,采用PID同步控制算法,在TIA平台上对重油常压塔模型进行控制设计;采用WinCC软件组态监控画面,开发人机界面;采用OPC技术,实现Matlab、TIA、WinCC之间的数据通信。该系统为工业控制系统信息安全问题的研究提供了平台。
工业控制系统 安全 测试 重油常压塔 可编程控制器 人机界面 PID Matlab WinCC 仿真
Simulation
工业控制系统(industrial control system,ICS)是国家关键基础设施的 “大脑”和“中枢神经”。近年来,工业控制系统面临的安全威胁日益升级,进行安全性评估并发展相应的安全机制以保护其免受攻击是当务之急。然而,传统IT系统风险评估中采用的侵入性[1]方法会对工业控制系统运行产生影响,使得安全测试必须在其模拟仿真测试床[2]上开展。因此,工业控制系统模拟仿真测试床的研究势在必行。目前搭建测试床比较常用的方法有:①以仿真为主,②虚实结合。其中,虚实结合的测试床主要对被控对象采用复制方式,控制器采用仿真方式。
本文以对被控对象采用仿真模型并结合实际控制器的方式搭建测试床,针对Shell重油常压塔,设计重油常压塔控制器硬件在环模拟仿真系统。通过相关测试,证明该系统的有效性。该系统完整实现了设备的监控检测、实时控制及人机交互的功能。
工业控制系统通常由一系列网络设备构成,包括传感器、执行器、过程控制单元和通信设备[3]。控制系统通常采用分层结构,典型的控制系统网络结构依次为物理设施层、控制网络和企业网。本文主要以Shell重油常压塔为研究模型,搭建重油常压塔半实物仿真工业控制系统。该系统完全按照工业控制系统的网络架构,通过重油常压塔仿真建模、控制器组态以及人机界面设计,完成了对控制系统第一层与第二层的开发。
首先,开发工业控制系统网络架构第一层的物理设施:采用Matlab的Simulink工具箱建立仿真模型,并搭建被控对象。然后,将开发工业控制系统网络架构第一层的现场设备与PLC连接,由PLC设备负责实现局域控制的功能。以实际硬件SIMATIC S7-300 PLC为控制器,通过OPC[4]技术对数据进行实时通信,控制被控对象。最后,开发工业控制系统网络架构第二层的控制网络:以WinCC[5]软件绘制人机监控界面,实时监测被控对象、调节控制参数、控制被控对象。
重油常压塔半实物仿真工业控制系统的系统结构和原理分别如图1和图2所示。该系统搭建后,可以对控制系统(实际PLC)进行攻击,观察被控对象由此产生的响应,对该工业控制系统进行安全评估。
图1 系统结构图
图2 系统结构原理图
2.1 模型的搭建
本课题采用Shell公司重油常压塔模型,该模型具有3个产品抽出和3个侧线回流的重油常压塔。工艺流程图如图3所示。
Shell模型包括3个输入(u1~u3)、2个干扰输入(u4~u5)和7个输出(y1~y7)。其中:塔顶抽出产品的质量指标y1(干点)和侧线抽出产品的质量指标y2(干点)为系统的被控变量,塔底回流抽出温度y7为辅助变量,另外还有塔顶抽出温度y3、塔顶回流温度y4、侧线抽出温度y5和中段回流温度y6;操作变量包括塔顶产品抽出量u1、侧线产品抽出量u2和塔底回流负荷u3;另外2个变量塔顶回流负荷u5和中段回流负荷u4为系统扰动。本文采用Matlab的Simulink工具箱,搭建重油常压塔仿真模型。
图3 重油常压塔控制系统工艺流程图
2.2 控制器的开发
控制器的开发主要包括PLC硬件选择、PLC控制器组态、变量创建、I/O地址分配和控制策略设计。
①PLC硬件选择。本研究选用西门子SIMATIC S7-300 PLC控制器,CPU型号为315-2dp,S7-300的通信模块选用CP 343-1通信处理器,I/O站使用SIMATIC ET 200M,PLC与I/O模块通过Profibus DP总线系统连接。
②PLC控制器组态。本研究选用博途软件对PLC控制器进行组态,其过程包括硬件组态和网络组态,其中硬件与PC机之间采用工业以太网协议进行通信连接。
③变量创建与I/O地址分配。本程序共涉及11个输入变量(y1~y7、u4和u5以及2个启停按钮)和5个输出变量(u1~u3以及2个启停显示灯)。其中:y1~y7是被控对象的输出变量,为模拟量,数据由Matlab提供;u4和u5是人机界面的输出变量,为模拟量,由操作员在人机界面手动输入添加,并提供给PLC和Matlab;启动和停止按钮也是人机界面的输出变量,为数字量,同样由操作员手动启停,控制系统的运行与否。最后,根据各变量数据类型,对其进行I/O地址分配。
④控制策略设计。在本课题研究中,使用PID简单闭环控制回路来控制重油常压塔。采用PID经典控制方法,由u1、u2、u3分别控制y1、y2、y7。
本研究的控制程序分为2个部分:主程序和循环程序。主程序的功能主要是启停程序,循环程序的功能则是进行PID控制器运算和单位转换。
主程序为一个自锁程序,实现以下功能:当按下启动按钮后,启动显示灯亮,程序开始运行;当按下停止按钮后,程序停止运行。控制程序要设置在循环程序中,当程序启动后,启动显示灯置1,控制程序接通,控制器开始运行。根据设定值SP_INT和输入值PV_INT的偏差进行运算,得出控制器输出信号,即阀的开度;再通过一个转换模块,把开度转换成对应的流量输出给被控对象。
2.3 OPC通信
本研究中,PLC与Matlab之间的数据通过OPC服务器进行传递,PLC与Matlab分别作为客户端,把数据传递给OPC服务器,通过OPC服务器对二者的数据进行交换,再分别传递给PLC与Matlab,从而构成重油常压塔控制系统。本研究中,采用KEPServerEXOPCServer作为OPC服务器,进行KEPServerEX与PLC之间、KEPServerEX与Matlab之间的通信连接。
2.4 人机界面的开发
本研究采用西门子WinCC软件组态人机界面,实现人机交互,使用WinCC组态一个项目的基本任务和步骤如下。
①启动WinCC并新建一个WinCC项目。本系统的架构为单用户系统,启动WinCC,创建新项目为单用户项目,对项目的属性、计算机的属性分别进行设置。
②建立WinCC、控制器及PLC之间的通信连接。通常,WinCC与自动化系统之间的通信通过各自的过程总线来实现。本研究中,WinCC与SIMATICS7-300之间的通信通过工业以太网实现。
③创建过程变量。本研究创建的过程变量包括:11个输入变量(y1~y7,u4和u5,以及2个启停按钮)、5个输出变量(u1~u3,2个启停显示灯)和18个DB块变量(控制器设定值SP1~SP3,控制器比例增益P1~P3,控制器积分时间I1~I3,控制器输出LMN1~LMN3,控制器比例增益输出LMN_P1~LMN_P3,控制器积分器输出LMN_I1~LMN_I3)。
④创建和编辑过程画面。对于过程画面的组态,使用WinCC图形编辑器。本课题共要创建13个过程画面,包括:起始、运行、趋势视图、参数设置、系统简介各1个,控制曲线3个,响应曲线3个,参数定义2个。同时,本课题要实现各个画面之间的相互切换功能。
完成人机画面绘制与组态后,激活该WinCC项目,并建立PLC与Matlab的通信连接。至此,整个控制系统搭建完成。
3.1 对象特性测试
模型搭建好后,对被控对象进行对象测试,从而验证对象搭建是否正确,其中系统开环。令u1=1,其他4个输入均为0,运行测试系统,观察7个输出响应。以y1-u1为例,由两点法[6]可以求取延迟时间τ=27 s,时间常数T=50 s,增益K=4.05。由此可以验证模型建立正确,表明重油常压塔建模成功。
3.2 控制系统参数整定与控制效果
本系统中有3组控制参数需要整定,可选取的整定方法有两种:一种是单组参数依次整定,然后再合在一起轻微整定;另一种方式是三组参数同时整定。因为重油常压塔模型各输入输出之间存在耦合,所以此处采用3组参数同时整定的方法。
根据参数整定规律,适当调节比例增益和积分时间,最终确定P1、P2、P7、I1、I2、I7分别为0.4、0.27、0.3、110 s、120 s、120 s。当设定值SP1、SP2、SP7分别为50、70、55时,以y1-u1为例(下同),其被控变量响应曲线如图4所示。
图4 y1控制响应曲线图
为了测试系统的实际工作效果及性能,对系统的控制特性进行了如下测试。为系统添加扰动,分别在不同时间将u4和u5由1设置为3,得到如图4(b)段所示的被控变量响应曲线。改变设定值,当SP1由50变为55时,得到如图4(c)段所示的被控变量响应曲线。
通过以上试验证明,无论添加扰动还是改变设定值大小,在误差允许的范围内,被控对象最终都能通过PLC控制器的调节稳定在设定值;同时,控制器调节也比较迅速,满足了快、准、稳的要求。由此表明,该控制系统性能较好,达到了作为安全测试床的要求。
对安全性能进行初步测试,如攻击y1控制器,使其与系统断开,可以得到y1控制性能严重下降,如图4(d)段所示,同时y2和y7的控制器效果也相对延迟。
本研究主要以重油常压塔为研究模型,搭建重油常压塔半实物仿真工业控制系统。以Shell公司重油常压塔为模型,使用Matlab建模;以西门子SIMATIC S7-300 PLC作为控制器,在TIA Portal中组态控制器,编写控制程序;通过KEPServerEX OPC服务器建立Matlab与PLC之间的通信连接;采用WinCC软件绘制组态人机界面,建立系统操作站;并对搭建的控制系统进行了对象测试、参数整定与控制性能测试,最终实现快、准、稳的控制效果。
通过搭建重油常压塔控制器硬件在环模拟仿真系统测试床,可以为工业控制系统安全性能的评估与保
护研究作准备。不同于一般系统只用于对模型的攻击性研究,该系统可同时用于对模型与控制器的攻击性研究。特别是对于控制器的攻击性研究,由于采用PLC,使得其与工业控制系统更加相似,试验结果也更加准确。
[1] 彭勇,江常青,谢丰,等.工业控制系统信息安全研究进展[J].清华大学学报(自然科学版),2012,52(10):1396-1408.
[2] 张海霞,连一峰.基于测试床模拟的通用安全评估框架[J].信息网络安全,2013(S1):13-16.
[3] 何之栋,裘坤,钟晨,等.工业控制系统的信息安全问题研究[J].工业控制计算机,2013,26(10):1-4.
[4] 刘星平,张智慧,胡广,等.基于OPC技术的控制系统集成实现[J].湖南工程学院学报,2012,22(3):5-8.
[5] 李军.WinCC组态技巧与技术问答[M].北京:机械工业出版社,2013:29-118.
[6] 俞金寿,顾幸生.过程控制工程[M].4版.北京:高等教育出版社,2012:75-89.
Development of the Hardware in the Loop Simulation System for Heavy Oil Fractionator
Aiming at the threat of security of industrial control system being attacked,the industrial safety test bed is investigated,and the hardware in the loop simulation system used for security test is setup for heavy oil fractionator controller. A simulation model based on heavy oil fractionator of Shell is established in Matlab. The siemens S7-300 PLC is selected as the controller,the PID synchronous control algorithm is adopted,and the heavy oil fractionator model is designed on Totally Integrated Automation (TIA) platform. The winCC software is used to configure monitoring displays and develop human-machine interface.The OPC technology is adopted to achieve data communication between Matlab,TIA,and WinCC. The system provides a platform for the study of information security issues for industrial control systems.
Industrial control system Safety Test Heavy oil fractionator PLC Man-machine interface PID Matlab WinCC
国家自然科学基金资助项目(编号:61374109、61304078、61473184);
国家“973计划”基金资助项目(编号:2013CB035500);
国家“863计划”基金资助项目(编号:2015AA043102)。
姜娜(1991—),女,现为上海交通大学控制科学与控制工程专业在读博士研究生;主要从事基于大数据的智能交通知识挖掘方向的研究。
TH7;TP273
A
10.16086/j.cnki.issn 1000-0380.201608017
修改稿收到日期:2015-12-14。