技術頻道

      上位機與PLC的通信與監控設計

      摘要:本文簡要的介紹了CPM2A的上位機通信以及實現上位機監控的PLC編程,并給出了基于Delphi的串口通信參考程序。
      關鍵詞:PLC 上位鏈接系統

      1.引 言
      PLC是專為工業控制而設計的專用計算機,其體積小,具有高可靠性和很強的抗干擾能力,因而在工業控制中得到了廣泛的使用。隨著工業的自動化程度的提高,對PLC的應用提出了更高的要求:更快的處理速度,更高的可靠性,控制與管理功能一體化??刂婆c管理一體化也就是將計算機信息處理技術,網絡通信技術應用于PLC,使PLC用于下位分散控制,用計算機提供圖形顯示界面,同時對下位機進行監控。本文討論的是上位計算機與歐姆龍CPM2A型PLC的通信與監控設計。
      2.通信協議
      2.1 CPM2A 的通信鏈接方式
      CPM2A有三種通信聯系方式:上位鏈接系統、同位鏈接系統、ComPoBus通信系統。工廠自動化系統中常把三種系統復合起來一起使用來實現工廠自動化系統要求的多級功能。復合型PLC網絡中,上位鏈接系統處于最高位,負責整個系統的監控優化。
      上位機與CMP2A的通信有兩種方式:上位機命令與PLC通信命令。上位機命令方式上位機處于主動,命令由上位機發往PLC。采用上位機命令方式能方便的實現上位機對PLC的監控。上位機與CPM2A采用RS-232端口進行通信,串口接線如圖1所示。


      2.2 CPM2A的上位通信協議
      CPM2A的數據是以幀的格式發送的,當通信命令小于一幀時,發送格式如圖2所示。其中正文最多122個字符。當命令塊內容大于一幀時,由起始幀、中間幀、及結果幀組成。起始幀最多131個字符,中間幀及結束幀最多128個字符。起始幀由設備號、命令碼、正文、 FCS、和分界符構成。中間幀有正文、FCS、分界符組成。結束幀由正文FCS、結束符組成。上位機每發送完一幀,在收到PLC發回的分界符后再發送下一幀。

      命令塊中的校驗碼FCS是8位二進制數轉換成的2位ASCⅡ字符。這8位數據是將一幀數據中校驗碼前的所有字符的ASC Ⅱ碼位按連續異或的結果。轉換成字符時,按照2位十六進制數轉換成對應的數字字符。
      PLC接收到上位機發送的命令幀后,自動產生響應塊,響應塊的格式與圖2格式類似,只是在命令碼后面多了兩位的響應碼,響應碼表示了上位機命令的出錯信息。響應碼00表示PLC正常完成上位機命令。
      3.PLC命令的編寫
      在CPM2A的上位鏈接系統中,PLC接收指令并被動地給上位機返回響應塊。所以作為下位機的PLC不需要編寫通信程序。上位機與PLC的通信不能改變PLC的輸入狀態。為了通過上位機改變PLC的輸出,在編寫下位機的程序時就要利用PLC的工作位,通過上位機改變工作位的狀態來改變PLC的輸出,從而達到上位機對PLC輸出的控制。
      如圖3所示,在梯形圖中加入了工作位3.00,4.00。系統正常工作時3.00,4.00置OFF,當需要實現上位機控制時,把3.00置ON,使PLC的輸入端0.00失效,通過工作位4.00的通斷來控制系統的輸出。

      4.編寫上位機通信程序
      在上位鏈接系統中,通信一般都是由上位機發起的,按PLC標準通信進行連接。上位機給PLC發送操作指令,PLC按照指令執行相應的操作,同時給上位機返回數據。串口通信流程如下圖。

      4.1 編寫上位通信程序
      編寫通信程序可以采用高級語言或者匯編語言,下面給出的例子是用Delphi編寫的上位機與CPM2A型PLC通信程序.通信采用標準通信模式。通信界面如圖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位數據位,偶效驗,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;
      // 調用MSComm控件實現PLC通信
      procedure TForm1.HandShake_PLC;
      var
      tmpByte1,tmpByte2:char;
      tmpVar:string;
      s:string;
      begin
      Init_PLC(1);
      s:=Edit1.text;
      tmpVar:=s+inttostr(FCS(s))+‘*‘+chr(13);
      MSComm.RThreshold:=0;
      MSComm.Output:=tmpVar;
      //向串口輸出數據
      sleep(1000);// 延時
      tmpVar:=MSComm.Input;
      //從串口讀取數據
      tmpByte1:=tmpVar[5];
      tmpByte2:=tmpVar[6];
      if tmpByte1=chr(48)& tmpByte2:=chr(48);
      //校驗碼等于00,PLC正常完成操作
      then
      begin
      Showmessage(‘發送的數據正確‘);
      else
      Showmessage(‘發送的數據有問題‘);
      //end;
      end;
      4.2 實現上位機對PLC的監控
      編寫通信程序建立了上位機與PLC的連接.在PLC的任何工作方式下都可以通過”讀”指令讀取PLC的狀態.從而對PLC進行監視.只有當PLC的工作方式為監視的情況下才可以通過上位機對PLC進行控制.所以在需要上位機實施控制的系統里面PLC都必須設置為監視工作方式.
      上位機只需要設置PLC的相應工作位就可以實現對PLC的控制.下圖為PLC上位機控制過程。圖a表示PLC 正常工作時輸出由輸入0.00控制,當需要把PLC的控制轉由上位機控制時,只需要通過向PLC輸入@00RR00030001,置3.00為ON,切斷0.00的
      通路,這樣輸出10.00就轉由4.00控制,當輸入@00WR00040001時,4.00為ON,輸出位10.00產生輸出。

      5.結束語
      本文探討了實現PLC的上位鏈接系統通信的方法,以及要實現上位機對下PLC控制的PLC編程。通過上位機對PLC的監視與控制,可用方便的實現工廠生產過程的自動化監控。
      參考文獻
      [1] 弭洪濤,畢國忠等.PLC應用技術.北京:中國電力出版社2004
      [2] 宋伯生.PLC編程理論 算法及技巧. 北京:機械工業出版社2006

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 国产伦精品一区二区三区视频金莲| 久久久久人妻精品一区三寸蜜桃| 亚洲AV永久无码精品一区二区国产| 国产高清在线精品一区二区三区 | 国产探花在线精品一区二区| 成人精品一区二区不卡视频| 久久se精品一区二区| 国产精品视频一区国模私拍 | 亚洲国产高清在线一区二区三区| 国产成人精品无码一区二区| 日亚毛片免费乱码不卡一区| 人妻夜夜爽天天爽爽一区| 视频一区二区中文字幕| 国产精品一区二区毛卡片| 成人免费区一区二区三区| 大香伊蕉日本一区二区| 国产精品揄拍一区二区久久| 少妇人妻偷人精品一区二区| 日本免费电影一区| 在线视频精品一区| 亚洲AV一区二区三区四区| 亚洲视频一区二区三区四区| 国产爆乳无码一区二区麻豆| 伊人久久大香线蕉av一区| 中文字幕无码一区二区三区本日 | 国产一区二区高清在线播放| 国产免费私拍一区二区三区| 久久精品成人一区二区三区| 免费萌白酱国产一区二区三区| 精品国产一区在线观看| 中日韩精品无码一区二区三区| 国产一区二区三区韩国女主播 | 无码一区二区三区在线观看| 日本亚洲国产一区二区三区| 无码av不卡一区二区三区| 波多野结衣一区二区三区高清在线 | 亚洲一区二区三区深夜天堂| 亚洲一区精品视频在线| 亚洲一区二区三区精品视频| 亚洲AV乱码一区二区三区林ゆな| 久久福利一区二区|