System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种梯形图语言多能流编程方法、设备及存储介质技术_技高网
当前位置: 首页 > 专利查询>浙江大学专利>正文

一种梯形图语言多能流编程方法、设备及存储介质技术

技术编号:40347318 阅读:4 留言:0更新日期:2024-02-09 14:32
本发明专利技术公开了一种梯形图语言多能流编程方法,包括如下步骤:多能流界面排列,基于前置区域自动调整引脚能流线的位置和功能块的高度,实现多能流布局绘制。基于栈遍历算法获取多能流的能流指针,以实现多能流梯形图中元件的显示、替换以及删除。最终,对功能块的多能流编程逻辑进行集成与嵌套。本发明专利技术改进了标准梯形图在复杂逻辑编写后产生过多和过长图网络导致用户编写和维护成本增加的问题,在编程软件层面提出了一种依附于多引脚功能块和函数的新颖编程模式:引脚多能流支持。由于梯形图主要是以能流方式运作,因此只支持在绑定布尔类型的输入引脚中引入,旨在方便用户在功能块引脚前加入复杂逻辑,让程序变得更简洁。

【技术实现步骤摘要】

本专利技术属于工业控制领域,尤其涉及一种梯形图语言多能流编程方法、设备及存储介质


技术介绍

1、梯形图语言是iec611131-3标准编程语言的一种。梯形图编程语言主要是设计用于处理布尔信号(1=true或0=false)。梯形图的指令部分划分为几个所谓子网络,便于图形的结构化。一个网络包括:网络标号,网络注释和网络图形。

2、网络标号:每个网络可成为另一个网络的跳转目标,它会自动被分配为一个字符标识符或无符号的十进制整数。缺省时,网络将分配数字。向网络插入一个新的网络时,所有网络的数字将会自动更新。网络标号数字化后,就可以根据文本编程语言的行号方便地找到某一特定的网络。

3、网络注释:梯形图中网络注释描述在矩形区域。键入注释时,双击这个矩形区域即可。注释总是置于网络标号之下的位置。第一个网络附加的包含了一个梯形图注释,它位于网络标号和网络注释之上。

4、网络图形:网络图形由图形对象组成,可以是图形符号或连接。图形符号之间有连接可以传输数据,它能在输入端处理数据并把处理过的数据传到输出端,连接可交叉。

5、一个梯形图网络的边界是在左侧和右侧所谓的电源轨线。左侧轨线由逻辑状态1“得电的”的电能(能量流)到达所有被连接的元素。根据这些元素的逻辑状态,它们或是被允许将电能传送到后继的被连接的元素,或是中断能量流。网络中包含的图形对象:连接(平行或垂直线和结点),触点,线圈,控制继电器,功能块和函数,跳转(控制流的图形元素)。

6、综上所述,梯形图一般是基于一个网络一条能流上插入绘制并执行,结构单一并且无法很好地扩展实施。

7、目前国内自动化逻辑编程软件梯形图大多不含有多能流编程的形式。对于国外自动化编程软件,如codesys,它是由德国smart software solution gmbh研制的一款符合iec-61131标准的工业控制软件,其中的梯形图带有多能流的编程方式,但操作较为复杂。本申请在于解决上面存在的问题,提出能够配合梯形图语言引入多能流概念和编程形式,推演多能流绘制方式和逻辑执行方法,做到了梯形图语言便捷、高效地用户编程体验,并提出了一种多元化、高扩展性的工控编程新范式。


技术实现思路

1、本专利技术的技术目的是提供一种梯形图语言多能流编程方法、设备及存储介质,以高效、快捷地实现多能流的梯形图编程。

2、为解决上述问题,本专利技术的技术方案为:

3、一种梯形图语言多能流编程方法,包括如下步骤:

4、多能流界面排列,基于前置区域自动调整引脚能流线的位置和功能块的高度,实现多能流布局绘制;

5、基于栈遍历算法获取多能流的能流指针,以实现多能流梯形图中元件的显示、替换以及删除;

6、最终,对功能块的多能流编程逻辑进行集成与嵌套。

7、其中,多能流界面排列具体包括如下步骤:

8、获取前置已绘制区域的大小;

9、根据前置区域大小和待加入功能块的引脚类型计算功能块的高度,以此获取相对应能流的区域大小;

10、计算引脚和参数的位置坐标,并判断是否需要调整位置坐标;

11、根据计算的位置坐标对引脚和功能块进行绘制。

12、其中,引脚类型包括普通引脚和能流引脚;

13、当判断是否调整位置坐标时,需要判断普通引脚是否与前置区域碰撞,若碰撞则需要将功能块下推至前置区域以下,并更新功能块的高度。

14、其中,进行绘制时,能流引脚上含有多个嵌套能流功能块时,执行递归绘制。

15、其中,基于栈遍历以获取多能流算法具体包括如下步骤:

16、统计主网络上所有功能块的引脚中的能流指针并压入栈中;

17、从栈顶依次弹出能流指针,并存入指定的容器中,统计相对应能流中所有功能块的能流指针压入栈中,直至栈空;

18、获得多能流嵌套梯形图中所有的能流指针。

19、其中,对功能块的多能流编程逻辑进行集成与嵌套具体包括如下步骤:

20、选取功能块的能流引脚,获取能流引脚相对应的逻辑对象,并进行语义词法翻译,编译为可编程逻辑控制器可以执行的代码语句;

21、将最终编译生成的代码语句的结果存入临时变量中,以对能流执行输出结果的处理和查看;

22、将能流引脚产生的临时变量和普通引脚一起以参数定义为拼装功能块的执行语句,对功能块的多能流编程逻辑进行集成与嵌套。

23、一种电子设备,电子设备包括处理器和存储器,存储器上存储有可在处理器上运行的计算机指令,处理器用于调用存储器中的计算机指令执行如上述的梯形图语言多能流编程方法。

24、一种存储介质,存储介质用于存储计算机指令,其中,在计算机指令运行时控制存储介质所在设备执行如上述任一项的梯形图语言多能流编程方法。

25、本专利技术由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:

26、本专利技术提供了一种梯形图语言多能流编程方法、设备及存储介质,为传统梯形图语言赋予便捷、高效和新颖的多能流编程方式,提升用户编程的体验。改进了标准梯形图在复杂逻辑编写后产生过多和过长图网络导致用户编写和维护成本增加的问题,在编程软件层面提出了一种依附于多引脚功能块和函数的新颖编程模式:引脚多能流支持。由于梯形图主要是以能流方式运作,因此只支持在绑定布尔类型的输入引脚中引入,旨在方便用户在功能块引脚前加入复杂逻辑,让程序变得更简洁。

本文档来自技高网...

【技术保护点】

1.一种梯形图语言多能流编程方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的梯形图语言多能流编程方法,其特征在于,所述多能流界面排列具体包括如下步骤:

3.根据权利要求2所述的梯形图语言多能流编程方法,其特征在于,引脚类型包括普通引脚和能流引脚;

4.根据权利要求3所述的梯形图语言多能流编程方法,其特征在于,进行绘制时,能流引脚上含有多个嵌套能流功能块时,执行递归绘制。

5.根据权利要求1所述的梯形图语言多能流编程方法,其特征在于,所述基于栈遍历以获取多能流算法具体包括如下步骤:

6.根据权利要求1所述的梯形图语言多能流编程方法,其特征在于,所述对功能块的多能流编程逻辑进行集成与嵌套具体包括如下步骤:

7.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器用于调用所述存储器中的计算机指令执行如权利要求1-6中任一项所述的梯形图语言多能流编程方法。

8.一种存储介质,其特征在于,所述存储介质用于存储计算机指令,其中,在所述计算机指令运行时控制所述存储介质所在设备执行如权利要求1-6中任一项所述的梯形图语言多能流编程方法。

...

【技术特征摘要】

1.一种梯形图语言多能流编程方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的梯形图语言多能流编程方法,其特征在于,所述多能流界面排列具体包括如下步骤:

3.根据权利要求2所述的梯形图语言多能流编程方法,其特征在于,引脚类型包括普通引脚和能流引脚;

4.根据权利要求3所述的梯形图语言多能流编程方法,其特征在于,进行绘制时,能流引脚上含有多个嵌套能流功能块时,执行递归绘制。

5.根据权利要求1所述的梯形图语言多能流编程方法,其特征在于,所述基于栈遍历以获取多能流算法具体包括如下步骤:

【专利技术属性】
技术研发人员:施一明谢煜晨梁世武陈根王圣洁朱立国
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1