HI 您好,歡迎來到巨人電商全國服務(wù)總部!
關(guān)注巨人電商微信客服
一鍵登錄我的賬戶,隨時查看qt工業(yè)組態(tài)系統(tǒng)軟件開發(fā)公司有哪些呢
在工控領(lǐng)域,我們用到的組態(tài)軟件有組態(tài)王、Cimplicity等,一方面這些軟件是收費的,另一方面無論這些軟件做得多好,都沒辦法把自己的品牌打出去,沒辦法滿足各種自定義的需求。于是,我花了兩個星期時間,開發(fā)了一款簡易版的。這是流程圖界面:
組態(tài)軟件開發(fā)公司都有哪些
*北京華盛恒輝做軟件致電壹伍扒+++壹壹叁叁++++駟柒駟駟軟件開發(fā)公司《北京》
*北京五木恒潤科技有限公司《北京》
*航天信息股份有限公司《北京》
*北電網(wǎng)絡(luò)nortel《北京》
*北京朗新《北京》
*北京科思誠科技有限公司《北京》
*北京拓爾思信息技術(shù)有限公司TRS《北京》
其實組態(tài)軟件并沒有我們想像的那么難。我們需要的功能無非就是有一張可以靈活編輯的圖,這個圖里面的元素會根據(jù)系統(tǒng)的狀態(tài)去變化。
一、圖片的呈現(xiàn)
我是使用WPF去開發(fā)的,首先整個畫面是一個Canvas,然后里面放一些Image元素。我們知道,在組態(tài)里面,每一個元件有幾種狀態(tài)。例如一個閥,有半閉的狀態(tài)和打開的狀態(tài),一條水管,有靜止和向左向右流動的狀態(tài)。我們設(shè)計的方法是,根據(jù)系統(tǒng)的數(shù)據(jù),判斷應(yīng)該呈現(xiàn)哪一張圖,然后把那張圖添加在Canvas里面。當系統(tǒng)數(shù)據(jù)改變時,Canvas去掉舊圖,添加新圖。
靜態(tài)的圖可以用png、jpg這些格式,動態(tài)的圖只能使用gif了。WPF默認是不能顯示動態(tài)圖的,我使用了一個第三方庫去完成這項任務(wù)。有興趣的朋友可以搜索一下WpfAnimatedGif,這是目前發(fā)現(xiàn)顯示gif性能最好的一個第三方庫。
二、元件的結(jié)構(gòu)
其實在組態(tài)圖中,有兩種元件,一是圖片,二是文字。而且,圖片有三種拉伸方法,一是隨意拉伸,二是只能橫向拉伸(例如水平的管路),三是只能豎向位伸。我們把元件類結(jié)構(gòu)定義如下:
其中,Component類完成了所有移動、放縮、旋轉(zhuǎn)的功能,而下面繼承的類只是指明了一些額外的屬性。
三、圖片的編輯
圖片的編輯是最為復雜的一項功能。編輯界面如下圖所示:
我實現(xiàn)了一些基本的功能,例如選中元件之后,進行拉伸拖拉、放大縮小、旋轉(zhuǎn)等,還有上下移動一層、對齊等功能。在這里面,旋轉(zhuǎn)之后的放縮是最為復雜的。
在WPF里面,元素的旋轉(zhuǎn)都是使用RotateTransform完成的。旋轉(zhuǎn)之后,元素在我們眼中,其Left和Top屬性都變了,但其實在代碼里,Left和Top并沒有變化。這就產(chǎn)生了兩個坐標系。我們看到的元件坐標系跟元件在代碼里的坐標系是不一樣的。而我們用鼠標去拖動元件的時候,鼠標的坐標其實是我們眼中的坐標系,對元件產(chǎn)生作用前,需要先轉(zhuǎn)成元件真實的坐標系。當元件動了以后,它在自己坐標系里的位置需轉(zhuǎn)換成我們眼中的坐標系。這里面需要用到一些微分的概念。具體怎么算的,在這里不贅述,文字很難表達。這是坐標轉(zhuǎn)換的函數(shù):
四、數(shù)據(jù)的交互
對于組態(tài)圖,除了呈現(xiàn)圖形外,我們還希望:
(5)圖形根據(jù)系統(tǒng)狀態(tài)變化而變化。
(2)點擊圖形時,組態(tài)圖能向主程序發(fā)送一些內(nèi)容。
關(guān)于這兩點,我們定義了兩個概念,一是顯示條件,二是點擊事件。
在一個元件里面,包含了多個圖片,而每張圖片,都有自己的顯示條件和點擊事件。顯示條件和點擊事件都是一些表達式,如上圖所示,當“5號采樣閥狀態(tài)”為5的時候,綠色的圖案就會顯示,而當用戶點擊了這個綠色圖案時,主程序就會向“5號采樣閥”發(fā)送一個0的信號。
組態(tài)圖控件是通過三個列表跟主程序交互的,分別是顯示條件列表、顯示條件值列表、點擊事件列表。
顯示條件列表就是List,例如是{“5號采樣閥狀態(tài)”,"2號采樣泵狀態(tài)","清洗閥狀態(tài)"}。控件在顯示條件輸入框里提示用。
顯示條件值列表是Dictionary,例如是{“5號采樣閥狀態(tài)”=5,"2號采樣泵狀態(tài)"=0,"清洗閥狀態(tài)"=0}。主程序每隔一段時間向組態(tài)控件發(fā)送這個列表,組態(tài)控件解析每個組件的顯示條件,判斷顯示哪一張圖。
上一篇: 上一篇:兼職注冊亞馬遜店鋪靠譜嗎?亞馬遜美國站如何提高銷量?