王建勛, 沈勝利
(鄭州職業(yè)技術(shù)學(xué)院,河南鄭州 450121)
可編程控制器(PLC)主要面向生產(chǎn)現(xiàn)場(chǎng),具有抗干擾能力強(qiáng)、可靠性好、編程使用簡(jiǎn)單、易于控制等特點(diǎn)[1]。但PLC沒(méi)有良好的人機(jī)界面,不便于實(shí)時(shí)監(jiān)控。采用PLC和PC通信的方法可解決以上問(wèn)題[2]。隨著計(jì)算機(jī)技術(shù)的發(fā)展,主從式控制系統(tǒng)得到廣泛應(yīng)用,上位機(jī)監(jiān)控是其主要組成部分。一般情況下,上位機(jī)可采用組態(tài)式監(jiān)控軟件、VB和VC等實(shí)現(xiàn),也可采用編程語(yǔ)言LabVIEW來(lái)實(shí)現(xiàn)。
FX2NPLC與PC間通信方法有多種:有通過(guò)FX-232BD 通信模塊的[3];有 FX2N-232IF 模塊的[4];有使用動(dòng)態(tài)鏈接庫(kù)的;也有采用 MSComm控件和 MX Component通信控件的[5-6]。我們采用的是基于OPC技術(shù)的數(shù)據(jù)通信方式。
以 NI OPC Servers為基礎(chǔ),通過(guò) OPC Server Client、共享變量、Datasocket數(shù)據(jù)綁定和分布式系統(tǒng)管理器等4種方式來(lái)實(shí)現(xiàn)FX2N-48MR PLC與PC間的數(shù)據(jù)通信。
用于過(guò)程控制的對(duì)象嵌入鏈接(Object Linking and Embedding for Process Control,OPC)。OPC 以O(shè)LE(現(xiàn)在的Active X)/COM(部件對(duì)象模型)/DCOM(分布式部件對(duì)象模型)技術(shù)為基礎(chǔ),采用客戶/服務(wù)器模式,為工業(yè)自動(dòng)化面向?qū)ο蟮拈_(kāi)發(fā)提供的統(tǒng)一標(biāo)準(zhǔn)[7-8]。OPC技術(shù)被廣泛用來(lái)統(tǒng)一軟件與設(shè)備的接口標(biāo)準(zhǔn)及進(jìn)行現(xiàn)場(chǎng)數(shù)據(jù)的網(wǎng)絡(luò)通信,因此很多設(shè)備廠商都為其設(shè)備提供了OPC Server(OPC服務(wù)器),如西門(mén)子公司的Simatic NET OPC Server、三菱公司的Melsec OPC Server和歐姆龍的 Sysmac OPC Server等[9]。
NI OPC Servers可將專用工業(yè)協(xié)議轉(zhuǎn)換為開(kāi)放式OPC Classic和OPC統(tǒng)一架構(gòu)(UA)協(xié)議。這一轉(zhuǎn)化使得NI LabVIEW軟件能夠通過(guò)LabVIEW DSC模塊內(nèi)含的OPC客戶端與多種不同的可編程邏輯控制器(PLC)和第三方設(shè)備通信。NI OPC Servers所支持的裝置與驅(qū)動(dòng)插件程序可從ni.com查看。NI OPC Server與LabVIEW組合而成的單一平臺(tái)可對(duì)工業(yè)系統(tǒng)進(jìn)行高性能的測(cè)量和控制[10]。
DataSocket技術(shù)是NI公司推出的面向測(cè)控領(lǐng)域的網(wǎng)絡(luò)通信技術(shù),是一種基于TCP/IP協(xié)議的網(wǎng)絡(luò)編程技術(shù),它支持本地文件I/O操作、FTP和HTTP文件傳輸、實(shí)時(shí)數(shù)據(jù)共享,并提供統(tǒng)一的API(應(yīng)用程序編程接口)。具有方便使用、高效編程、不需了解底層操作過(guò)程等優(yōu)點(diǎn),適合于遠(yuǎn)程數(shù)據(jù)采集、監(jiān)控和數(shù)據(jù)共享等應(yīng)用程序的開(kāi)發(fā)。
從結(jié)構(gòu)上看,DataSocket包括 DataSocket API和DataSocket Server兩部分。DataSocket API提供了簡(jiǎn)單的應(yīng)用接口,作為客戶,可以在多種編程環(huán)境下與多種數(shù)據(jù)類型通信,DataSocket API包含四個(gè)基本動(dòng)作:Open、Read、Write 和 Close。除了從 DataSocket Server上獲取數(shù)據(jù)外,DataSocket還可以獲得HTTP Server、FTP Server和 OPC Server的數(shù)據(jù)。DataSocket Server是一個(gè)獨(dú)立運(yùn)行的程序,是提供數(shù)據(jù)交換的場(chǎng)所,作為服務(wù)器,負(fù)責(zé)存儲(chǔ)數(shù)據(jù)源發(fā)布的數(shù)據(jù),然后提供給請(qǐng)求的計(jì)算機(jī)[11-12]。
LabVIEW是由美國(guó)國(guó)家儀器公司開(kāi)發(fā)的一種功能強(qiáng)大而又靈活的儀器和分析軟件應(yīng)用開(kāi)發(fā)工具。
LabVIEW使用的編程語(yǔ)言為G語(yǔ)言(圖形化的程序設(shè)計(jì)語(yǔ)言),它用框圖代替了傳統(tǒng)的程序代碼。目前LabVIEW已被公認(rèn)為是標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件,廣泛應(yīng)用于測(cè)試、工業(yè)自動(dòng)化、教學(xué)和科研等領(lǐng)域[13]。
數(shù)據(jù)記錄與監(jiān)控模塊(Datalogging and Supervisory Control Module,DSC)是 LabVIEW 的附加模塊。LabVIEW DSC模塊包含針對(duì)常用工業(yè)協(xié)議(其中包括OPC)的支持。這讓?xiě)?yīng)用程序幾乎能同所有PLC與可編程自動(dòng)化控制器進(jìn)行通信。借助DSC,可以利用少則十余個(gè)、多則數(shù)千個(gè)的標(biāo)簽,交互開(kāi)發(fā)分布式監(jiān)測(cè)和控制系統(tǒng)[14]。
基于OPC技術(shù)的FX2NPLC和PC間的數(shù)據(jù)通信,從硬件上講,采用的仍然是SC-09編程電纜連接PLC和PC,不需增加其他硬件。PLC自帶的編程口是RS-422接口,PC端是RS-232C接口,通信方式仍然是串行通信方式。編程口在程序下載結(jié)束處于閑置狀態(tài),我們就可以利用它實(shí)現(xiàn)PLC和PC間的通信[15]。
從軟件上講,NI OPC Servers配置后,可以通過(guò)OPC Server Client、共享變量方式、Datasocket數(shù)據(jù)綁定方式和NI分布式系統(tǒng)管理器等四種不同的方式來(lái)實(shí)現(xiàn)數(shù)據(jù)通信,進(jìn)一步可實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,如圖1所示。
圖1 基于OPC技術(shù)的四種不同方式的數(shù)據(jù)通信
下面以一個(gè)由定時(shí)器構(gòu)造的振蕩電路為例,通過(guò)實(shí)驗(yàn)驗(yàn)證FX2N-48MR PLC和PC間四種不同的數(shù)據(jù)通信方式的可行性。
如圖2所示為振蕩電路的梯形圖。定時(shí)器T1的設(shè)定值為10×100=1 s,定時(shí)器T2的設(shè)定值為20×100=2 s。振蕩電路的工作原理是:當(dāng)PLC的輸入端X0接收信號(hào)后,通過(guò)定時(shí)器T1、T2間的配合,PLC的輸出端Y0產(chǎn)生出T1=1 s、T2=2 s的振蕩電路。如圖3所示為振蕩電路的時(shí)序圖。
地震是一種嚴(yán)重影響地基穩(wěn)定性的自然災(zāi)害,地震發(fā)生后,在地震荷載的作用下,地基土體會(huì)出現(xiàn)松動(dòng)和變形現(xiàn)象,從而影響建筑結(jié)構(gòu)的穩(wěn)定性。加固地基是增強(qiáng)地基抗震性能最為有效的方法之一。通過(guò)加固處理,可以使地基的抗液化能力顯著提升,從而改善地基土體的動(dòng)力特性。同時(shí),加固后的地基土?xí)a(chǎn)生預(yù)震效應(yīng),進(jìn)一步提高了地基的整體強(qiáng)度、剛度和穩(wěn)定性。對(duì)震害嚴(yán)重的厚軟土層,可以采用高壓噴射注漿法進(jìn)行加固處理,當(dāng)?shù)卣鸢l(fā)生時(shí),可以使地基保持良好的穩(wěn)定性。
在NI OPC Servers添加PLC OPC標(biāo)簽的目的在于建立起和PLC間的一一對(duì)應(yīng)關(guān)系。
當(dāng) PLC執(zhí)行程序時(shí),選擇 Tools→OPC Quick Client,就可進(jìn)入OPC Quick Client工作界面,就可以對(duì)PLC的各個(gè)軟元件(X0、Y0、T1、T2)的工作狀態(tài)進(jìn)行讀取。
當(dāng) PLC處于 STOP狀態(tài)時(shí),通過(guò) Value→Asynchronous 2.0 Write,還可改變軟元件的當(dāng)前值。如圖6所示,寫(xiě)入輸出端Y0的值為1,此時(shí)PLC上Y0對(duì)應(yīng)的指示燈亮起。
圖2 振蕩電路梯形圖
圖3 振蕩電路時(shí)序圖
圖4 通過(guò)共享變量方式讀取
在LabVIEW 2010啟動(dòng)界面中,通過(guò)項(xiàng)目→新建I/O Server→ OPC Client→ Configure OPC Client I/O Server,建立庫(kù)文件,然后創(chuàng)建約束變量→添加變量→多變量編輯器。利用PLC OPC標(biāo)簽,創(chuàng)建四個(gè)變量。最后在LabVIEW連續(xù)運(yùn)行時(shí),得到的結(jié)果如圖4所示。
在PLC處于STOP狀態(tài)時(shí),通過(guò)改變軟元件的當(dāng)前值。如改變Y0的值為1,此時(shí)PLC上Y0對(duì)應(yīng)的指示燈亮起。
在LabVIEW 2010新建VI的前面板中,先繪出振蕩電路梯形圖。X0、Y0、T1和T2均用垂直搖桿開(kāi)關(guān)表示(但T1、T2的關(guān)閉并不代表計(jì)時(shí)過(guò)程)。在每個(gè)元件→屬性→數(shù)據(jù)綁定→Datasocket,再通過(guò)瀏覽→DSTP服務(wù)器,選中 PLC OPC標(biāo)簽,即可實(shí)現(xiàn)Datasocket數(shù)據(jù)綁定。在設(shè)計(jì)程序時(shí),選擇了讀取DataSocket和寫(xiě)入 DataSocket節(jié)點(diǎn)。其中 OPC TO URL是子VI。
3.4.1 讀取數(shù)據(jù)
LabVIEW連續(xù)運(yùn)行時(shí),需要讀取X0、Y0數(shù)據(jù)時(shí),推上選擇開(kāi)關(guān),并在項(xiàng)名稱中選擇X0或Y0,通過(guò)指示燈即可讀取。讀取Y0的結(jié)果如圖5所示。要讀取T1、T2數(shù)據(jù)時(shí),拉下選擇開(kāi)關(guān),并在項(xiàng)名稱中選擇T1或T2,通過(guò)“讀取的數(shù)據(jù)”即可讀取T1或T2計(jì)時(shí)值。
圖5 讀取Y0的數(shù)據(jù)
3.4.2 寫(xiě)入數(shù)值
當(dāng)PLC在STOP狀態(tài)下,可以寫(xiě)入部分軟元件數(shù)值,以Y0為例,推上是否寫(xiě)入選擇開(kāi)關(guān),點(diǎn)擊“寫(xiě)入”指示燈后燈亮起,隨之PLC對(duì)應(yīng)Y0對(duì)應(yīng)的指示燈亮起,“讀值”指示燈也隨之亮起,如圖6所示。
LabVIEW自版本自8.6后,可用NI分布式系統(tǒng)管理器來(lái)實(shí)現(xiàn)共享變量的功能。如圖7所示為通過(guò)分布式系統(tǒng)管理器讀取Y0的數(shù)據(jù)。
圖6 寫(xiě)入Y0值
圖7 分布式系統(tǒng)管理器讀取Y0值
以NI OPC Servers為基礎(chǔ),可以通過(guò)OPC Server Client、共享變量、Datasocket數(shù)據(jù)綁定和分布式系統(tǒng)管理器等四種方式來(lái)實(shí)現(xiàn)FX2N-48MR PLC與PC間的數(shù)據(jù)通信。實(shí)驗(yàn)證明,這四種數(shù)據(jù)通信方式具備,且具有可行性、操作簡(jiǎn)單、可靠性高等特點(diǎn)。
(References):
[1] 李紅梁.基于OPC的PC與PLC實(shí)時(shí)通訊的LabView實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2003(12):115-118.
LI Hong-liang.Implementation of OPC-based Communication between PC and PLC on LabView Platform [J].Application Research of Computers,2003(12):115-118.
[2] 郁漢琪,盛黨紅,鄧東華.電氣控制與可編程控制器應(yīng)用技術(shù)[M].南京:東南大學(xué)出版社,2003.
[3] 顏志國(guó),沈天明,金 潔.基于VB的PLC串口通訊在背散射人體檢查儀動(dòng)作控制中的應(yīng)用[J].警察技術(shù),2010(5):61-64.
YAN Zhi-guo,SHEN Tian-ming,JIN Jie.Application of PLC Serial Communication in the Backscattering Body Chek Control Instrument Based on VB[J].Police Technology,2010(5):61-64.
[4] 俞紅衛(wèi),楊 靜,顧站松.FX2N型PLC與PC機(jī)的串行通信[J].電氣自動(dòng)化,2004,26(5):37-38,49.
YU Hong-wei,YANG Jing,GU Zhan-song.Serial Communication between PC Computer and FX2NPLC[J].Electrical Automation,2004,26(5):37-38,49.
[5] 張 暉.基于LabVIEW的FX2N型PLC與計(jì)算機(jī)通信實(shí)現(xiàn)[J].自動(dòng)化博覽,2008(8):78-80.
ZHANG Hui.Design and Implementation of Identification for SIP System Based on LabVIEW[J].Automation Panorama,2008(8):78-80.
[6] 鄢華林,邱月全.VB6.0環(huán)境下三菱FX系列PLC與上位機(jī)的串行通信[J].計(jì)算機(jī)與現(xiàn)代化,2010(5):122-124.
YAN Hua-lin,QIU Yue-quan.Serial Communication Between FX Series of Mitsubishi PLC and Host Computer Based on VB6.0 [J].Computer and Modernization,2010(5):122-124.
[7] 楊 芷,魯五一,熊紅云.基于OPC技術(shù)的LabVIEW與PLCs通訊[J].長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院學(xué)報(bào),2006,6(2):62-65.
YANG Zhi,LU Wu-yi,XIONG Hong-yun.TheCommunication Between LabVIEW and PLC Based on OPC[J].Journal of Changsha Aeronautical Vocational and Technical College,2006,6(2):62-65.
[8] 石靈丹,華 斌,朱歆州,等.基于OPC技術(shù)的PC與西門(mén)子PLC的實(shí)時(shí)通訊[J].船電技術(shù),2011,31(1):9-12.
SHI Ling-dan,HUA Bin,ZHU Xin-zhou,WU Ming.Real-time Communication Between PC and Siemens PLC Based on OPC[J].Marine Electric & Electronic Engineering,2011,31(1):9-12.
[9] 曾珞亞.基于OPC技術(shù)的PLC與LabView通信實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009,25(16):52-53,128.
ZENG Luo-ya.Realization of Data Communication based on OPC Technology between PLC and LabView [J].Microcomputer Information,2009,25(16):52-53,128.
[10] 徐慶坤,王軍偉,毛建偉.基于NI OPC Servers實(shí)現(xiàn)PC與PLC實(shí)時(shí)通訊[J].工業(yè)控制計(jì)算機(jī),2013,26(7):51-52.
XU Qing-kun,WANG Jun-wei,MAO Jian-wei.Implementation of NI OPC-based Real-time Communication Between PC and PLC[J].Industrial Control Computer,2013,26(7):51-52.
[11] 林 鵬,溫響東.基于DataSocket技術(shù)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室構(gòu)建[J].實(shí)驗(yàn)室研究與探索,2008,27(5):68-70.
LIN Peng,WEN Xiang-dong.Construction of Network Virtual Lab on DataSocket Technique[J].Research and Exploration in Laboratory,2008,27(5):68-70.
[12] 蔣朝陽(yáng),祝 陳.基于DataSocket的虛擬儀器技術(shù)在設(shè)備遠(yuǎn)程狀態(tài)監(jiān)測(cè)與故障診斷中的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2012(5):64-65.
JIANG Zhao-yang,CHEN Zhu.Application of Virtual Instrument Technology in Remote Condition Monitoring and Fault Diagnosis Based on DataSocket[J].Digital Technology and Application,2012(5):64-65.
[13] 彭 勇,潘曉燁,謝龍漢.LabVIEW虛擬儀器設(shè)計(jì)與分析[M].北京:清華大學(xué)出版社,2011.
[14] 俞 梅,孫 娜,唐明新.基于LabVIEW DSC的監(jiān)控軟件的應(yīng)用研究[J].微計(jì)算機(jī)信息,2007,23(3-1):88-90.
YU Mei,SUN Na,TANG Ming-xin.Application Rearch of the SCADA Software Based on Lab VIEW DSC[J].Microcomputer Information,2007,23(3-1):88-90.
[15] 柳 劍,陳於學(xué),楊曙年.基于編程口的三菱PLC與PC機(jī)串行通信實(shí)現(xiàn)[J].自動(dòng)化儀表,2010,31(11):31-33,37.
LIU Jian,CHEN Yu-xue,YangShu-nian.ImplementingSerial Communication between PC and MITSUBISHI PLC Based on Selfcontained Programming Port[J]. Process Automation Instrumentation,2010,31(11):31-33,37.