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

?

低壓機(jī)組控制模塊軟件開發(fā)環(huán)境研究

2015-07-28 02:42:31天津水利電力機(jī)電研究所天津301900
水電站機(jī)電技術(shù) 2015年3期
關(guān)鍵詞:控制裝置串口

雷 亮(天津水利電力機(jī)電研究所,天津 301900)

低壓機(jī)組控制模塊軟件開發(fā)環(huán)境研究

雷亮
(天津水利電力機(jī)電研究所,天津 301900)

摘要:本文介紹水輪機(jī)低壓機(jī)組控制裝置結(jié)構(gòu),且在Linux環(huán)境下搭建一個(gè)為低壓機(jī)組控制裝置搭載的軟模塊的開發(fā)環(huán)境,并測(cè)試串口數(shù)據(jù)傳輸實(shí)際情況。

關(guān)鍵詞:串口;Linux;Java;控制裝置

1 引言

智能技術(shù)已經(jīng)開始影響世界經(jīng)濟(jì),工業(yè)領(lǐng)域的智能化業(yè)已突顯,水電站的自動(dòng)化控制集成程度越來越高,發(fā)電機(jī)組的集中控制越來越趨于專有化、智能化,能夠集成信息采集、控制、同期、保護(hù)功能于一體的發(fā)電機(jī)控制模塊將會(huì)在未來發(fā)電機(jī)控制領(lǐng)域發(fā)揮主導(dǎo)作用。智能模塊作為控制主體需要完成各種復(fù)雜的功能,對(duì)信息交換的要求也就比較高,各功能模塊所需數(shù)據(jù)的獲取及共享需要一個(gè)可靠的平臺(tái),選擇一個(gè)可靠的信息平臺(tái)并建立一套完善的信息機(jī)制是非常必要的。

2 系統(tǒng)平臺(tái)介紹

建立整個(gè)數(shù)據(jù)集成系統(tǒng)需要選擇一個(gè)良好的載體平臺(tái)才能夠保證程序良好地運(yùn)行,選擇好數(shù)據(jù)載體和通訊端口可使模塊適應(yīng)大多數(shù)應(yīng)用場(chǎng)合。

2.1系統(tǒng)平臺(tái)—Linux

低壓機(jī)組控制模塊的系統(tǒng)平臺(tái)選擇Linux,Linux在家用電腦系統(tǒng)中并沒有占有較大份額,但在工業(yè)領(lǐng)域中卻有著很高的地位,它在可靠性、可伸縮性、運(yùn)行速度等方面很突出。

首先,Linux是開源的,任何人都可以看它的源代碼,這就使得它特別安全,這種安全的特性對(duì)于工業(yè)領(lǐng)域的安全要求來說是至關(guān)重要的,而Windows卻不能做到這一點(diǎn),因?yàn)閃indows不可能開源,只能不斷地打補(bǔ)丁來修補(bǔ)新發(fā)現(xiàn)地漏洞,致使系統(tǒng)越來越臃腫。

其次,Linux有著一個(gè)很高效地內(nèi)核,Linux平臺(tái)對(duì)硬件要求較低,而且,可以免費(fèi)獲得許多程序和驅(qū)動(dòng)。Linux對(duì)系統(tǒng)內(nèi)存有著絕對(duì)的支配權(quán),并不像Windows那樣依賴虛擬內(nèi)存,可以在相對(duì)低配置地平臺(tái)上完成相對(duì)于Windows更多地工作。Windows使用“頁面文件”,它的作用是擴(kuò)展內(nèi)存,就是說用硬盤虛擬內(nèi)存的方式來為應(yīng)用程序提供比內(nèi)存大的多的運(yùn)行空間。但這個(gè)方式有一個(gè)缺點(diǎn),就是硬盤比內(nèi)存響應(yīng)速度慢。所以,如果一臺(tái)計(jì)算機(jī)有較少內(nèi)存時(shí),虛擬內(nèi)存(就是某一些硬盤空間)就會(huì)被頻繁使用,結(jié)果就使得計(jì)算機(jī)的運(yùn)行速度非常慢。盡管用戶也可以將“頁面文件”調(diào)小以希望能降低虛擬內(nèi)存的份額,但Windows本身卻不會(huì)響應(yīng)用戶要求,虛擬內(nèi)存(即頁面文件)還是在被使用著。這就是使用Windows的困境之一:用戶無法真正掌控系統(tǒng)。而對(duì)于Linux,用戶可以設(shè)置完全不用虛擬內(nèi)存,也可以設(shè)置成先使用內(nèi)存,不夠時(shí)再使用虛擬內(nèi)存。當(dāng)然也可以設(shè)置成盡量使用虛擬內(nèi)存,留出系統(tǒng)的內(nèi)存作為它用,用戶有決定的權(quán)力。

綜上所述,低壓機(jī)組控制模塊軟件系統(tǒng)選用Linux作為系統(tǒng)平臺(tái),可以降低低壓機(jī)組控制模塊運(yùn)行要求、提高可靠性。

2.2數(shù)據(jù)載體

低壓機(jī)組控制模塊信息交換平臺(tái)必須可靠高效,它應(yīng)該將各種不同類型的數(shù)據(jù)存儲(chǔ)起來,并建立一個(gè)系統(tǒng)各功能模塊都能識(shí)別的統(tǒng)一數(shù)據(jù)接口,讓有權(quán)限的模塊索取所需數(shù)據(jù)。數(shù)據(jù)載體的目的是把信息讀取出來,并共享到每個(gè)需要數(shù)據(jù)的模塊,我們選擇拓展標(biāo)記語言xml來實(shí)現(xiàn)低壓機(jī)組控制模塊數(shù)據(jù)的共享,此標(biāo)記語言不僅可以實(shí)現(xiàn)數(shù)據(jù)共享,其用處還有很多:如HTML、留言板、J2EE的WEB配置信息、word和excel、hibernate的*.cfg.xml映射關(guān)系存儲(chǔ)等。智能模塊能讀懂這種標(biāo)記,模塊或者模塊之間的信息傳遞可以依靠這種標(biāo)記來實(shí)現(xiàn),這種不需要體系數(shù)據(jù)庫的數(shù)據(jù)存儲(chǔ)、更新和讀取能夠更快更有效地將場(chǎng)數(shù)據(jù)共享。

2.3通訊方式

低壓機(jī)組控制裝置的信息交換支持現(xiàn)階段流行的方式:RJ45、DB9、USB、can-open接口,其中,USB接口主要設(shè)計(jì)功能為系統(tǒng)升級(jí)或者補(bǔ)充程序編寫端口,RJ45用于支持以太網(wǎng),DB9用于支持采用RS232及RS485兩種通訊方式的硬件;can-open用于支持can總線。本文將介紹為模塊編寫RS485 RTU規(guī)約過程中的平臺(tái)及環(huán)境設(shè)置。

3 開發(fā)環(huán)境配置

開發(fā)系統(tǒng)選擇在SUSELinuxEnterpriseserver 11環(huán)境下。測(cè)試硬件的串口采用MOXA的UPORT 1150USB轉(zhuǎn)串口產(chǎn)品,串口在現(xiàn)在的工業(yè)通訊領(lǐng)域還被經(jīng)常應(yīng)用。開發(fā)選用的java版本為1.7.0_51,需要下載的支持串口開發(fā)的開發(fā)包為:RXTX-2.1-7-bins-R2。

為在Linux平臺(tái)上開發(fā)串口驅(qū)動(dòng),選擇支持Linux平臺(tái)的開發(fā)環(huán)境——WildFly,即Jboss,它是一個(gè)免費(fèi)的、開放源碼J2EE的實(shí)現(xiàn),安裝方便,需要內(nèi)存和硬盤空間較小。

3.1安裝/更新所需java到Linux

安裝新版本的java(本次為1.7.0_51,安裝在/usr/java下),安裝完成后根據(jù)安裝路徑設(shè)置環(huán)境變量,以下設(shè)置建議寫在bash_profile里以保證每次登錄都可以更新內(nèi)存環(huán)境變量,PATH變量用于標(biāo)識(shí)安裝java開發(fā)工具包(JavaDevelopmentKit,JDK)的位置,而CLASSPATH變量設(shè)置為存儲(chǔ).class文件的目錄:

(1)設(shè)置java_home:exportJAVA_HOME=/usr/java/jdk1.7.0_51

(2)設(shè)置java路徑:exportPATH=$JAVA_HOME/bin: $PATH

(3)設(shè)置java庫路徑:exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

值得注意的是:必須在PATH變量插入分號(hào)和句號(hào),分號(hào)是PATH目錄中入口之間的分隔符,而插入句號(hào)說明是當(dāng)前目錄(符號(hào)應(yīng)是英文狀態(tài)下輸入)。

安裝完成后系統(tǒng)默認(rèn)的java依然是系統(tǒng)最初安裝的java1.6,未重啟計(jì)算機(jī)前(或未重新登錄前)想要最新安裝的java1.7發(fā)揮作用,需要在系統(tǒng)配置內(nèi)設(shè)定一些參數(shù)。

在登錄系統(tǒng)后,鍵入:java-version來查看現(xiàn)行java的版本,可以用whichjava來確定現(xiàn)行java的安裝路徑。鍵入whichjava后得知現(xiàn)行的java安裝目錄為:/usr/bin/java,而現(xiàn)在需要運(yùn)行的java安裝在/usr/java下,且文件夾名字為jdk1.7.0_51,想要立即使用新版java而不重新登錄的話,可以在這里做個(gè)鏈接,系統(tǒng)能找到新安裝的java。

要建立鏈接,首先要進(jìn)入現(xiàn)行安裝目錄,鍵入cd/usr/bin來到安裝目錄,鍵入mvjavajava.bakforstore將現(xiàn)在的java隱藏起來,做一個(gè)軟鏈接:ln-s /usr/java/jdk1.7.0_51/bin/javajava。此時(shí)再次輸入whichjava,系統(tǒng)回復(fù):/usr/java/jdk1.7.0_51/bin/java,java,鏈接已經(jīng)成功,符合開發(fā)要求。

此時(shí),只要指定運(yùn)行庫就能夠直接支持java的運(yùn)行了,因此,要添加CLASSPATH目錄的內(nèi)容。可以在上述的CLASSPATH后面添加,也可以在/etc/profile里添加以下段落來實(shí)現(xiàn)系統(tǒng)對(duì)java的調(diào)用::$JAVA_HOME/jre/lib。系統(tǒng)就可以找到必須的. so文件來支持java運(yùn)行了。

做完以上工作,必須使配置生效:在/etc/下執(zhí)行sourceprofile命令(或者在/目錄下執(zhí)行source bash_profile),執(zhí)行之后鍵入java-version,系統(tǒng)回復(fù):javaversion1.7.0_51,此時(shí)配置java完成。

3.2測(cè)試配置串口參數(shù)

將MOXAUPORT1150接入系統(tǒng),即將其USB口插入服務(wù)器的USB口,然后在MOXA官網(wǎng)下載此硬件對(duì)Linux的驅(qū)動(dòng),下載驅(qū)動(dòng)版本為:Linux3.x,下載并解壓縮,解壓縮后可以看到多個(gè)文件,其中包含有makefile和mxinstall兩個(gè)文件,在此目錄下執(zhí)行. /mxinstall來安裝UPORT驅(qū)動(dòng)到系統(tǒng),安裝過程中需要確認(rèn)安全性,按照提示說明更改設(shè)置即可。

安裝完成后,可以看到UPORT的ACTIVE燈亮,說明安裝成功。這時(shí),可以用:dmesg|greptty來查看可用接口,系統(tǒng)回復(fù)為:

[0.000000]console[tty0]enabled

[0.475003]serial8250:ttyS0atI/O0x3f8(irq=4) isa16550A

[0.525630]serial8250:ttyS1atI/O0x2f8(irq=3) isa16550A

[0.626041]00:07:ttyS0atI/O0x3f8(irq=4)isa 16550A

[0.626203]00:08:ttyS1atI/O0x2f8(irq=3)isa 16550A

[2083684.682727]usb1-1.1:MOXAUPort1150 converternowattachedtottyUSB0

由于UPORT1150支持RS232和RS485兩種硬件平臺(tái),所以,系統(tǒng)完成對(duì)USB端口的添加后,必須要設(shè)置串口屬性,設(shè)置串口有setserial-gdev/ttys [0|1|2|3],4種方式分別為:

這里測(cè)試用兩線制RS485,所以設(shè)置串口為1模式工作,鍵入命令:setserial/dev/ttyUSB0port1,執(zhí)行完畢后,即可實(shí)現(xiàn)在串口發(fā)送和接收數(shù)據(jù)了。

3.3安裝RXTX

RXTX是系統(tǒng)對(duì)串口的驅(qū)動(dòng)必要的開源庫,安裝后,就可以直接利用事先定義好的串口函數(shù)來進(jìn)行通訊。此庫文件包包含有多個(gè)文件,其中x86_64-unknown-linux-gun里面存放的就是為SUSE系統(tǒng)準(zhǔn)備的庫文件,將放在其中的librxtxSrial. so文件拷貝到/usr/java/jdk1.7.0_51/jre/lib/i386下,將RXTXcomm.jar復(fù)制到/usr/java/jdk/jre/lib/ext下,就完成了RXTX開源庫的安裝。

4 協(xié)議開發(fā)及測(cè)試結(jié)果

接下來對(duì)串口進(jìn)行協(xié)議開發(fā),本次用的是ModbusRTU協(xié)議。

(1)定義Modbus的主體功能;

(2)建立數(shù)據(jù)的發(fā)送格式,根據(jù)協(xié)議要求需要將格式轉(zhuǎn)換成要求的標(biāo)準(zhǔn)格式;

(3)建立RTU的傳輸函數(shù);

(4)設(shè)置端口并建立連所需連接。

部分代碼及注釋

packageModbusInstance;

publicclassModbus{

/**

*定義功能碼和接口函數(shù)

*/

publicstaticfinalintdebug=0;

/**

*讀保持寄存器功能碼。

*/

publicstaticfinalbyteREAD_MULTIPLE_REGISTERS=(byte)0x03;

/**

*讀輸入寄存器功能碼。*/

publicstaticfinalbyteREAD_INPUT_REGISTERS=(byte)0x04;

/**

*寫保持寄存器功能碼。

*/

publicstaticfinalbyteWRITE_MULTIPLE_REGISTERS=(byte)0x10;

/**

*寫線圈狀態(tài)功能碼。

*/

……

5 可執(zhí)行文件

建立好讀取機(jī)制后編譯運(yùn)行,設(shè)備運(yùn)行結(jié)果為:

Sent:01030010000445CC

Received:010308000000000000000095

數(shù)據(jù)1:0;數(shù)據(jù)2:0;數(shù)據(jù)3:0;數(shù)據(jù)4:0;

實(shí)際觀測(cè)UPORT數(shù)據(jù)發(fā)送燈閃爍正常,且監(jiān)視到數(shù)據(jù)發(fā)送和數(shù)據(jù)接收,協(xié)議符合ModbusRTU,數(shù)據(jù)可通過串口傳輸,接下來就是編譯和在實(shí)際環(huán)境下運(yùn)行。將程序測(cè)試用端口在程序中換成實(shí)際設(shè)備使用端口,將設(shè)備(主站)通過RS485連接到測(cè)試從站,重新編譯且生成可在實(shí)際設(shè)備上運(yùn)行的可執(zhí)行文件。必須保證實(shí)際環(huán)境Java版本和測(cè)試版本一致。

建立java可執(zhí)行文件,在工程上右鍵點(diǎn)擊export,在彈出的對(duì)話框中選擇java->RunableJAR file->下一步->Launch configuration選擇已測(cè)試好的程序且在exportdestination中選擇要保存,并勾選libraryhandling中的 Copyrequiredlibraryintoa sub-foldernexttothegeneratedJAR。點(diǎn)擊Finish完成,將生成的文件和library文件夾拷貝到實(shí)際運(yùn)行低壓機(jī)組控制模塊上,在終端登錄低壓機(jī)組控制模塊的Linux平臺(tái)用戶,采用ssh連接,連接到同一網(wǎng)絡(luò)后用sshroot@X.X.X.X來實(shí)現(xiàn)登錄。

登錄后在登錄環(huán)境下輸入:java-jar/etc/MBInquire.jar,測(cè)試返回為:

Sent:01030010000445CC

Received:010308000000000000000095

數(shù)據(jù)1:0;數(shù)據(jù)2:0;數(shù)據(jù)3:0;數(shù)據(jù)4:0;。

實(shí)際運(yùn)行與測(cè)試時(shí)數(shù)據(jù)相同,設(shè)備實(shí)際數(shù)據(jù)可以被正確地讀取到一體化設(shè)備,且連續(xù)測(cè)試72h以上數(shù)據(jù)均可正常讀取存儲(chǔ)。

6 結(jié)論

在Linux環(huán)境下搭建一個(gè)為水輪機(jī)低壓機(jī)組控制裝置搭載的軟模塊的軟件開發(fā)環(huán)境是可行的,其串口數(shù)據(jù)傳輸穩(wěn)定可靠。

參考文獻(xiàn):

[1]【美】杰里米.里夫金.第三次工業(yè)革命[M].北京:中信出版社,2012:277.

[2]【美】AlapatiSamR.?dāng)?shù)據(jù)庫管理藝術(shù)[M].北京:人民郵電出版社,2010:7.

[3]王定一,等.水電站計(jì)算機(jī)監(jiān)視與控制[M].北京:中國(guó)電力出版社,2001:233.

[4]【美】PallaviJain,ShadabSIddiqui.J2EE專業(yè)項(xiàng)目實(shí)例開發(fā)(修訂版)[M].北京:中國(guó)水利水電出版社,2007:3.

[5]【美】EviNemeth,GarthSnyder,TrentRHein,etal.UNIXand Linux System Administration Handbook[M].4thed.NewJersey:PrenticeHall.

中圖分類號(hào):TV736

文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1672-5387(2015)03-0038-04

DOI:10.13599/j.cnki.11-5130.2015.03.011

收稿日期:2014-11-17

基金項(xiàng)目:中國(guó)水利水電科學(xué)研究院科研專項(xiàng)(TJ0145B262014)。

作者簡(jiǎn)介:雷亮(1985-),男,助理工程師,從事水電廠自動(dòng)化系統(tǒng)方案設(shè)計(jì)、設(shè)備開發(fā)、技術(shù)服務(wù)及質(zhì)量管理工作。

猜你喜歡
控制裝置串口
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
PLC技術(shù)在機(jī)械電氣控制裝置中的應(yīng)用
淺談汽車空調(diào)運(yùn)行工況的控制裝置
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無線通信
基于PLC節(jié)能灶設(shè)計(jì)方法探討
一種實(shí)用新型智能窗戶設(shè)計(jì)
基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
兴义市| 自治县| 浑源县| 涞源县| 丹阳市| 文水县| 林周县| 双峰县| 高尔夫| 海口市| 神木县| 长兴县| 稻城县| 荃湾区| 吉安县| 南华县| 镇赉县| 嫩江县| 龙州县| 贵港市| 河池市| 醴陵市| 抚州市| 北海市| 钟祥市| 珲春市| 佳木斯市| 漠河县| 锦州市| 泸州市| 邯郸市| 桂林市| 普陀区| 彝良县| 广水市| 望谟县| 泽州县| 济源市| 剑阁县| 江陵县| 临颍县|