BMA工具使用说明
- 什么是BMA、BMA有什么用
BMA全称为Bill Morphologic Analysis。即:纸币形态分析。
纸币形态分析工具主要分析纸币在分离、传输、收集过程中的形态,包括:
- 纸币斜度
- 纸币角度
- 纸币宽度
- 纸币间距
- 节点间距。
通过分析这些纸币形态,可以得到YHCM机芯在纸币传输控制方面的整体情况,通过统计数据以及明细数据的展示,可以对YHCM机芯的机械/装配/控制等方面给出一个概括的判断,可以促进机械/装配/控制上的改进,更进一步的对YHCM机芯进行各方面的优化,使机芯最终达到理想的水平。
要想使用BMA工具,必须先了解以上5种纸币形态。
一、什么是纸币斜度
纸币斜度是用来度量纸币经过走钞通道中的对传感器时,左右两个传感器触发的时间差。理想情况下,纸币经过通道中的对传感器时,左右两个传感器触发的时间差为0。但实际上因为纸币放置歪斜,分钞左右力度不均,走钞通道左右皮带摩擦力不均等情况,都可能导致纸币斜度不为0。以人面向设备做交易的位置座位参照的话,上部走钞通道中的对传感器,在人左手方向的传感器称为左传感器,在人右手方向的传感器称为右传感器。下部通道中的对传感器(主要是钞箱中才有的),左右传感器的定义与上部刚好相反。
以上部走钞通道为例,做存款交易时,纸币经过O部SC41(L)、SC42(R)时。假设纸币有倾斜,左边SC41先触发,触发时的系统时间为10000000ms,右边SC42后触发,触发的系统时间为10000002ms,那么左右两个传感器触发的时间差为10000000ms-10000002ms = -2ms。这个-2ms即为纸币斜度,设为T。纸币斜度也就是钞票经过对传感器时的时差。时差越大,纸币越歪斜。
(如下图示例,图片按纸币传输方向从下往上看。)
二、什么是纸币角度
纸币角度是用来度量纸币经过走钞通道中的对传感器时,纸币自身长边与对传感器之间的连线的夹角的度数。角度值能真实的反映出纸币倾斜的情况。
假设纸币角度为a。根据三角函数公式:则tan(a) = S1/S。
其中S1纸币长边与传感器SC42的距离(沿纸币运动方向)。S为对传感器SC41与SC42的距离。S是机芯在设计的时候传感器之间的物理距离,是已知的。S1是要通过纸币的传送速度和传输时间来计算的S1=V*T。速度是已知的,纸币控制系统在设计的时候就已经确定了纸币经过每个传感器的速度,为V。而纸币的传输时间为纸币触发SC41到SC42之间的时间差。也就是纸币斜度值的值,T。所以tan(a)=(V*T)/S,最终可以求出a的度数。此处示例得出的a为负角度,因为这个角是处在第四象限。纸币角度越大,纸币越歪斜。(如下图示例,图片按纸币传输方向从下往上看。)
三、什么是纸币宽度
这里的纸币宽度并不是指的纸币的实际宽度。比如100元人民币的宽度为77mm。而是指的同一张纸币经过传感器时,将传感器遮挡的时间。即同一张纸币进入传感器的时间T1,同一张纸币离开传感器的时间T2,T2-T1的值。是一个时间差。该数值和纸币经过传感器的速度相关,速度越大,该值越小,速度越小,该值越大。不同的传感器,纸币经过的速度是可能不同的。所以纸币宽度不是一个固定值。但在纸币经过速度相同的传感器下,测量出来的纸币宽度数值,应该是比较接近的。如果有明显的变大的情况,说明纸币经过该传感器时有卡顿现象,通过这一现象可以判断出纸币可能在通道中打滑,或者有阻挡,导致纸币在传感器上滞留时间过长(通道不畅通)。(如下图示例,图片按纸币传输方向从下往上看。)
四、什么是纸币间距
纸币间距是指的多张纸币在传输过程中,经过同一(对)传感器的当前纸币与前一张纸币的纸币间距。这里的纸币间距不是距离,而是时间。即前一张纸币离开该(对)传感器之后,经过多长时间后当前纸币进入该(对)传感器。假设第一张纸币离开SC41、SC42的时间为T1,第二张纸币进入SC41、SC42的时间为T2,则第二张纸币(当前纸币)与第一张纸币(前一张纸币)的纸币间距为T2-T1。(如下图示例,图片按纸币传输方向从下往上看。纸币间距和分钞密切相关。接客部以及钞箱的分钞没有问题的话,纸币间距是一个比较稳定的值(针对不同的走钞通道,因为通道速度不一样,其值不一样)。如果纸币间距不稳定,说明分钞可能有问题。当然,走钞通道打滑,受阻,等情况,也会导致受阻纸币与它前面纸币的间距拉大,以及与它后面的纸币的间距变小。
五、什么是节点间距
节点就是(对)传感器的位置。位置与位置之间是有距离的,同一张纸币经过两个位置时,是需要耗时的,这个耗时就是节点间距。节点编号,是我们自己定义的,我们一共定义了19个节点。覆盖到了所有的纸币传输路径。具体的节点定义请看下图:
O部传输节点(SC41、SC42)与暂存交接节点(SC31、SC32)之间的节点间距,可以通过纸币触发这两对传感器的时间差得到。假设同一张纸币进入O部传输节点(SC41、SC42)的时间为T1,经过暂存交接节点(SC31、SC32)的时间为T2,则O部传输节点与暂存交接节点之间的节点间距为T2-T1。(纸币在当前节点所展示的节点间距是指的该纸币经过当前节点与上一节点的节点间距)一般来说,节点间距变大的话,说明纸币在两个节点之间的传输时间变大,也说明了纸币在传输过程中速度减小了,也就是说走钞通道有打滑或者受阻的情况。
- BMA分析的数据来源、依据
BMA分析的数据来源与主控日志,即存放于d:\csap\device\log\YYYYMMDD\YYYYMMDD_hh目录下的McLog_YYYYMMDD_[hh-mm-ss].log文件。其中YYYYMMDD表示年月日,比如20150528,hh表示时间,比如18表示下午6点,mm表示分,比如48,表示48分,ss表示秒,比如12,表示12秒。一个完整的主控日志文件路径如下:D:\csap\device\log\20150528\20150528_18\McLog_20150528_[18-48-12].log。
BMA是通过获取关键字来提取主控日志中所需要的内容的。具体如下:
============第2064次路径配置开始(2015-5-5_10-2-6_143)===============
============第2064次路径控制结束(2015-5-5_10-2-14_60)===============
只提【取路径配置开始】与【路径控制结束】关键字中的内容,包含关键字所在内容。按行提取。
关键字中提取的内容,主要是纸币形态数据,如下:
输出纸币信息: N节点编号; S斜度; A角度; W宽度; BD纸币间距; ND节点间距
纸币[1 ]:
N[14]-S[0 ]-A[0.000]-W[99 ]-BD[0 ]-ND[0 ]
N[13]-S[0 ]-A[0.000]-W[84 ]-BD[0 ]-ND[45 ]
N[8 ]-S[0 ]-A[0.000]-W[63 ]-BD[0 ]-ND[434]
N[7 ]-S[0 ]-A[0.000]-W[64 ]-BD[0 ]-ND[40 ]
N[3 ]-S[-1]-A[-1.976]-W[64 ]-BD[0 ]-ND[311]
N[5 ]-S[0 ]-A[0.000]-W[64 ]-BD[0 ]-ND[206]
纸币[2 ]:
N[14]-S[1 ]-A[0.686]-W[94 ]-BD[41 ]-ND[0 ]
N[13]-S[0 ]-A[0.000]-W[85 ]-BD[53 ]-ND[42 ]
N[8 ]-S[0 ]-A[0.000]-W[64 ]-BD[75 ]-ND[435]
N[7 ]-S[0 ]-A[0.000]-W[65 ]-BD[73 ]-ND[39 ]
N[3 ]-S[-1]-A[-1.976]-W[63 ]-BD[73 ]-ND[312]
N[5 ]-S[0 ]-A[0.000]-W[65 ]-BD[74 ]-ND[206]
……………………
纸币形态数据中包含了纸币编号:1,2,3……,纸币经过的节点N:14,13,8,7……,纸币斜度S:-1,0,0……,纸币角度A:-0.686,0.000,-1.976……,纸币宽度W:94,85,64……,纸币间距BD:41,53,75……,节点间距ND:0,42,435,……。
BMA并不质疑从主控日志中提取到的纸币形态数据是否正确,也不做任何的计算,只原封不动的提取,并做统计分析、绘图、展现等操作。即:分析数据与原始数据保持绝对一致性。
- BMA分析工具的分析方法
BMA分析工具目前有8种分析方法。
- >按节点/方向分析。适合大量数据的统计分析、评价。(基于主控日志,纯节点-方向统计分析)。
- >按交易/路径分析。适合单笔交易的细节分析、评价。(基于主控日志,一个路径节点明细分析)。
- >按交易/路径-节点/方向分析。适合大量数据的统计分析、评价。(基于主控日志,一类路径节点统计分析)
- >检索所有异常交易。(基于主控日志)。
- >检索所有异常交易。(基于驱动日志)。
- >统计交易信息。(基于主控日志)。
- >统计交易交易。(基于驱动日志)。
- >导出HTML报表。
- 按节点/方向分析
一共有19个可分析的节点,其中有一些节点经过的纸币只有一个方向,比如节点1、2、5、6、19,因此这5个节点一共只有5个分析点。而其他节点的纸币经过方向有2个,所以一共有14*2=28个分析点。19个节点一共可以形成33个分析点。
纸币经过节点的方向有A方向和B方向。A方向的定义,存款时纸币经过验钞器的方向为A方向。B方向的定义,存入钞箱时纸币经过验钞器的方向。
> 存款时,纸币经过节点1、2、3、4,5(存款拒钞)是节点A方向。
> 存入钞箱时(包括回收),纸币经过的节点4、6(回收R)、3、7、8、9、10、11、12、13、14、15、16、17、18、19(回收F)是节点B方向。
> 存款取消时,纸币经过节点4,5。4节点B方向,5节点A方向。
> 取款时,纸币经过节点9、10、11、12、13、14、15、16、(17、18)(E钞箱可取款时)、8、7、3、5、4(取款废钞)是节点A方向。
有些节点的传感器只有一个,而不是一对,比如节点2、6、7、8、9、11、13、15、17、19。因此这些节点对纸币的斜度以及角度是无法测量的。
针对不同的节点,不同的方向进行纸币的形态分析,当数据量比较大的时候,统计分析的结果就有规律可查。把统计分析的结果使用一定的方式展示,就能比较直观的看出每个节点每个方向经过的所有纸币的状况,是否有歪斜,是否有纸币宽度过大,纸币间距过大/过小,节点间距过大等情况。
大数据分析的结果,在同一节点,同一方向进行纸币形态数据观察时,纸币斜度、纸币角度、纸币宽度、纸币间距应该是要集中在某一个区域的,是收敛的,而不是散布在全区域内,发散的。如果将统计数据绘制成曲线图,这个曲线图应该是像钟形的。也就是要服从正态分布(高斯分布)。如下图,如果用纸币斜度来做说描述,也就是说纸币斜度为0的纸币要是最多的,图像最高点对应的横坐标要为0。图像在横坐标上分布的范围要尽可能的窄,越窄越好。纵坐标上的最高点越高越好。曲线左右两侧越陡越好。
该分析方式,能比较好的分析源头节点是否有问题,比如存款时的1节点(A方向),或者取款时的10、12、14、16、18节点(A方向)。对于中间节点,其分析的结果意义不是太大,因为中间节点即便有问题,也不一定是该节点自身的问题,有可能是源头节点的问题导致的。所以对于中间节点,如果分析是有问题的话,那不一定有问题,如果分析是没问题的话,那一定没问题。
- 按交易/路径分析
该分析方式,是通过选取一个路径进行分析。比如存款路径,存款取消路径,存入钞箱路径,回收路径,取款路径等,是选定的特定的一笔交易的路径。通过二维表的方式,展现纸币-节点两个维度上的纸币形态。是对纸币传输过程的形态回溯。针对卡钞等路径控制异常情况进行特定分析会比较直观有效。
- 按交易/路径-节点/方向分析
该分析方式,是综合了方式一和方式二。既考虑到了节点-方向的统计分析,又考虑到了路径的分析。因为纯节点-方向的统计分析,是不好区分一个节点的好坏到底是怎么产生的,是什么路径产生的。比如O部传输节点的A方向分析,其纸币既有可能来自存款路径,也有可能来自取款路径。如果存款路径源节点有问题,则O部节点也可能会有问题。但是O部节点有问题不能推出取款路径源节点有问题。所以在分析O部节点的时候,如果能区分路径来分析的话,则能更加清楚的分析出问题的根源在哪里。所以按一类路径来统计该路径上的各个节点的状态,能看出路径的状况。以及该路径上纸币是如何一步一步发生状态变化的。
- 检索所有异常交易(基于主控日志)
该分析方式主要是列出交易过程中(走钞)主控出现的所有异常(不包含驱动异常)。主要方便快速查看异常,找出异常的时间点,便于进一步的深入分析。
五、检索所有异常交易(基于驱动日志)
该分析方式主要是列出交易过程中(走钞)驱动出现的所有异常(包含了主控异常)。主要方便快速查看异常,找出异常的时间点,便于进一步的深入分析。之所以区分驱动异常和主控异常,是因为从主控日志中能看到更多的异常的信息,而从驱动中则能更好的区分异常所属的交易类型。(驱动能区分交易类型,而主控不能区分,比如存入钞箱/存款和回收)。从驱动中检索出的异常,能更好的与实际交易情况匹配。对于异常交易的统计的正确性比基于主控要高一些。
- 统计交易信息(基于主控日志)
基于主控日志统计交易信息,主要包含以下几个方面的信息:
- 交易总数。存款,取款,收纳,回收,四类交易的总数。包括笔数和张数。
- 存款交易笔数/张数。
- 取款交易笔数/张数。
- 收纳交易笔数/张数。
- 回收交易笔数/张数。
- 存款拒钞数(率)/取款拒钞数(率)/收纳废钞数(率)。
- 存款拒钞原因/取款拒钞原因/收纳废钞原因。
- 错误码次数统计。
- 统计交易信息(基于驱动日志)(技术支持用)
基于驱动日志统计交易信息,主要包含一下几个方面的信息:
- 交易总数。存款+取款交易的总数。包括笔数和张数。
- 存款交易笔数/张数/拒钞数(率)。
- 取款交易笔数/张数/拒钞数(率)。
- 收纳交易笔数/张数/废钞数(率)。
- 回收交易笔数/张数。回收原因及分别张数。
- 卡钞次数。包括存款/收纳/取款/存款取消/回收的卡钞次数。对于回收卡钞,区分真回收卡钞和前导卡钞。
- 卡钞率。计算存款/收纳/取款/存款取消以及真回收卡钞的卡钞率。不计算假回收卡钞以及初始化卡钞的卡钞率。
- 错误码次数统计,出错时间统计。
- 导出HTML报表(技术支持用)
主要用来导出交易信息的报表。第6、7条的数据做一个格式整理。当前的报表数据还很少,后续再考虑完善。
- 查看钞箱信息变化
基于BRM驱动日志分析钞箱信息的变化,主要包括:
- 钞箱的状态变化。
- 钞箱的关闭变化。
- 钞箱的计数变化。
- 钞箱的序列号变化。
通过追踪钞箱的信息变化,可以得到一些有用的信息,如果钞箱什么时候被更换过,大概频率是多少,钞箱是否存在频繁关闭的情况,判定是否有分钞不良的情况。什么时候清机加钞的。等等。都可以得到。
- 查看CABC信息
基于CAB驱动日志分析CAB的端口状态,主要包括:
1.220V/24V掉电异常。
- 命令执行错误(回应为非0错误码)。
- 保险柜门的开关。
- 面罩的开关。
- 钥匙的开关。
- 上下箱体开关。
- 传感器异常。
- 外钞门半开。
- 关门手检知。
一般查看CABC信息的目的是为了判断是否有某个端口出现了异常,是否一直在不停的跳变。或者看是否出现220V/24V掉电等异常事件发生。
- 分析CDU日志
基于验钞器通讯数据日志进行解析,可以得到验钞器的使用情况,比如:
- 经过验钞器的纸币总张数。各类别交易张数,占比等。
- 各类别交易中循环/不循环/疑惑/伪钞/不明钞等类型的钞票张数,占比等。
- 各类别交易的识别率。
- 经过验钞器的纸币的倾斜度统计。
- 验钞器识别纸币异常的原因。
- 筛选出指定张数的连续拒钞信息。
- 筛选指定过钞角度的纸币信息。
- 筛选特定冠字号纸币。
- 筛选重张纸币信息。
- 分析存款挖空率
目前没什么太大的用途。
- 分析传感器日志
目前还没有开发完成。
基于传感器日志,可以形成纸币传输的流水线图。一般用于分析传感器是否存在异常跳变,是否存在系统实时性问题。以及用矩阵的方式展示出每个传感器上经过纸币的跳变信息,从最原始的数据上进行过钞分析。数据量比较大,看起来有点复杂。
- 统计分离不良
基于BRM主控日志,分析各分离部是否有分离不良的情况。主要用于判定接客/钞箱是否有分离问题。可以展示总的分离次数、分离不良次数,分离不良占比。各类型交易分离不良次数,分离不良占比等。用于压力测试数据的统计,对分离部的分离效果有个整体的判定。
四、如何使用BMA
BMA分析工具是一个控制台程序,以文字的方式显示操作菜单。双击BMA.exe程序图标后,会弹出控制台窗口,并有文字提示。如下图:
第一步会提示输入要分析的文件路径。或者按回车直接使用默认路径分析。默认路径为d:\csap\device\log\目录。一般建议将要分析的文件夹/压缩包直接拖进去。如果使用默认路径分析的话,可能文件太多,要分析很久。
如下,我将桌面上的一个目录拖进去了。
按回车确认文件路径。开始解析文件。
首先会对要分析的文件进行解压操作(如果拖进去的文件是一个压缩包或者文件夹中有压缩包)。如果文件之前已经是解压过的,则会提示已经解压,无需解压。
解压完毕后,开始解析主控日志文件和驱动日志文件。解析完毕后出现分析菜单并出现当前解析的日志对应的主控/验钞器固件版本。
以上8个分析菜单对应于第三节所说的8种分析方式。
一、按节点/方向分析的使用
选择菜单1,回车,出现节点-方向分析子菜单。
选择1,分析接客部的分离性能分析。也就是节点1的A方向分析。
分析结果如下:
一共是5项分析因子的分析结果,纸币斜度,纸币角度,纸币宽度,纸币间距,节点间距。
每项分析结果都有4个指标。1、列数。2、纸币形态(斜度,角度……)。3.纸币张数。4.纸币百分比例。以及XX均值。
其中列数越多,说明数据越不收敛,是个不好的现象。列数应该越少越好。
纸币形态(斜度,角度……),从日志文件中提取的原始数据。该数据需要与参考值进行比较。越靠近参考值,越好。目前参考数据还没有获取到。也许需要通过后期的不断分析累积来得出参考样本。比如把一些使用的比较好的设备的数据抓取出来,作为参考样本。
纸币张数,对于与某一纸币形态的原始数据的纸币张数。比如斜度为-1的纸币张数。是BMA分析工具统计出的数据。
百分比例,是各种纸币形态数据的张数与总张数的占比。比如斜度为-1的纸币张数为100张,而纸币总张数为10000张,则比例为1%。
从上图可以看出斜度为0的纸币的比例为28.58%,-1的为22.62%,1的为24.89%。左右分布还算均匀。接客部纸币分离的效果还可以但不是最佳的,斜度为0的比例和-1,1的差不多。以下是斜度的正态分布图:
- 按交易/路径分析的使用
选择菜单2,回车,出现交易路径分析子菜单。
选择子菜单1,存款交易路径分析。
出现提示,一共有574次存款交易路径可供分析。要选择哪一次交易路径进行分析。可以选择最后一笔,输入574,回车。
得到分析结果。从纸币1到纸币35,每张纸币一行记录。每行记录都是4列(每列用 |分隔)。
比如:
纸币001 [8][3][3][2][R4E8960568] 1: 2/ 1.37/106/ 0/ 0 | 2: 78/ 0/ 86 | 3: 1/ 1.98/ 62/ 0/275 | 4: 0/ 0.00/ 61/ 0/158 |
纸币001 表示第一张纸币。
[8][3][3][2][R4E8960568]表示:
[8]:面值信息(0--无面值 1--10元 2--20元 4--50元 8--100元 15--所有面值)
[3]:验钞结果种类(0--不明钞 1--假钞 2--疑惑钞 3--可循环钞 4--不可循环钞)
[3]:纸币国别(0--未知 1--美元 3--人民币 4--台币 5--欧元)
[2]:纸币版本(0--未知 1--1999版 2--2005版 3--99版或05版)
[R4E8960568]:纸币冠字号信息
1: 2/ 1.37/106/ 0/ 0 :
1表示节点1,2表示斜度2,1.37表示角度1.37,106表示纸币宽度106,0表示纸币间距,0表示节点间距。
2: 78/ 0/ 86
2表示节点2,78表示纸币宽度78,0表示纸币间距,86表示节点间距。
三、按交易/路径-节点/方向分析的使用
选择菜单3,回车,出现按交易路径-节点方向分析子菜单。
选择子菜单1,查看所有存款交易路径-节点方向的分析情况。
一共是574次存款交易路径。
先分析第一个节点,也就是节点1。按回车继续分析第二个节点,节点2。
继续回车,分析第三个节点,节点3。
回车继续,节点4。
通过按路径-节点分析,可以得出该路径上各个节点的统计数据,加以比较,可以得出纸币的形态变化。提供参考。
- 检索所有异常交易(基于主控日志)。
选择菜单4,回车,直接得到第一笔异常交易信息。
一共是5笔卡钞交易。按回车可以依次看到各笔卡钞的详细情况。
- 检索所有异常交易(基于驱动日志)。
选择菜单5,回车,直接得到所有异常交易信息,如下。
- 统计交易信息(基于主控日志)。
选择菜单6,回车,直接得到统计交易信息,如下。
- 统计交易信息(基于驱动日志)。
选择菜单7,回车,直接得到统计交易信息,如下。
- 导出HTML报表
选择菜单8,回车,直接报表,如下。
报表文件存放在之前拖入的文件夹或者压缩包解压后的同名目录下。也可参考界面提示的路径找到该报表文件。
- 查看钞箱信息变化
选择菜单9,回车,直接打印出钞箱信息的变化,如下:
A、查看CABC信息
选择菜单a,按回车。根据提示,可以输入想查看的日志的日期进行查看。或者输入error查看异常信息。
B、分析CDU日志
选择菜单b,按回车,得到整体统计信息。选择不同子菜单,可以查看具体的信息。
选择子菜单1,查看连续拒钞信息。
选择子菜单2,查看过钞角度异常纸币信息。
选择子菜单3,查看指定冠字号纸币的信息,以及前后2张纸币信息。
选择子菜单4,查看纸币重张信息。冠字号后面带有+的表示为可疑重张纸币。
C、分析存款挖空率
目前没什么太大的用途。
D、分析传感器日志
选择菜单d,按回车,开始进行分析。并打印出矩阵数据。目前还没有子菜单选择。还未开发完成。
E、统计分离不良
选择菜单e,回车。打印出分离不良统计信息。按回车,再查看具体每一笔分离不良交易的信息。