• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    最新廣告
    關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
    工業(yè)智能邊緣計(jì)算2025年會(huì)
    CAIAC 2025
    2025工業(yè)安全大會(huì)
    OICT公益講堂
    當(dāng)前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

    案例頻道

    基于LabVIEW的FX2N型PLC與計(jì)算機(jī)通信實(shí)現(xiàn)
    • 企業(yè):控制網(wǎng)     領(lǐng)域:儀器儀表     行業(yè):輸配電    
    • 點(diǎn)擊數(shù):9063     發(fā)布時(shí)間:2008-08-28 16:04:40
    • 分享到:
    Design and Implementation of identification for SIP System based on LabVIEW LabVIEW軟件在測(cè)量和控制領(lǐng)域得到了越來(lái)越廣泛的應(yīng)用。圖形化編程和數(shù)據(jù)流驅(qū)動(dòng)方式是其顯著的特點(diǎn)。三菱FX2N系列PLC是一款較為通用的PLC。本文介紹了LabVIEW與FX2N系列PLC的幾種通訊方法及具體實(shí)現(xiàn)。 關(guān)鍵詞:LabVIEW;PLC;串口通訊 Abstract: LabVIEW has more and more applications in measurement and control fields. Graphic programming and data stream driving mode are the two remarkable features of LabVIEW. Mitsubishi FX2N PLC is extensively used. In this paper the methods of serial communication between Labview and FX2N PLC will





    張暉(1978-)
    男,漢族,江蘇南通人,在讀碩士研究生,

    講師,研究方向?yàn)榭刂乒こ獭?BR>
    基金項(xiàng)目:江蘇省交通廳資助項(xiàng)目(項(xiàng)目編號(hào):04X016)。





      1 引言

      在計(jì)算機(jī)監(jiān)控系統(tǒng)中,首先遇到的問(wèn)題就是通信問(wèn)題,只有通信問(wèn)題解決了,才有可能實(shí)現(xiàn)計(jì)算機(jī)對(duì)整個(gè)工作系統(tǒng)的監(jiān)控。LabVIEW軟件多用在測(cè)試工程中,但隨著科學(xué)技術(shù)的發(fā)展和LabVIEW軟件功能的提高,在監(jiān)控系統(tǒng)中也可以采用LabVIEW來(lái)完成編程。本文主要討論LabVIEW與三菱FX2N系列PLC的通訊問(wèn)題。

      2 利用動(dòng)態(tài)鏈接庫(kù)進(jìn)行串口通信

      DLL(動(dòng)態(tài)鏈接庫(kù))是Windows的重要組成部分,包含被程序或者其他動(dòng)態(tài)鏈接庫(kù)調(diào)用來(lái)完成某項(xiàng)工作的函數(shù)。使用它的目的就是給不同的應(yīng)用程序提供完成某項(xiàng)工作的資源或函數(shù)。

      上海理工大學(xué)信息與控制工程研究所開(kāi)發(fā)出了基于FX_BD通訊板的動(dòng)態(tài)鏈接庫(kù)。FX_ BD是三菱PLC通信的擴(kuò)展板,主要分為FX232BD、FX485BD 和FX422BD 等3 種,而實(shí)現(xiàn)PLC 串口通信應(yīng)使用FX232BD、FX485BD 模塊。三菱PLC通信動(dòng)態(tài)鏈接庫(kù)的編寫(xiě)可以通過(guò)三菱PLC 上的編程口,利用編程電纜來(lái)實(shí)現(xiàn)對(duì)PLC的控制,但是因?yàn)榇谕ㄐ诺膮?shù)固定,且對(duì)PLC 可操作的寄存器數(shù)目有限,所以不采用這種通信方式??紤]到三菱PLC 支持計(jì)算機(jī)鏈接,采用計(jì)算機(jī)鏈接通信格式,利用FX_ BD ,可通過(guò)單個(gè)串行口來(lái)控制多PLC ,并且可以設(shè)定串口參數(shù),適應(yīng)不同的傳輸速率。通信時(shí)可以調(diào)整PLC 中的響應(yīng)等待時(shí)間,支持PLC 內(nèi)部所有寄存器,擴(kuò)大了使用范圍,適用于多PLC 聯(lián)網(wǎng)和上位機(jī)通信等,滿(mǎn)足工業(yè)現(xiàn)場(chǎng)的各種控制需要。

      使用DLL的動(dòng)態(tài)鏈接庫(kù)并不是將庫(kù)代碼拷貝,只是在程序中記錄了函數(shù)的入口點(diǎn)和接口,在程序執(zhí)行時(shí)才將庫(kù)代碼動(dòng)態(tài)地裝入內(nèi)存,裝載時(shí)DLL被映射到進(jìn)程的地址空間中。動(dòng)態(tài)連接庫(kù)DLL調(diào)用方式如圖1所示。


      圖1 動(dòng)態(tài)鏈接庫(kù)調(diào)用方式

      調(diào)用DLL 主要完成如下一些操作: ①打開(kāi)串口,完成對(duì)串口的參數(shù)設(shè)置; ②完成相關(guān)讀寫(xiě)PLC、控制PLC 運(yùn)行操作; ③操作完成關(guān)閉串口。

      3 利用LabVIEW標(biāo)準(zhǔn)串口函數(shù)進(jìn)行串口通信

      這種方法適用于LabVIEW和FX2N PLC的編程口通信。

      3.1 在Labview中提供了幾個(gè)標(biāo)準(zhǔn)的串口通訊函數(shù)

      在LabVIEW中進(jìn)行串口通信的基本步驟是:

      (1)初始化端口,利用串口初始化函數(shù)設(shè)定進(jìn)行串口通訊的端口號(hào)、波特率、停止位、校驗(yàn)位、數(shù)據(jù)位,注意在Labview中串行端口號(hào)是從0開(kāi)始編號(hào)的。

      (2)讀寫(xiě)端口,利用串口讀寫(xiě)函數(shù)。從串口中讀入或輸出數(shù)據(jù)。

      (3)關(guān)閉端口。

      3.2 FX系列PLC編程口的通信協(xié)議

      3.2.1 數(shù)據(jù)格式

      數(shù)據(jù)格式如圖2所示。


      圖2 數(shù)據(jù)格式

      3.2.2通信命令

      FX系列PLC有4個(gè)通信命令,它們是讀命令、寫(xiě)命令、強(qiáng)制通命令、強(qiáng)制斷命令,如表1所示。表中X—輸入繼電器;Y—輸出繼電器;M—輔助繼電器;S—狀態(tài)元件;T—定時(shí)器;C—計(jì)數(shù)器;D—數(shù)據(jù)寄存器。

      表1 通信命令


      3.2.3通信控制字符

      FX 系列PLC采用面向字符的傳輸規(guī)程,用到五個(gè)通信控制字符,如表2所示。

      表2 通信控制字符


      3.3 LabVIEW程序設(shè)計(jì)

      3.3.1串口初始化

      圖3是串口初始化流程圖,使用了VISA串口配置函數(shù),將串口設(shè)置為波特率9600 bps,7位數(shù)據(jù)位,偶校驗(yàn),1位停止位。


      圖3 串口初始化

      3.3.2 RS232COMM子VI


      圖4 RS232COMM子VI

      在完成串口配置后,下一步就是向串口寫(xiě)入字符,這一步的動(dòng)作是由“VISA寫(xiě)入”函數(shù)完成的,寫(xiě)入的數(shù)據(jù)必須按照三菱FX系列PLC編程口通信協(xié)議的格式進(jìn)行。在串口將數(shù)據(jù)發(fā)送給PLC后,串口與PLC都需要時(shí)間執(zhí)行程序,因此在流程圖中使用了一個(gè)毫秒等待計(jì)時(shí)器。再下一步為讀取串口緩存動(dòng)作,這一步由“VISA讀取”函數(shù)完成,主要功能是“VISA資源名稱(chēng)端口”指定的設(shè)備中讀取由字節(jié)總數(shù)端口指定長(zhǎng)度的數(shù)據(jù)。而檢測(cè)當(dāng)前串口輸入字節(jié)數(shù)可由屬性節(jié)點(diǎn)“Property Node”中完成,該節(jié)點(diǎn)的主要功能為返回串口的輸入緩存中數(shù)據(jù)的字節(jié)數(shù),在使用“VISA 讀取”函數(shù)讀取串口前,可以先用VISA Bytes at Serial Port節(jié)點(diǎn)檢測(cè)當(dāng)前串口輸入緩存中存在的字節(jié)數(shù),然后由此指定“VISA讀取”節(jié)點(diǎn)從串口輸入緩存中讀取的字節(jié)數(shù),可以保證一次將串口輸入緩存中的數(shù)據(jù)全部讀出。最后一步就是在完成發(fā)送與讀取后關(guān)閉占用的串口資源,這一步動(dòng)作由VISA節(jié)點(diǎn)“VISA 關(guān)閉”完成,該節(jié)點(diǎn)的主要功能為關(guān)閉由“VISA資源名稱(chēng)端口”指定的設(shè)備連接,可用于關(guān)閉一個(gè)已經(jīng)打開(kāi)的串口,從而釋放LabVIEW對(duì)這個(gè)串口資源的占用。

      由于在整個(gè)監(jiān)控系統(tǒng)中使用了許多數(shù)據(jù)寄存器,而根據(jù)三菱FX2N系列PLC的編程口協(xié)議,最多可以讀取64個(gè)字節(jié)(即32個(gè)數(shù)據(jù)寄存器),所以,要完成整個(gè)生產(chǎn)系統(tǒng)的數(shù)據(jù)讀取,必須要分開(kāi)執(zhí)行多次讀和寫(xiě)的動(dòng)作。在這種情況下,就需要考慮讀寫(xiě)的時(shí)序問(wèn)題。要完成連續(xù)的周期性的多點(diǎn)讀寫(xiě)操作,在LabVIEW中可以使用順序結(jié)構(gòu)。順序結(jié)構(gòu)的功能是強(qiáng)制程序按一定的順序執(zhí)行。順序結(jié)構(gòu)可分為層疊式與平鋪式。不過(guò)這兩種結(jié)構(gòu)執(zhí)行相同的讀寫(xiě)操作,時(shí)間和順序都相同,都可以實(shí)現(xiàn)對(duì)于串口的連續(xù)多點(diǎn)讀寫(xiě)。

      4 利用MSComm控件進(jìn)行串口通信

      MSComm控件,即Microsoft Communication Control,是Microsoft為了簡(jiǎn)化Windows下的串行通信編程而提供的ActiveX控件,它提供了一系列標(biāo)準(zhǔn)通信命令的使用接口,利用它可以建立與串口通信,可以通過(guò)串口連接到其他通信設(shè)備,發(fā)出命令、交換數(shù)據(jù)以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件和錯(cuò)誤。關(guān)于該控件的相關(guān)屬性已經(jīng)有很多文章中提到了,本文不再贅述。

      MSComm通信子VI如圖5所示,采用了順序結(jié)構(gòu),串口配置詳細(xì)情況見(jiàn)圖,其中InputMode要設(shè)置成“1”(二進(jìn)制方式),否則數(shù)據(jù)若超過(guò)128則會(huì)產(chǎn)生錯(cuò)誤。MSComm控件提供兩種處理通信的方式,本系統(tǒng)中采用事件驅(qū)動(dòng)方式,即當(dāng)通信事件發(fā)生時(shí),MSComm控件會(huì)觸發(fā)OnComm事件,LabVIEW可以捕獲該事件,通過(guò)檢查其CommEvent屬性便可知道發(fā)生的是哪種事件或錯(cuò)誤。這種方法的優(yōu)點(diǎn)是響應(yīng)及時(shí),可靠性高。


      圖5 MSComm通信子VI

      5 利用MX Component通訊控件包進(jìn)行串口通信

      MX Component是三菱電機(jī)開(kāi)發(fā)的,用于支持個(gè)人計(jì)算機(jī)與可編程控制器之間通信的控件包,它不用考慮各種通信協(xié)議的不同,只要經(jīng)簡(jiǎn)單處理即可實(shí)現(xiàn)通信,因此MX Component能大幅減少編制通信程序的工時(shí)。它支持VisualC++ 、Visual Basic 和Access Excel 的VBA、 VBScript、LabVIEW。

      MX Component通訊控件包首先需要進(jìn)行安裝,SW3D5C-ACT-E軟件目前版本3.0,安裝完成后,在操作系統(tǒng)的程序中就會(huì)出現(xiàn)相關(guān)程序,系統(tǒng)OCX控件列表內(nèi)也就有相應(yīng)的驅(qū)動(dòng)OCX。

      控件包安裝好后,就需要對(duì)其進(jìn)行配置,點(diǎn)開(kāi)“Communication Setup Utility”,利用其操作向?qū)?,根?jù)PLC站號(hào)、波特率、PLC主機(jī)類(lèi)型、連接類(lèi)型、控制類(lèi)型等相關(guān)信息進(jìn)行配置,配置完成后的界面如圖6所示,配置完成后還可進(jìn)行通訊測(cè)試。


      圖6 MX Component配置完成后的界面

      與在LabVIEW中加載MSComm控件相類(lèi)似,新建一個(gè)VI,從在前面板上將“控件”工具欄顯示出來(lái),在“經(jīng)典容器”中找到“ActiveX容器”,并將其拖放到前面板上,在“ActiveX容器”對(duì)象上單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇“插入ActiveX對(duì)象”,將彈出“選擇ActiveX對(duì)象”對(duì)話框,在對(duì)話框中選擇“MITSUBISHI ActFXCPU Control”添加到LabVIEW環(huán)境中。


      圖7 MX Component通信子VI

      該VI主要由三大部分組成,第一部分利用Open函數(shù)對(duì)通信端口進(jìn)行打開(kāi),并返回一個(gè)布爾指示,顯示通信狀態(tài);第二部分利用WriteDeviceBlock函數(shù)對(duì)PLC的數(shù)據(jù)存儲(chǔ)器D100寫(xiě)入一個(gè)數(shù)值456;第三部分利用ReadDeviceBlock函數(shù)將D100內(nèi)的數(shù)值讀出并顯示出來(lái)。

      可以看出,利用MX Component通信控件可以很方便的構(gòu)筑起LabVIEW與三菱PLC之間的聯(lián)系,并且無(wú)需考慮通信協(xié)議等內(nèi)容。

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

      實(shí)驗(yàn)證明,本文列舉的幾種方式可以實(shí)現(xiàn)LabVIEW與三菱FX2N系列PLC的通訊,可以很方便的實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC的內(nèi)存單元進(jìn)行讀寫(xiě)操作,從而為實(shí)現(xiàn)工業(yè)現(xiàn)場(chǎng)的監(jiān)控與現(xiàn)場(chǎng)數(shù)據(jù)的分析打下基礎(chǔ)。

      參考文獻(xiàn):

      [1]邱培林,沈昱明.基于FX_ BD的FX PLC串口通信DLL的實(shí)現(xiàn).自動(dòng)化儀表,2005,26(5).

      [2]王磊,陶梅.精通LabVIEW 8.0.電子工業(yè)出版社,2007.

      [3]馬振鋒,劉獻(xiàn)禮,王鵬,蔣新苗.基于LabVIEW 7.1 的PC機(jī)與PLC通信.哈爾濱理工大學(xué)學(xué)報(bào),2005,10(5).

      [4]張崇智.PC與三菱FX2N型PLC串口通信的實(shí)現(xiàn).機(jī)床電器,2005(3).

      [5]楊久紅,王小增.MSComm控件實(shí)現(xiàn)PC與PLC串行通訊.現(xiàn)代電子技術(shù),2005(5).


     

    熱點(diǎn)新聞

    推薦產(chǎn)品

    x
    • 在線反饋
    1.我有以下需求:



    2.詳細(xì)的需求:
    姓名:
    單位:
    電話:
    郵件: