浅谈西门子MES与DCS数据交互在生产中的应用

2022-01-12 01:08王东鹏陈乙锋白凌云左冬宋悦
机电信息 2022年1期

王东鹏 陈乙锋 白凌云 左冬 宋悦

摘要:面对不断增长的成本压力、愈加严格的法规和安全指南以及日益多样化的产品线,制药企业正不断寻找改进生产工艺的方法。SIMATIC IT eBR为制药行业提供了专用的MES解决方案,它实现了彻底的无纸化制造和完全电子化的批量记录。SIMATIC IT eBR包括生产执行系统(MES)、SIMATIC PCS 7过程控制系统(DCS)与SIMATIC Batch的HMI层之间的内在集成。现就MES与DCS之间的数据交互方式、DCS和MES协同问题的解决方案进行梳理和研究。

关键词:MES;DCS;数据交互;协同问题

中图分类号:TP274  文献标志码:A  文章编号:1671-0797(2022)01-0011-05

DOI:10.19514/j.cnki.cn32-1628/tm.2022.01.003

0    引言

2015年,《中国制造2025》规划出台,剑指“工业4.0”,其中涉及医药行业的内容成为指导我国医药行业智能化转型升级的行动目标和纲领。医药工业在智能化技术趋势的影响下,正在进入全面转型升级的阶段。制药工业的新纪元——无纸化生产即将成为新的标准。借助于西门子成熟的电子批记录解决方案(SIMATIC IT eBR)[1],可实现完全无纸化生产。本文针对SIMATIC IT eBR中的生产执行系统(MES)、SIMATIC PCS 7过程控制系统(DCS)[2],展开了对这两套系统的数据交互以及协同问题解决方法的研究。

1    DCS与MES数据交互方式

1.1    MES与DCS通过OPC进行数据交互

此交互方式适用于MES系统需要读取第三方设备数据的场景,同时也适用于一些状态的显示,如设备的CIP清洗、SIP灭菌的时效。如图1所示,当MES系统需要读取DCS系统某个数据时,可通过OPC访问DCS或WinCC的数据库直接获取DCS系统的数据;当MES系统需要下发某个数据给DCS系统时,也可通过OPC将数据写入DCS系统。当MES需要多次读取DCS数据,或需要判断读取数据的正确性时,经常采用OPC读取这种方式。比如在温度调整过程中,MES系统需要多次获取罐子温度,直到罐温满足要求以后才记录,这时就可以选择OPC读取这种方式。值得注意的是,在通过OPC进行数据交互时,需要明确DCS中OPC服务器的IP地址以及数据的变量名。当OPC通信变量获取出现异常时,需要查看EBROPC服务是否开启,若服务正常开启,则查看DCS中的OPC服务器是否异常,检查设备是否打到仿真状态,如打到仿真状态,而OPC无法读取到仿真值,则查看OPC配置点位是否正确(新增点位出现异常的可能性最大)。

MES直读DCS或WinCC变量功能是通过脚本“YA_READ_MAXMIN”读取一段时间内单个DCS或WinCC点位的最大/最小值及相应时间点,并且需要在DCS服务器上运行“YAWinCC.EXE”插件。

“YA_READ_MAXMIN”脚本输入/输出参数说明:

insTag:输入WinCC点位;

intStart:输入读取时间段的开始时间点;

intEnd:输入读取时间段的结束时间点;

oudMax:输出读取时间段内的最大值;

oudMin:输出读取时间段内的最小值;

oulResult:輸出运行返回值[建议在PI中放出来,方便异常情况查看,正确的返回值为“0”,当返回值为“1”时,读出数值为空值,检查配置的点位是否有错误(非格式错误);当返回值为“2”时,检查DCS服务器是否有异常,服务器上“YAWinCC.EXE”插件是否启用;当返回值为“3”时,检查配置点位格式是否有错误];

outMaxTime:输出最大值对应的时间点;

outMinTime:输出最小值对应的时间点。

1.2    DCS与MES数据交互方式——Batch

SIMATIC Batch是一个模块化和可升级的批处理平台。Batch在执行特定动作时(如批处理订单启动),MES与Batch可直接进行数据交互。MES中的事件PI与Batch中相关的EPH或QCS绑定,当该QCS触发特定事件,如Start、Refresh、Completed或者Aborted时,MES就可通过事件PI与Batch进行数据交互,如图2所示。

2    DCS和MES协同问题的解决

两个系统在配合运行时,出现协同问题在所难免。DCS和MES的协同问题主要体现在:

(1)参数匹配,其中包括Batch的设定值中是否包含了MES需要下发的设定值、MES与Batch的参数是否在配方启动时直接传送、MES与Batch的参数是否来自于计算值、MES与Batch的参数是否来自于不同步骤的计算值;

(2)流程匹配,包括时序的匹配(具体ROP的激活时序)、MES中的人工确认(采样、手动加料、放行等)、MES与Batch的配合(pH调节的次数;与第三方设备的交互,虽然和Batch没有控制上的关系,但MES需要数据,还是需要在Batch上进行考虑);

(3)Master Recipe的影响,例如同一个Unit的不同操作是否是在同一个配方中(如缓冲液的配制和出料功能)。

针对这一系列的协同问题,借助于本公司部分生产工艺流程的设计思路(部分流程进行了模糊化处理或替代),于下文中给出了一定的解决方案。

2.1    参数匹配问题

2.1.1    Batch的设定值中是否包含了MES需要下发的设定值

针对这类问题的解决,需要MES提供与Batch的接口数据表,进行Batch配方編辑的人员在拿到这个数据表之后,需要考虑EM的设定值的创建,具体可以参考MES与Batch的接口数据表和协同工作的流程。

2.1.2    MES与Batch的参数是否在配方启动时直接传送

设定值参数在Batch订单中运行时如为固定值,一般该参数需要上传到表头,由MES在启动Batch订单时更新表头参数。例如在某一生产流程中的温度控制阶段,反应罐的温度设定值是一个固定参数,需要上传到表头,具体如图3所示。

2.1.3    MES与Batch的参数是否来自于计算值

当某个QCS触发了特定的PI事件,然后计算的值写入相同的QCS时,这种写值方式不受Batch流程架构影响。如图4所示,如果想要将MES在进生理盐水阶段计算出的生理盐水加料量写入到本阶段的进生理盐水设定值中,这时在DCS的顺控中就需要考虑MES的计算是否已经完成,或者是否可以应用当前的数据来运行进料程序。

如下几个步骤需要在SFC中考虑:

步骤1,在EPH中创建一个交互设定值参数MES_

Unblock(数据类型为Bool型),其主要的目的是让MES通过这个参数告诉DCS相关运算已经完成;

步骤2,在SFC的Starting中,需要复位这个交互设定值参数,确保程序运行前MES_Unblock值为假;

步骤3,在SFC的Run中,“等待MES操作”这一步置位REFRESH信号(置位此信号的主要目的是在SFC运行的过程中还能实时接收来自于MES的设定值即MES_Unblock的信号),同时在“MES操作完成”中设置检查MES_Unblock信号是否被MES置位这一条件,若MES_Unblock信号为真,则表示MES计算已经完成,可以开始执行该程序;

步骤4,在SFC的QCS的Completing、Aborting与Stopping中复位MES_Unblock和REFRESH信号;

步骤5,在配方中该设定值参数不能有源,且必须可更改并立即生效,如加生理盐水阶段的加料量设定值需要MES计算后写入。

Batch中正确组态如图5所示。

2.1.4    MES与Batch的参数是否来自于不同步骤的计算值

MES的数据通过EM或者QCS写入。当某个QCS触发了一个PI事件,然后计算的值写入相同的QCS,接着在Batch底层通过将MES写入的参数作为目标参数上传,再在另一步骤中将上传的参数作为源引用。这种方式写值不需要有确定的Batch架构。如图6所示,如果需要将MES在缓冲液进料阶段计算出来的缓冲液的加料量写入缓冲液加料阶段的设定值中,只需在缓冲液进料阶段的属性参数配置中找到缓冲液加料量(PH_WI_SP),为其设置上传目标参数(PH_ADD_SP),并在缓冲液加料阶段的属性参数配置中找到缓冲液加料设定值(WI_SP),将目标参数(PH_ADD_SP)作为源引用。

2.2    流程匹配问题

2.2.1    时序的匹配(具体ROP的激活时序)

在很多MES管理的项目中,罐子的CIP清洗是单独的订单,与主流程平行进行,所以主流程在占用该罐子之前,需要事先确认罐子是否干净可用。以图7所示工艺流程为例:PI301在完成制作工序1之后,可以进行PI303的制作工序2。在没有MES协调的情况下,按照图中方式进行组态,在PI301完成工序1后,PI303便被主流程订单占用。如果此时PI303为不清洁状态,调用PI303的CIP清洗订单则无法启动。要解决此类问题,只需在PI301完成制作工序1后,增加一条下游设备PI303确认功能,通知MES进行设备检查确认,同时将PI303的组态动态单元设置为条件启动,条件为MES已经确认设备(MES将设备确认参数DevCheck通过OPC传递到DCS,DCS再将其组态为单元参数),如图8、图9所示。

若设备已经为清洁状态,MES确认设备并且下发参数通知DCS,DCS主流程启动PI303;若设备为不清洁状态,则MES启动对应的清洗订单,待设备清洗完成后,MES确认该设备并通知DCS,DCS主流程启动PI303。

2.2.2    MES中的人工确认(采样、手动加料、放行等)

在一些缓冲液的配制过程中,需要进行手动加料。此时,Batch流程通过特定的EM或QCS触发MES进行手动加料,完成后通知Batch继续生产小结流程。如图10所示,PI100在进行完工序1后需要手动进行加料,若没有MES的干预,在手动加料过程中订单将继续往下执行生产小结,为避免这种情况,在工序1完成后增加手动投料这一过程,并通过MES确认已经添加完成,订单继续向下执行。

2.2.3    MES与Batch的配合(如多次调整进料)

很多情况需要MES和Batch配合,MES下发加料量给Batch,Batch自动加料完成后通知MES检测再调整。如乙醇配制阶段,在预加一定量的水和乙醇后,需要检测乙醇浓度进行再次调节,直到合格后进行后续步骤。此时需要MES和Batch配合完成,如图11所示。

2.3    同一个Unit的不同操作不在一个订单中,需要MES进行协调解决

如缓冲液的配制和出料操作不在一个订单中,如果没有MES协调,在Buffer配制之后和出料之前有一定的空档期,可能存在安全隐患等,如图12所示。此时只需在配制订单结束前增加一步用于等待MES确认,在MES准备启动出料订单前,才停止配制订单,保证流程的延续性和安全性,如图13所示。

3    结语

本文就MES与DCS数据交互方式展开了研究,为实际生产中出现的数据交互问题的及时解决提供了有力保障,提高了自动化运营的生产效率。

另外,本文基于本公司实际生产部分流程对MES与DCS的一些协调问题给出了一定的解决方案,可供相关从业人员参考学习、共同进步。

[参考文献]

[1] 米勒.西门子自动化系统实战S7和PCS7应用实例[M].张怀勇,译.北京:人民邮电出版社,2007.

[2] 利昂·乌尔巴斯,安尼特·克劳泽,延斯·齐格勒.过程控制系统工程[M].朱振华,译.北京:机械工业出版社,2018.

收稿日期:2021-09-17

作者简介:王东鹏(1981—),男,山东郓城人,工程师,从事工程项目管理及自控调试工作。

陈乙锋(1998—),男,四川资阳人,技术员,从事自控信息系统维护工作。

白凌云(1976—),男,湖北武汉人,工程师,从事自控信息化项目工作。