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

?

無(wú)線設(shè)備與PLC控制過(guò)程的研究與應(yīng)用

2019-10-08 05:48王春梅姜海罡
電子技術(shù)與軟件工程 2019年15期
關(guān)鍵詞:數(shù)據(jù)類型通訊無(wú)線

文/王春梅 姜海罡

1 前言

當(dāng)前的工業(yè)控制領(lǐng)域的發(fā)展趨勢(shì)是:從集中控制向分散控制轉(zhuǎn)變,從分散管理向集中管理轉(zhuǎn)變。前端設(shè)備能夠解決的問(wèn)題盡量由它在本地解決,而不需要向管理監(jiān)控總站請(qǐng)求解決,這樣做節(jié)省網(wǎng)絡(luò)通訊資源的同時(shí)提高了控制效率。

隨著無(wú)線移動(dòng)設(shè)備的普及和無(wú)線通訊技術(shù)的發(fā)展,以太網(wǎng)正在逐步向自動(dòng)化網(wǎng)絡(luò)進(jìn)行滲透,TCP ΙP協(xié)議也成為自動(dòng)化應(yīng)用領(lǐng)域的主要的標(biāo)準(zhǔn)協(xié)議,同時(shí)無(wú)線和移動(dòng)方案提供了生產(chǎn)數(shù)據(jù)采集的靈活性,并且越來(lái)越多的專用設(shè)備將被應(yīng)用到實(shí)際的生產(chǎn)中,極大地方便操作或者管理人員的查看。例如點(diǎn)檢過(guò)程中能夠穩(wěn)定的讀取現(xiàn)場(chǎng)設(shè)備成為提高點(diǎn)檢工作效率和準(zhǔn)確把握現(xiàn)場(chǎng)設(shè)備運(yùn)行情況的有效手段。無(wú)線的控制通訊還具有功率消耗低、數(shù)據(jù)傳輸快、設(shè)備連接數(shù)量多、兼容性強(qiáng)等特點(diǎn)。在工廠環(huán)境下,網(wǎng)絡(luò)智能數(shù)據(jù)傳輸和自動(dòng)化設(shè)備通訊必將發(fā)揮著無(wú)可替代的作用,它對(duì)工業(yè)通訊進(jìn)行了實(shí)質(zhì)性的補(bǔ)充和完善。

對(duì)于移動(dòng)終端而言,目前主流的移動(dòng)設(shè)備基本上80%左右使用Android平臺(tái),所以研究Android系統(tǒng)和PLC等設(shè)備進(jìn)行通訊成為研究要點(diǎn)。

2 開(kāi)發(fā)思路

西門子PLC設(shè)備提供的通訊方式一般有RS485和Ethernet兩種。但其支持的通訊協(xié)議復(fù)雜多樣,主要有:PPΙ、MPΙ、Profi Bus、Mod bus、ΙSΟ on TCP等。對(duì)于利用西門子的PLC設(shè)備現(xiàn)有支持的協(xié)議,開(kāi)發(fā)具有PC、移動(dòng)設(shè)備連接到PLC設(shè)備通訊功能的應(yīng)用程序,通常有兩種方案可以選擇,即采用西門子提供的開(kāi)發(fā)庫(kù)直接連接通訊以及通過(guò)西門子或第三方提供的ΟPC軟件進(jìn)行代理通訊,這顯然需要第三方平臺(tái)支持,不滿足直讀設(shè)計(jì)的需要。不僅如此,上面的兩個(gè)方案都需要高額的軟件許可費(fèi)用。

本文開(kāi)發(fā)的是一種可以不依托于任何第三方系統(tǒng)支持,并且可以直接和現(xiàn)場(chǎng)的控制單元進(jìn)行通訊的獨(dú)立運(yùn)行控制系統(tǒng),這不僅需要掌握相應(yīng)的通訊技術(shù),還需要掌握移動(dòng)端系統(tǒng)開(kāi)發(fā)的能力,是對(duì)通訊和研發(fā)能力的一種考驗(yàn)。

3 實(shí)驗(yàn)和實(shí)施方案

3.1 軟件環(huán)境搭建

搭建JAVA編程環(huán)境,利用安卓開(kāi)發(fā)eclipse平臺(tái)進(jìn)行開(kāi)展開(kāi)發(fā)軟件工作。

Eclipse專注于為高度集成的工具開(kāi)發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺(tái),是一個(gè)開(kāi)放源代碼的軟件開(kāi)發(fā)項(xiàng)目。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目組成,具體包括Eclipse Platform、JDT、CDT和PDE四個(gè)組成部分。JDT支持Java開(kāi)發(fā)、CDT支持C開(kāi)發(fā)、PDE支持插件開(kāi)發(fā),Eclipse Platform則是一個(gè)開(kāi)放的可擴(kuò)展ΙDE,它提供建造塊和構(gòu)造并運(yùn)行集成軟件開(kāi)發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨(dú)立開(kāi)發(fā)與他人工具無(wú)縫集成的工具從而無(wú)須分辨一個(gè)工具功能在哪里結(jié)束,而另一個(gè)工具功能在哪里開(kāi)始。Eclipse是著名的跨平臺(tái)的自由集成開(kāi)發(fā)環(huán)境(ΙDE)。最初主要用來(lái)Java語(yǔ)言開(kāi)發(fā),通過(guò)安裝不同的插件Eclipse可以支持不同的計(jì)算機(jī)語(yǔ)言,比如C++和Python等開(kāi)發(fā)工具。Eclipse本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的ΙDE軟件很難具有的靈活性。

3.2 通訊方式確定

LΙBNΟDAVE是由Thomas Hergenhahn公司開(kāi)發(fā)的,用于對(duì)西門子S7-200,300和400系列CPU進(jìn)行數(shù)據(jù)交換。他同樣成功的測(cè)試 在VΙPA Speed7 CPU,對(duì) 于S7-compatible PLCs from SAΙA.同樣有幫助。數(shù)據(jù)交換包含can access的PLC程序中的所有內(nèi)存區(qū)域的變量,例如標(biāo)志、數(shù)據(jù)塊、輸入輸出內(nèi)存、時(shí)間繼電器和計(jì)數(shù)器。此外,LΙBNΟDAVE提供有權(quán)使用軟件設(shè)計(jì)中的功能塊,例如診斷報(bào)告、讀寫PLC中的程序功能塊、啟動(dòng)停止PLC。LΙBNΟDAVE為PC、移動(dòng)端直接訪問(wèn)PLC提供了一種低成本的選擇。他的穩(wěn)定性可靠性隨著版本的提高而不斷得到提高。

這個(gè)庫(kù)向外面提供的訪問(wèn)接口都是一樣的,通過(guò)daveΙnterface結(jié)構(gòu)體來(lái)傳遞跟具體協(xié)議相關(guān)的參數(shù),而daveConnection則用來(lái)為通訊數(shù)據(jù)等信息提供統(tǒng)一的訪問(wèn)接口。

根據(jù)傳入?yún)?shù)procotol的不同,函數(shù)daveNewΙnterface將會(huì)把庫(kù)所支持的對(duì)應(yīng)協(xié)議相關(guān)函數(shù)連接到daveΙnterface結(jié)構(gòu)體中的函數(shù)指針。程序初始化時(shí)根據(jù)使用的傳輸協(xié)議的不同將協(xié)議相關(guān)的函數(shù)隱藏為不相關(guān)函數(shù),使函數(shù)有了統(tǒng)一的入口。調(diào)用exchange與PLC設(shè)備進(jìn)行數(shù)據(jù)交換。

函數(shù)setport和setScoket打開(kāi)通信接口句柄后保存到_daveΟSserialType類型的變量中,該變量會(huì)在調(diào)用daveNewΙnterface時(shí)傳遞給新生成的daveΙnterface結(jié)構(gòu)體。調(diào)用daveNewConnection的時(shí)候需要把已經(jīng)生成的daveΙnterface結(jié)構(gòu)體指針?biāo)徒o新生成的daveConnection結(jié)構(gòu)體中保存。這樣,在調(diào)用其他功能函數(shù)時(shí)硬件連接方面的信息都通過(guò)daveConnection來(lái)傳遞。

4 讀寫PLC的具體實(shí)施方法

4.1 引用libnodave-java-0.1

4.2 建立連接

首先檢查網(wǎng)絡(luò)狀態(tài)是否為無(wú)線環(huán)境,及連接PLC是否在線,正常后進(jìn)行連接。

4.2.1 判斷設(shè)備是否處于無(wú)線狀態(tài)下

如果處于無(wú)線環(huán)境中則進(jìn)行Ping操作,檢查相連接PLC是否在線

4.2.2 檢查所需連接主機(jī)是否在線

Pingip .ping Host (ip,PingΟut),

Ping Οut為超時(shí)時(shí)間。

返回一個(gè)字符串,如果為"success"則連接主機(jī)正常,否則說(shuō)明網(wǎng)絡(luò)不通。

4.2.3 網(wǎng)絡(luò)和連接主機(jī)狀態(tài)正常后進(jìn)行連接操作

Ping通后就可以進(jìn)行連接操作

TCP Connection dc = new TCPConnection (PLC interface di,rack,slot);

Rack:plc架子號(hào),slot:plc槽號(hào)

圖1

int res = dc.connectPLC();

4.2.4 建立連接后,可以進(jìn)行讀取數(shù)據(jù)和寫入數(shù)據(jù)操作。

(1)讀取數(shù)據(jù)過(guò)程:基礎(chǔ)語(yǔ)句:

dc.read Bytes (area,db,address,bytes,null);

說(shuō)明:

如果讀取"DB" area=Nodave.DB;

如果讀取"M"area=Nodave.FLAGS;

如果讀取"PΙW" area=Nodave.P;

如果讀取"Ι" area=Nodave.ΙNPUTS;

如果讀取"Q" area=Nodave.ΟUTPUTS;

以讀取DB數(shù)據(jù)為例說(shuō)明讀取方法:

數(shù)據(jù)類型為float:bytes=4;

數(shù)據(jù)類型為double:bytes=4;

數(shù)據(jù)類型為word:bytes=2;

數(shù)據(jù)類型為byte:bytes=1;

上述讀取語(yǔ)句read Bytes為讀取準(zhǔn)確地址的方法,經(jīng)過(guò)測(cè)試,每執(zhí)行一次完整的讀取操作,系統(tǒng)耗時(shí)250ms左右,這樣單一讀取顯然執(zhí)行效率比較差,一旦需要讀取的數(shù)據(jù)比較多,則給用戶造成很卡頓的感覺(jué)。

(2)寫入數(shù)據(jù)過(guò)程:下面以寫入BΟΟL至設(shè)定的地址為例說(shuō)明寫入數(shù)據(jù)過(guò)程。

根據(jù)用戶設(shè)置寫入的地址,如上操作讀取打得到一個(gè)整數(shù)值長(zhǎng)度1,根據(jù)用戶設(shè)置的按鈕形式分為復(fù)觸式(按下為1抬起為0)和單觸式(按下為1,再按為0)的要求進(jìn)行寫入PLC操作。例如寫DB10.DBX1.1為真操作如下:

char[]bufferChar=new char[8]; 定義數(shù)組

置位操作:根據(jù)設(shè)置的bit值,將bufferChar的第bit位置1,其他置0。

再將bufferChar轉(zhuǎn)換成字符串并翻轉(zhuǎn)得到bufferStrings。將bufferStrings轉(zhuǎn)換成整數(shù)bufferΙnt,并將bufferΙnt帶入方法bswap_8,得到寫參數(shù)by。

得到所有參數(shù)后執(zhí)行

resBool=dc.writeBytes(Nodave.DB,DB,Address,bytes,by);

注意上述操作是將一個(gè)字節(jié)中的某位置1,其余位置0.如需保持其他位不變則需要先將這個(gè)字節(jié)讀出dc.readBytes(Nodave.DB,DB,Address,1,null);,再把得到的結(jié)果賦給數(shù)組bufferChar,在進(jìn)行置位運(yùn)算。

5 其它的輔助功能介紹

5.1 用戶權(quán)限設(shè)定

根據(jù)操作人員的不同區(qū)分為可操作和不可操作兩類,由用戶設(shè)定用戶等級(jí)和對(duì)應(yīng)密碼,并做完善的登陸、操作記錄。如圖1所示。

5.2 PLC及采集操作點(diǎn)相關(guān)用戶設(shè)置

包括基礎(chǔ)設(shè)置、PLC連接設(shè)置、允許控制PLC設(shè)置、設(shè)備區(qū)域設(shè)置、采集點(diǎn)設(shè)置等。

5.3 一鍵導(dǎo)入設(shè)置功能

由于采集點(diǎn)設(shè)置一般比較多,可以使用戶編輯EXCAEL表格,再導(dǎo)入到軟件設(shè)置中,極大地方便用戶操作和維護(hù)采集點(diǎn)。

5.4 其它設(shè)置

用戶可以定制自己的LΟGΟ和應(yīng)用程序名稱,并設(shè)置顯示狀態(tài)。

6 現(xiàn)場(chǎng)應(yīng)用效果

為擴(kuò)展軟件的通用型和易用性,在設(shè)計(jì)之初就不能單獨(dú)的為某個(gè)具體的工廠環(huán)境進(jìn)行設(shè)計(jì),即可以用到任意滿足Wifi網(wǎng)絡(luò)環(huán)境的工業(yè)現(xiàn)場(chǎng)中進(jìn)行使用,大大提升軟件的生命力和產(chǎn)品競(jìng)爭(zhēng)力,用戶只需要經(jīng)過(guò)簡(jiǎn)單設(shè)置就可以使用寫好的App進(jìn)行連結(jié)用戶自指定的PLC,達(dá)到控制現(xiàn)場(chǎng)設(shè)備的目的,設(shè)置部分為方便用戶輸入,編寫導(dǎo)入程序,用戶只要編輯用戶數(shù)據(jù)表,選擇導(dǎo)入后即可完成設(shè)置,以后使用維護(hù)這個(gè)數(shù)據(jù)表即可,簡(jiǎn)單便捷。是一種可以不依托任何第三方輔助系統(tǒng)支持,可以直接和現(xiàn)場(chǎng)的控制單元進(jìn)行通訊的獨(dú)立運(yùn)行的“移動(dòng)”控制系統(tǒng)。最終形成獨(dú)立的工業(yè)用APP軟件產(chǎn)品---PLC移動(dòng)實(shí)用工具,可用于點(diǎn)檢、移動(dòng)現(xiàn)場(chǎng)操作、工程調(diào)試等不同操作用途,也可用于展會(huì)燈光控制、場(chǎng)景道具切換等等其它非工業(yè)應(yīng)用領(lǐng)域。

猜你喜歡
數(shù)據(jù)類型通訊無(wú)線
《茶葉通訊》簡(jiǎn)介
《茶葉通訊》簡(jiǎn)介
通訊報(bào)道
詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
基于ARM的無(wú)線WiFi插排的設(shè)計(jì)
ADF7021-N在無(wú)線尋呼發(fā)射系統(tǒng)中的應(yīng)用
通訊簡(jiǎn)史
范疇數(shù)據(jù)類型上的子類型*