詹泽海,孙郭锋
(1.深圳职业技术大学机电工程学院,深圳 518055;2.中海油安全技术服务有限公司深圳分公司,深圳 518056)
仿真技术目前已经被广泛地应用到工业的各个环节,对企业提高开发效率,加强数据采集、分析、处理能力,减少决策失误,降低企业风险起到了重要的作用。工业仿真技术的引入,使工业设计的手段和思想发生质的飞跃。在教学中,应用数字孪生技术半实物仿真的形式,一方面学校可以解决大型设备的安全性问题,降低成本,提升调试效率;另一方面师生也可以自己搭建仿真环境进行编程调试完成学习[1]。采用仿真技术开展教学,大大提高了学生学习的积极性和主动性,配以理论和实际相结合,使得教学效率得到大大提高[2-3]。文中介绍一种基于工业自动化仿真软件Factory IO 及另一款仿真软件S7-PLCSIM Advanced 的液位Proportion Integration Differentiation 控制(简称PID 控制)的工业仿真系统设计及调试方法。
Factory IO 是由葡萄牙波尔图大学和法国兰斯大学联合开发并由 “Real Games” 公司出品的一款PLC 交互式教学软件,它包含了工业系统搭建、PLC编程、PLC 控制系统调试等技能训练。它充当一个实时自动化沙盒,具有高品质的图像和音效,可运用最常见的自动化控制技术,构建工业仿真系统,同时它使用一种创新技术,允许用户通过拖拽的方式简单快捷地创建3D 工业系统。Factory IO 构建的任何系统都可由外接技术、软件和硬件实时控制[4-5],在工业自动化、机电一体化、电气工程、机械工程和仪器仪表等专业的课程教学中具有较高的应用价值。
使用Factory IO 创建液位工作站模型,模型场景包含以下元器件和设施:一个高度为300cm 的容器,容器的上下两端装有阀门、压力传感器及流量传感器各一个。
鼠标右键单击工作站模型,在“配置”选项里把工作站模型勾选为“Analog”工作模式,这样场景里的两个传感器才能使用。此时,容器上液位传感器输出范围为0~10V;上、下两端的阀门也分别采用0~10V 的模拟量信号来调节阀门开度。
液位工作站仿真场景如图1 所示。为了方便调试,可以单击在“视图”菜单下的“添加所有标签至任务栏”命令,这样就可以把场景里所有可用的标签显示出来,调试初期,可通过标签任务栏的“强制”功能,快速测试各器件的功能效果。
图1 液位工作站仿真场景
通过驱动菜单,选择要与Factory IO连接的PLC类型为S7-1500,并把需要用到的标签与虚拟PLC的IO 端口逐一做好关联,单击驱动窗口右上角的“配置”,设置好Factory IO 与S7-PLCSIM Advanced连接参数,返回驱动窗口,单击“连接”,当S7-PLCSIM Advanced 已运行并与Factory IO 的网址同在一个网段,正常连接后在驱动窗口上有一个绿色“√”出现,表示Factory IO 与S7-PLCSIM Advanced 以建立连接,如图2 所示。
图2 Factory IO 与S7-PLCSIM Advanced 连接状态
当Factory IO 与S7-PLCSIM Advanced 建立起正常连接,点击Factory IO 驱动窗口右下角的箭头符号,把当前场景下的所有标签导出到指定位置,所导出符号表将在PLC 编程时使用。如图3 所示。
图3 标签导出
液位PID 控制系统主要由S7-1500PLC、人机界面(Human Machine Interface,HMI)和Factory IO 液位工作站的各种执行元件组成,如图4 所示。S7-1500 PLC 为系统控制器,由S7-PLCSIMAdvanced 和TIAPortal 共同仿真;HMI 通过S7-PLCSIMAdvance 与Factory IO 液位工作站上的各个可执行元件进行人机交互。
图4 液位PID 控制系统组成框图
2.2.1 创建一个S7-1500 项目并导入符号表
通过TIAPortal 创建一个S7-1500 工作站,新建一个PLC 变量表,如图5 所示,并在变量表里导入Factory IO 标签文件。
图5 PLC 变量表
2.2.2 S7-1500 程序设计
本系统程序设计主要由两大部分组成。一是设计一个用于计算并转换模拟量信号的程序块[FB1],由Main [OB1] 调用执行;二是在Cyclic interrupt[OB30]里处理的PID 运算,如图6 所示
图6 PLC 程序结构图
通过“模拟量数据转换[FB1]”的程序代码用来实现压力传感器信号与PID 数据的换算,把传感器0~10V 的信号换算成对应的0~300cm 水位,结果作为PID 系统的反馈输入;把PID 运算后的输出换算成阀门对应的0~10V 控制信号[6],如图7 所示。
图7 [FB1]程序设计
“模拟量数据转换_DB[DB2]”为模拟量数据转换[FB1]的背景数据块,可以存储计算过程中的所有数据,也是HMI 与PLC 进行数据交互的地方之一,背景数据块里给液位设定值及排水阀开度都设了初值,每次运行系统时都按这个初值进行工作,如图8 所示。
图8 [FB1]背景数据块
循环中断组织块[OB30]里直接调用PID 控制工艺通用控制器指令,如图9 所示。
图9 [OB30]程序设计
块的使能端接入一个布尔信号,信号指向为Factory IO 的“FACTORYI/O(Running)”。当Factory IO 运行时,此信号接通,PID 控制生效开始工作,另外,PID 控制器设定值、传感器反馈值、PID 输出值均指向“模拟量数据转换_DB[DB2]”里对应的存储地址。
PID 工艺组态时把控制器类型设为“长度”,单位选择“cm”,输入选择为“Input”,输出选择为“Output”,过程值上限为300cm,其它参数均为默认。
系统调试需要用到一个人机交互界面,项目选用西门子精简系列面板,画面组态如图10 所示。画面主要由一个趋势视图、一个棒图及若干IO 域组成,所关联数据均出自 “模拟量数据转换_DB[DB2]”。通过趋势视图可以直观地看到PID 控制时设定值、反馈值及PID 输出的实时曲线变化规律,通过棒图可以与Factory IO 画面的模型形成实时的对比,掌握液位控制的准确度,IO 域用于显示或设置PID 控制器的各个参数,便于对系统进行必要的控制。
图10 HMI 画面组态
使用S7-PLCSIM Advanced 进行PLC 仿真时,必须在TIAPortal 项目里启用两个设置,具体如下。
(1)项目树视图里,鼠标右键单击PLC 项目,选择“属性”菜单,在打开的属性窗口“常规”选项卡中,启用防护与安全—连接机制下的“允许来自远程对象的Put/Get 通信访问”命令,如图11 所示。
图11 启用防护与安全
(2)鼠标右键单击项目树下的项目名称,选择“属性”菜单,在“保护”选项卡中勾选“块编译时支持仿真”选项,如图12 所示。
图12 块编译时支持仿真
设置完成后把所有项目程序下载到S7-PLCSIM Advanced,与Factory IO 联合仿真调试。调试时可以借助TIAPortal 里的工艺调试功能进行PID 参数自整定[7-9],这里必须确保PID 工艺指令是在循环中断组织块[OB30]里执行,否则将无法进行参数自整定,如图13 所示。
图13 PID 工艺调试
把自整定结果重新下载到S7-PLCSIM Advanced,然后就可以通过HMI 画面对Factory IO 场景下的工作站模型进行液位PID 仿真控制,通过HMI 画面可以在0-300cm 范围内任意设置液位,同时可以通过IO 域查看实时液位反馈值与两个调节阀的开度,也可以通过趋势图来观测PID 控制曲线,如图14 所示。如果觉得控制效果不理想,还可以通过对应的IO 域进行PID 参数修改。
图14 Factory IO 液位PID 控制仿真运行
实验结果显示,通过适当调整PID 参数,可以使得PID 控制仿真系统的稳定性、准确性、响应速度和动态性能等指标都与实际情况接近。可以看出,基于Factory IO 与S7-PLCSIM Advanced 的液位PID 控制工业仿真近乎完美地还原了真实控制环境,不但提升调试效率,还可以大大提高学生学习的积极性、主动性和趣味性,这种工业仿真具有良好的教学效果和推广价值。