国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2018-05-14 08:04應(yīng)亦豐
機(jī)電信息 2018年14期
關(guān)鍵詞:開發(fā)板線程對(duì)話框

應(yīng)亦豐

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

0 引言

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

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

1 項(xiàng)目體系架構(gòu)

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

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

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

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

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

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

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

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

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

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

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

2.2 各硬件連接方式

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

連接PLC上RS232串口線和USB轉(zhuǎn)接線的串口線需要自己動(dòng)手制作,購(gòu)買RS232接頭公、母頭各一個(gè),按圖3方式連接就可以。

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

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

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

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

圖3 PLC串口線制作接線圖

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

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

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

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

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

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

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

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

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

Linux系統(tǒng)雖然強(qiáng)大,但比較適合做服務(wù)器方面的應(yīng)用。對(duì)于開發(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ù)提示安裝,基本上是一路點(diǎn)擊“下一步”和“確定”按鈕。

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

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

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

圖5 設(shè)置Java的“Path”變量對(duì)話框

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

圖6 新建“JAVA_HOME”變量對(duì)話框

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

圖7 新建“CLASSPATH”變量對(duì)話框

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

5 PLC通信協(xié)議

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

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

5.1 請(qǐng)求碼

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

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

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

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

圖9 單元號(hào)設(shè)置對(duì)話框

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

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

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

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

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

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

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

5.2 回復(fù)碼

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

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

6 數(shù)據(jù)準(zhǔn)備

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

表2 區(qū)域代碼

圖10 HostLink校驗(yàn)碼計(jì)算器

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

表3 舒博拉尼凍干機(jī)PLC地址列表

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

7 編寫代碼

代碼編寫工程分為四個(gè)類,采用盡可能簡(jiǎn)單的架構(gòu)。因?yàn)楸疚闹饕菫榱岁U述一個(gè)數(shù)據(jù)采集的過程,所以不引入Java的各種設(shè)計(jì)模式,力求讓代碼的邏輯過程簡(jiǎn)單易讀。

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

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

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

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

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

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

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

圖13 四個(gè)Java類之間的調(diào)用關(guān)系

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

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

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

圖14 程序運(yùn)行最終結(jié)果

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

8 結(jié)語

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

圖15 手機(jī)端顯示凍干機(jī)實(shí)時(shí)運(yùn)行參數(shù)

[參考文獻(xiàn)]

[1]OMRON.CJ2m_CJ2H_編程手冊(cè)[Z].

[2]OMRON.PLC_HostLink通信手冊(cè)[Z].

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

猜你喜歡
開發(fā)板線程對(duì)話框
基于C#線程實(shí)驗(yàn)探究
基于STM32H7的FDCAN通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)?
正?;謴?fù)虛擬機(jī)
基于國(guó)產(chǎn)化環(huán)境的線程池模型研究與實(shí)現(xiàn)
線程池調(diào)度對(duì)服務(wù)器性能影響的研究*
Bootlace Worms’Secret etc.
What Is Beauty?
淺析單片機(jī)開發(fā)板的設(shè)計(jì)與制作
淺談VB的通用對(duì)話框《CommonDialog》控件的使用
ARM宣布mbed Enabled Freescale FRDM—K64F開發(fā)板通過微軟認(rèn)證