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