《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 上位機與PLC的通信與監(jiān)控設(shè)計
上位機與PLC的通信與監(jiān)控設(shè)計
EEworld
EEworld
摘要: 1引言PLC是專為工業(yè)控制而設(shè)計的專用計算機,其體積小,具有高可靠性和很強的抗干擾能力,,因而在工業(yè)...
關(guān)鍵詞: 上位機 PLC 通信 監(jiān)控
Abstract:
Key words :

  1 引 言

  PLC是專為工業(yè)控制而設(shè)計的專用計算機,,其體積小,,具有高可靠性和很強的抗干擾能力,因而在工業(yè)控制中得到了廣泛的使用。

  隨著工業(yè)的自動化程度的提高,對PLC的應(yīng)用提出了更高的要求:更快的處理速度,,更高的可靠性,控制與管理功能一體化,??刂婆c管理一體化也就是將計算機信息處理技術(shù),網(wǎng)絡(luò)通信技術(shù)應(yīng)用于PLC,,使PLC用于下位分散控制,,用計算機提供圖形顯示界面,同時對下位機進行監(jiān)控,。本文討論的是上位計算機與歐姆龍CPM2A型PLC的通信與監(jiān)控設(shè)計,。

  2 通信協(xié)議

  2.1 CPM2A 的通信鏈接方式

  CPM2A有三種通信聯(lián)系方式:上位鏈接系統(tǒng)、同位鏈接系統(tǒng),、ComPoBus通信系統(tǒng),。工廠自動化系統(tǒng)中常把三種系統(tǒng)復(fù)合起來一起使用來實現(xiàn)工廠自動化系統(tǒng)要求的多級功能。復(fù)合型PLC網(wǎng)絡(luò)中,,上位鏈接系統(tǒng)處于最高位,,負(fù)責(zé)整個系統(tǒng)的監(jiān)控優(yōu)化。

  上位機與CMP2A的通信有兩種方式:上位機命令與PLC通信命令,。上位機命令方式上位機處于主動,命令由上位機發(fā)往PLC。采用上位機命令方式能方便的實現(xiàn)上位機對PLC的監(jiān)控,。上位機與CPM2A采用RS-232端口進行通信,,串口接線如圖1所示?!      ?/p>

                                 圖1 CPM2A與上位機的鏈接

        2.2 CPM2A的上位通信協(xié)議

  CPM2A的數(shù)據(jù)是以幀的格式發(fā)送的,,當(dāng)通信命令小于一幀時,發(fā)送格式如圖2所示,。其中正文最多122個字符,。當(dāng)命令塊內(nèi)容大于一幀時,由起始幀、中間幀,、及結(jié)果幀組成,。起始幀最多131個字符,中間幀及結(jié)束幀最多128個字符,。起始幀由設(shè)備號,、命令碼、正文,、 FCS,、和分界符構(gòu)成。中間幀有正文,、FCS,、分界符組成。結(jié)束幀由正文FCS,、結(jié)束符組成,。上位機每發(fā)送完一幀,在收到PLC發(fā)回的分界符后再發(fā)送下一幀,?!         ?/p>

          圖2 CPM2A 通信時命令塊的格式
 
  命令塊中的校驗碼FCS是8位二進制數(shù)轉(zhuǎn)換成的2位ASCⅡ字符。這8位數(shù)據(jù)是將一幀數(shù)據(jù)中校驗碼前的所有字符的ASCⅡ碼位按連續(xù)異或的結(jié)果,。轉(zhuǎn)換成字符時,,按照2位十六進制數(shù)轉(zhuǎn)換成對應(yīng)的數(shù)字字符。

  PLC接收到上位機發(fā)送的命令幀后,,自動產(chǎn)生響應(yīng)塊,,響應(yīng)塊的格式與圖2格式類似,只是在命令碼后面多了兩位的響應(yīng)碼,,響應(yīng)碼表示了上位機命令的出錯信息,。響應(yīng)碼00表示PLC正常完成上位機命令。

         3 PLC命令的編寫

  在CPM2A的上位鏈接系統(tǒng)中,,PLC接收指令并被動地給上位機返回響應(yīng)塊,。所以作為下位機的PLC不需要編寫通信程序。

  上位機與PLC的通信不能改變PLC的輸入狀態(tài),。為了通過上位機改變PLC的輸出,,在編寫下位機的程序時就要利用PLC的工作位,通過上位機改變工作位的狀態(tài)來改變PLC的輸出,,從而達到上位機對PLC輸出的控制,。

   如圖3所示,在梯形圖中加入了工作位3.00,,4.00,。系統(tǒng)正常工作時3.00,,4.00置OFF,當(dāng)需要實現(xiàn)上位機控制時,,把3.00置ON,,使PLC的輸入端0.00失效,通過工作位4.00的通斷來控制系統(tǒng)的輸出,。

        


       圖3 實現(xiàn)上位機監(jiān)控的PLC編程

          4 編寫上位機通信程序

  在上位鏈接系統(tǒng)中,,通信一般都是由上位機發(fā)起的,按PLC標(biāo)準(zhǔn)通信進行連接,。上位機給PLC發(fā)送操作指令,,PLC按照指令執(zhí)行相應(yīng)的操作,同時給上位機返回數(shù)據(jù),。串口通信流程如下圖,。

            

圖4 通信流程圖

         4.1 編寫上位通信程序

  編寫通信程序可以采用高級語言或者匯編語言,下面給出的例子是用Delphi編寫的上位機與CPM2A型PLC通信程序.通信采用標(biāo)準(zhǔn)通信模式,。通信界面如圖5,。

  //程序初始化:

procedure TForm1.Init_PLC(nPort:integer);

begin

if MSComm.PortOpen then

MSComm.PortOpen:=False;

MSComm.Commport:=nPort;

//通信端口選擇

MSComm.Settings:='9600,e,7,1';

//1位起始位,7位數(shù)據(jù)位,,偶效驗,,2位停止位,9600bps

MSComm.PortOpen:=True;//打開串口

end;

//FCS校驗

function FCS(s:string):variant;

var


i,len,tmpVar:integer;

DataCheck:byte;

f1,f2:byte;

begin

f1:=0;

f2:=0;

DataCheck:=0;

len:=length(s);

tmpVar:=0;

for i:=1 to len do

begin

DataCheck:=ord(DataCheck) xor ord(s[i]);

end;

f1:=DataCheck and $0f;

f2:=DataCheck and $f0;

f2:=f2 shr 4;

result:=inttostr(f2)+inttostr(f1);

end;

// 調(diào)用MSComm控件實現(xiàn)PLC通信

procedure TForm1.HandShake_PLC;

var

tmpByte1,tmpByte2:char;

tmpVar:string;

s:string;

begin

Init_PLC(1);

&nbs
p; s:=Edit1.text;

tmpVar:=s+inttostr(FCS(s))+'*'+chr(13);

MSComm.RThreshold:=0;

MSComm.Output:=tmpVar;

//向串口輸出數(shù)據(jù)

sleep(1000);// 延時

tmpVar:=MSComm.Input;

//從串口讀取數(shù)據(jù)

tmpByte1:=tmpVar[5];

tmpByte2:=tmpVar[6];

if tmpByte1=chr(48)& tmpByte2:=chr(48);

//校驗碼等于00,PLC正常完成操作

then

begin

Showmessage('發(fā)送的數(shù)據(jù)正確');

else

Showmessage('發(fā)送的數(shù)據(jù)有問題');

//end;

end;

        4.2 實現(xiàn)上位機對PLC的監(jiān)控

  編寫通信程序建立了上位機與PLC的連接.在PLC的任何工作方式下都可以通過”讀”指令讀取PLC的狀態(tài).從而對PLC進行監(jiān)視.只有當(dāng)PLC的工作方式為監(jiān)視的情況下才可以通過上位機對PLC進行控制.所以在需要上位機實施控制的系統(tǒng)里面PLC都必須設(shè)置為監(jiān)視工作方式.

  上位機只需要設(shè)置PLC的相應(yīng)工作位就可以實現(xiàn)對PLC的控制.下圖為PLC上位機控制過程,。圖a表示PLC 正常工作時輸出由輸入0.00控制,,當(dāng)需要把PLC的控制轉(zhuǎn)由上位機控制時,只需要通過向PLC輸入@00RR00030001,,置3.00為ON,,切斷0.00的通路,這樣輸出10.00就轉(zhuǎn)由4.00控制,,當(dāng)輸入@00WR00040001時,4.00為ON,輸出位10.00產(chǎn)生輸出,。

       (a) PLC正常工作

      (b)上位機控制

                                                                                         圖6 PLC的上位機控制

         5 結(jié)束語

  本文探討了實現(xiàn)PLC的上位鏈接系統(tǒng)通信的方法,以及要實現(xiàn)上位機對下PLC控制的PLC編程,。通過上位機對PLC的監(jiān)視與控制,,可用方便的實現(xiàn)工廠生產(chǎn)過程的自動化監(jiān)控。

  參考文獻

  [1] 弭洪濤,,畢國忠等.PLC應(yīng)用技術(shù).北京:中國電力出版社2004

  [2] 宋伯生.PLC編程理論 算法及技巧. 北京:機械工業(yè)出版社2006

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。