• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

    梅映新,祝廣場(chǎng)

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

    0 引言

    目前,PLC作為智能控制站廣泛應(yīng)用于各種工業(yè)控制現(xiàn)場(chǎng)。由于PLC具有可靠性高、適應(yīng)性強(qiáng)、編程簡(jiǎn)單及模塊化結(jié)構(gòu)擴(kuò)展方便等優(yōu)點(diǎn),在控制領(lǐng)域得到了廣泛的應(yīng)用。但PLC在數(shù)據(jù)處理、分析和報(bào)表打印等方面有很大的局限性,和工控機(jī)結(jié)合可以克服這一缺陷。在與工控機(jī)的通信中,一般采用串口通信的方式,但這種通信方式無法適應(yīng)大數(shù)據(jù)量、遠(yuǎn)距離和實(shí)時(shí)性要求較高的場(chǎng)合[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ò)處于最上層。從上至下,各層都是開放的,且三層之間實(shí)現(xiàn)了無縫對(duì)接。

    Ethernet網(wǎng)絡(luò)即通常所說的以太網(wǎng),是工廠自動(dòng)化領(lǐng)域用于信息管理層上的網(wǎng)絡(luò),它的通信速率高,可以達(dá)到100 Mbit/s,以太網(wǎng)模塊使PLC可以作為工廠局域網(wǎng)的一個(gè)節(jié)點(diǎn),在網(wǎng)絡(luò)上的任何一臺(tái)計(jì)算機(jī)都可以實(shí)現(xiàn)對(duì)它的控制[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ù)提供了兩種實(shí)現(xiàn)的方法。

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

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

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

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

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

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

    同樣可以使用8個(gè)TCP端口和8個(gè)UDP端口。

    1.3 Socket通信流程

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

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

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

    2.1 設(shè)置單元號(hào)

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

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

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

    2.2 設(shè)置節(jié)點(diǎn)號(hào)

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

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

    2.3 設(shè)置IP地址

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

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

    3 通信協(xié)議

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

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

    C0:可取3個(gè)值: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)存中的任何一個(gè)區(qū)域。PLC接收到之后,將其轉(zhuǎn)換成十六進(jìn)制數(shù)(兩個(gè)字),送到Socket服務(wù)參數(shù)區(qū)的發(fā)送/接收地址單元(對(duì)于CS1W型PLC,為D30024和D30025),作為要發(fā)送和接收數(shù)據(jù)的起始地址。

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

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

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

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

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

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

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

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

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

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

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

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

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

    Socket服務(wù)參數(shù)區(qū)在CPU單元的DM區(qū),Socket服務(wù)請(qǐng)求開關(guān)在Socket服務(wù)參數(shù)區(qū)中設(shè)置。對(duì)于以太網(wǎng)單元號(hào)為0的情況,Socket的服務(wù)參數(shù)在DM中的地址為D30018~D30027(以CS1W型PLC為例),共10個(gè)字單元。表2列出了1號(hào)Socket服務(wù)參數(shù)在內(nèi)存D中的位置以及每個(gè)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)的請(qǐng)求位;用CIO00100~CIO00103分別表示打開、關(guān)閉、發(fā)送和接收的錯(cuò)誤標(biāo)志,以顯示錯(cuò)誤信息;用CIO00200~CIO00203分別用于控制打開、關(guān)閉、發(fā)送和接收指令的執(zhí)行,以達(dá)到只執(zhí)行一次的目的。

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

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

    6 結(jié)束語(yǔ)

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

    [1]曹衛(wèi),史旺旺,陳虹.OMRON PLC在以太網(wǎng)中的通信及實(shí)現(xiàn)[J].測(cè)控技術(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é)報(bào),2002,4(2):42-43,46.

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

    猜你喜歡
    歐姆龍通信協(xié)議IP地址
    鐵路遠(yuǎn)動(dòng)系統(tǒng)幾種組網(wǎng)方式IP地址的申請(qǐng)和設(shè)置
    人民幣上的圓圈
    人民幣上的圓圈
    基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計(jì)
    基于SNMP的IP地址管理系統(tǒng)開發(fā)與應(yīng)用
    黑龍江電力(2017年1期)2017-05-17 04:25:16
    基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計(jì)與研究
    基于NS-3的PLC多頻通信協(xié)議仿真平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
    歐姆龍亮相CIIF201
    歐姆龍收購(gòu)北美兩大自動(dòng)化企業(yè) 強(qiáng)化工業(yè)自動(dòng)化實(shí)力
    RSSP-I、RSSP-Ⅱ及SAHARA三種安全通信協(xié)議實(shí)現(xiàn)技術(shù)簡(jiǎn)介
    大安市| 红安县| 平潭县| 衡水市| 宁南县| 富平县| 吉林市| 盐亭县| 公安县| 湖口县| 荥经县| 宁陕县| 上饶县| 屏东市| 北碚区| 洛扎县| 鲜城| 贺兰县| 廊坊市| 江津市| 建湖县| 文安县| 定襄县| 合作市| 策勒县| 清镇市| 宁夏| 阳曲县| 太原市| 株洲县| 腾冲县| 大石桥市| 南江县| 恭城| 宿松县| 温州市| 定安县| 兴安县| 吐鲁番市| 阿合奇县| 扎兰屯市|