• 
    

    
    

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

      凍干機的數(shù)據(jù)云端化改造

      2018-05-14 08:04:22應亦豐
      機電信息 2018年14期
      關鍵詞:開發(fā)板線程對話框

      應亦豐

      (上海世卓科技有限公司,上海201323)

      0 引言

      近年來,“互聯(lián)網(wǎng)+”“物聯(lián)網(wǎng)”“智能控制”“工業(yè)互聯(lián)網(wǎng)”等概念層出不窮。同時,黨的十九大報告指出:“加快建設制造強國,加快發(fā)展先進制造業(yè),推動互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能和實體經(jīng)濟深度融合”。一時間,各大企業(yè)紛紛加強了自身在信息化、智能化建設方面的投入。為滿足制藥企業(yè)信息化、智能化改造的需求,筆者經(jīng)過潛心鉆研,以較低的成本初步完成了舒博拉尼凍干機的信息化、數(shù)據(jù)云端化改造。

      本文以舒博拉尼凍干機的信息化、數(shù)據(jù)云端化改造為例,具體闡述其詳細的開發(fā)過程,為制藥裝備數(shù)據(jù)云端化改造提供參考。

      1 項目體系架構

      凍干機的數(shù)據(jù)云端化改造系統(tǒng)架構如圖1所示。由于篇幅原因,本文只舉例最簡單、最必要的體系架構,從下至上只需要4個環(huán)節(jié),即可實現(xiàn)制藥裝備數(shù)據(jù)在移動端的顯示和查詢功能。

      在該項目中,使用了ARM開發(fā)板取代傳統(tǒng)的PC機,與傳統(tǒng)的PC系統(tǒng)架構相比,ARM開發(fā)板具有如下優(yōu)勢:

      圖1 凍干機的數(shù)據(jù)云端化改造系統(tǒng)架構圖

      (1)體積小。ARM開發(fā)板只有一本小號筆記本的大小,某些型號的開發(fā)板甚至只有一張名片的大小。

      (2)功耗低,發(fā)熱量小。ARM開發(fā)板的供電一般都是DC5V、2A,發(fā)熱量極小,主芯片上往往都不用加裝散熱片,很少發(fā)生因為發(fā)熱造成系統(tǒng)死機的情況。

      (3)操作系統(tǒng)穩(wěn)定。ARM開發(fā)板的操作系統(tǒng)基本是經(jīng)過調(diào)整的Linux系統(tǒng),而Linux操作系統(tǒng)往往被國際軟件開發(fā)商定制開發(fā)成服務器操作系統(tǒng),如美國的RedHatLinuxServer系列產(chǎn)品甚至可與微軟的WindowsSERVER在服務器領域分庭抗禮。因此,ARM開發(fā)板的操作系統(tǒng)具備長時間不間斷運行的特性。

      (4)安裝方便。由于ARM開發(fā)板體積小,可將其安裝在設備控制柜內(nèi)部,通信線直接連接到附近的PLC上,程序調(diào)試穩(wěn)定后,不用連接顯示器、鍵盤和鼠標,開機程序自動運行。

      市場上ARM開發(fā)板的品牌、型號琳瑯滿目,本文推薦使用通用型的、可安裝Linux操作系統(tǒng)且自帶RS232/485串口的ARM開發(fā)板。

      2 系統(tǒng)開發(fā)需要的硬件準備工作

      2.1 系統(tǒng)開發(fā)所需硬件

      系統(tǒng)開發(fā)所需硬件如表1所示。

      2.2 各硬件連接方式

      各硬件連接方式如圖2所示。

      連接PLC上RS232串口線和USB轉接線的串口線需要自己動手制作,購買RS232接頭公、母頭各一個,按圖3方式連接就可以。

      3 運行環(huán)境搭建

      首先,要確定開發(fā)語言,ARM開發(fā)板的官方推薦開發(fā)語言是Python,基于特殊原因,最終決定采用Java來完成這個開發(fā)工作。

      表1 開發(fā)所需硬件列表

      圖2 ARM開發(fā)板硬件連接

      圖3 PLC串口線制作接線圖

      Java是一門歷史比較悠久、成熟、跨平臺、面向?qū)ο蟮拈_發(fā)語言,其第三方插件和開源庫不計其數(shù),幾乎可以滿足任何開發(fā)要求(該項目要使用到RXTXcomm開源庫,以達到和PLC串口通信的目的)。其跨平臺的特性,可以實現(xiàn)先在Windows系統(tǒng)上開發(fā),完成后再部署到Linux系統(tǒng)上運行。

      運行環(huán)境的搭建具體流程:

      (1)登陸開發(fā)板官方網(wǎng)站下載頁,下載Linux鏡像文件,本文使用較新的版本:2017-07-05-jessie.img。

      (2)下載win32_disk_imager燒錄軟件,將鏡像文件燒錄到TF卡。

      (3)將所有硬件連接到位,包括顯示器、USB鍵盤和鼠標,最后將TF卡插入開發(fā)板,打開電源,可以在屏幕上看到系統(tǒng)啟動畫面和啟動信息。

      (4)進入桌面環(huán)境,點擊“打開終端”按鈕,打開系統(tǒng)終端。這是個類似于微軟DOS界面的終端,以后的所有工作基本上都是在這個終端界面里面完成。

      (5)一般情況下,Linux發(fā)行版里面都會自帶Java,可通過以下方式進行確認:在終端里面輸入命令“java-version”并回車,可以看到如圖4所示的提示信息,表明系統(tǒng)已經(jīng)自帶了1.8版本的Java運行庫。

      (6)接下來,安裝第三方RXTXcomm開源庫,沒有它的支持,開發(fā)板無法訪問串口。但是,RXTXcomm開源庫最后的更新時間大致是在2006年左右,因為除了工業(yè)領域,商業(yè)市場上幾乎99%的硬件都已經(jīng)拋棄了串口這種連接方式,所以RXTX主頁上壓縮包里面的文件只支持Linux IA32/IA64的架構,并不支持ARM架構,需要通過編譯源代碼來完成RXTXcomm在開發(fā)板上的安裝。

      4 開發(fā)環(huán)境搭建

      Linux系統(tǒng)雖然強大,但比較適合做服務器方面的應用。對于開發(fā)環(huán)境而言,還是在Windows系統(tǒng)上搭建比較便利。

      4.1 下載適合操作系統(tǒng)的JDK開發(fā)包

      下載適合操作系統(tǒng)的JDK開發(fā)包并安裝(32位或64位),開發(fā)版本可以使用1.6、1.7或1.8。隨后,根據(jù)提示安裝,基本上是一路點擊“下一步”和“確定”按鈕。

      4.2 系統(tǒng)環(huán)境配置

      圖4 系統(tǒng)自帶Java運行庫

      (1)添加Java的系統(tǒng)變量Path屬性,如圖5所示。打開Windows的“系統(tǒng)屬性”對話框,點擊“高級”標簽頁,再點擊“環(huán)境變量”按鈕。在“系統(tǒng)變量”中找到名為“Path”的系統(tǒng)變量,雙擊進入編輯模式。在“變量值”一欄的最后輸入“;%JAVA_HOME%in;%JAVA_HOME%jrein”。

      圖5 設置Java的“Path”變量對話框

      (2)新增Java的JAVA_HOME系統(tǒng)變量屬性,如圖6所示。點擊“環(huán)境變量”對話框的“新建”按鈕,變量名一欄輸入“JAVA_HOME”,變量值一欄輸入Java程序的安裝路徑“C:ProgramFilesJavajdk 1.8.0_40”。

      圖6 新建“JAVA_HOME”變量對話框

      (3)新增Java的CLASSPATH系統(tǒng)變量屬性,如圖7所示。再次點擊“環(huán)境變量”對話框的“新建”按鈕,變量名一欄輸入“CLASSPATH”,變量值一欄輸入Java程序的安裝路徑“.;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar”。

      圖7 新建“CLASSPATH”變量對話框

      (4)下載EclipseIDE開發(fā)軟件,將其解壓至一個文件夾,雙擊目錄下“eclipse.exe”,打開IDE開發(fā)界面即可進行編程工作,至此開發(fā)環(huán)境搭建完成。

      5 PLC通信協(xié)議

      在動手寫代碼前,要先搞清楚凍干機的PLC通信協(xié)議。簡單來說,就是開發(fā)板和PLC“交流”的一種規(guī)范,通常采用“一問一答”形式。開發(fā)板會首先發(fā)起一個請求代碼,傳送到PLC;PLC再根據(jù)請求碼的內(nèi)容,提取出合適的數(shù)據(jù),再以相同的規(guī)范發(fā)回給開發(fā)板,這樣就可以采集到PLC內(nèi)存區(qū)中的實時數(shù)據(jù)并加以分析利用了。

      舒博拉尼凍干機采用的是歐姆龍CJ2M-CPU13-V2.0的CPU單元,這種PLC遵循歐姆龍公司的HostLink協(xié)議,現(xiàn)在就具體分析一下這種協(xié)議的編碼方式。

      5.1 請求碼

      HostLink請求碼規(guī)范如圖8所示。

      圖8 HostLink請求碼規(guī)范

      (1)請求碼開頭始終用@開始,回復碼也是一樣。

      (2)單元號,指的是PLC編程時設定的序號,默認為0,可以在電腦上用歐姆龍CX-Programmer程序打開查看,如圖9所示。

      圖9 單元號設置對話框

      (3)頭部代碼:始終為FA,回復碼也一樣。

      (4)響應時間:設置范圍為0~F,單位為10ms。例如,設置為1,則響應等待時間為10ms。

      (5)ICF、DA2、SA2、SID:通常固定設置為00。

      (6)讀/寫命令:讀命令(0101)、寫命令(0102)。

      (7)操作內(nèi)容:包含3個請求內(nèi)容,即請求PLC哪個區(qū)域的數(shù)據(jù)?從哪個地址開始操作?連續(xù)操作幾個數(shù)據(jù)?區(qū)域代碼查詢?nèi)绫?所示。

      (8)校驗碼:算法比較復雜,這里不具體展開,可下載一個名為“HostLink校驗碼計算器”的軟件進行計算,如圖10所示,計算時需要輸入請求碼的前面所有字符,包括“@”。

      (9)終止符:請求碼和回復碼都一樣,始終是“*回車”。

      5.2 回復碼

      HostLink回復碼規(guī)范如圖11所示。

      回復碼的前半部分定義和請求碼相同,這里就不再重復解釋。PLC返回的數(shù)據(jù)基本是包含在回復碼的后半段。如圖11所示:從校驗碼前面開始推算,最靠近校驗碼的是請求的最后一個數(shù)據(jù),再往前推算是N-1個、N-2個,以此類推。

      6 數(shù)據(jù)準備

      舒博拉尼凍干機的過程數(shù)據(jù)都存放在PLC的DM區(qū)中,各參數(shù)對應地址如表3所示。

      表2 區(qū)域代碼

      圖10 HostLink校驗碼計算器

      圖11 HostLink回復碼規(guī)范

      表3 舒博拉尼凍干機PLC地址列表

      通過觀察可以發(fā)現(xiàn),參數(shù)地址基本上都在一個比較集中的區(qū)域,可以采取一種連續(xù)讀取的方法,將D100~D152的數(shù)據(jù)一下子讀取出來,再進行內(nèi)部分析,對應到每個參數(shù)上。

      7 編寫代碼

      代碼編寫工程分為四個類,采用盡可能簡單的架構。因為本文主要是為了闡述一個數(shù)據(jù)采集的過程,所以不引入Java的各種設計模式,力求讓代碼的邏輯過程簡單易讀。

      7.1 獲取開發(fā)板的串口表達字符串

      串口一般在Windows系統(tǒng)上表達為“COM1、COM2”之類的。但是,在Linux系統(tǒng)下就完全不一樣了。先要運行一個自己編寫的小程序,列出開發(fā)板上可用的串口列表和在Linux系統(tǒng)下串口的表達字符串。這個字符串在接下來的數(shù)據(jù)采集代碼中是要用到的。

      小程序會收集所有串口列表并顯示出來,將程序編譯后的.class文件復制到開發(fā)板上,運行結果如圖12所示。

      從圖12可以看到,串口的字符串是“/dev/ttyUSB0”,和Windows系統(tǒng)下的完全不一樣,開發(fā)者一定要注意,不然串口通信是連接不上的。

      7.2 凍干機數(shù)據(jù)采集程序

      該套數(shù)據(jù)采集程序很簡單,只有四個類,其調(diào)用關系如圖13所示。

      圖12 Linux系統(tǒng)下的可用串口

      圖13 四個Java類之間的調(diào)用關系

      以上程序使用到了Java的線程機制,由于后期還將把這個程序功能擴展為將采集數(shù)據(jù)上傳到SQL數(shù)據(jù)庫、移動端手機顯示數(shù)據(jù)等,加上網(wǎng)絡原因等,一次讀寫操作耗時3~4s是很常見的事情。有移動開發(fā)經(jīng)驗的工程師知道,在Andoird開發(fā)中,如果有涉及網(wǎng)絡的操作都必須在子線程中完成,不得寫入UI線程。因此,如果將數(shù)據(jù)采集和數(shù)據(jù)庫讀寫操作都放在一個線程中,難免會導致線程阻塞。此處程序通過采用每隔30s就從后臺開辟一個新線程去讀取PLC數(shù)據(jù)的方法,避免線程阻塞。

      將所有程序編譯后,所有.class文件復制到開發(fā)板中,運行程序最終結果如圖14所示。

      至此,凍干機的數(shù)據(jù)都被采集顯示出來了,由于圖14所顯示的設備正處于二次干燥階段,所以,干箱壓力和冷凝器壓力這兩個壓力傳感器獲取的是PLC默認值,并不反映現(xiàn)場實際的生產(chǎn)情況。

      圖14 程序運行最終結果

      隨后即可將采集的數(shù)據(jù)上傳至位于云端的MySQL數(shù)據(jù)庫中,再結合手機前端的編程即可在任意時間、任意地點遠程監(jiān)控車間中運行的凍干機實時參數(shù)了,如圖15所示。

      8 結語

      通過本次對舒博拉尼凍干機的信息化、數(shù)據(jù)云端化改造,為其他各種類型的制藥裝備信息化改造提供了參考,更為重要的是,數(shù)據(jù)采集的過程已經(jīng)將所有的制藥裝備運行數(shù)據(jù)存放于位于云端的SQL數(shù)據(jù)庫中,對將來各種大數(shù)據(jù)的統(tǒng)計以及藥品質(zhì)量的追溯來說,具有重大的意義。

      圖15 手機端顯示凍干機實時運行參數(shù)

      [參考文獻]

      [1]OMRON.CJ2m_CJ2H_編程手冊[Z].

      [2]OMRON.PLC_HostLink通信手冊[Z].

      [3]李興華.JAVA開發(fā)實戰(zhàn)經(jīng)典[M].北京:清華大學出版社,2009.

      猜你喜歡
      開發(fā)板線程對話框
      正常恢復虛擬機
      Bootlace Worms’Secret etc.
      中學科技(2018年12期)2018-12-19 11:22:28
      Microchip最新推出兩款PIC32 Curiosity開發(fā)板
      淺談linux多線程協(xié)作
      淺析單片機開發(fā)板的設計與制作
      電子制作(2017年22期)2017-02-02 07:10:14
      Mouser為您呈上開發(fā)關鍵之STMicroelectronics Nucleo開發(fā)板
      Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
      Linux線程實現(xiàn)技術研究
      快速抓取對話框中的完整信息
      電腦迷(2012年22期)2012-04-29 20:30:54
      么移動中間件線程池并發(fā)機制優(yōu)化改進
      宿州市| 洛宁县| 大竹县| 霍邱县| 扶余县| 斗六市| 锦屏县| 遂宁市| 罗定市| 江孜县| 明溪县| 黄大仙区| 湾仔区| 南丹县| 西丰县| 安宁市| 边坝县| 沈丘县| 达拉特旗| 大荔县| 阿拉善盟| 剑河县| 灵山县| 磐安县| 长岭县| 蕉岭县| 宁武县| 三门峡市| 邮箱| 鹤峰县| 仪征市| 墨玉县| 武胜县| 济南市| 昭通市| 顺平县| 盐亭县| 纳雍县| 北川| 安龙县| 遂川县|