• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種用戶(hù)程序的自動(dòng)布局算法

      2021-01-15 02:11:06戴曉華汪宏毅
      儀器儀表用戶(hù) 2021年1期
      關(guān)鍵詞:用戶(hù)程序功能塊畫(huà)布

      孔 金,戴曉華,汪宏毅,劉 威

      (浙江中控技術(shù)股份有限公司,杭州 310053)

      0 引言

      功能塊語(yǔ)言源于信號(hào)處理領(lǐng)域,它將各種功能塊連接起來(lái)實(shí)現(xiàn)所需要的控制功能,其圖形元素由功能、功能塊和連接元素組成[1]。功能塊圖(Function Block Diagram,F(xiàn)BD)編程軟件是工業(yè)控制系統(tǒng)中最主要的控制策略組態(tài)工具之一,提供FBD的編程和調(diào)試功能。用戶(hù)程序畫(huà)布存在功能塊重疊、布局局部緊湊等問(wèn)題,這導(dǎo)致該軟件存在布局耗時(shí)久、審核圖紙難、調(diào)試維護(hù)工作量大等易用性問(wèn)題。為了解決該類(lèi)問(wèn)題,在保持FBD程序軟件現(xiàn)有功能和不影響現(xiàn)有業(yè)務(wù)邏輯的基礎(chǔ)上,通過(guò)自動(dòng)調(diào)整控件尺寸、自動(dòng)調(diào)整控件位置、自動(dòng)調(diào)整控件間距等方法,對(duì)布局效果進(jìn)行優(yōu)化,既能實(shí)現(xiàn)人機(jī)交互方便操作,又能有效地減少功能塊邊的交叉數(shù)[2]。

      1 自動(dòng)調(diào)整控件尺寸

      用戶(hù)程序中由于采用了固定大小顯示功能塊,在實(shí)際應(yīng)用時(shí)經(jīng)常出現(xiàn)位號(hào)名顯示不全、功能塊名稱(chēng)顯示不全、功能塊位號(hào)名稱(chēng)顯示不全、功能塊參數(shù)重疊等問(wèn)題。因此,為了解決顯示問(wèn)題,并保證最佳顯示風(fēng)格,現(xiàn)提供方法支持自動(dòng)調(diào)整控件尺寸。

      將控件類(lèi)型分為數(shù)據(jù)引用控件和功能塊兩種,因此計(jì)算控件尺寸的方法,根據(jù)控件類(lèi)型進(jìn)行分類(lèi),共有兩種方式。

      1.1 數(shù)據(jù)引用控件

      用戶(hù)程序?qū)嵗摽丶?,先獲取其位號(hào)名,并計(jì)算位號(hào)名文本寬度。然后,獲取位號(hào)名文本寬度和控件文本硬編碼寬度的最大值。最后,根據(jù)該值調(diào)整控件尺寸。

      獲取位號(hào)名文本寬度和控件文本硬編碼寬度的最大值方法為比較兩個(gè)值,若位號(hào)名文本寬度不大于控件文本硬編碼寬度,則最大值為控件文本硬編碼寬度;若位號(hào)名文本寬度大于控件文本硬編碼寬度,則最大值為位號(hào)名文本寬度。

      1.2 功能塊

      用戶(hù)程序?qū)嵗摽丶?,依次?jì)算功能塊名稱(chēng)文本寬度、功能塊位號(hào)名文本寬度、功能塊同行參數(shù)名稱(chēng)最大行文本寬度,并獲取三者之間的最大值作為控件文本寬度。然后,獲取控件文本寬度與控件文本硬編碼寬度的最大值。最后,根據(jù)最大值調(diào)整控件尺寸。

      獲取功能塊文本寬度方法是先獲取功能塊名稱(chēng),然后根據(jù)每個(gè)字節(jié)所占文本寬度進(jìn)行計(jì)算。

      獲取功能塊位號(hào)名文本寬度方法是先獲取功能塊位號(hào)名,然后根據(jù)每個(gè)字節(jié)所占文本寬度進(jìn)行計(jì)算。

      獲取功能塊同行參數(shù)名稱(chēng)最大行的文本寬度的方法是先依次獲取同序號(hào)的輸入?yún)?shù)和輸出參數(shù)的名稱(chēng),再根據(jù)每個(gè)字節(jié)所占文本寬度,依次計(jì)算輸入?yún)?shù)文本寬度和輸出參數(shù)文本寬度,并計(jì)算兩者之和后保存;然后,根據(jù)序號(hào)遍歷保存的值進(jìn)行比較,獲取最大值即可。

      獲取控件文本寬度和控件文本硬編碼寬度的最大值方法為:比較兩個(gè)值,若控件文本寬度不大于控件文本硬編碼寬度,則最大值為控件文本硬編碼寬度;若控件文本寬度大于控件文本硬編碼寬度,則最大值為位號(hào)名文本寬度。

      2 自動(dòng)調(diào)整控件位置

      用戶(hù)程序可以通過(guò)導(dǎo)入CSV和XML文件新建FBD用戶(hù)程序,但是數(shù)據(jù)引用控件和功能塊的位置都是軟件硬編碼的,當(dāng)超過(guò)一定數(shù)量后,就會(huì)出現(xiàn)功能塊重疊問(wèn)題。因此,為了解決重疊問(wèn)題,現(xiàn)提供方法支持自動(dòng)調(diào)整控件位置。

      2.1 計(jì)算控件位置

      計(jì)算控件位置的方法是進(jìn)行遍歷所有控件,每獲取一個(gè)控件位置后,再遍歷除了自己以及遍歷過(guò)的控件之外的其他所有控件,若發(fā)現(xiàn)重疊,則進(jìn)行偏移。

      2.2 計(jì)算重疊

      圖1 控件位置計(jì)算過(guò)程Fig.1 Control position calculation process

      圖2 控件區(qū)域定義Fig.2 Control area definition

      計(jì)算重疊的方法是獲取兩個(gè)控件的最小矩形區(qū)域,若兩個(gè)區(qū)域相交,則認(rèn)為重疊;若兩個(gè)區(qū)域不相交,則認(rèn)為不重疊。

      判斷區(qū)域相交算法,如下所示:

      控件區(qū)域定義為rect(min,max),min和max是二維點(diǎn)(x,y)組成,如圖2所示。

      兩個(gè)控件a(mina, maxa)和b(minb, maxb)的交集c(minc,maxc)滿(mǎn)足:

      minc.x = max(mina.x, minb.x)

      minc.y = max(mina.y, minb.y)

      maxc.x = min(maxa.x, maxb.x)

      maxc.y = min(maxa.y, maxb.y)

      若滿(mǎn)足以下情形,則a和b相交,否則a和b不相交。

      minc.x <= maxc.x且minc.y <= maxc.y

      3 自動(dòng)調(diào)整控件間距

      用戶(hù)程序支持通過(guò)導(dǎo)入XML文件新建FBD用戶(hù)程序,但是XML文件中坐標(biāo)的單位是mm,用戶(hù)程序坐標(biāo)的單位是像素,且紙張大小與FBD用戶(hù)程序畫(huà)布大小不一致,因此轉(zhuǎn)化后,該軟件存在布局緊湊等問(wèn)題。雖然自動(dòng)調(diào)整控件尺寸解決了顯示不全問(wèn)題,自動(dòng)調(diào)整控件位置解決了重疊問(wèn)題,但是會(huì)存在控件緊湊在局部區(qū)域,其他區(qū)域空白較多,影響用戶(hù)體驗(yàn)。因此,為了解決該問(wèn)題,現(xiàn)提供自動(dòng)調(diào)整控件間距方法。該方法在圖中的控件較多時(shí),可以盡量減少圖中的交叉線,并且在進(jìn)行深度搜索時(shí)充分考慮到相鄰控件的布局,使畫(huà)布的可讀性比較好[3]。

      3.1 計(jì)算控件間距

      計(jì)算控件間距的方法為先獲取所有控件的最小有效區(qū)域,然后獲取畫(huà)布顯示有效區(qū)域,再計(jì)算最小有效區(qū)域和畫(huà)布顯示有效區(qū)域的縮放比,最后根據(jù)縮放比獲取控件間距。

      圖3 控件最小區(qū)域計(jì)算方法Fig.3 The calculation method of the minimum area of the control

      圖4 調(diào)整前用戶(hù)程序畫(huà)布顯示效果Fig.4 User program canvas display effect before adjustment

      3.2 獲取所有控件有效區(qū)域

      獲取所有控件有效區(qū)域的方法為遍歷所有控件位置,先記錄第一個(gè)獲取的控件位置為最小有效區(qū)域,然后繼續(xù)遍歷,獲取該控件位置后,并與最小有效區(qū)域值進(jìn)行比較,若該控件位置不在最小有效區(qū)域內(nèi),則根據(jù)該控件位置調(diào)整最小有效區(qū)域范圍。

      控件區(qū)域定義為 rect(min,max),min和 max是二維點(diǎn)(x,y)組成。兩個(gè)控件分別是a(mina, maxa)和b(minb, maxb),則這兩個(gè)控件的最小有效區(qū)域是(mina,maxb)。

      3.3 計(jì)算畫(huà)布顯示有效區(qū)域

      計(jì)算畫(huà)布顯示有效區(qū)域的方法為:根據(jù)用戶(hù)程序的畫(huà)布大小獲取顯示控件位置區(qū)域。

      3.4 計(jì)算最小有效區(qū)域和畫(huà)布顯示區(qū)域的縮放比

      計(jì)算最小有效區(qū)域和畫(huà)布顯示區(qū)域的縮放比方法是先依次獲取最小有效區(qū)域的寬度和高度以及畫(huà)布顯示區(qū)域的寬度和高度,然后依次將最小有效區(qū)域的寬度和畫(huà)布顯示區(qū)域的寬度相除獲取寬度縮放比,將最小有效區(qū)域的高度和畫(huà)布顯示區(qū)域的高度相除獲取高度縮放比。

      3.5 計(jì)算控件間距

      計(jì)算控件間距的方法是遍歷所有控件,獲取控件位置信息后,依次分別乘以寬度縮放比和高度縮放比,獲取最終控件位置,該值與相鄰控件位置之差就是間距值。

      4 方案驗(yàn)證

      以用戶(hù)程序的導(dǎo)入XML文件功能為例,畫(huà)布使用該方法前后的顯示對(duì)比效果如下所示:

      1)未使用該成果,用戶(hù)程序畫(huà)布顯示效果如圖4所示。

      圖5 調(diào)整后用戶(hù)程序畫(huà)布顯示效果Fig.5 User program canvas display effect after adjustment

      2)使用該成果后,用戶(hù)程序畫(huà)布顯示效果如圖5所示。

      5 結(jié)束語(yǔ)

      針對(duì)工業(yè)控制系統(tǒng)軟件的用戶(hù)程序布局易用性問(wèn)題,本文從自動(dòng)調(diào)整控件尺寸、自定義調(diào)整控件位置、自定義調(diào)整布局等幾個(gè)方面進(jìn)行了嘗試,取得了良好的效果。使用該方法后,對(duì)于工程實(shí)施人員而言,無(wú)論是對(duì)于組態(tài)實(shí)施,還是組態(tài)調(diào)試,效率都有明顯提升;對(duì)于用戶(hù)而言,不管是在線查看組態(tài),還是審核圖紙,體驗(yàn)都有明顯改善。

      猜你喜歡
      用戶(hù)程序功能塊畫(huà)布
      商業(yè)模式畫(huà)布
      變速箱控制系統(tǒng)Bootloader設(shè)計(jì)與實(shí)現(xiàn)
      為什么要在畫(huà)布上割一刀?
      讓鮮花在畫(huà)布上盛開(kāi)
      嵌入式設(shè)備遠(yuǎn)程升級(jí)方案設(shè)計(jì)
      Ovation系統(tǒng)FIRSTOUT和FIFO跳閘首出比較
      自定義功能塊類(lèi)型在電解槽聯(lián)鎖中的應(yīng)用
      大師的畫(huà)布
      基于MACSV6.5.2的鍋爐燃盡風(fēng)開(kāi)關(guān)量調(diào)節(jié)門(mén)控制功能塊設(shè)計(jì)
      C8051F410單片機(jī)BootLoader的實(shí)現(xiàn)
      定西市| 昌吉市| 马尔康县| 永丰县| 长岛县| 岳阳县| 章丘市| 南陵县| 古丈县| 镇坪县| 河池市| 瑞丽市| 四川省| 合山市| 淄博市| 龙口市| 迁西县| 登封市| 南充市| 新绛县| 常山县| 鹿邑县| 隆昌县| 长寿区| 永年县| 花莲市| 西峡县| 得荣县| 安仁县| 两当县| 长乐市| 彩票| 奎屯市| 二手房| 桦川县| 甘泉县| 樟树市| 乐安县| 南昌县| 仁怀市| 湘西|