制药设备计算机化系统常见设计缺陷分析
2015-04-13谢光宇
谢光宇
(江苏万邦生化医药股份有限公司,江苏徐州221004)
0 引言
2015年5月26日,国家食品药品监督管理总局正式发布了GMP附录《计算机化系统》,并宣布将从2015年12月1日起施行。虽然过去一些企业早就开始关注计算机化系统这一概念,并且依据GAMP也开展了很多工作,一些新建项目也都按照GAMP去进行,但法规的颁布,还是引起了行业内的热烈讨论和重视。
对于大多数制药企业来说,计算机化系统不是一个很熟悉的领域,毕竟处于不同的行业,相关的人才也缺乏,可能只有部分电气自控的维修人员或工程技术人员略有了解,但大多可能了解得也不够深入。
那么首先什么是计算机化系统呢?个人理解计算机化系统可以认为是计算机系统与制药设备、仪器、设施的结合,或者说设备、仪器、设施经过“计算机化”的系统。比如我们的配液系统,过去可能全靠人工操作,人工开启阀门、读取记录仪表数据,同时可能有一些继电器和仪表控制电路实现部分的自动控制。
现在我们用PLC、HMI、平板工控电脑、上位台式机以及在上面运行的各种程序软件来控制系统的自动化流程和数据记录,那么这个配液系统就被“计算机化”了。当然上面所说的计算机系统绝不仅仅指大家所认为的上位台式机、PLC以及HMI,稍有了解的人都知道这些其实都是计算机的不同类型,但事实上计算机系统的类型很广泛,从一台数字化仪表到一块门互锁的控制板,这都是计算机系统,采用了这些组件的系统都可以成为计算机化系统。它们的共同特点是具有数字化数据的采集、运算和记录(输出)功能。
个人认为,我们只需要关注那些涉及关键工艺控制、数据传输、记录的计算机系统,比如我们改造一个过去只有变频器、水泵这样的纯化水分配系统,我们增加一些传感器连接一台无纸记录仪以记录关键数据,这样这个系统同样被计算机化了,涉及到了电子数据,根据GMP附录《计算机化系统》要求,我们需要开展一些相关的工作。
计算机化系统最大的特点是“看不见摸不着”,除非具有相关的专业知识和技能,比如具有PLC、HMI等工控组件的组态、编程能力。目前法规已经颁布,我们如何确保计算机化系统代替人工操作时,不对产品的质量、过程控制及其质量保证水平造成负面影响,不增加总体风险;如何进行风险管理,知道哪些地方可能存在风险;如何去测试一个计算机化系统,首先我们需要知道,计算机化系统哪些地方可能存在问题,以及如何去规避这些问题。因此,本文结合笔者近一两年所参与的实际工程项目和后期的维护经验,例举一些计算机化系统常见设计缺陷的实际案例。
1 文件与程序不符
设备:西林瓶灌装机。
问题:缓冲罐经常出现不进料的情况。
这台灌装机当时刚刚正式投入生产,结果出现了频繁不进料、偶尔出现溢料的情况,严重影响了正常生产,同时也造成了较大的损失。
笔者查阅了说明书,可以看到图1中对于缓冲罐液位控制的描述。说明书中描述的对于低液位的控制是当设备运行达到设定的灌装周期后即开始进料的,高液位是液位计控制,因此我们对主机编码器进行了检查,始终没有发现问题,也无法解决。只好通过STEP7软件读取了灌装机PLC程序并进行检查,关于缓冲罐液位的控制程序如图2所示。可以看到,液位只是通过液位计的高低探头控制的,与灌装周期无关,最终发现是因药液泡沫以及电极式液位计所设定的电阻值不合适造成的。
这个问题看起来并不是设备本身的问题,但从设备全生命周期的角度来看,文件是计算机化系统非常重要的一部分,文件不正确,对于设备的使用、故障调查都会产生很大的阻碍,对产品质量也可能造成一定的风险。特别是面对新采购的设备。因为大多数情况下,用户还是根据文件来了解设备,而不是直接通过程序,但是设备却是按照程序运行而非文件。当用户认为文件是合理的时候,设备的运行却不一定正确。
对于这种情况,由于测试、验证与实际生产之间不可能完全一致,单纯的测试与验证不一定能够发现这一类问题,因此,关键设备程序源代码的审核,不论是自己还是找第三方,有条件还是要做一下。如果设备供应商比较可靠的话,供应商自己也可以审核一下代码和文件。
图1 说明书中关于缓冲罐液位控制的描述
图2 缓冲罐液位的控制程序
2 参数没有设限
(1)设备:塞纸机。
问题:塞纸机按下触摸屏启动按钮后无反应,设备无法启动,PLC Err灯报警。
该设备采用松下FP0 PLC,从网上获取其组态软件FPWIN GR,联机后发现PLC运算错误,下载并阅读程序后发现问题在于:塞纸机速度由PWM参数控制,范围为0~1 000,此参数在不启动塞纸机的时候是不显示的,但是增减参数的按键是显示的,如果按下增减参数的按键(按一下增减20),参数是会变化的。此次故障是由于按键在设备不启动时被无意按下多次,使该参数达到了1 080,超过了限制导致PLC运算错误。
因此对程序做以下修改,如图3所示:程序第3行,增加R180限制,即只有在开启了塞纸机后(开塞纸机按钮地址R180)才能调节塞纸机速度参数。
该故障是设备的一种设计缺陷,输入的参数没有范围限制,对于这台设备而言这仅仅只是一种故障,而对于其他的情况,也许会对产品质量或人员安全产生严重的损害。
(2)设备:装盒机。
问题:电子监管码信号不能触发推盒气缸。
正确的电子监管码会给PLC一个信号,不正确的则不会给信号,推盒气缸不动作。但已确定了电子监管码正确,推盒气缸仍然不工作。推盒动作是由欧姆龙PLC控制的。因此我们下载了欧姆龙PLC软件,上传程序。发现电子监管码i0.4信号触发后延时400 ms才能触发气缸,如图4所示。而上位机电子监管码软件上设置电压延时才50 ms。
图3 塞纸机PLC控制程序
图4 装盒机推盒部分控制程序
对于以上的这2个案例,都是由于输入参数没有限制措施所造成的。这种情况其实很好解决,目前主流的触摸屏都可以对数字输入框进行范围设定。而例1中采用按键来增减参数,这种做法没有任何优点,不推荐。其他如滑动条调整参数,同样如此。在做设备OQ的时候,需要对输入的参数进行范围确认,测试高于或低于范围的参数是否可以被输入进去。需要特别指出的是,有时候触摸屏输入的数据,在PLC内部可能需要再次处理。比如有些老款或低档的触摸屏不支持小数,如看起来输入的是12.34,实际传送到PLC的是1234,PLC还需要进行数据处理才能得到正确的值。另外还有一些情况可能是不同码制的转换等。对于可靠的供应商及成熟设备来说,一般不会存在处理上的错误。而一些新设备或特殊定制的设备,这一点也是需要关注的。当然,根据GAMP5和新出的GMP附录《计算机化系统》,这一类设备的软件的分类级别也是比较高的,需要特殊关注。
3 断电后设备丢失参数
设备:湿热灭菌柜、器具清洗机。
问题:设备断电数日后参数丢失。
这种问题主要发生在采用西门子S7-200和老式的S7-300 PLC的设备上。虽然电池卡和及时更换电池可以有效避免这一情况,但是电池寿命往往达不到预期,不及时更换还是会出现参数丢失的情况,如果没有做好参数记录,往往会非常麻烦,因为很多参数是经过长期调试后确定的最佳参数,难以在短时间内重新找回。即使有记录,重新输入参数也非常麻烦,几十乃至上百个参数,很多往往还需要输入权限密码,重新输入一次参数可能需要按键数百次乃至更多。
设备如果使用的是西门子系列或其他品牌的触摸屏,具有配方功能(图5)的,是完全可以避免这种情况发生的。
图5 西门子触摸屏组态软件配方功能
目前一些设备只在工艺参数上使用了配方功能,而在设备参数上却忽视了这一功能的作用。由于配方的数据是存储在触摸屏的非易失存储器中的,断电不会导致数据丢失,所以只需要在触摸屏上增加设备参数的管理画面(图6),即使参数丢失,选择设备参数配方后只需按下参数恢复按键,将设备参数配方下载到PLC中,一键就可以恢复所有的参数。同时,也便于参数的集中管理。
图6 新增的湿热灭菌柜设备参数配方管理画面
4 流程计时与打印计时不统一
设备:湿热灭菌柜。
问题:打印机打印的记录中,灭菌阶段时间比设定时间少了1~2 s。
造成该问题的主要原因为:在程序中流程的计时与打印的时间的获取是在不同的程序段中采用不同的方法进行的。
流程的计时采用的是SM0.5特殊寄存器配合计数器来进行的,如图7所示。一个10 s计时的程序,SM0.5提供时钟脉冲,该脉冲在1 s的周期时间内OFF(关闭)0.5 s,ON(打开)0.5 s。当灭菌柜灭菌标志位S0.3置位后,每当SM0.5从OFF变为ON时,C3的值加1,直到加满10,C3置位进入排汽阶段。
图7 S7-200PLC中利用计数器计时的程序示例
而打印的时间数据是通过读取系统实时时钟来获得的。C3的置位同时将触发打印程序,打印程序通过READ_RTC指令读取系统时钟,将当前实时时间写入打印表中,作为灭菌结束的时间打印出来。
之所以两者会有不同,主要是由于程序的一个漏洞。C3通过计数的方式计时,当CU获得一个上升沿则C3加1,但是上升沿不光可以通过SM0.5的跳动获得,当S0.3置位的瞬间,如果SM0.5处于那接通的0.5 s,则S0.3的置位将使得C3加1,也就意味着进入灭菌阶段的同时(S0.3置位),C3的计时就已经过去了1 s。而READ_RTC读取的时钟是连续的,不存在这种影响,所以打印出来的时间会少1 s。而如果S0.3置位的瞬间SM0.5处于断开的0.5 s,则不会出现这种情况。
至于为什么有时候会出现2 s的误差。个人认为是由于S0.3如果在SM0.5刚刚接通时置位,再加上由于READ_RTC处于不同的程序段且打印数据的处理量较大而导致扫描周期造成的时间差,可能会导致2 s的情况出现,但绝对不会出现3 s的情况,在设备实际使用中,也确实没有出现过3 s的情况。
其实这个问题对灭菌效果来说是没有什么影响的,不论是过度杀灭的情况,还是热敏感比较高的药物的灭菌,1~2 s的误差都不会有什么问题,是一个可以接受的偏差,但是这个偏差需要一个合理的解释。当然我们可以通过修改程序来避免这种问题的发生,比如用掉电保护性接通延时定时器来替代计数器计时等。
5 时序漏洞
设备:全自动配液系统。
问题:需要人员确认的流程在没有人员确认的情况下自动跳过,使得料液进入到正在安装的管路中,损失料液多达10 kg。
该问题最大的难点在于它并不经常出现,直到我们有一台触摸屏触摸功能损坏而采用鼠标进行控制后才频繁发生,并且我们了解到该鼠标由于微动开关接触不良存在点击一下触发多次的情况。根据这个情况,并经过仔细阅读配液系统的程序后,我们发现问题是由于触摸屏按键的属性与PLC程序在时序上的一个漏洞所造成的。
首先,触摸屏用于控制配液流程的“继续”按钮的事件属性如图8所示,按钮只有在“释放”后才会使得变量“ZoneBAcknContinue”置位。如果出现频繁按下“继续”按钮,那么这个置位动作在短时间内也会频繁发生。
图8 配液系统“继续”按钮在组态软件中的设置
我们再来看一下PLC中对于这个“继续”按钮信号的处理,如图9所示。当“继续”按钮置位后,程序立刻进行了复位“R#ConfirmContinue”,但是如果“继续”按钮在复位程序后被按下,这个标志位将再次被置位,而没有复位的程序了。
图9 配液系统PLC程序中对“继续”按钮信号的处理程序
本来提示“继续”的按钮界面在按下后会消失,理论上不会出现“继续”按钮被多次按下的情况。但由于系统存在一定的延迟,如果按下“继续”按钮的速度很快,还是会被触发。由于系统反应延迟的存在,操作人员往往没有耐心,频繁点击按钮,触摸屏的触摸反应较慢,所以在触摸功能还完好的时候,这种情况不是很频繁。当更换为鼠标后,由于鼠标响应速度较快,且由于微动开关的接触不良发生极短时间内频繁触发的情况,所以这种情况也就频繁发生了。
对于此问题,可以在确认操作人员选择“继续”的程序段前再复位一次继续标志位就可以解决。这是一个在验证测试阶段很难发现的程序漏洞,而且是一个很可怕的漏洞,一台设备跳过了人员的确认而自动向下运行,是可能造成严重后果的。因此,不论是供应商,还是药企的技术人员,只有具备丰富的经验和专业的技能知识,才能减少此类事件的发生。
6 结语
通过以上的这些例子我们可以了解到,计算机化系统在为制药生产带来高效率和高可靠性的同时,隐藏着许多风险。所以,新版GMP推出的附录《计算机化系统》绝对是有其存在的实际意义和必要性的。在新的法规要求下,对制药设备的设计与验证过程提出了新的要求。不论作为制药企业,还是制药机械生产企业,都应该积极面对新的要求,因为这些要求不仅只是法规的条文,更是对患者生命安全的有力保障。