CN110427183A - 图形化函数编辑方法、装置和组态软件 - Google Patents
图形化函数编辑方法、装置和组态软件 Download PDFInfo
- Publication number
- CN110427183A CN110427183A CN201910725186.XA CN201910725186A CN110427183A CN 110427183 A CN110427183 A CN 110427183A CN 201910725186 A CN201910725186 A CN 201910725186A CN 110427183 A CN110427183 A CN 110427183A
- Authority
- CN
- China
- Prior art keywords
- function
- node
- block
- construction
- legend
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000004044 response Effects 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 224
- 238000010276 construction Methods 0.000 claims description 135
- 230000015654 memory Effects 0.000 claims description 27
- 230000008520 organization Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 9
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 238000004321 preservation Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 23
- 125000004122 cyclic group Chemical group 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 238000005054 agglomeration Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本公开公开了一种图形化函数编辑方法、装置和组态软件,涉及组态软件技术领域。该方法包括:建立函数构造块与对应图例的关联关系;确定函数构造块的节点类型,并以多叉树的形式连接各个函数构造块,构建函数模型;响应于用户点击图例,编辑函数模型。本公开使用图形化的方式表示函数,并以图形化的方式编辑函数,能够提高函数编辑效率。
Description
技术领域
本公开涉及组态软件技术领域,尤其涉及一种图形化函数编辑方法、装置和组态软件。
背景技术
人机接口(Human Machine Interface,HMI)组态软件是一种应用广泛的人机交互软件。组态软件支持脚本功能以能实现函数,函数中实现了较复杂的控制逻辑。相关技术中,常采用某个现有的脚本引擎来实现上述脚本功能。
发明内容
发明人发现,采用现有的脚本引擎来实现上述脚本功能,会带来对某个脚本引擎的绑定,同时用户需要多学习一门脚本语言,降低了函数编辑效率。
本公开要解决的一个技术问题是,提供一种图形化函数编辑方法、装置和组态软件,能够提供函数编辑效率。
根据本公开一方面,提出一种图形化函数编辑方法,包括:建立函数构造块与对应图例的关联关系;确定函数构造块的节点类型,并以多叉树的形式连接各个函数构造块,构建函数模型;响应于用户点击图例,编辑函数模型。
在一个实施例中,响应于用户点击图例,编辑函数模型包括:响应于用户在组态软件界面中增加图例,将增加的图例对应的函数构造块插入到多叉树对应的节点中;根据新插入的函数构造块在多叉树的节点位置,重新计算各个函数构造块对应的图例在组态软件界面的对应位置,以便在组态软件界面的对应位置更新显示各函数构造块对应的图例。
在一个实施例中,重新计算各个函数构造块对应的图例在组态软件界面的对应位置包括:判断多叉树中是否存在与新插入的函数构造块同级的函数构造块;若存在,则先重新计算多叉树中,与新插入的函数构造块同级的函数构造块对应的图例在组态软件界面的对应位置;再沿着多叉树依次向上遍历,直到根节点对应的函数构造块,其中,在遍历多叉树的每一层的函数构造块时,依次重新计算与新插入的函数构造块所在节点位置的祖先节点对应的函数构造块同级的函数构造块对应的图例,在组态软件界面的对应位置,以及祖先节点对应的函数构造块同级的函数构造块的子函数构造块对应的图例,在组态软件界面的对应位置;若不存在,则直接执行沿着多叉树依次向上遍历,直到计算出根节点对应的函数构造块对应的图例在组态软件界面的对应位置的步骤。
在一个实施例中,多叉树的节点之间的层级关系与函数构造块之间的关系相对应。
在一个实施例中,位于多叉树的同级节点的函数构造块之间具有顺序关系或平行关系;位于多叉树的上下层节点的函数构造块之间具有嵌套关系。
在一个实施例中,函数构造块对应的图例包括分支结构块、循环结构块、顺序结构块和特殊语句块中的至少一项。
在一个实施例中,分支结构块与循环结构块能够相互嵌套。
在一个实施例中,分支结构块的每个分支在组态软件界面中向右水平展开。
在一个实施例中,将编辑好的函数模型,根据需求输出为目标平台的代码。
在一个实施例中,响应于用户查看图例的执行路径指令,根据函数构造块与对应图例的关联关系,获取图例在多叉树中对应的节点,以该节点为起始节点,沿着多叉树依次向上遍历,直到根节点,保存遍历过程中图例对应节点的每一个祖先节点,根据保存的祖先节点数据顺序,依次查找组态软件界面中对应的图例,显示查找到的图例以及查找到的图例之间的连接线。
根据本公开的另一方面,还提出一种图形化函数编辑装置,包括:关联关系确定单元,被配置为建立函数构造块与对应图例的关联关系;函数模型构建单元,被配置为确定函数构造块的节点类型,并以多叉树的形式连接各个函数构造块,构建函数模型;函数模型编辑单元,被配置为响应于用户点击图例,编辑函数模型。
根据本公开的另一方面,还提出一种图形化函数编辑装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行如上述的方法。
根据本公开的另一方面,还提出一种组态软件,包括上述的图形化函数编辑装置。
根据本公开的另一方面,还提出一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述的方法。
与相关技术相比,本公开使用图形化的方式表示函数,并以图形化的方式编辑函数,能够提高函数编辑效率。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开图形化函数编辑方法的一个实施例的流程示意图。
图2为本公开图形化编辑界面的一个实施例的示意图。
图3为本公开图形化编辑界面的另一个实施例的示意图。
图4为本公开图形化编辑界面的另一个实施例的示意图。
图5为本公开图形化编辑界面的另一个实施例的示意图。
图6为本公开图形化编辑界面的另一个实施例的示意图。
图7为本公开图形化编辑界面的另一个实施例的示意图。
图8为本公开图形化编辑界面的另一个实施例的示意图。
图9为本公开图形化编辑界面的另一个实施例的示意图。
图10为本公开图形化编辑界面的另一个实施例的示意图。
图11为本公开图形化函数编辑装置的一个实施例的结构示意图。
图12为本公开图形化函数编辑装置的另一个实施例的结构示意图。
图13为本公开图形化函数编辑装置的另一个实施例的结构示意图。
图14为本公开图形化函数编辑装置的另一个实施例的结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
图1为本公开图形化函数编辑方法的一个实施例的流程示意图。
在步骤110,建立函数构造块与对应图例的关联关系。
函数构造块对应的图例例如包括分支结构块、循环结构块、顺序结构块和特殊语句块。分支结构块例如为if分支结构块、switch分支结构块,顺序结构块例如为for顺序结构块、while…do/do…while结构块,特殊语句块包括return结构块、break结构块等。
在一个实施例中,如图2所示,分支结构块例如表示为图形210,循环结构块例如表示为图形220,顺序结构块例如表示为图形230,特殊语句块例如表示为图形240。本领的技术人员应当理解,该示例仅用于举例,各图例可以用各种图形进行表示。
在步骤120,确定函数构造块的节点类型,并以多叉树的形式连接各个函数构造块,构建函数模型。
例如,节点类型包括if结构块节点、switch结构块节点、for循环节点、顺序结构节点、特殊语句节点等,if结构块节点和switch结构块节点的子节点集的元素是分支节点类型,while…do/do…while结构块对应的节点属于分支节点类型。
分支节点表示满足某个条件之后执行某些其它子节点,分支节点的第一个子节点是条件集节点,条件集表示简单条件或由与、或、非连接起来的条件集合。
各函数构造块位于多叉树的各个节点上,其中,多叉树的节点之间的层级关系与函数构造块之间的关系相对应。例如,位于多叉树的同级节点的函数构造块之间具有顺序关系或平行关系;位于多叉树的上下层节点的函数构造块之间具有嵌套关系。例如,分支结构块与循环结构块能够相互嵌套。由于限制了函数构造块之间的关系,因此,能够保证函数语法的正确性。
该步骤中,在内存中以多叉树保存函数模型,能够独立于特定的语言。
在步骤130,响应于用户点击图例,编辑函数模型。
例如,响应于用户在组态软件界面中增加图例,将增加的图例对应的函数构造块插入到多叉树对应的节点中;根据新插入的函数构造块在多叉树的节点位置,重新计算各个函数构造块在多叉树的节点位置,以便在组态软件界面的对应位置更新显示各函数构造块对应的图例。
在上述实施例中,使用图形化的方式表示函数,并以图形化的方式编辑函数,易于用户理解和应用,能够提高函数编辑效率。
在本公开的另一个实施例中,将增加的图例对应的函数构造块插入到多叉树对应的节点中,即根据用户操作先生成相应节点,并将该节点插入到多叉树中,其中,该节点对应一个函数构造块,在组态软件界面显示新插入的图例。
在进行布局时,先判断多叉树中是否存在与新插入的函数构造块同级的函数构造块;若存在,则先重新计算多叉树中,与新插入的函数构造块同级的函数构造块对应的图例在组态软件界面的对应位置;再沿着多叉树依次向上遍历,直到计算出根节点对应的函数构造块对应的图例在组态软件界面的对应位置,其中,在遍历多叉树的每一层的函数构造块时,依次重新计算与新插入的函数构造块所在节点位置的祖先节点对应的函数构造块同级的函数构造块对应的图例,在组态软件界面的对应位置,以及祖先节点对应的函数构造块同级的函数构造块的子函数构造块对应的图例,在组态软件界面的对应位置,以便在组态软件界面的对应位置更新显示各函数构造块对应的图例。其中,祖先节点指新插入的函数构造块所在节点位置的父节点、祖父节点直到根节点。
如果多叉树中不存在与新插入的函数构造块同级的函数构造块,则直接执行沿着多叉树依次向上遍历,直到计算出根节点对应的函数构造块对应的图例在组态软件界面的对应位置,并在遍历多叉树的每一层的函数构造块时,依次重新计算与新插入的函数构造块所在节点位置的祖先节点对应的函数构造块同级的函数构造块对应的图例,在组态软件界面的对应位置,以及祖先节点对应的函数构造块同级的函数构造块的子函数构造块对应的图例,在组态软件界面的对应位置。
例如,根据新插入节点在多叉树的位置,沿着多叉树向上遍历,在向上遍历每一层时,查找新插入节点所属于祖先节点R的同级节点中的下一个节点S,自动计算节点S的位置的函数结构块对应的图例在组态软件中的位置,在组态软件界面显示该函数结构块对应的图例,然后计算节点S的所有子节点的位置的函数结构块对应的图例在组态软件中的位置;然后继续计算节点S的下一个节点T,重复执行计算节点的位置以及该节点的子节点的位置的函数结构块对应的图例在组态软件中的位置,直到节点R层的所有节点以及子节点的位置函数结构块对应的图例在组态软件中的位置都确定后,继续向上遍历节点R的父节点层,直到遍历到根节点结束。
下面将以具体实施例为例对图形化编辑函数过程进行介绍。
如图3所示,在组态软件界面中,用户点击开始后,点击箭头下拉按钮可以添加各种图例,例如,可以添加if分支结构块,for循环结构块,while…do结构块,do…while结构块,switch分支结构块,顺序结构块,return结构块等。
例如,如图4所示,用户点击了if分支结构块A,该if分支结构块A默认带有一个if分支,其中,内存中的多叉树的根节点下,增加了if分支节点,该if分支节点默认带有一个if分支,if分支的第一个子节点为条件集节点,函数模型为:
+根
----+if分支:
-----------+if:
---------------+条件集[AND]
该分支在组态软件界面中向右水平展开,避免如流程图中在处理类似分支时出现多重嵌套,该实施例中,对应的函数构造块的代码流程清晰可读。
在本公开的另一个实施例中,如图5所示,在图4的基础上,依次添加while…do循环结构块B、顺序结构块C、返回语句块D。其中,内存中多叉树的根节点下,依次添加有if分支节点、while…do节点、顺序节点和返回节点,函数模型为:
+根
----+if分支:
-----------+if:
---------------+条件集[AND]
----+while…do:
-----------+条件集[AND]
----+顺序结构块:
----+return
在本公开的另一个实施例中,如图6所示,在图5的基础上,在if分支结构块A的if分支下,嵌套另一个if分支结构块A-1。其中,内存中以多叉树保存的对应的函数构造块的函数模型为:
+根
----+if分支:
-----------+if:
---------------+条件集[AND]
---------------+if分支:
----------------------+if:
----------------------------+条件集[AND]
----+while…do:
-----------+条件集[AND]
----+顺序结构块:
----+return
其中,在多叉树中,当前插入的节点为if分支结构块A-1对应的节点a-1,节点a-1没有同级节点,则沿着多叉树向根节点遍历。节点a-1的父节点为节点a,其中,节点a为if分支结构块A对应的节点。节点a的同级节点有while…do节点b、循环节点c和返回节点d。节点a的下一个节点为节点while…do节点b,计算while…do节点b至返回节点d的各个子节点的新位置,并在新的位置显示这些节点对应的函数构造块。该实施例中,while…do节点、循环节点和返回节点都没有子节点。对应于图6中,由于新插入了图例if分支结构块A-1,因此,while…do循环结构块B、顺序结构块C、返回语句块D在组态软件界面中自动下移至新位置。
如图7所示,在组态软件界面中的第一层,依次包括if分支结构块A,if分支结构块B、顺序结构块C、返回语句块D。其中,if分支结构块B的if分支下,嵌套另一个if分支结构块B-1。如图8所示,若在组态软件界面中,if分支结构块A的if分支下嵌套if分支结构块A-1,if分支结构块A-1的if分支下嵌套顺序结构块A-1-1和返回结构块A-1-2。其中,内存中以多叉树保存的对应的函数构造块的函数模型为:
+根
----+if分支:
-----------+if:
---------------+条件集[AND]
---------------+if分支:
----------------------+if:
----------------------------+条件集[AND]
----------------------------+顺序结构块:
----------------------------+return
----+if分支:
-----------+if:
---------------+条件集[AND]
---------------+if分支:
----------------------+if:
----------------------------+条件集[AND]
----+顺序结构块:
----+return
其中,在多叉树中,if分支结构块A-1对应的节点a-1的父节点,为if分支结构块A对应的节点a。节点a的下一个节点b有子节点,其中,节点b为if分支结构块B对应的节点,则先确定节点b的位置后,再确定节点b-1的位置,然后再确定节点c的位置以及节点d的位置,其中,节点b-1为if分支结构块B-1对应的节点,节点c为顺序结构块C对应的节点、节点d为返回语句块D对应的节点。对应于图8中,if分支结构块B、if分支结构块B-1、顺序结构块C、返回语句块D位置都进行下移。
在本公开的另一个实施例中,如图9所示,在图6的基础上,增加if分支结构块A-2,if分支结构块A-2与if分支结构块A-1同层设置。其中,内存中以多叉树保存的对应的函数构造块的函数模型为:
+根
----+if分支:
-----------+if:
---------------+条件集[AND]
---------------+if分支:
----------------------+if:
----------------------------+条件集[AND]
---------------+if分支:
----------------------+if:
----------------------------+条件集[AND]
----+while…do:
-----------+条件集[AND]
----+顺序结构块:
----+return
其中,在多叉树中,当前插入的节点为if分支结构块A-2对应的节点a-2,节点a-1为if分支结构块A-1对应的节点,节点a-2与节点a-1同级设置,则自动计算因新插入节点引起的需要移动的同级节点位置。由于节点a-2为节点a-1的下一个节点,因此,节点a-1的位置不变。进而沿着多叉树向根节点遍历,节点a-2的父节点为节点a,其中,节点a为if分支结构块A对应的节点。节点a的同级节点有while…do节点b、循环节点c和返回节点d。节点a的下一个节点为节点while…do节点b,计算while…do节点b至返回节点d的各个子节点的新位置,并在新的位置显示这些节点对应的函数构造块。该实施例中,while…do节点、循环节点和返回节点都没有子节点。对应于图9中,由于新插入了图例if分支结构块A-2,因此,while…do循环结构块B、顺序结构块C、返回语句块D在组态软件界面中自动下移至新位置。
在本公开的另一个实施例中,如图10所示,在图9的基础上,增加循环结构块A-1-1和返回结构块A-1-2,循环结构块A-1-1和返回结构块A-1-2同层设置。其中,内存中以多叉树保存的对应的函数构造块的函数模型为:
+根
----+if分支:
-----------+if:
---------------+条件集[AND]
---------------+if分支:
----------------------+if:
----------------------------+条件集[AND]
----------------------------+顺序结构块:
----------------------------+return
---------------+if分支:
----------------------+if:
----------------------------+条件集[AND]
----+while…do:
-----------+条件集[AND]
----+顺序结构块:
----+return
其中,在多叉树中,当前插入的节点为,循环结构块A-1-1对应的节点a-1-1和返回结构块A-1-2对应的节点a-1-2。沿着多叉树向根节点遍历,节点a-1-1和a-1-2的父节点为节点a-1,其中,节点a-1为if分支结构块A-1对应的节点。节点a-1的同级节点有节点a-2,节点a-2为if分支结构块A-2对应的节点。由于新插入节点a-1-1和节点a-1-2,因此,需要先计算节点a-2的位置,并在新的位置显示该节点对应的if分支结构块A-2,该层没有其他节点,并且节点a-2没有子节点,因此,需要遍历节点a-1的父节点a,节点a的下一个节点为节点while…do节点b,计算while…do节点b至返回节点d的各个子节点的新位置,并在新的位置显示这些节点对应的函数构造块。该实施例中,while…do节点、循环节点和返回节点都没有子节点。对应于图10中,由于新插入了图例循环结构块A-1-1和返回结构块A-1-2,因此,if分支结构块A-2、while…do循环结构块B、顺序结构块C、返回语句块D在组态软件界面中自动下移至新位置。
在上述实施例中,在新增图例后,重新计算多叉树中新节点位置,并在多叉树中的节点对应位置,显示对应的函数构造块,在组态软件界面的对应位置更新图例位置,能够实现自动布局。并且对应分支结构,从一般代码的垂直表示转换为图形化的水平表示,更有效地利用空间,并且,水平层层递进的排布,可以简化视觉的理解力。
在本公开的一个实施例中,选中当前的需要查看执行路径的图例,双击鼠标,在鼠标双击的事件处理函数中,从当前选中的图例,获得其内存中对应的多叉树中引用的节点,从该节点向上遍历,保存遍历过程中每一个祖先节点,一直遍历到根节点位置;根据保存的祖先节点数据顺序,依次查找出组态软件界面上,表示这些节点对应函数构造块的图例,显示查找到的图例以及查找到的图例之间的连接线,例如高亮这些图例及之间的连接线。如果用户再次双击,则取消高亮显示。
在该实施例中,用户可以查看某个结构块的执行路径,便于追踪深层嵌套的代码执行路径,例如,确定分支结构的每个分支内多层嵌套。
在本公开的另一个实施例中,将编辑好的函数模型,根据需求输出为目标平台的代码。由于上述图形化函数编辑方法独立于任何脚本,因此,能够根据需求输出成目标平台的代码,完全移除了内嵌脚本解释器,同时消除了因脚本语音带来的额外学习成本。
图11为本公开图形化函数编辑装置的一个实施例的结构示意图。该装置包括关联关系确定单元1110、函数模型构建单元1120和函数模型编辑单元1130。
关联关系确定单元1110被配置为建立函数构造块与对应图例的关联关系。
函数构造块对应的图例例如包括分支结构块、循环结构块、顺序结构块和特殊语句块。分支结构块例如为if分支结构块、switch分支结构块、顺序结构块例如为for顺序结构块、while…do/do…while结构块,特殊语句块包括return结构块、break结构块等。
函数模型构建单元1120被配置为确定函数构造块的节点类型,并以多叉树的形式连接各个函数构造块,构建函数模型。
例如,节点类型包括if结构块节点、switch结构块节点、for循环节点、顺序结构节点、特殊语句节点等,if结构块节点和switch结构块节点的子节点集的元素是分支节点类型,while…do/do…while结构块对应的函数构造块属于分支节点类型。
各函数构造块位于多叉树的各个节点上,其中,多叉树的节点之间的层级关系与函数构造块之间的关系相对应。例如,位于多叉树的同级节点的函数构造块之间具有顺序关系或平行关系;位于多叉树的上下层节点的函数构造块之间具有嵌套关系。例如,分支结构块与循环结构块能够相互嵌套。由于限制了函数构造块之间的关系,因此,能够保证函数语法的正确性。
函数模型编辑单元1130被配置为响应于用户点击图例,编辑函数模型。
例如,响应于用户在组态软件界面中增加图例,将增加的图例对应的函数构造块插入到多叉树对应的节点中;根据新插入的函数构造块在多叉树的节点位置,重新计算各个函数构造块在多叉树的节点位置,以便在组态软件界面的对应位置更新显示各函数构造块对应的图例。
在一个具体实施例中,将增加的图例对应的函数构造块插入到多叉树对应的节点中,在进行布局时,先判断多叉树中是否存在与新插入的函数构造块同级的函数构造块;若存在,则先重新计算多叉树中与新插入的函数构造块同级的函数构造块对应的图例在组态软件界面的对应位置;再沿着多叉树依次向上遍历,直到计算出根节点对应的函数构造块对应的图例在组态软件界面的对应位置,其中,在遍历多叉树的每一层的函数构造块时,依次重新计算与新插入的函数构造块所在节点位置的祖先节点对应的函数构造块同级的函数构造块对应的图例,在组态软件界面的对应位置,以及祖先节点对应的函数构造块同级的函数构造块的子函数构造块对应的图例,在组态软件界面的对应位置,以便在组态软件界面的对应位置更新显示各函数构造块对应的图例。其中,祖先节点指新插入的函数构造块所在节点位置的父节点、祖父节点直到根节点。
如果多叉树中不存在与新插入的函数构造块同级的函数构造块,则直接执行沿着多叉树依次向上遍历,直到计算出根节点对应的函数构造块对应的图例,在组态软件界面的对应位置,并在遍历多叉树的每一层的函数构造块时,依次重新计算与新插入的函数构造块所在节点位置的祖先节点对应的函数构造块同级的函数构造块对应的图例,在组态软件界面的对应位置,以及祖先节点对应的函数构造块同级的函数构造块的子函数构造块对应的图例,在组态软件界面的对应位置。
在上述实施例中,使用图形化的方式表示函数,并以图形化的方式编辑函数,易于用户理解和应用,能够提高函数编辑效率。在新增图例后,重新计算多叉树中新节点位置,并在多叉树中的节点对应位置,显示对应的函数构造块,在组态软件界面的对应位置更新图例位置,能够实现自动布局。
在本公开的另一个实施例中,分支结构块的每个分支在组态软件界面中向右水平展开。能够更有效地利用空间,并且,水平层层递进的排布,可以简化视觉的理解力。
在本公开的另一个实施例中,如图12所示,该装置还包括代码输出单元1210,被配置为将编辑好的函数模型,根据需求输出为目标平台的代码,该方案移除了内嵌脚本解释器,同时消除了因脚本语音带来的额外学习成本。
在本公开的另一个实施例中,该装置还包括路径显示单元1220,被配置为响应于用户查看图例的执行路径指令,根据函数构造块与对应图例的关联关系,获取所述图例在所述多叉树中对应的节点,以该节点为起始节点,沿着所述多叉树依次向上遍历,直到根节点,保存遍历过程中所述图例对应节点的每一个祖先节点,根据保存的祖先节点数据顺序,依次查找组态软件界面中对应的图例,显示查找到的图例以及查找到的图例之间的连接线。
图13为本公开图形化函数编辑装置的另一个实施例的结构示意图。该装置包括存储器1310和处理器1320。其中:存储器1310可以是磁盘、闪存或其它任何非易失性存储介质。存储器1310用于存储图1所对应实施例中的指令。处理器1320耦接至存储器1310,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器1320用于执行存储器中存储的指令。
在一个实施例中,还可以如图14所示,该装置1400包括存储器1410和处理器1420。处理器1420通过BUS总线1430耦合至存储器1410。该装置1400还可以通过存储接口1440连接至外部存储装置1450以便调用外部数据,还可以通过网络接口1460连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,使用图形化的方式表示函数,并以图形化的方式编辑函数,易于用户理解和应用,能够提高函数编辑效率。
在本公开的另一个实施例中,保护一种组态软件,该组态软件包括上述图形化函数编辑装置。
在另一个实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图1所对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
Claims (14)
1.一种图形化函数编辑方法,包括:
建立函数构造块与对应图例的关联关系;
确定所述函数构造块的节点类型,并以多叉树的形式连接各个所述函数构造块,构建函数模型;
响应于用户点击图例,编辑所述函数模型。
2.根据权利要求1所述的图形化函数编辑方法,其中,响应于用户点击图例,编辑所述函数模型包括:
响应于用户在组态软件界面中增加图例,将增加的所述图例对应的函数构造块插入到所述多叉树对应的节点中;
根据新插入的函数构造块在所述多叉树的节点位置,重新计算各个函数构造块对应的图例在所述组态软件界面的对应位置,以便在所述组态软件界面的对应位置更新显示各函数构造块对应的图例。
3.根据权利要求2所述的图形化函数编辑方法,其中,重新计算各个函数构造块对应的图例在所述组态软件界面的对应位置包括:
判断所述多叉树中是否存在与所述新插入的函数构造块同级的函数构造块;
若存在,则先重新计算所述多叉树中,与所述新插入的函数构造块同级的函数构造块对应的图例在所述组态软件界面的对应位置;再沿着所述多叉树依次向上遍历,直到计算出根节点对应的函数构造块对应的图例在所述组态软件界面的对应位置,其中,在遍历所述多叉树的每一层的函数构造块时,依次重新计算与所述新插入的函数构造块所在节点位置的祖先节点对应的函数构造块同级的函数构造块对应的图例,在所述组态软件界面的对应位置,以及所述祖先节点对应的函数构造块同级的函数构造块的子函数构造块对应的图例,在所述组态软件界面的对应位置;
若不存在,则直接执行沿着所述多叉树依次向上遍历,直到计算出根节点对应的函数构造块对应的图例在所述组态软件界面的对应位置的步骤。
4.根据权利要求1-3任一所述的图形化函数编辑方法,其中,
所述多叉树的节点之间的层级关系与所述函数构造块之间的关系相对应。
5.根据权利要求4所述的图形化函数编辑方法,其中,
位于所述多叉树的同级节点的所述函数构造块之间具有顺序关系或平行关系;
位于所述多叉树的上下层节点的所述函数构造块之间具有嵌套关系。
6.根据权利要求5所述的图形化函数编辑方法,其中,
所述函数构造块对应的图例包括分支结构块、循环结构块、顺序结构块和特殊语句块中的至少一项。
7.根据权利要求6所述的图形化函数编辑方法,其中,
所述分支结构块与所述循环结构块能够相互嵌套。
8.根据权利要求6所述的图形化函数编辑方法,其中,
所述分支结构块的每个分支在组态软件界面中向右水平展开。
9.根据权利要求1-3任一所述的图形化函数编辑方法,还包括:
将编辑好的函数模型,根据需求输出为目标平台的代码。
10.根据权利要求1-3任一所述的图形化函数编辑方法,还包括:
响应于用户查看图例的执行路径指令,根据函数构造块与对应图例的关联关系,获取所述图例在所述多叉树中对应的节点,以该节点为起始节点,沿着所述多叉树依次向上遍历,直到根节点,保存遍历过程中所述图例对应节点的每一个祖先节点,根据保存的祖先节点数据顺序,依次查找组态软件界面中对应的图例,显示查找到的图例以及查找到的图例之间的连接线。
11.一种图形化函数编辑装置,包括:
关联关系确定单元,被配置为建立函数构造块与对应图例的关联关系;
函数模型构建单元,被配置为确定所述函数构造块的节点类型,并以多叉树的形式连接各个所述函数构造块,构建函数模型;
函数模型编辑单元,被配置为响应于用户点击图例,编辑所述函数模型。
12.一种图形化函数编辑装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求1至10任一项所述的方法。
13.一种组态软件,包括权利要求11或12所述的图形化函数编辑装置。
14.一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910725186.XA CN110427183B (zh) | 2019-08-07 | 2019-08-07 | 图形化函数编辑方法、装置和组态软件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910725186.XA CN110427183B (zh) | 2019-08-07 | 2019-08-07 | 图形化函数编辑方法、装置和组态软件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110427183A true CN110427183A (zh) | 2019-11-08 |
CN110427183B CN110427183B (zh) | 2020-10-23 |
Family
ID=68413051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910725186.XA Active CN110427183B (zh) | 2019-08-07 | 2019-08-07 | 图形化函数编辑方法、装置和组态软件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427183B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111352684A (zh) * | 2020-02-27 | 2020-06-30 | 珠海格力电器股份有限公司 | 一种楼控点位编程系统及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10255067A (ja) * | 1997-03-12 | 1998-09-25 | Hitachi Inf Syst Ltd | 図形編集処理システムの図形特定制御方法 |
JPH11191062A (ja) * | 1997-12-26 | 1999-07-13 | Hitachi Ltd | アプリケーション画面開発支援システム |
CN101425011A (zh) * | 2008-09-26 | 2009-05-06 | 天津市天堰医教科技开发有限公司 | 图形化情景病例脚本编辑系统及方法 |
CN104268072A (zh) * | 2014-09-03 | 2015-01-07 | 武汉烽火网络有限责任公司 | 图形化脚本编辑器及快速开发通信设备测试脚本的方法 |
CN106294686A (zh) * | 2016-08-05 | 2017-01-04 | 董涛 | 一种思维导图中快速更新树结点位置坐标的方法 |
CN108829394A (zh) * | 2018-08-20 | 2018-11-16 | 珠海格力电器股份有限公司 | 一种hmi组态软件脚本编辑方法 |
CN109634572A (zh) * | 2018-12-17 | 2019-04-16 | 王相军 | 一种流程图编程方法及系统 |
CN109710242A (zh) * | 2018-12-29 | 2019-05-03 | 深圳点猫科技有限公司 | web端图形化编程的交互方法、系统及电子设备 |
-
2019
- 2019-08-07 CN CN201910725186.XA patent/CN110427183B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10255067A (ja) * | 1997-03-12 | 1998-09-25 | Hitachi Inf Syst Ltd | 図形編集処理システムの図形特定制御方法 |
JPH11191062A (ja) * | 1997-12-26 | 1999-07-13 | Hitachi Ltd | アプリケーション画面開発支援システム |
CN101425011A (zh) * | 2008-09-26 | 2009-05-06 | 天津市天堰医教科技开发有限公司 | 图形化情景病例脚本编辑系统及方法 |
CN104268072A (zh) * | 2014-09-03 | 2015-01-07 | 武汉烽火网络有限责任公司 | 图形化脚本编辑器及快速开发通信设备测试脚本的方法 |
CN106294686A (zh) * | 2016-08-05 | 2017-01-04 | 董涛 | 一种思维导图中快速更新树结点位置坐标的方法 |
CN108829394A (zh) * | 2018-08-20 | 2018-11-16 | 珠海格力电器股份有限公司 | 一种hmi组态软件脚本编辑方法 |
CN109634572A (zh) * | 2018-12-17 | 2019-04-16 | 王相军 | 一种流程图编程方法及系统 |
CN109710242A (zh) * | 2018-12-29 | 2019-05-03 | 深圳点猫科技有限公司 | web端图形化编程的交互方法、系统及电子设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111352684A (zh) * | 2020-02-27 | 2020-06-30 | 珠海格力电器股份有限公司 | 一种楼控点位编程系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110427183B (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106679669B (zh) | 一种移动机器人路径规划方法和系统 | |
CN103513992B (zh) | 一种通用的教育娱乐机器人应用软件研制平台 | |
CN105608258B (zh) | 一种基于模型的系统设计及信息流可视化仿真系统及方法 | |
CN109605366A (zh) | 机器人图形化编程交互系统及机器人 | |
CN106095666A (zh) | 游戏自动化测试方法及相关装置 | |
CN110958134B (zh) | 一种网络拓扑的实现方法及装置 | |
CN106648608B (zh) | 一种灵活方便的流程图构建方法 | |
CN104613976A (zh) | 确定路径的方法及装置 | |
CN103761276A (zh) | 一种树形结构数据比较的展示方法和装置 | |
CN103020335A (zh) | 一种配电网地理接线图到区域正交图的自动转换方法 | |
CN107577750A (zh) | 绘制导航数据矢量路口的方法和系统 | |
CN109344476A (zh) | 基于cim模型的配电网单线图线路分支结构生成方法和装置 | |
CN103309667A (zh) | 安卓系统中定位ui控件及图片修改位置的方法 | |
CN103942734A (zh) | 基于智能变电站scd各装置之间虚连接的多维度图形化显示方法 | |
CN104020756A (zh) | 一种故障诊断系统的逻辑网络拓扑排序和存储方法 | |
CN112698823A (zh) | 一种图形化的机器人编程交互系统及方法 | |
CN110427183A (zh) | 图形化函数编辑方法、装置和组态软件 | |
KR102132383B1 (ko) | 딥러닝 알고리즘 및 트리를 이용한 ui테스팅 자동화 방법 및 동일 방법으로 구현된 장치 | |
CN112417226B (zh) | 基于dag变换的大数据处理方法 | |
CN104731800A (zh) | 数据分析装置 | |
CN106096159A (zh) | 一种云平台下的分布式系统行为仿真分析系统的实现方法 | |
CN110457212B (zh) | 基于复杂系统的测试建模及测试用例的自动生成方法 | |
CN112001483A (zh) | 一种剪枝神经网络模型的方法和装置 | |
CN111026373B (zh) | 一种三维数字化事务地图的制作方法 | |
CN114547732A (zh) | 一种基于户型的电箱整齐布线方法、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |