亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        攪拌站控制系統(tǒng)的設計與研發(fā)初探

        2018-12-20 06:58:40黃光慈周菊曹希龍萬林林方濤
        商品混凝土 2018年12期
        關鍵詞:界面數(shù)據(jù)庫信號

        黃光慈,周菊,曹希龍,萬林林,方濤

        (徐州徐工施維英機械有限公司,江蘇 徐州 221004)

        1 整體架構設計

        目前市面上,所有的控制系統(tǒng)都是以電腦 PC 為控制核心,兼用其他控制元件來完成整體的控制要求。不同的是,有的是使用 PC+PLC 來完成,有的采用PC+PLC+配料模塊來完成,更有直接采用一臺 PC 完成全部處理的功能。各種方式各有利弊。

        1.1 采用獨立 PC 設計的控制系統(tǒng)

        采用 PC 獨立設計的控制系統(tǒng),普通的商用 PC 難以達到使用要求,因此需要使用專用的工控機,同時工控機主板上必須具有多塊 PCI 插槽,因為需要額外安裝多個信號采集卡。當外界信號通過信號采集卡進入 PC之后,即可根據(jù)程序指令來輸出不同的動作,讓指定的外部元件動作。市場上采用這種獨立 PC 設計的控制方式的廠家較少,主要是因為:

        (1)軟件設計的難度較大。軟件不光是數(shù)據(jù)的處理分析,還需要對生產(chǎn)流程進行控制,實現(xiàn)各種互鎖條件等等。開發(fā)難度巨大。

        (2)硬件成本較高。除去一臺專業(yè)的工控機,還需要額外擴展多塊價格不菲的信號采集卡。

        (3)PC 機直接與外界信號相連,容易受到外界信號的干擾?;炷翑嚢枵镜纳a(chǎn)環(huán)境復雜,控制室中由于強電、弱電柜的存在,隨時有著強大的電磁干擾的存在。因此,一旦有強電流進入電腦主板,輕則燒毀信號采集卡,重則導致電腦主板直接燒毀。而主板一旦毀壞,則整臺 PC 機都無法工作,由此將給攪拌站帶來巨大的損失。

        1.2 采用 PC+PLC 設計的控制系統(tǒng)

        在這種方式中,PC 作為上位機,PLC 作為下位機,兩者之間通過 MODBUS 協(xié)議進行通訊。PLC 即所謂可編程邏輯控制器,是專業(yè)的用于工業(yè)控制領域的編程控制器,經(jīng)過多年的發(fā)展,市場上已經(jīng)可以買到多種價格相對便宜而又穩(wěn)定耐用的 PLC 產(chǎn)品,比如西門子PLC、三菱 PLC 等等。

        這種方式的好處顯而易見,PC 不再需要與外部信號連接,因此就降低了 PC 被外界干擾電流損壞的風險。其次,由于與外界信號相連的是 PLC,因此就算PLC 被外界干擾損壞,也只需要更換一個 PLC 模塊即可,而一個 PLC 模塊價格是遠遠低于 PC 的。第三,生產(chǎn)控制由 PLC 來處理,因此對于上位機來說,無論是編程開發(fā)的壓力還是處理生產(chǎn)流程的壓力都要小很多。

        但是,這種方式的缺點也同樣明顯。第一,PLC 編程與目前現(xiàn)有的 PC 編程語言差異較大,需要由完全不同的人員來編寫。這就需要至少兩人來負責控制系統(tǒng)的開發(fā),一個負責上位機開發(fā),另一人負責下位機開發(fā)。不過 PLC 編程總體來說比 PC 編程還是要簡單很多的。因此總體上并沒有多大的難度。第二,由于 PLC 的專長是處理數(shù)字量,即對0或1進行條件判斷,但是對于模擬量的處理,PLC 由于其本身 CPU 處理能力的限制,對模擬量的處理速度非常慢。因此,在攪拌站的控制中,對于上位機來說又需要承擔一部分生產(chǎn)的職能,即由上位機進行運算來控制PLC 進行配料、投料等等。因此,這種 PC+PLC 的設計方式,并沒有完全的將上位機的數(shù)據(jù)管理和下位機生產(chǎn)流程控制分開。由此就又產(chǎn)生了第三種控制模式,即采用 PC +PLC+配料模塊設計的控制系統(tǒng)。

        1.3 采用 PC+PLC+配料模塊設計的控制系統(tǒng)

        這種方式與 1.2 中所述方式的不同在于,新增了配料模塊。配料模塊就是將 PC 的流程控制功能獨立出來,由專門的硬件進行控制,并在合適的時間將動作信號傳遞給 PLC,然后由 PLC 進行生產(chǎn)控制。上位機通過 MODBUS 協(xié)議與每個配料模塊相連,然后將配方值傳送到配料模塊中。同時每個配料秤在生產(chǎn)中的重量,全都由傳感器輸送給配料模塊,然后配料模塊經(jīng)過計算分析之后,輸出相應的配料信號或投料信號,之后 PLC接收到配料模塊產(chǎn)生的信號之后,可以根據(jù)當前的條件進行判斷是否執(zhí)行相應的流程即可。

        目前,采用這種方式的廠家比較多。因為它實現(xiàn)了“專人做專事”的控制模式,通過不同模塊之間的協(xié)同合作來完成生產(chǎn)控制。同時,目前市場上也有很多廠家單獨生產(chǎn)配料模塊,這些廠家生產(chǎn)的配料模塊,經(jīng)過多年的市場檢驗,已經(jīng)比較成熟,對于配料的精度已經(jīng)掌握比較好,因此可以直接購買現(xiàn)成的模塊,然后再進行MODBUS 通訊編程即可。同時,這種模式因為省去了生產(chǎn)流程的控制,只需要開發(fā) MODBUS 協(xié)議即可,因此開發(fā)難度比上一種也要簡單一些。

        簡單地說,這種模式就是以多個簡單的模塊進行組合起來,就能夠?qū)崿F(xiàn)負責的流程控制模式。而每個模塊承擔的職責相對單一且清晰,編程難度也不是很大。同時,筆者本人所從事的攪拌站軟件開發(fā)工作中,也采用的是 PC+PLC+配料模塊的方式進行攪拌站控制的。

        2 編程語言的選擇

        PC 平臺上的編程語言有上百種,有不需要編譯就能直接運行的腳本語言,如 JavaScript;也有必須預編譯才能執(zhí)行的語言,如 Java、C#;甚至還有使用中文進行編程的“易語言”,等等。但是,如何從中選擇合適的語言進行開發(fā)呢?筆者總結出來以下幾條原則:

        (1)該編程語言必須能夠穩(wěn)定的運行于 PC 平臺上,且能夠方便快速的進行桌面應用程序的開發(fā)。

        (2)該語言需要有大量的第三方開發(fā)工具包,換句話說,必須有大量的編程人員使用這種語言進行開發(fā),即所謂豐富的軟件生態(tài)環(huán)境。

        (3)該語言必須能夠直接調(diào)用 Windows 平臺的各種 API 函數(shù)。

        (4)該語言必能能夠很好地在 x86 和 x64 兩種Windows 平臺的架構下運行。

        基于以上幾點,在目前的主流開發(fā)語言中,優(yōu)先推薦的就是 C#、C++、Java 這三種編程語言。同時,筆者個人認為 Java 的優(yōu)勢在于開發(fā)企業(yè)級的應用軟件,而在工業(yè)控制領域的應用則并不是非常廣泛。因此,其實最優(yōu)的選擇就是 C# 和 C++ 了。前者是微軟目前大力推廣的編程語言,且 .net 平臺已經(jīng)集成在了 Windows7及以上的平臺上,可以說是“背靠大樹好乘涼”。而后者也是擁有多年歷史,廣泛應用于各種平臺與硬件軟件中。但是 C++ 需要程序員去處理內(nèi)存、野指針等問題,處理起來復雜且棘手。而 C# 則無需考慮這些問題。因此,目前在工業(yè)控制領域中,使用最廣泛的就是C# 編程了。筆者本人所在的軟件開發(fā)團隊,也是使用C# 進行攪拌站上位機軟件開發(fā)的。

        PLC 方面則無需贅述,使用梯形圖編程即可。

        3 程序模塊設計

        模塊化的設計是軟件編程中的重要思想,模塊的使用者不需要知道模塊的內(nèi)部構造,只需要在需要時調(diào)用相關模塊,然后在模塊處理完成之后獲取到結果即可。對于中間的步驟,無需讓外界知曉。這里著重以筆者所在的設計團隊進行開發(fā)攪拌站控制系統(tǒng)進行模塊設計方面的分析。

        3.1 MODBUS 通訊模塊

        MODBUS 協(xié)議并不是一個全雙工的通信協(xié)議,即MODBUS 協(xié)議支持讀寫操作,但是兩個動作不能同時進行。而且,在攪拌站運行的過程中,對 PLC 的讀操作要多于寫操作,因為需要將 PLC 的狀態(tài)實時的反饋的電腦的顯示界面中;而寫操作,除非在特殊情況下需要進行手動干預,否則一般不需要進行大量的寫操作。因此,基于以上兩個點分析,筆者所在的軟件開發(fā)團隊中,開發(fā)出了一個所謂的 “通訊節(jié)拍器”進行軟件通訊。具體的模型可以解釋為一下內(nèi)容:

        (1)通訊節(jié)拍器一般情況下只對 PLC 進行讀取。

        (2)通訊節(jié)拍器內(nèi)容有一個任務隊列,即需要進行的寫操作。通訊節(jié)拍器會實時監(jiān)測任務隊列中的情況,當這個任務隊列為空時,即沒有需要進行的寫操作時,節(jié)拍器就進行默認操作,即讀操作。

        (3)當需要進行寫操作時,會有一個新的寫操作對象被添加到通訊節(jié)拍器的任務隊列中。通訊節(jié)拍器會監(jiān)測到任務隊列中有新的寫操作被添加進來時,會停止默認的讀操作,然后開始進行寫入操作。

        (4)一個寫入操作完成之后,繼續(xù)檢測任務隊列,是否還有其他寫操作,如果有則繼續(xù)下一個寫入操作。重復此循環(huán),直到任務隊列被清空。

        (5)任務隊列清空后,恢復進行默認的讀操作。

        3.2 界面編輯模塊

        在使用 VisualStudio 進行軟件開發(fā)時,可以進行控件的拖拽和編輯,以此來完成界面的編輯。但是要求是目標電腦上必須安裝了 VisualStudio,且這樣的改動是直接修改源程序的,這樣顯然會給現(xiàn)場調(diào)試帶來巨大不便,因為安裝一個 VS 需要耗費數(shù)小時的時間,且直接修改源代碼也存在較大風險。那么能不能使用 C# 編寫一個能夠自定義和修改界面的程序呢?

        答案當然是能的。這里需要使用到微軟自帶的組件DesignSruface 以及 DesignSurfaceManager 組件。在應用程序的引用列表中,添加 System.ComponentModel 的引用,然后直接在程序中就可以引用 DesignSruface 以及 DesignSurfaceManager 組件了。有了以上兩個組件之后,編輯器最主要的框架可以說就搭好了,剩下要做的就是具體的實例和重寫相關方法和類。具體的編碼工作完成之后,即可以實現(xiàn)簡單的界面編輯操作。如圖 1。

        在圖1中,可以看到左邊的工具欄顯示了各種控件,中間是當前的界面,右邊則是一個控件的屬性。在這個編輯器中,就可以改動或編輯各種界面,改動之后會生成一個 XML 文件,之后再進行讀取就可以將整個界面呈現(xiàn)出來。

        3.3 數(shù)據(jù)持久化模塊

        數(shù)據(jù)持久化是每一個軟件系統(tǒng)中必須面臨的問題。一個好的數(shù)據(jù)持久化框架,能夠減少大量重復代碼的開發(fā),增加開發(fā)效率。筆者所在的團隊中,使用的SQLServer 數(shù)據(jù)庫,因此就需要在程序運行中頻繁地對SQLServer 數(shù)據(jù)庫進行讀寫。在所有的讀寫操作中,都需要一下幾個共同的操作:

        (1)創(chuàng)建 SQL 連接字符串。

        (2)根據(jù) SQL 連接字符串創(chuàng)建 SqlConnection 對象對目標數(shù)據(jù)庫進行嘗試連接。

        (3)對數(shù)據(jù)庫的連接成功以后,在執(zhí)行不同的操作,如增刪改查等等。

        圖1 界面編輯器

        根據(jù)軟件開發(fā)的原則,將不變的部分封裝起來,將變化的部分獨立出來。于是,在上述的 1、2 步驟中,建立起一個通用的數(shù)據(jù)庫代理對象,通過代理對象來訪問數(shù)據(jù)庫。然后將步驟三獨立出來,成為一個委托,將不同的操作調(diào)用不同的委托即可。程序代碼如下:

        以上代碼中,ReadDataHandler hand 是一個委托,它的具體聲明如下:

        以上就是一個數(shù)據(jù)庫代理的部分代碼段。通過這個代碼段,只需要編寫相應的數(shù)據(jù)轉(zhuǎn)換成對象的方法,然后調(diào)用 ReadDataHandler 的委托,傳遞給數(shù)據(jù)庫代理的相關方法即可完成對數(shù)據(jù)庫的讀操作。而無需再進行數(shù)據(jù)庫的創(chuàng)建連接、測試連接等步驟。因為數(shù)據(jù)庫代理對象已經(jīng)替我們完成了這寫操作。

        4 編碼原則

        編碼原則是在程序開發(fā)過程中,由前人經(jīng)過大量實踐總結出來的一些經(jīng)驗,而并非具體的語法規(guī)則。只是采用這些規(guī)則會對程序的開發(fā)維修帶來很多方便,因此,在所有的軟件開發(fā)團隊中,都有一套自己的編碼原則。這里簡單介紹幾條筆者所在的團隊的編碼原則:

        (1)每個類的命名必須以這個類所表示的實際意義來進行命名,使用類中文名稱對應的英文來命名。如果,一個混凝土的生產(chǎn)計劃,可以命名為ConcreteProductPlan。

        (2)類的命名方式采用駱駝命名法則,即每個單詞的首字母大寫,其余字母小寫的方式,如生產(chǎn)任務,可以寫為 ProduceMission。

        (3)私有變量必須以小寫 m 和下劃線開后,之后是采用駱駝命名法則的變量的實際名稱。比如,一個私有的時間變量,表示混凝土的生產(chǎn)開始時間,則可以命名為:

        (4)常量必須以全大寫的方式命名。

        (5)類中的每個方法不應有過長的方法體,最長不能超過100行。如果行數(shù)超過了 100,則需要對這個方法進行拆分,將其拆分成若干個小方法。

        (6)每個類中的方法,無論是共有還是私有,一律采用駱駝命名法進行。并且必須以這個方法所起到的實際作用來命名。

        5 總結

        控制系統(tǒng)是混凝土攪拌站的核心和大腦,因此,一個良好優(yōu)秀的程序設計,不光能夠為開發(fā)人員來帶來更高的效率,也能為用戶帶來良好的體驗。本文以筆者所從事的開發(fā)工作出發(fā),簡單敘述了不同市面上幾種控制系統(tǒng)和控制系統(tǒng)的相關部件及其優(yōu)缺點。軟件發(fā)開是一條無止境的道路,望與各位軟件開發(fā)者共勉。

        猜你喜歡
        界面數(shù)據(jù)庫信號
        信號
        鴨綠江(2021年35期)2021-04-19 12:24:18
        完形填空二則
        國企黨委前置研究的“四個界面”
        當代陜西(2020年13期)2020-08-24 08:22:02
        基于FPGA的多功能信號發(fā)生器的設計
        電子制作(2018年11期)2018-08-04 03:25:42
        基于FANUC PICTURE的虛擬軸坐標顯示界面開發(fā)方法研究
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        人機交互界面發(fā)展趨勢研究
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        基于LabVIEW的力加載信號采集與PID控制
        国产av精品一区二区三区视频| 又色又爽又黄又硬的视频免费观看 | 精品亚亚洲成av人片在线观看| 午夜精品久久99蜜桃| 乱中年女人伦| 大屁股人妻女教师撅着屁股| 国产一区二区三区av在线无码观看| 国产精品亚洲综合色区韩国| 偷窥偷拍一区二区三区| 亚洲天堂av在线免费观看| 东京热人妻系列无码专区| 国产亚洲日本精品无码 | 99久久国内精品成人免费| 精品色老头老太国产精品| 亚洲av天堂在线视频| 国产精品无圣光一区二区| 在线观看无码一区二区台湾| 亚洲在中文字幕乱码熟女| 精品无码av无码专区| 国产永久免费高清在线| 秋霞午夜无码鲁丝片午夜精品 | 国产99视频一区二区三区| 国产成人av三级在线观看韩国| 亚洲人成网网址在线看| 少妇被粗大的猛进69视频| 一本久久精品久久综合桃色| 精品国产精品三级在线专区| 亚洲av无码专区在线播放| 国产美女在线一区二区三区| 亚洲人妻av在线播放| 日韩综合无码一区二区| 欧美aa大片免费观看视频| 香蕉亚洲欧洲在线一区| 国产传媒精品成人自拍| 亚洲av中文无码乱人伦在线播放| 亚洲AV无码精品呻吟| 欧美亚洲国产精品久久久久| 免费一区二区在线观看视频在线 | 久久精品人妻无码一区二区三区| 亚洲色婷婷免费视频高清在线观看| 国产99视频一区二区三区 |