一种密集型电磁锁系统中检测打开多个电磁锁的方法与流程

文档序号:11804877阅读:799来源:国知局
一种密集型电磁锁系统中检测打开多个电磁锁的方法与流程

本发明属于密集型电磁锁系统技术领域,特别涉及一种一种密集型电磁锁系统中检测打开多个电磁锁的方法。



背景技术:

在应用密集型电磁锁的场合,如样品分发柜,通常包括矩阵分布的多个柜体单元,每个柜体单元对应设置一个电磁锁,由单片机控制开启,由于电磁锁运行在外界各种复杂环境的中,因为灰尘,潮湿,电气,钣金,短路等因素,会出现上位机给单片机下发一个开锁命令但是却同时打开2个或2个以上电磁锁的情况。因此当开锁以后,为了获知电磁锁开锁结果,常常需要对开锁后电磁锁的状态进行检测。由于单片机的RAM和FLASH容量太少,不能对系统的运行状态进行记录和分析,对于有监控的网点,不能确定多个格口打开发生的时间,运维人员常常需要花很长时间查看监控还原事件当时情形,运营成本太高。对于没有监控的网点,则对快递和货物丢失解决束手无策。再者,对于对事情发生的原因无法追溯,不利于研发人员对产品的改进和优化。



技术实现要素:

本发明的目的是克服现有电磁锁状态检测中成本高、资源利用率低的缺陷,提供了一种密集型电磁锁系统中检测打开多个电磁锁的方法,降低了连线的复杂程度,并很好地降低了系统成本。

本发明的技术方案是:

一种密集型电磁锁系统中检测打开多个电磁锁的方法,包括如下步骤:

步骤一、配置当前单片机所控制的呈矩阵排列的电磁锁的状态控制引脚;

步骤二、分别以行和列列出控制每一个电磁锁的状态控制引脚,并将保存在行数组A[m]和列数组B[n]中,其中,m为密集型电磁锁的行数,n为密集型电磁锁的列数;axy为第x行第y列电磁锁的标号;其中

A[m]={{a00,a01...a0n},…,{am0,am1...amn}};

B[n]={{a00,a10...am0},…,{a0n,a1n...amn}};

步骤三、当收到打开电磁锁axy的命令以后,执行打开动作;

步骤四、根据打开的电磁锁axy分别索引到行数组的A[m]中第x行对应的元素A[x],和列数组B[n]中第y列对应的元素B[y],读取A[x]和B[y]元素的所有电磁锁的状态,判断是否有2个以上电磁锁为打开状态。

优选的是,步骤四之后还包括:

步骤五、若步骤四存在打开2个格口的情况,则将异常记录于命令中,返回至上位机。

优选的是,所述单片机为stm32单片机。

优选的是,所述电磁锁设置有8行10列。

优选的是,所述电磁锁与二极管串联,并且所述电磁锁与对应串联的二极管呈矩阵分布。

本发明的有益效果体现在以下方面:本发明提供的密集型电磁锁系统中检测打开多个电磁锁的方法,降低了连线的复杂程度,并很好地降低了系统成本,快速可靠的检测出是否多个电磁锁被打开。本发明以日志的形式记录了操作结果,方便研发人员进行排查结果,持续进行跟踪,改进现有设计,提升用户体验。同时,方便运维人员进行排查监控,还原当时情形,找回丢失的快递和货物,降低了运营成本,同时也提高了运维人员维护的效率。

附图说明

图1为本发明所述密集型电磁锁状态检测系统电路图。

图2为本发明所述密集型电磁锁系统中检测打开多个电磁锁的方法流程图。

具体实施方式

下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。

本发明提供了一种密集型电磁锁系统中检测打开多个电磁锁的方法,如图1所示,密集型电磁锁状态检测系统包括单片机1、二极管2与电磁锁3。电磁锁3成矩阵排列,并且每一个电磁锁3与一个二极管2串联。本发明所采用的单片机1为stm32单片机。

8根横导线4和10根纵导线5呈密集型布局。在由横导线4、纵导线5、电磁锁3及二极管2构成的支路中,对应一个电磁锁3及对应一个二极管2处于横导线4与纵导线5的交叉处,即电磁锁3与对应的二极管2呈矩阵分布,与横导线4及纵导线5均有相连。

在每一横排,LOCK_STA1~LOCK_STA8,这8根横导线4的一端在与 直流电源正极相连后,再与单片机1的8个第一GPIO接口相连,经相应的第一GPIO接口进行控制,另外一端与一个8PIN,间距为 5.08mm 的接线器相连。

在每一纵排,LOCK_K_EN1~LOCK_K_EN10,这10根纵导线5的一端与直流电源负极相连后,再与单片机1的10个第二GPIO接口相连,经相应的第二GPIO接口进行控制,另外一端与一个10PIN,间距为5.08mm的接线器相连。

当要实现特定位置的电磁锁3的状态检测时,只需程序给该电磁锁3对应的横导线连接的第一GPIO接口提供一段时间的高电平,同时,程序给该电磁锁对应的纵导线5的连接的第二GPIO提供一段时间的高电平。如此该横连线4、纵导线5、电磁锁3和二极管2的电路构成一条导电支路,单片机1对电磁锁3的状态信号进行采集,之后,程序将该第一GPIO电平拉低,从而切断电源,再将该第而GPIO接口电平拉低,从而断开此通路,防止时间过长的电流将电磁锁烧坏。实现特定位置的电磁锁状态状态 的智能读取。

如图2所示,本发明提供的密集型电磁锁系统中检测打开多个电磁锁的方法具体包括如下步骤:

步骤一:配置当前网点的所有的stm32单片机所控制的电磁锁的GPIO脚,包括开锁控制,状态控制。

步骤二:分别以行和列列出控制每一个电磁锁状态的GPIO脚,并将保存在两个数组A[m]和B[n]中,其中,m为密集型电磁锁的行数,n为密集型电磁锁的列数。Axy为第x行第y列电磁锁的标号。

A[m]={{a00,a01...a0n} ,…,{am0,am1...amn}};

B[n]={{a00,a10...am0},…,{a0n,a1n...amn}}。

对于数组A[m],它的每一个元素是某一行的所有电磁锁的状态控制脚。

对于数组B[n],它的每一个元素是某一列的所有电磁锁的状态控制脚。

步骤三:当受到开特定电磁锁axy的命令以后,执行打开动作。

步骤四:根据打开的特定的锁axy分别索引到行数组的A[m]中第x行对应的元素A[x],和列数组的B[n]中第y列对应的元素B[y],读取A[x]和B[y]元素的所有电磁锁的状态,判断是否有2个以上电磁锁为打开状态。

本发明只检测了被开启的电磁所axy所在的行和所在的列的的所有电磁锁的状态,因为网点在打开特定电磁锁时,电磁锁的电源正极和负极的短路的可能性最大,即该电磁锁所在的行和所在的列的其他电磁所被勿开启的可能性最大。

步骤五:若步骤四存在打开2个格口的情况,则将异常记录于命令中,返回至上位机。若正常,则不记录,返回至上位机。

本发明只检测了被开启的电磁所axy所在的行和所在的列的的所有电磁锁的状态,因为网点在打开特定电磁锁时,电磁锁的电源正极和负极的短路的可能性最大,即该电磁锁所在的行和所在的列的其他电磁所被误开启的可能性最大。

本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1