焦洪遠(yuǎn)
(沈陽(yáng)工業(yè)大學(xué),遼寧 沈陽(yáng) 110870)
?
PLC與Matlab的通訊技術(shù)研究
焦洪遠(yuǎn)
(沈陽(yáng)工業(yè)大學(xué),遼寧 沈陽(yáng) 110870)
PLC編程是一種數(shù)字運(yùn)算操作的電子系統(tǒng),專為在工業(yè)環(huán)境下應(yīng)用而設(shè)計(jì)。它采用可編程序的存儲(chǔ)器,用來(lái)在其內(nèi)部存儲(chǔ)執(zhí)行邏輯運(yùn)算、順序控制、定時(shí)、計(jì)數(shù)和算術(shù)運(yùn)算等操作的指令,并通過(guò)數(shù)字式、模擬式的輸入和輸出,控制各種類型的機(jī)械或生產(chǎn)過(guò)程.MATLAB將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,本文對(duì)PLC與Matlab在串口通訊方面進(jìn)行了研究。
PLC ; Matlab ;串口通訊
Matlab并不具備直接訪問(wèn)硬件的能力,但是支持面向?qū)ο蠹夹g(shù),通過(guò)調(diào)用Instrument Control Toolbox中的serial類函數(shù)來(lái)創(chuàng)建串口對(duì)象,對(duì)串口對(duì)象操作就是對(duì)串口操作,使用起非常方便。同時(shí),Matlab封裝的串口對(duì)象支持對(duì)串口的異步讀寫操作,使得計(jì)算機(jī)在讀寫串口時(shí)能同時(shí)進(jìn)行其他處理工作,因而能大大提高計(jì)算機(jī)執(zhí)行效率。Matlab用多線程技術(shù)實(shí)現(xiàn)這種異步操作,通過(guò)異步讀寫設(shè)置,計(jì)算機(jī)在執(zhí)行讀寫串口函數(shù)時(shí)能立即返回不必等待串口把數(shù)據(jù)傳輸完畢,當(dāng)指定的數(shù)據(jù)傳輸結(jié)束時(shí)就觸發(fā)事件,執(zhí)行事件回調(diào)函數(shù),可以在事件回調(diào)函數(shù)中編程,進(jìn)行數(shù)據(jù)處理,這樣就不會(huì)造成因等待串口傳輸數(shù)據(jù)引起的時(shí)間浪費(fèi)。
從Matlab6.0版本開(kāi)始,Mathworks公司在軟件中增加了設(shè)備控制箱(instrument control toolbox),提供了對(duì)RS-232/RS-485通信標(biāo)準(zhǔn)串口通信正式支持。利用該工具箱serial類及instrcallback()回調(diào)函數(shù),能可靠地進(jìn)行實(shí)時(shí)串地通信。為此,筆者充分結(jié)合單片機(jī)和Matlab優(yōu)點(diǎn),基于事件驅(qū)動(dòng)中斷通信機(jī)制,提出了一種Matlab環(huán)境下PC機(jī)與單片機(jī)實(shí)時(shí)串行通信數(shù)據(jù)處理方法,極大地簡(jiǎn)化開(kāi)發(fā)流程,提高了系統(tǒng)開(kāi)發(fā)效率。另外,與目前普遍采用基于Matlab查詢方式下非實(shí)時(shí)串行通信技術(shù)相比,這種方法實(shí)用性也大大增強(qiáng)了。
3.1通訊原理
Matlab7.0集成了OPC Toolbox,它是一個(gè)OPC客戶端數(shù)據(jù)訪問(wèn)軟件,通過(guò)OPC Toolbox可以連接任何一個(gè)OPC數(shù)據(jù)服務(wù)器,實(shí)現(xiàn)對(duì)連接服務(wù)器數(shù)據(jù)的讀或?qū)??;贠PC技術(shù)的Matlab與PLC S7200通信原理圖如圖3所示:參照Matlab中的OPCToolbox對(duì)象模型,以s7—200 OPC Server為OPC服務(wù)器,Matlab為客戶端,建立OPC通信的流程,實(shí)現(xiàn)Matlab在實(shí)際工業(yè)控制系統(tǒng)中的應(yīng)用。
3.2PC Access與S7-200的連接
PC Access是西門子S7—200的專用OPC服務(wù)器,支持OPC Data Access(DA)3.0規(guī)范,可以與任何標(biāo)準(zhǔn)的OPC客戶端通信,其服務(wù)器ID為“S7—200.OPCServer”。在PC Access中可以為監(jiān)控的PLC定義屬性、通信協(xié)議,創(chuàng)建客戶端訪問(wèn)的數(shù)據(jù)項(xiàng)(Item)及數(shù)據(jù)地址等。本系統(tǒng)中需要通過(guò)OPC通信的數(shù)據(jù)項(xiàng)有2個(gè),即werldu(溫度過(guò)程值)、kongzhi(控制量)。
3.3建立Matlab與PC Access的連接
運(yùn)行PC Access中的相關(guān)項(xiàng)目后,在Matlab命令窗口編寫運(yùn)行如下M文件程序?qū)崿F(xiàn)Matlab與PCAccess的通信。
clc
clear all;
hostlnfo=opcserverinfo(’localhost’);
allServers=hostInfo.ServerID;%確定該主機(jī)上可用的ID
da=opcda(’localhost’,’S7200.OPCServer’);%s7—200 OPC Sever為PC Access的OPC服務(wù)器ID connect(da);%連接OPC服務(wù)器
grp=addgroup(da,’groupl’).%增加組
wendu=additem(grp,’MicroWin.NewPLc.wendu’);%增加數(shù)據(jù)項(xiàng)與PC Access中溫度設(shè)定關(guān)聯(lián)。
kongzhi=additem(grp,’MicroWin.NewPLc.kongzhi’)。
[1]王樹(shù)東,畢作文,王紅波,OPC技術(shù)下PLC與MATLAB相結(jié)合的模糊控制系統(tǒng)[J].電氣自動(dòng)化,2011,33(5):11-14.
[2]西門子公司,S7-300/400 PLC編程手冊(cè)[Z].北京:西門子(中國(guó))有限公司自動(dòng)化部,1998.
[3]劉志儉,等.Matlab應(yīng)用程序接口用戶指南[M].北京:科學(xué)出版社,2000.
[4]遲君平,王斌,李業(yè)友.模塊化編程方法在PLC程序開(kāi)發(fā)中的應(yīng)用[J].為計(jì)算機(jī)信息,2005,21(06):26-27.
焦洪遠(yuǎn)(1986-),男,漢族,碩士,沈陽(yáng)工業(yè)大學(xué),過(guò)程檢測(cè)技術(shù)與控制。
TP336
A
1671-1602(2016)18-0003-01