本申请涉及工业视觉技术领域,尤其涉及一种工业图像处理软件的流程图错误自检方法及装置。
背景技术:
使用可视化流程图建模的项目开发软件visionassembly使用c++语言开发,广泛应用于工业视觉图像处理领域。该软件中的流程图建模数据目前没有错误自检机制,且在使用中存在一定的损坏几率。
该软件中的流程图损坏一般是因为某元素上方连接线唯一id(previd)或某元素下方连接线唯一id(nextid)的信息有误,现有技术中只有出现大量的用户数据损坏或者生产异常,用户通常才能意识到可能是该软件中的流程图建模数据出现了异常,还需要进一步查验整个流程,才能确认出现异常的具体环节。当出现损坏时,用户一般的操作是删除损坏的流程,重新手动添加。
现有技术中只要不出现大量的用户数据损坏或者生产异常,用户都无法察觉到流程图出现损坏的情况,不能及时发现流程图异常。而且目前一旦出现大量的用户数据损坏或者生产异常,查验整个流程图非常浪费用户时间,人工手动检查流程图异常的过程中也容易出现纰漏,一旦出现大量的用户数据损坏人工手动添加也非常困难,使用起来十分不便,也会降低用户对该软件的使用评价。
技术实现要素:
本申请提供了一种工业图像处理软件的流程图错误自检方法及装置,以解决现有技术中的工业图像处理软件不能及时发现流程图异常,人工手动检查流程图异常,浪费用户时间也十分不便的问题。
本申请采用的技术方案如下:
一种工业图像处理软件的流程图错误自检方法,包括以下步骤:
从流程图的起始节点开始,依次查找流程图中某元素下方连接线的唯一id即nextid,直到所述流程图的终止节点结束,得到下行链表,所述下行链表是指从所述起始节点到所述终止节点的路径;
从所述终止节点开始,依次查找流程图中该元素上方连接线唯一id即previd,直到所述起始节点结束,得到与所述下行链表相对应的上行链表,所述上行链表是指从所述终止节点到所述起始节点的路径;
检测所述下行链表和所述上行链表的逆序链表结构;
若所述下行链表和所述上行链表的的逆序链表结构与相应反向链表结构不同,则向用户发出预警信号。
优选地,所述检测所述下行链表和所述上行链表的逆序链表结构,之前包括:
检测所述下行链表和所述上行链表结构的完整程度;
若所述下行链表或所述上行链表结构不完整,则向用户发出预警信号。
优选地,所述检测所述下行链表和所述上行链表结构的完整程度,之后还包括:
若结构完整的所述下行链表或所述上行链表中出现环,则向用户发出预警信号。
优选地,所述检测所述下行链表和所述上行链表的逆序链表结构,之前还包括:
检测结构完整的所述下行链表和所述上行链表的长度;
若结构完整的所述下行链表或所述上行链表的长度不相等,则向用户发出预警信号;
若结构完整的所述下行链表和所述上行链表的长度相等,则检测结构完整且长度相等的所述下行链表和所述上行链表逆序链表结构。
优选地,所述检测所述下行链表和所述上行链表的逆序链表结构,之后还包括:
若经过检测所述下行链表和所述上行链表同时满足结构完整、未出现环、长度相等并且逆序链表结构与相应反向链表结构相同,则判定通过错误自检,结束本次检测。
优选地,所述从流程图的起始节点开始,依次查找流程图中某元素下方连接线的唯一id即nextid,直到所述流程图的终止节点结束,得到下行链表,还包括:
遇到容器开头存在多个nextid的情况,按照位置左边优先的原则从流程图起始节点开始依次向下查找流程图中所有元素的nextid,直到终止节点结束;
从起始节点到终止节点的每条路径视为一条下行链表,得到若干条所述下行链表并保存。
优选地,所述从所述终止节点开始,依次查找流程图中该元素上方连接线唯一id即previd,直到所述起始节点结束,得到与所述下行链表相对应的上行链表,还包括:
遇到容器结尾也存在多个previd的情况,按照位置左边优先的原则从所述终止节点开始依次向上查找流程图中所有元素的previd,直到所述起始节点结束;
从终止节点到起始节点的每条路径视为一条上行链表,得到若干条与所述下行链表相对应的上行链表并保存。
一种工业图像处理软件的流程图错误自检装置,包括:
下行链表获取模块,用于从流程图的起始节点开始,依次查找流程图中某元素下方连接线的唯一id即nextid,直到所述流程图的终止节点结束,得到下行链表,所述下行链表是指从所述起始节点到所述终止节点的路径;
上行链表获取模块,用于从所述终止节点开始,依次查找流程图中该元素上方连接线唯一id即previd,直到所述起始节点结束,得到与所述下行链表相对应的上行链表,所述上行链表是指从所述终止节点到所述起始节点的路径;
逆序结构检测模块,用于检测所述下行链表和所述上行链表的逆序链表结构;
逆序结构异常预警模块,用于若所述下行链表和所述上行链表的的逆序链表结构与相应反向链表结构不同,则向用户发出预警信号。
优选地,还包括结构完整检测模块、结构不完整预警模块、环预警模块、长度检测模块、长度异常预警模块;
所述结构完整检测模块,用于检测所述下行链表和所述上行链表结构的完整程度;
所述结构不完整预警模块,用于若所述下行链表或所述上行链表结构不完整,则向用户发出预警信号;
所述环预警模块,用于若结构完整的所述下行链表或所述上行链表中出现环,则向用户发出预警信号;
所述长度检测模块,用于检测结构完整的所述下行链表和所述上行链表的长度;
所述长度异常预警模块,用于若结构完整的所述下行链表或所述上行链表的长度不相等,则向用户发出预警信号;
所述逆序结构检测模块,用于若结构完整的所述下行链表和所述上行链表的长度相等,则检测结构完整且长度相等的所述下行链表和所述上行链表逆序链表结构。
优选地,还包括结束检测模块;
所述结束检测模块,用于若经过检测所述下行链表和所述上行链表同时满足结构完整、未出现环、长度相等并且逆序链表结构与相应反向链表结构相同,则判定通过错误自检,结束本次检测。
采用本申请的技术方案的有益效果如下:
本申请所述一种工业图像处理软件的流程图错误自检方法能够实现自动对流程图中数据进行检测,可以及时检测出流程图中的异常并及时预警,防止用户数据损坏过多或生产时出现异常,精准度和效率均优于人工手动检查流程图,不容易出现纰漏和误报,使用简便。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种工业图像处理软件的流程图错误自检方法流程图;
图2为本申请一种工业图像处理软件的流程图错误自检方法中获取下行链表和相应上行链表的结构示意图;
图3为本申请一种工业图像处理软件的流程图错误自检方法中链表结构完整检测出现环的结构示意图;
图4为本申请一种工业图像处理软件的流程图错误自检方法中链表结构不完整的结构示意图;
图5为本申请一种工业图像处理软件的流程图错误自检方法中链表长度不一致的结构示意图;
图6为本申请一种工业图像处理软件的流程图错误自检方法中逆序链表结构与相应反向链表结构不同时的结构示意图。
具体实施方式
参见图1,为本申请一种工业图像处理软件的流程图错误自检方法流程图。
本申请提供的一种工业图像处理软件的流程图错误自检方法,包括以下步骤:
如图2所示,从流程图的起始节点开始,依次查找流程图中某元素下方连接线的唯一id即nextid,直到所述流程图的终止节点结束,得到下行链表,所述下行链表是指从所述起始节点到所述终止节点的路径;
从所述终止节点开始,依次查找流程图中该元素上方连接线唯一id即previd,直到所述起始节点结束,得到与所述下行链表相对应的上行链表,所述上行链表是指从所述终止节点到所述起始节点的路径;
检测所述下行链表和所述上行链表的逆序链表结构;
如图6所示,若所述下行链表和所述上行链表的的逆序链表结构与相应反向链表结构不同,即nextid跳过了一些元素,previd也跳过了一些元素,则向用户发出预警信号。
所述检测所述下行链表和所述上行链表的逆序链表结构,之前包括:
检测所述下行链表和所述上行链表结构的完整程度;
如图4所示,若所述下行链表或所述上行链表结构不完整,即某个元素的nextid指向了空节点或不存在的节点,则向用户发出预警信号。
所述检测所述下行链表和所述上行链表结构的完整程度,之后还包括:
如图3所示,若结构完整的所述下行链表或所述上行链表中出现环,即某个元素的nextid指向了自己的前向元素,则向用户发出预警信号。
所述检测所述下行链表和所述上行链表的逆序链表结构,之前还包括:
检测结构完整的所述下行链表和所述上行链表的长度;
如图5所示,若结构完整的所述下行链表或所述上行链表的长度不相等,即某个nextid或previd跳过了应有节点指向了后面的元素,则向用户发出预警信号;
若结构完整的所述下行链表和所述上行链表的长度相等,则检测结构完整且长度相等的所述下行链表和所述上行链表逆序链表结构。
所述检测所述下行链表和所述上行链表的逆序链表结构,之后还包括:
若经过检测所述下行链表和所述上行链表同时满足结构完整、未出现环、长度相等并且逆序链表结构与相应反向链表结构相同,则判定通过错误自检,结束本次检测。
所述从流程图的起始节点开始,依次查找流程图中某元素下方连接线的唯一id即nextid,直到所述流程图的终止节点结束,得到下行链表,还包括:
遇到容器开头存在多个nextid的情况,按照位置左边优先的原则从流程图起始节点开始依次向下查找流程图中所有元素的nextid,直到终止节点结束;
从起始节点到终止节点的每条路径视为一条下行链表,得到若干条所述下行链表并保存。
所述从所述终止节点开始,依次查找流程图中该元素上方连接线唯一id即previd,直到所述起始节点结束,得到与所述下行链表相对应的上行链表,还包括:
遇到容器结尾也存在多个previd的情况,按照位置左边优先的原则从所述终止节点开始依次向上查找流程图中所有元素的previd,直到所述起始节点结束;
从终止节点到起始节点的每条路径视为一条上行链表,得到若干条与所述下行链表相对应的上行链表并保存。
如图2中所示,流程图没有损坏的情况下,下行链表step1和与之相应的上行链表step2均结构完整且长度相等,将step1做逆序处理后会得到一模一样的step2,将step2做逆序处理后也能得到一模一样的step1。
当存在多条下行链表和与之相对应的上行链表时,所述工业图像处理软件的流程图错误自检方法包括以下步骤:
检测所有所述下行链表和与之相对应的所述上行链表结构的完整程度;
若出现下行链表和与之相对应的上行链表的结构不完整或者出现环,则判定为未通过错误自检,要向用户发出预警信号;
继续检测结构完整且未出现环的下行链表和与之相对应的上行链表的长度;
若出现所述下行链表和与之相对应的上行链表的长度不相等,判定为未通过错误自检,向用户发出预警信号;
检测结构完整、未出现环且长度相等的下行链表和与之相对应的上行链表的逆序链表结构;
若结构完整、未出现环且长度相等的下行链表和与之相对应的上行链表的逆序链表结构,与相应反向链表结构不同,判定为未通过错误自检,向用户发出预警信号;
或者若所述下行链表和所述上行链表同时满足结构完整、未出现环、长度相等并且逆序链表结构与相应反向链表结构相同,则判定通过错误自检,结束本次检测。
一种工业图像处理软件的流程图错误自检装置,包括:
下行链表获取模块,用于从流程图的起始节点开始,依次查找流程图中某元素下方连接线的唯一id即nextid,直到所述流程图的终止节点结束,得到下行链表,所述下行链表是指从所述起始节点到所述终止节点的路径;
上行链表获取模块,用于从所述终止节点开始,依次查找流程图中该元素上方连接线唯一id即previd,直到所述起始节点结束,得到与所述下行链表相对应的上行链表,所述上行链表是指从所述终止节点到所述起始节点的路径;
逆序结构检测模块,用于检测所述下行链表和所述上行链表的逆序链表结构;
逆序结构异常预警模块,用于若所述下行链表和所述上行链表的的逆序链表结构与相应反向链表结构不同,则向用户发出预警信号。
还包括结构完整检测模块、结构不完整预警模块、环预警模块、长度检测模块、长度异常预警模块;
所述结构完整检测模块,用于检测所述下行链表和所述上行链表结构的完整程度;
所述结构不完整预警模块,用于若所述下行链表或所述上行链表结构不完整,则向用户发出预警信号;
所述环预警模块,用于若结构完整的所述下行链表或所述上行链表中出现环,则向用户发出预警信号;
所述长度检测模块,用于检测结构完整的所述下行链表和所述上行链表的长度;
所述长度异常预警模块,用于若结构完整的所述下行链表或所述上行链表的长度不相等,则向用户发出预警信号;
所述逆序结构检测模块,用于若结构完整的所述下行链表和所述上行链表的长度相等,则检测结构完整且长度相等的所述下行链表和所述上行链表逆序链表结构。
还包括结束检测模块;
所述结束检测模块,用于若经过检测所述下行链表和所述上行链表同时满足结构完整、未出现环、长度相等并且逆序链表结构与相应反向链表结构相同,则判定通过错误自检,结束本次检测。
本申请所述一种工业图像处理软件的流程图错误自检方法能够实现自动对流程图中数据进行检测,可以及时检测出流程图中的异常并及时预警,防止用户数据损坏过多或生产时出现异常,精准度和效率均优于人工手动检查流程图,不容易出现纰漏和误报,使用简便,有效解决了现有技术中的工业图像处理软件不能及时发现流程图异常,人工手动检查流程图异常,浪费用户时间也十分不便的问题。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。