成都生物制品研究所有限责任公司 610023
【摘要】
本文简要介绍生物制品行业小型洁净区(室)新风空调控制系统的PLC编程逻辑和控制功能以及对西门子全集成自动化(TIA)软件的介绍。以TIA Portal V16为例,分析软件设计和实施过程中常见问题,对项目实施经验进行总结。
【关键词】 生物制品;TIA Portal V16;新风空调控制系统;全集成自动化;软件设计和实施
1.前言
成都公司原有的新风空调控制系统以单片机或者集成电路控制为主,对数据的记录、存储、分析能力较为有限,很多时候新风机组运行工况需依赖人工现场判断,需要维修人员丰富的经验,使用人员也只能通过对室内当前温度的客观感知来判断运行情况,往往此时对制品和试验对象已经造成了不可避免的影响。
自动控制系统通过PLC(可编程控制器)程序控制,通过对输入数据如:温度、压力、开关信号反馈等信号进行分析,输出执行命令到外部执行器控制外围设备运行,保障可持续生产,提高生产效率,另一方面根据最新《中华人民共和国疫苗管理法》第十条 国家实行疫苗全程电子追溯制度。疫苗上市许可持有人应当建立疫苗电子追溯系统,实现生产全过程最小包装单位疫苗可追溯、可核查。传统的记录方式主要通过纸件,而自动系统能够实时记录房间温度、湿度和机组运行报警信息,便于实现生产过程数据的电子追溯。
2.自动控制系统
2.1.系统功能需求
新风空调控制系统需满足以下控制功能:
1.满足实验室温湿度要求,温度为20-26℃,通过过滤器过滤实验室产生的有害粉尘。
2.洁净区保持正压,与室外不小于8.9Pa,新风量40m³/(人.h)
3.能保证新风进入参与换气,同时控制新风阀开启大小调节房间湿度。
4.记录不低于半年数据并导出温度曲线,生成报表。
5.记录机组报警数据,能发送报警短信到指定人员手机中。
6.在满足系统正常运行,保证温湿度控制的可靠性的条件下尽可能降低机组运行时间,达到节能减排的目的。
7.尽可能平衡每台机组运行时间,达到延长机组寿命,降低维修成本,减少停机时间。
8.参数修改符合GMP规定,开启Audit功能所有参数修改拥有可追溯性。
9.增加机组排气温度检测功能,通过排气温度和高压保护双重保护压缩机
系统硬件结构如图1所示,通过回风压力控制新风阀PID开度,新风和回风混合后进入初效过滤器,再经过热泵机组根据需求制冷或制热,通过送风机再经过中效过滤通向使用点。
图 1 新风控制系统硬件结构
图 2 控制系统网络结构
2.2.系统网络结构
为实现系统控制需求搭建如图2所示网络结构,PLC控制器、现场触摸屏、巨控短信报警发送器需接入园区网络中采用profinet协议连接,服务器端搭建vmware虚拟机“TIA工程师站”用于下载、调试系统使用也可以组态SCADA系统采集监控机组运行参数。搭建vmware虚拟机“报警信息采集服务器”通过profinet协议采集PLC发出的报警点和通过OPC UA Client采集TP700精智面板记录的报警状态,再将报警信息分析处理后发送至巨控短信报警模块中,报警模块通过短信发送到相关人员手机中。
Profinet通讯是新一代基于工业以太网技术的自动化总线标准,要实现PROFINET通讯需要通过软件配置站IP地址,并在数据块中写入交互数据和心跳信号,最后通过调取编程软件中的写入和读取功能块来实现。PROFINET的特点是通讯速度快,对于环网收敛时间在100ms以内,带宽可达100Mbs。适合工艺系统与其他模块进行数据交互。
2.3.控制系统程序设计
控制系统使用S7-1200系列PLC控制,使用TIA Portal V16编辑完成的自控系统,程序采用SCL语言和LAD语言结合编辑,使用SCL语言解决复杂算法编写LAD语言作为程序主干调用由SCL语言编写的FB、FC块,DB块用于存储数据和提供装载变量地址。
2.3.1.启停机请求FB块
通过采集实际值和启/停温度设定值比较实现发送启动或停止机组请求信号供“启停先后计算”FB块使用,读取实际温度和设定温度上下限做比较,高于设定温度上限制冷启机直到温度降到设定温度下限后停机,待温度回升到设定温度上限后启机,由于温度到了判断临界点(外界影响实际值在设定值上下小幅度摆动)需要增加延时判断和采用均值滤波算法来消除抖动达到系统稳定性。
2.3.2.压缩机逐台延时启动FB块
通过接收到“启停机请求FB块”发出的启机信号请求后,比较用户设置逐台延时启机时间分别对4台机组进行启机数量计算,若有机组因机组故障系统保护、工程师禁用机组后跳过延时启动下一台机组。
1.#间隔时间_return := (#间隔时间 / 2) * 1000;
2.#制冷脉冲(启用脉冲:=#制冷请求 AND #制冷停止计数=0 ,
3.脉冲间隔:=#间隔时间_return,
4.脉冲输出=>#逐台启机间隔脉冲);
5.#制冷信号发出后立即启用压机(CLK:=#制冷请求,Q=>#cool_up_1);
6.#制冷逐台启机上升沿(CLK:=#逐台启机间隔脉冲 , //不可以OR#制冷请求在后面!Q=>#cool_up);
7.#制冷启机计数器(CU := #cool_up OR #cool_up_1 OR #"跳过1#A" OR #"跳过1#B" OR #"跳过2#A" OR #"跳过2#B",R := NOT #制冷请求 OR (NOT #系统停止),//(NOT #系统停止)防止急停后出错 PV := 4,CV => #启机台数);
8.IF #启机台数>=4 THEN
9.#制冷停止计数 := 1;
10.ELSE
11.#制冷停止计数 := 0;
12.;
13.END_IF;
14.#"1#A有故障跳过计时"(CLK:=#"1#A故障标志" AND #"1A启机计算",
15. Q=>#"跳过1#A");
16.#"1#B有故障跳过计时"(CLK:=#"1#B故障标志"AND #"1B启机计算",
17. Q=>#"跳过1#B");
18.#"2#A有故障跳过计时"(CLK:=#"2#A故障标志" AND #"2A启机计算",
19. Q=>#"跳过2#A");
20.#"2#B有故障跳过计时"(CLK:=#"2#B故障标志" AND #"2B启机计算" ,
21. Q=>#"跳过2#B");
2.3.3.先后计算FB块
使用“冒泡排序法”比较每台机组运行时间将机组启机顺序按照运行时间长短来启机控制,若某台机组因故障系统保护、工程师禁用机组后跳出堆栈。
“冒泡排序法”比较相邻的元素(机组工作时间),如果第一个比第二个大,就交换他们两个时间。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较,根据“冒泡排序法”的应用编写机组排序SCL程序如图所示,在程序中应尽量减少如for语句嵌套缩短CPU扫描周期。
2.3.4.机组运行时间计算FB块
使用两个TON定时器制作1S脉冲发生器,脉冲和计数器结合的形式来累计机组启动运行时间,减少定时器TON的使用尽可能的缩短CPU扫描周期提高程序可执行性,C计数器按秒存储机组运行时间最大存储DINT(32位整形)数据2147483647秒即68年,C计数器中数据可按照时分秒换算规律换算成直观的运行时间。
3.结论
为保证空调控制系统的稳定性,在设计自控硬件时,需充分识别系统风险,PLC、传感器等关键部件要采用一流优质品牌。对于通讯方式,除考虑稳定性外,还要考虑接入设备的特点、智能仪器、仪表的数据量。第三方设备接入系统后开关机不能影响其他设备运行。
软件开发方面,自控和工艺要深度融合,自控需在设计阶段参与功能说明文件的编制,成熟的工艺说明应包含程序的概览、过程操作、参数和备注等信息,可对直接指导功能(Phase)的开发。在软件开发过程中,首先要避免使用五类软件,因为五类软件验证繁琐且调试周期长。其次要注意功能(Phase)的边界,避免不必要的点位占用,导致输出设备进入等待。其次是如果在测试过程中发现问题,要根据实际的情况调整程序。
参考文献
[1]梁涛,杨彬,岳大为.Profibus现场总线控制系统的设计与开发.北京:国防工业出版社,2013:6-7
[2]冯地斌, 吴波. PROFIBUS现场总线技术[J]. 自动化与仪器仪表, 2002, 000(002):1-4.
[3]段润群, 谢云山. 上位机软件与S7-1200 PLC的OPC通信研究[J]. 自动化与仪器仪表, 2014, 000(005):13-15,19.
4