<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 上位機(jī)與PLC的通信與監(jiān)控設(shè)計(jì)

          上位機(jī)與PLC的通信與監(jiān)控設(shè)計(jì)

          作者: 時(shí)間:2011-10-06 來源:網(wǎng)絡(luò) 收藏

            //程序初始化:

          procedure TForm1.Init_(nPort:integer);

          begin

          if MSComm.PortOpen then

          MSComm.PortOpen:=False;

          MSComm.Commport:=nPort;

          //端口選擇

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

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

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

          end;

          //FCS校驗(yàn)

          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控件實(shí)現(xiàn)

          procedure TForm1.HandShake_;

          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);// 延時(shí)

          tmpVar:=MSComm.Input;

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

          tmpByte1:=tmpVar[5];

          tmpByte2:=tmpVar[6];

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

          //校驗(yàn)碼等于00,PLC正常完成操作

          then

          begin

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

          else

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

          //end;

          end;

          4.2 實(shí)現(xiàn)對(duì)PLC的

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

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

          (a) PLC正常工作

          (b)上位機(jī)控制

                                      圖6 PLC的上位機(jī)控制

          5結(jié)束語

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

            參考文獻(xiàn)

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

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


          上一頁 1 2 下一頁

          關(guān)鍵詞: 上位機(jī) PLC 通信 監(jiān)控

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();