在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            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] 弭洪濤,畢國(guó)忠等.PLC應(yīng)用技術(shù).北京:中國(guó)電力出版社2004

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


            上一頁 1 2 下一頁

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

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉