一种用户程序的自动布局算法
2021-01-15戴晓华汪宏毅
仪器仪表用户 2021年1期
孔 金,戴晓华,汪宏毅,刘 威
(浙江中控技术股份有限公司,杭州 310053)
0 引言
功能块语言源于信号处理领域,它将各种功能块连接起来实现所需要的控制功能,其图形元素由功能、功能块和连接元素组成[1]。功能块图(Function Block Diagram,FBD)编程软件是工业控制系统中最主要的控制策略组态工具之一,提供FBD的编程和调试功能。用户程序画布存在功能块重叠、布局局部紧凑等问题,这导致该软件存在布局耗时久、审核图纸难、调试维护工作量大等易用性问题。为了解决该类问题,在保持FBD程序软件现有功能和不影响现有业务逻辑的基础上,通过自动调整控件尺寸、自动调整控件位置、自动调整控件间距等方法,对布局效果进行优化,既能实现人机交互方便操作,又能有效地减少功能块边的交叉数[2]。
1 自动调整控件尺寸
用户程序中由于采用了固定大小显示功能块,在实际应用时经常出现位号名显示不全、功能块名称显示不全、功能块位号名称显示不全、功能块参数重叠等问题。因此,为了解决显示问题,并保证最佳显示风格,现提供方法支持自动调整控件尺寸。
将控件类型分为数据引用控件和功能块两种,因此计算控件尺寸的方法,根据控件类型进行分类,共有两种方式。
1.1 数据引用控件
用户程序实例化该控件后,先获取其位号名,并计算位号名文本宽度。然后,获取位号名文本宽度和控件文本硬编码宽度的最大值。最后,根据该值调整控件尺寸。
获取位号名文本宽度和控件文本硬编码宽度的最大值方法为比较两个值,若位号名文本宽度不大于控件文本硬编码宽度,则最大值为控件文本硬编码宽度;……
登录APP查看全文
