一种清分机控制系统
技术领域
本发明涉及清分机控制领域,具体涉及一种清分机控制系统。
背景技术
清分机是一种单入钞口多出钞口的钞票检测与分类机器,其走钞通道长且分支多,各种信号数量多且分布散,电机数量与种类多且实时逻辑与延时控制要求高。
现在技术方案对多口机型处理时,是基于计数逻辑的松耦合构成,逻辑模型和物理上联系不足,必须实现足够的具体代码弥补,开发难度较大,维护成本也较高。
当前的一般实现方法,是通过一组图像传感器与主控传感器采集算法所需数据后对钞票性质进行裁定,其裁决结果提交给相应出口处的翻板电机以翻出钞票,见图1的通道示意图。钞票被采集信息后继续向出口方向移动,与此同时算法计算其正确的出口位置,并及时提交给出口处的翻板电机。钞票移动到出口前段时,被该出口翻板前的红外传感器捕捉到,触发翻板电机运动将钞票翻出。此方案中每个翻板电机必有前置红外对管,当钞票经过时引起信号强度的高低变化形成波形,对该波形的计数是翻板控制的主要依据。
清分机在运行过程中其走钞电机工作负荷在一定范围内动态波动(如进钞稠密度变化、通道阻力不均或电机自适应调速),造成走钞速度始终处在小幅波动状态中。因此,从进钞点到各翻板处的移动耗时是不稳定的,仅依靠时钟信息不足以达到准确控制翻板电机的要求,必须加配前置红外传感器辅助翻板电机精确工作。
以红外信号检测波形作为翻板机动的主要条件,就必然以信号高低变化的波形计数为主要依据。上层算法以计数值为主要参数,指示各翻板的运动方向。
见图2所示,控制系统主要是基于计数逻辑将各部件组合在一起,协同工作:以分帧计数为基本参数,算法给出该钞票的出口位置,各组红外信号匹配检测到的计数值,触发翻板向算法指定方向运动。
现有系统中存在几点可改进的地方:
1计数是基于逻辑层面的,因此当前控制机制在系统出现故障时缺乏足够的信息细节来复现故障现场状况,给后续的系统维护和问题分析造成一些不便。
2受限于每组红外传感器的数量(通常是1到2个),对钞票经过传感器的感知必然存在误差。见图3所示,较少的红外传感器个数决定了对钞票尖角的进入时刻是难以捕捉的,且传感器数量越少误差越大,反之成本越高。翻板机械上是由步进电机控制的排齿,如果不及时运动到位可能卡住钞票,甚至撕毁钞票。现方案中因存在较大误差,为了减少该风险则须提前电机工作的时间点,这造成可供算法做判断的计算时间缩短,也可能夹住上一张钞的尾部。如果能精确描述钞票在通道中运动的实时位置,从而提高控制精度,是可以改善这个不足的。
3模型中通道间各部件的关联主要是基于计数逻辑的,缺乏整体间的强力联系。比如第一个翻板和第二个翻板的计数不是统一的,因为部分钞票已从第一翻板走出去,根本不会在第二翻板红外形成波形。因此控制系统在各个组件上需要维护较多的局部数据,各数据间还有着千丝万缕的联系,分析时更需要交叉引用综合分析,通道越复杂则工作越繁杂。若能有统一的物理量来描述系统的运行过程,各组件间联系能建立在直接的数字上则大大提高分析工作的效率。此外,该清分机逻辑计数模型是比较抽象的,与实际机型的物理模型差距较大,缺乏可量化的数值指标,缺乏可记录的数值依据。比如两款物理布局不相同的三口清分机,虽共用相同的计数模型,可代码不一定能通用,因为模型并没有处理物理差异的细节。表现在实现代码上,就是实际机型的细节片段多,不同机型的可移植模块不足,增加了开发周期和研发成本。
发明内容
鉴于现有技术中存在的技术缺陷和技术弊端,本发明实施例提供克服上述问题或者至少部分地解决上述问题的一种清分机控制系统,具体方案如下:
一种清分机控制系统,所述系统包括脉冲量化模块,数据采集模块,数据处理模块,事件处理模块、机电控制模块、故障检测模块和过程记录模块:
所述脉冲量化模块,用于产生脉冲信号,并对脉冲信号进行计数,每一次脉冲信号被计数的同时,记录同一时刻的走钞码盘值;
所述数据采集模块,用于在每一个脉冲周期内采集纸币图像数据和清分机的主控数据,同时在采集的数据上附上脉冲的时间戳和对应的码盘值,形成数据元;
数据处理模块,用于对采集的纸币图像数据进行实时分帧处理,计算纸币图像数据的帧起始和帧结束;
所述事件处理模块,用于基于所述数据元以及分帧时的帧起始和帧结束,将钞票经过清分机通道的过程,处理成为一系列时间和空间上发生的事件;
所述机电控制模块,用于基于所述事件,对清分机的各电机进行控制;
所述故障检测模块,用于设定某些状态或上报故障;
所述过程记录模块,用于将各种事件二进制数据记录于内存循环数据池中。
进一步地,所述脉冲量化模块产生脉冲信号,并脉冲信号进行计数,每一次脉冲信号被计数的同时,记录同一时刻的走钞码盘值具体为:
对清分机硬件驱动进行编程,使之以固定周期产生脉冲信号,并对脉冲信号进行计数,所述脉冲信号作为控制系统在时间维度上的量化基准,每一次脉冲信号被计数的同时,记录同一时刻的走钞码盘值,所述走钞码盘值作为控制系统在空间维度上的量化基准。
进一步地,所述所述数据采集模块还用于,基于每一个脉冲周期的数据元形成若干数据元,通过若干数据元组织为一个足够覆盖清分机全通道运行数据的循环数组,称为数据元循环缓冲区。
进一步地,所述数据处理模块对采集的纸币图像数据进行实时分帧处理,计算纸币图像数据的帧起始和帧结束具体为:
采用SIMD汇编加速并行处理,在数微秒的时间里对帧起始(即钞票进入图像扫描点)和帧结束(钞票离开图像扫描点)进行精确判断;
分帧计算时对每一行图像扫描数据进行分组,舍弃两端无效像素后,按每64个像素字节为一组分为若干组,每一组取其中间8个像素样本进行算术计算,舍弃剩余间隙像素数据,以节省整体计算量;
对参与计算的每个像素,以当前样本值饱和减去该像素校准后的背景样本值,其差再饱和减去设定的亮度判定阈值:
正整数饱和减法不产生负溢出,因此,直接根据结果是否为0作为像素点“明”与“暗”的判断依据;一个独立分组的8个像素中有3个以上连续像素(连续性可过滤掉扫描行方向上的图像噪点干扰)为“明”时,该组像素属性被判定为明,否则被判定为暗;
像素组的明暗属性为帧起始和结束判定提供依据,在进行帧起始触发时,只要有一个组属于明,则这一行数据被认为是帧起始行;在进行帧结束触发时,当所有组都属于暗,则这一行数据被认为是帧结束行。
进一步地,所述事件处理模块基于所述数据元以及分帧时的帧起始和帧结束,将钞票经过清分机通道的过程,处理成为一系列时间和空间上发生的事件具体为:
帧起始时,分配CCID和帧结构体;分别在k0和k1距离后设定主控1和主控2的数据区间开始事件;分别在k2和k3距离后设定翻板1和翻板2的运动事件,并判断与上一帧结束点的距离是否足够翻板活动,不足则锁定k2和k3距离对应的两帧;
帧结束时,分别在k0和k1距离后设定设定主控1和主控2的数据区间结束事件,向上层算法提交图像数据;
所述主控1和主控2的数据区间开始事件为:分别将当前数据采集循环点的地址填入对应CCID的帧结构体中;
所述主控1和主控2的数据区间结束事件为:分别将当前数据采集循环点的地址填入对应CCID的帧结构体中,与起始事件的标记成为首尾一对,将该区间提交给上层算法;
翻板1运动事件为:按上层算法指定方向运动,若未指出则默认方向;
翻板2运动事件为:按上层算法指定方向运动,若未指出则默认方向;设定t0时间后的帧回收事件;
帧信息结构回收循环使用。
进一步地,对清分机的各电机进行控制包括走钞电机负载均衡控制、卧式进钞电机控制和各处翻板电机的控制。
进一步地,针对走钞电机负载均衡控制时,每经过一段固定时间片,就对该时间片内码盘值的变化量进行分析,判断当前走钞电机的动力负荷情况是否符合要求,进而对其动力进行增减微调,实现闭循环回馈机制。
进一步地,针对翻板电机的控制,在事件触发时引用帧信息中的运动方向参数,此参数有预设默认值,并可由上层算法给出新值覆盖,同时也会根据翻板当前物理状态判断是否有必要激活电机,即无需改变方向时忽略电机工作,以延长电机使用寿命。
进一步地,所述故障检测模块设定某些状态或上报故障具体为:在第一次触发事件后每隔数个码盘将自身重新插入事件队列,期间维护一个状态机作为事件参数,直到检测结束,通过一串针对特定红外对管的多个事件分别在钞票即将到达、正在通过和确认通过的多个状态上进行判断,通过采样的红外波形,设定某些状态或上报故障。
进一步地,所述二进制数据记录仅在人工调查时通过接口触发而编码为人类可读的文本序列,运行过程中时间消耗可忽略。
本发明具有以下有益效果:
本发明方案中,所有控制全部统一为标准事件化,具备易于扩展的标准处理模型,通过参数化物理量与实际机型直接关联,整个系统具备可量化数值的强关联,不但开发周期短且十分便于后期维护和故障分析,具体的有益效果如下:
1本专利旨在建立一套基于可量化事件机制的清分机控制系统模型,减少机型适配和维护的周期,降低研发成本。
2.通过物理量精确描述钞票在清分机通道中的运动状态,具备可复现现场的详细数据记录。
3.应用高精度图像分帧精确测量钞票在通道中的位置作为应用物理量的数值基准,同时也获得更好的翻板控制精度。
4.系统模型映射于真实机器的物理模型,实现标准组件的事件代码框架,并通过参数化物理尺寸等数据,很易于不同机型间移植。
附图说明
图1为本发明实施提供的清分机走钞通道布局示意图;
图2为本发明实施提供的当前清分机系统基于计数的控制模型示意图;
图3为本发明实施提供的红外对管个数限制而存在的钞票尖角判读失误的示意图;
图4为本发明实施提供的以事件处理为核心的控制模型主体示意图;
图5为本发明实施提供的清分机运行过程示意图;
图6为本发明实施提供的采集数据示意图;
图7为本发明实施提供的数据分组示意图;
图8为本发明实施提供的图像分帧处理示意图;
图9为本发明实施提供的一张钞票所经历的典型事件序列示意图;
图10为本发明实施提供的事件的触发示意图;
图11为本发明实施提供的长通道、多口机型里多张钞票共存的实际状况示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明为改良现有方案的控制模型,增强对现实机型的物理关系映射,准确描述钞票的运动,需要在模型中增加时间和空间的相关物理量。
以一个周期性脉冲信号为基准来对时间进行度量,通过对该脉冲信号的计数差获知时间的流逝,下文简称脉冲计数。
由于钞票在走钞通道中是单向直线运动,因此该模型中的空间可以使用一维的长度单位描述。清分机走钞码盘是走钞轮圆周上的一圈小孔在运动中通过光照射产生的脉冲波,脉冲计数和走钞轮旋转角度成正比,经过弧度计算转换后可获得走钞通道皮带运动的距离,下文以此来对模型中皮带上的钞票运动进行度量,简称码盘计数,通过码盘计数获取码盘值。
这一对物理量是所有部件共享的,单位和意义也是统一的,所以通过它们建立的部件间联系较为简单直观。比如进钞轮旋转一圈是T1个脉冲;图像扫描点和第一个翻板排齿的距离是W2个码盘;钞票#8和钞票#9的间隔是T3个脉冲时间以及W3个码盘距离,等等,在分析记录的数据时,也可以直观地看到码盘为W或时间为T时,各个部件各是什么情况,机器运行的动态过程一目了然,从而快速地评估系统或排除故障。
如前所述,脉冲数和码盘值的变化可以分别在时间和空间上将清分机运行的动态过程描述得很清楚,那么就可以将运行的动态过程通过这一对物理量分解成一系列时空事件。通过对这些事件的有效组织和处理,形成一个基于事件的清分机新框架。
事件化的框架将复杂的系统化整为零,分解为小片易于实现的函数。比如电机控制只需要填空式地完成特定电机的电气控制逻辑代码,再调整电机位置、转速等事件相关的物理量参数,事件框架自然会在恰当的时机,以恰当的参数调用这个处理函数精确调度电机。
基于上述分析,本方案将系统分为七个相互关联的子模块,分别为脉冲量化模块,数据采集模块,数据处理模块,事件处理模块、机电控制模块、故障检测模块和过程记录模块。
见图4所示,上层控制接口通过机电控制模块对系统运行进行操作,该模块负责与硬件驱动的交互包括初始化工作,数据处理模块对采集的图像数据进行分帧计算,触发一系列帧控制事件,事件处理模块是控制系统的核心,所有的事务处理都是事件,事件的触发由脉冲计数和码盘计数决定,电机启停控制、动力控制、数据标记、向上层发送数据、上报故障信息、记录调试信息等也都是基于事件的实现,下文将会详述。
所述脉冲量化模块,用于对硬件驱动进行编程,使之以固定周期(一般是数百微秒)产生脉冲信号,这个脉冲信号是控制系统在时间维度上的量化基准,每一次脉冲信号被计数的同时,同一时刻的走钞码盘值也被记录,作为控制系统在空间维度上的量化基准,码盘值通常只是作为钞票的尺寸度量信息,而在本方案中被提升为重要的控制信息,这是和其它方法一个很大的不同之处。
见图5所示,清分机运行过程可以被描述为时间和空间轴上的系列事件,而脉冲数和码盘值就分别是时间和空间上的物理量,通过这些可量化的物理关系,动态运行过程可转变为一系列精确的可控事件,从而将控制系统从基于计数的逻辑联系提升到精确的数字联系。
所述数据采集模块,用于在每一个脉冲周期采集图像和主控数据信息,同时附上脉冲的时间戳和码盘值,形成数据元,数据元是一个结构体,若干数据元组织为一个足够覆盖全通道运行数据的循环数组,称为数据元循环缓冲区。
见图6所示,各帧访问数据采用标记区间的方式,不需要数据复制。另外,脉冲数和码盘值作为关键值单调递增,适用于二分检索,在必须检索过去时空上的数据片段时效率很高。
所述数据处理模块,对采集的图像数据进行实时分帧计算,本方案以图像数据为基准,精确分张后作为控制上的数值基准。
分帧检测实时要求高,采用SIMD汇编加速并行处理,在数微秒的时间里对帧起始(钞票进入图像扫描点)和帧终止(钞票离开图像扫描点)进行精确判断。
见图7所示,分帧计算时对每一行图像扫描数据进行分组,舍弃两端无效像素后,按每64个像素字节为一组分为若干组,每一组取其中间8个像素样本进行算术计算,舍弃剩余间隙像素数据以节省整体计算量。
对参与计算的每个像素,以当前样本值饱和减去该像素校准后的背景样本值,其差再饱和减去设定的亮度判定阈值:
Saturate_Sub(Saturate_Sub(Sample,Background),Setting_Value)
正整数饱和减法不产生负溢出,因此直接根据结果是否为0作为像素点“明”与“暗”的判断依据,十分切合SIMD并行逻辑判断过程。
一个独立分组的8个像素中有3个以上连续像素(连续性可过滤掉扫描行方向上的图像噪点干扰)为“明”时,该组像素属性被判定为“明”。
见图8所示,像素组的明暗属性为帧起始和结束判定提供依据:在进行帧起始触发时,只要有一个组属于明,则这一行数据被认为是帧起始行;在进行帧终止触发时,当所有组都属于暗,则这一行数据被认为是帧结束行。
前述这些8点分组饱和算术计算、连续明暗像素逻辑计算均使用硬件指令加速,效率很高。采用此方法的图像分帧处理,速度满足后续一系列事件的实时处理要求,且图像的分帧精细度足够高,不但减少了提交给上层图像算法的无效数据计算量,也给后续的控制提供了精度支持。
只有具备如此精确的实时分帧条件,才可以描述钞票在通道中的物理信息细节,为事件驱动框架提供物理量的数值基础,给后续事件的触发提供准确信息,同时也提高了各级组件的控制精度。
所述事件处理模块,用于完成所有时间和空间事件的插入、处理和删除等维护工作。
图9示例了一张钞票经过清分机通道的过程,该过程被描述为一系列时间和空间上发生的事件,均由分帧时的帧起始和帧结束所设定。由于通道中个部件间的物理联系可以通过物理量来测定,那么从进入通道到从出口移出的过程肯定可以全部事件化。
当钞票经过图像扫描,形成数字化的图像帧,这里以帧在码盘这一空间轴上的移动代表钞票在物理通道中的前进过程,帧起始时被赋予唯一的编号CCID(从0开始单调递增的32位正整数)和一个帧信息结构体。这个帧信息结构存放于一个循环的结构体数组中,CCID便是对该结构体的唯一引用标识,是与帧有关事件的基本参数。
实现上事件的本质是处理此事件的回调函数以及触发的脉冲和码盘条件,它们封装于一个事件结构体之中,使用有序链表或排序二叉树形成一个时间脉冲事件队列和一个空间码盘事件队列。见图10所示,每一个脉冲周期的到来,事件处理模块依次检查两个队列,对满足条件的事件调用其回调函数。
每一个事件的处理函数都很简洁,通常只进行数据标记、硬件控制或插入其它事件,代码一般只有十来行,是满足实时处理要求的。仍然以图9为例,钞票移动的过程被事件化后表述为:
A)帧起始时,分配CCID和帧结构体;分别在k0和k1距离后设定主控1和主控2的数据区间开始标记事件;分别在k2和k3距离后设定翻板1和翻版2的运动事件,判断与上一帧结束点的距离是否足够翻板活动,不足则锁定这两帧;
B)帧结束时,分别在k0和k1距离后设定主控1和主控2的数据区间结束标记事件,向上层算法提交图像数据;
C)主控1和主控2的数据区间起始事件,分别将当前数据采集循环点的地址填入对应CCID的帧结构体中;
D)主控1和主控2的数据区间结束事件,分别将当前数据采集循环点的地址填入对应CCID的帧结构体中,与起始事件的标记成为首尾一对,将该区间提交给上层算法;
E)翻板1按上层算法指定方向运动,若未指出则默认方向;
F)翻板2按上层算法指定方向运动,若未指出则默认方向;设定t0时间后的帧回收事件;
G)帧信息结构回收循环使用。
开发人员只需要按物理模型设定一系列的可触发事件以及可配置的物理参数,再填空式的实现事件回调函数,而错综复杂的时空交错的处理过程则交给事件模块去完成,完全不需要关心。
通过图11的展示可以更加体会出清分机动态运行中“错综复杂”的状态,例中描述了一个长通道、多口机型里多张钞票共存的实际状况。若无一个化繁为简的标准事件化模型,这繁杂的多帧处理以及交错冗长的处理过程该用带锁多线程、状态机还是定时器?不太轻松。
而在时空事件模型下,开发者只需要关注通道上的物理量关系,单帧与重叠多帧的处理毫无区别,将复杂的时空穿插过程交给事件处理模块自动序列化。此外,多一个通道组件仅多一组事件处理代码去填空,复杂度上升非常有限。
其中,所述事件包括事件事件和空间事件;
时间事件主要用于电机控制,包括走钞电机负载均衡,卧式进钞电机控制,所有电机启停序列化延时保证等。
对走钞电机负载均衡具体为:每经过一段固定时间片,就对该时间片内码盘值的变化量进行分析,判断当前走钞电机的动力负荷情况是否符合要求,进而对其动力进行增减微调,实现闭循环回馈机制。
由于清分机电机数量众多,每次启停需要按照一定次序进行,通常走钞电机先行运转,达到自适应的转速要求后,进钞电机再启动;停机时,进钞电机先行停止,而后走钞电机才慢慢停运,这通过时间事件可以非常方便地完成。
空间事件主要应用于帧运动过程中,包括通道中各种信号的采集,各处翻板电机的控制和红外对管异常检测等。
对于各种信号采集,已在前述的主控数据采集例子中详细描述,由于数据仅需标记起始和结束位置,没有重复的复制过程,因此事件处理非常迅速。
对于红外对管异常检测,为提高效率和降低开销,在本方案中转为间歇性事件,在第一次触发后每隔数个码盘将自身重新插入队列,期间维护一个状态机作为事件参数,直到检测结束。这一串针对特定红外对管的多个事件分别在钞票即将到达、正在通过和确认通过的多个状态上进行判断,通过采样的红外波形,设定某些状态或上报故障。
对于翻板电机的控制,在事件触发时会引用帧信息中的运动方向参数,此参数有默认值,可由上层算法给出新值覆盖,同时也会根据翻板当前物理状态判断是否有必要激活电机,即无需改变方向时忽略电机工作,以延长电机使用寿命。
所述机电控制模块,主体是提供上层算法控制接口,满足清分机整机控制,细节上则是通过前述的事件机制完成,不再细述。
所述故障检测模块,改进于过去的红外对管工作方式,采用了低开销的间歇性事件完成,判断是否一个真实钞票(用于排除图像噪点走钞方向上连续干扰)、钞票是否未出现在指定位置、在指定位置是否已发生钞票堵塞堆积。初始化时根据红外对管的状态和用户设置,判断是否插入故障检验事件,这一过程是动态的,因此对于无必要的检测代码不会有任何开销。
所述过程记录模块,遍布于整个事件系统,直接将各种事件二进制数据记录于内存循环数据池中,二进制结构体记录仅在人工调查时通过接口触发而编码为人类可读的文本序列,运行过程中时间消耗可忽略,记录CCID、脉冲数、码盘值、事件枚举量和附加的几个参数,就可完整描述清分机的所有活动。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。