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

?

基于DataSocket的歐姆龍PLC以太網(wǎng)通信接口研究

2015-09-20 02:56梅映新祝廣場
電氣自動化 2015年2期
關(guān)鍵詞:歐姆龍通信協(xié)議IP地址

梅映新,祝廣場

(1.武漢船用電力推進(jìn)裝置研究所,湖北 武漢 430064;2.武漢長海高新技術(shù)有限公司,湖北 武漢 430064)

0 引言

目前,PLC作為智能控制站廣泛應(yīng)用于各種工業(yè)控制現(xiàn)場。由于PLC具有可靠性高、適應(yīng)性強(qiáng)、編程簡單及模塊化結(jié)構(gòu)擴(kuò)展方便等優(yōu)點,在控制領(lǐng)域得到了廣泛的應(yīng)用。但PLC在數(shù)據(jù)處理、分析和報表打印等方面有很大的局限性,和工控機(jī)結(jié)合可以克服這一缺陷。在與工控機(jī)的通信中,一般采用串口通信的方式,但這種通信方式無法適應(yīng)大數(shù)據(jù)量、遠(yuǎn)距離和實時性要求較高的場合[1]。以TCP/IP協(xié)議為基礎(chǔ)的以太網(wǎng)在工業(yè)控制中逐漸獲得了廣泛的應(yīng)用,并可以很方便的進(jìn)行網(wǎng)絡(luò)互聯(lián)。本文以歐姆龍CS1W型PLC為例,探討了網(wǎng)絡(luò)通信的方式,用Visual C++6.0編寫了上位機(jī)通信程序,完成了上位機(jī)和歐姆龍PLC的通信。

1 歐姆龍PLC的網(wǎng)絡(luò)結(jié)構(gòu)和Socket服務(wù)

1.1 歐姆龍PLC的網(wǎng)絡(luò)結(jié)構(gòu)

歐姆龍PLC開發(fā)了三層網(wǎng)絡(luò)體系,包括設(shè)備層網(wǎng)絡(luò)、控制層網(wǎng)絡(luò)和管理層網(wǎng)絡(luò),如圖1所示,設(shè)備層網(wǎng)絡(luò)處于三層網(wǎng)絡(luò)的最底層,控制層網(wǎng)絡(luò)處于中間層,管理層網(wǎng)絡(luò)處于最上層。從上至下,各層都是開放的,且三層之間實現(xiàn)了無縫對接。

Ethernet網(wǎng)絡(luò)即通常所說的以太網(wǎng),是工廠自動化領(lǐng)域用于信息管理層上的網(wǎng)絡(luò),它的通信速率高,可以達(dá)到100 Mbit/s,以太網(wǎng)模塊使PLC可以作為工廠局域網(wǎng)的一個節(jié)點,在網(wǎng)絡(luò)上的任何一臺計算機(jī)都可以實現(xiàn)對它的控制[2]。

圖1 歐姆龍PLC的網(wǎng)絡(luò)結(jié)構(gòu)

1.2 歐姆龍PLC的Socket通信服務(wù)

歐姆龍PLC的以太網(wǎng)模塊支持兩種通信方式:Socket通信和FINS通信。通過TCP或者UDP協(xié)議,Socket服務(wù)允許以太網(wǎng)上的設(shè)備發(fā)送和接收各種數(shù)據(jù)。Socket服務(wù)提供了兩種實現(xiàn)的方法。

(1)操作特定的控制開關(guān)[3]19

首先設(shè)置DM區(qū)中的請求參數(shù),然后打開內(nèi)存中特定的控制開關(guān)來請求TCP或者UDP Socket服務(wù)。當(dāng)請求的過程完成之后,以太網(wǎng)單元就把請求開關(guān)關(guān)掉。數(shù)據(jù)的發(fā)送和接收,都是自動進(jìn)行的。

使用這種方法不需要執(zhí)行CMND(490)指令,也不需要監(jiān)視完成的時序和指令的執(zhí)行過程,于是可以大大簡化梯形圖的編制。

總共8個TCP或者UDP端口可以被用作Socket服務(wù)。

(2)執(zhí)行 CMND(490)命令[3]20

使用Socket服務(wù)的另一種方法是從CPU單元向以太網(wǎng)單元發(fā)送FINS命令,當(dāng)以太網(wǎng)單元接收到Socket服務(wù)請求時,向CPU單元返回響應(yīng)以確認(rèn)請求,然后對請求的服務(wù)進(jìn)行處理。當(dāng)處理過程結(jié)束之后,結(jié)果放在CPU單元的結(jié)果存儲區(qū)。

同樣可以使用8個TCP端口和8個UDP端口。

1.3 Socket通信流程

Socket建立在傳輸層協(xié)議(TCP和UDP)之上,由于TCP面向連接,UDP是無連接的,因此,利用Socket進(jìn)行通信,有兩種方式:面向連接的和無連接的[4]。在第一種方式下,兩個通信的應(yīng)用程序之間必須先建立一種虛擬的連接,然后再傳輸數(shù)據(jù)。第二種方式也稱數(shù)據(jù)報文方式,在此種方式下,傳輸過程中,數(shù)據(jù)有可能丟失,先發(fā)送的數(shù)據(jù)也可能后到,各個報文的路徑也不一定相同[5-6]。本文采用面向連接的通信方式,流程如圖2所示。

2 歐姆龍PLC的以太網(wǎng)設(shè)置

歐姆龍PLC要在網(wǎng)絡(luò)中進(jìn)行通信,必須要對其單元號、節(jié)點號和IP地址進(jìn)行設(shè)置。

2.1 設(shè)置單元號

圖2面向連接的Socket通信流程

當(dāng)多個CPU單元安裝在同一臺PLC上時,就必須為以太網(wǎng)單元設(shè)置單元號,以識別特定的CPU單元。歐姆龍CS1W型PLC的單元號可以在0~F(十六進(jìn)制)之間對以太網(wǎng)單元進(jìn)行設(shè)置,在設(shè)備出廠時,單元號被設(shè)為0。

值得注意的是,如果是第一次為PLC設(shè)置單元號或者是改變原來的單元號,那么就必須為PLC創(chuàng)建I/O表[3]33。

2.2 設(shè)置節(jié)點號

當(dāng)多個以太網(wǎng)單元連在同一個以太網(wǎng)上時,要用節(jié)點號對其進(jìn)行識別。歐姆龍CS1W型PLC的節(jié)點號由高位和低位組成,分別由高位節(jié)點號設(shè)置開關(guān)和低位節(jié)點號設(shè)置開關(guān)進(jìn)行設(shè)置,其值為1到126之間,不同的以太網(wǎng)單元不能擁有相同的節(jié)點號[3]34。

當(dāng)使用自動產(chǎn)生方法進(jìn)行地址轉(zhuǎn)換時,節(jié)點號要與本地IP地址的最低兩位相同。如不相同,就不能使用自動轉(zhuǎn)換方法。在本實例中,以太網(wǎng)單元的節(jié)點號設(shè)置為11(十六進(jìn)制)。

2.3 設(shè)置IP地址

以太網(wǎng)上的節(jié)點是用IP地址來識別的。每個IP地址被設(shè)為32個二進(jìn)制數(shù),通常用四段數(shù)以點分十進(jìn)制形式來表示。在以太網(wǎng)單元中,每段數(shù)用兩個十六進(jìn)制的數(shù)來表示[3]34。

以太網(wǎng)單元的IP地址用安裝在其后面的8個十六進(jìn)制旋轉(zhuǎn)開關(guān)來進(jìn)行設(shè)置。對于CS1W型PLC,可將SW1和SW2,SW3和SW4,SW5和SW6,SW7和SW8組合在一起,就得到了單元的IP地址。在本設(shè)計中,IP地址設(shè)置為 CA.72.6A.11,也就是202.114.106.17。

3 通信協(xié)議

通信協(xié)議是通信的雙方互相遵守的約定,本文中的通信協(xié)議(以C表示)由7個字節(jié)組成,見表1,現(xiàn)對各個字節(jié)進(jìn)行說明。

表1 通信協(xié)議配置

C0:可取3個值:00、11、01。00表示讓PLC向PC發(fā)送數(shù)據(jù),11表示PC向PLC發(fā)送數(shù)據(jù),01表示讓PLC關(guān)閉Socket連接。

C1、C2、C3、C4:發(fā)送或者接收數(shù)據(jù)的地址。此地址可以是PLC內(nèi)存中的任何一個區(qū)域。PLC接收到之后,將其轉(zhuǎn)換成十六進(jìn)制數(shù)(兩個字),送到Socket服務(wù)參數(shù)區(qū)的發(fā)送/接收地址單元(對于CS1W型PLC,為D30024和D30025),作為要發(fā)送和接收數(shù)據(jù)的起始地址。

C5、C6:發(fā)送或者接收數(shù)據(jù)的字節(jié)數(shù)。由于PLC的Socket服務(wù)參數(shù)中的此項范圍為0~07C0,所以通信協(xié)議中用兩個字節(jié)來表示,PLC接收之后,先將其轉(zhuǎn)換成十六進(jìn)制數(shù),再送到Socket服務(wù)參數(shù)區(qū)的發(fā)送/接收數(shù)據(jù)字節(jié)數(shù)(對于 CS1W型 PLC,為D30023)單元中。

通信協(xié)議存放在內(nèi)存D中從D01000開始的7個連續(xù)單元中。

4 上位機(jī)程序設(shè)計

4.1 上位機(jī)程序要實現(xiàn)的功能

上位機(jī)作為服務(wù)器主要實現(xiàn)以下功能:

監(jiān)聽:服務(wù)器啟動后,處于監(jiān)聽狀態(tài),當(dāng)有客戶端申請連接時,便與之建立連接,以進(jìn)行通信。

斷開連接:服務(wù)器既可以單方面斷開連接,也可以響應(yīng)客戶的斷開而關(guān)閉連接;關(guān)閉連接之后若要進(jìn)行再次通信,則要重新開始監(jiān)聽。

接收數(shù)據(jù):客戶有數(shù)據(jù)送來時,服務(wù)器將其接收,并放于緩存中。

發(fā)送數(shù)據(jù):服務(wù)器調(diào)用Send()命令,將緩存中的數(shù)據(jù)發(fā)送給客戶。

狀態(tài)顯示:能夠顯示服務(wù)器當(dāng)前的狀態(tài)。

4.2 上位機(jī)程序的實現(xiàn)

上位機(jī)程序采用Visual C++6.0來實現(xiàn),主要程序代碼如下:

5 下位機(jī)程序設(shè)計

Socket服務(wù)參數(shù)區(qū)在CPU單元的DM區(qū),Socket服務(wù)請求開關(guān)在Socket服務(wù)參數(shù)區(qū)中設(shè)置。對于以太網(wǎng)單元號為0的情況,Socket的服務(wù)參數(shù)在DM中的地址為D30018~D30027(以CS1W型PLC為例),共10個字單元。表2列出了1號Socket服務(wù)參數(shù)在內(nèi)存D中的位置以及每個Socket服務(wù)參數(shù)區(qū)的配置。

表2 歐姆龍PLC Socket服務(wù)參數(shù)區(qū)配置

程序流程圖如圖3所示,在此流程圖中,省略了以TCP方式建立連接的細(xì)節(jié)過程,而主要是關(guān)于建立連接之后PLC與服務(wù)器之間的數(shù)據(jù)通信。

用CIO00000~CIO00003分別表示打開、關(guān)閉、發(fā)送和接收開關(guān)的請求位;用CIO00100~CIO00103分別表示打開、關(guān)閉、發(fā)送和接收的錯誤標(biāo)志,以顯示錯誤信息;用CIO00200~CIO00203分別用于控制打開、關(guān)閉、發(fā)送和接收指令的執(zhí)行,以達(dá)到只執(zhí)行一次的目的。

用CIO00300表示程序判斷位,以確定程序下一步的走向;用CIO00400表示接收命令開關(guān)位,此命令由服務(wù)器發(fā)送,用于控制PLC執(zhí)行何種操作,命令長二十個字節(jié),存放在以D01000開始的十個連續(xù)字單元中。

圖3 下位機(jī)通信流程

6 結(jié)束語

歐姆龍PLC具有很強(qiáng)的通信功能,其以太網(wǎng)模塊采用應(yīng)用廣泛的TCP/IP協(xié)議,數(shù)據(jù)通信速度快,程序設(shè)計簡單。文中的通信軟件采用Visual C++6.0編寫,性能穩(wěn)定,可靠性高。本文的通信方法已用在工業(yè)現(xiàn)場,數(shù)據(jù)可以實時傳輸至工業(yè)上位機(jī),方便保存、處理和分析。

[1]曹衛(wèi),史旺旺,陳虹.OMRON PLC在以太網(wǎng)中的通信及實現(xiàn)[J].測控技術(shù),2004,23(12):50 -51.

[2] 劉利.可編程序控制器通信與網(wǎng)絡(luò)[M].北京:機(jī)械工業(yè)出版社,2006.

[3] OMRON.OMRON PLC CS1W-ETN01 Ethernet unit operation manual[M].Japan OMRON,2008.

[4] BAO WEIMIN.Application of windows socket technique to communication process of the train diagram network system based on client/server structure[J].Journal of Southwest Jiaotong University,2001,9(2):8-14

[5] 王德力,劉希寶.Socket編程技術(shù)[J].遼寧師專學(xué)報,2002,4(2):42-43,46.

[6]高恩勇,謝德銀.利用Delphi編寫Socket通信程序[J].滄州師范??茖W(xué)校學(xué)報,2004,20(4):56-58.

猜你喜歡
歐姆龍通信協(xié)議IP地址
鐵路遠(yuǎn)動系統(tǒng)幾種組網(wǎng)方式IP地址的申請和設(shè)置
人民幣上的圓圈
人民幣上的圓圈
IP地址切換器(IPCFG)
人民幣上的圓圈
基于SNMP的IP地址管理系統(tǒng)開發(fā)與應(yīng)用
公安網(wǎng)絡(luò)中IP地址智能管理的研究與思考
人民幣的圓圈
基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計與研究
基于NS-3的PLC多頻通信協(xié)議仿真平臺設(shè)計與實現(xiàn)