<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
        中華工控網(wǎng)首頁
          P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
          D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
          電 源 | 嵌入式系統(tǒng) | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
        VC環(huán)境下三菱PLC與微機的串行通信
        成都?乒た赜邢薰
        收藏本文     查看收藏
            可編程控制器(PLC)是集計算機技術(shù)、自動控制技術(shù)、通信技術(shù)為一體的新型自動控制裝置。由于體積小、可靠性高以及組態(tài)靈活等優(yōu)點,PLC在工業(yè)控制領(lǐng)域得到了廣泛的應用。將PC機與可編程控制器組合起來,充分利用PC機強大的人機接口功能、豐富的應用軟件和低廉的價格來共同實現(xiàn)管理、控制一體化成為一個新的發(fā)展趨勢。本文重點介紹在Windows 2000環(huán)境下如何利用VC來實現(xiàn)PC機與三菱PLC之間的串行通訊。
        1 三菱PLC與計算機之間通信協(xié)議
        FX2系列PLC與計算機之間的通信采用RS-232標準,其傳輸速率固定為9600bps,奇偶校驗位采用偶校驗。數(shù)據(jù)格式如表1所示。數(shù)據(jù)以幀為單位發(fā)送和接收。一個多字符幀由圖1所示的五部分組成,其中和校驗值是將命令碼STX——ETX之間的字符的ASCII碼(十六進制數(shù))相加,取得所得和的最低二位數(shù)。STX和ETX分別表示該字符幀的起始標起和結(jié)束標志。


        (1) 起始字元(STX):ASCII碼的起始字元STX對應的16進制數(shù)位0x02。無論命令信息還是回應信息,它們的起始字元均為STX,接收方以此來判知傳輸資料的開始。
        (2) 命令號碼:為兩位16進制數(shù)。所謂命令號碼是指上位機要求下位機所執(zhí)行的動作類別,例如要求讀取或?qū)懭雴吸c狀態(tài)、寫入或讀取暫存器資料、強制設(shè)定、運行、停止等。在回應信息中,下位機會將上位機接收到的命令號碼原原本本的隨同其它信息一同發(fā)送給上位機。
        (3) 元件首地址:對應要操作的元件的相應的地址。如從D123單元中讀取數(shù)據(jù)時,要把它對應的地址:0x10F6發(fā)送給PLC。
        (4) 元件個數(shù):一次讀取位元件或字元件的數(shù)量。
        (5) 結(jié)束字元(ETX):ASCII碼的結(jié)束字元ETX對應的16進制數(shù)為0x03。無論命令信息還是回應信息,它們的結(jié)束字元均為ETX,接收方以此來判知此次通訊已結(jié)束。

        (6) 校驗碼(Checksum):校驗碼是將STX-ETX之間的ASCII字元的16進制數(shù)值以“LRC(Longitudinal Redundancy Check)”法計算出1個Byte長度(兩個16進制數(shù)值00-FFH)的校驗碼。當下位機接收到信息后,用同樣的方法計算出接收信息的校驗碼,如果兩個校驗碼相同,則說明傳送正確。
        FX2系列與計算機之間的通信是以主機發(fā)出的初始命令,PLC對其做出響應的方式進行通信的。共有0、1、7、8四種命令,上位機實現(xiàn)對PLC的讀寫和強行置位。通過ENQ、ACK和NAK,上位機協(xié)調(diào)與PLC的通信應答。
        2 編程口操作命令類型
        串行通信是計算機與其他機器之間進行通信的一種常用方法,在Windows操作系統(tǒng)中提供了實現(xiàn)各種串行通信的API函數(shù)。通過SC-09編程電纜或FX-232-BD通訊模塊,可以將PC機和計算機串行通信口RS-232連接起來,可以實現(xiàn)PC機對PLC的RAM區(qū)數(shù)據(jù)進行讀、寫操作。根據(jù)PLC本身所具有的特性,計算機可對PLC進行以下4種類型的操作:
        (1) 位元件或字元件狀態(tài)讀操作(CMD0);
          (2) 位元件或字元件狀態(tài)寫操作(CMD1);
          (3) 位元件強制ON操作(CMD7);
          (4) 位元件強制OFF操作(CMD8)。
        3 軟件編程
        (1) 串行通信實現(xiàn)方法
         在進行以上四種操作之前要對串行通信口進行必要的初始化。本人采用了一個專門針對串行通信的CSerial類,并在Open函數(shù)中進行了進一步的完善。它由MuMega Technologies公司提供的一個Visual C++類,我們只要理解CSerial類種的幾個成員函數(shù),就能很方便地實現(xiàn)串行通信了。以下是該類定義:
        class CSerial
        {
        public:
         CSerial();
         ~CSerial();
         BOOL Open( int nPort , int nBaud,int nParity,int nByteSize,int nStopBits );
         BOOL Close( void );
         int ReadData( void *, int );
         int SendData( const char *, int );
         int ReadDataWaiting( void );
         BOOL IsOpened( void ){ return( m_bOpened ); }
        protected:
         BOOL WriteCommByte( unsigned char );
         HANDLE m_hIDComDev;
         OVERLAPPED m_OverlappedRead, m_OverlappedWrite;
         BOOL m_bOpened;
        };
        ① Serial::Open這個成員函數(shù)打開通信端口。帶五個參數(shù),第一個是串口號,第二個參數(shù)是數(shù)據(jù)傳輸速率,第三個是數(shù)據(jù)效驗方式,第四個是數(shù)據(jù)位數(shù),第五個是數(shù)據(jù)停止位。
        ② Serial::Close函數(shù)關(guān)閉通信端口。
        ③ CSerial::SendData函數(shù)把數(shù)據(jù)從一個緩沖區(qū)寫到串行端口。第一個參數(shù)是緩沖區(qū)指針,其中包含要被發(fā)送的資料;第二個參數(shù)是發(fā)送的字節(jié)數(shù)。
        ④ CSerial::ReadData函數(shù)從斷口接收緩沖區(qū)讀入數(shù)據(jù)。第一個參數(shù)是緩沖區(qū)指針,資料將被放入該緩沖區(qū);第二個參數(shù)緩沖區(qū)的大小。
        (2) 位元件或字元件狀態(tài)讀操作
        操作對象元件:PLC內(nèi)部的X、Y、M、S、T、C、D元件;命令格式如表1;在發(fā)送完上述命令格式代碼后,就可以讀取PLC響應信息了。響應信息格式如圖2;



        部分程序代碼:
        BOOL CPlcComDlg::ReadPLC(char *Read, char *address, int bytes)
        {
         CSerial Serial;
         char read_BUFFER;
         if(Serial.Open(m_com, m_Buad, m_Parity, m_Byte, m_StopBites))
         {
          Serial.SendData(&ENQ_request,1);//發(fā)送聯(lián)絡訊號
          Sleep(100);
          Serial.ReadData(&read_BUFFER,1);//讀取PLC響應訊號
          if(read_BUFFER==ACK)
          {
           //初始化變量
           //發(fā)送圖2命令格式代碼
        ASCII(readdatasum_check,readdata_sum);
        //將STX-ETX之間的字符相加,轉(zhuǎn)換成ASCII(十六進制),并取和的低二位數(shù)。
            if(*readdatasum_CHECK==*readdatasum_check)//和校驗
            { 
        //對讀出的數(shù)據(jù)進行處理,轉(zhuǎn)換成整型數(shù)   
             for(int j=0;j<bytes/2;j++)
             {
              for(i=j*2;i<j*2+4;i++)
              Read[i]=(Read[i]>0x39)?(Read[i]-0x41+0xA):(Read [i]-0x30);
              Read_value[j]=(((((Read [j*4+2]<<4)+Read [j*4+3]))+Read [j*4+0])<<4)+Read [j*4+1];
             }
             return TRUE;
            }
            else
             return FALSE;
           }
          }
         }
        }
        //將整數(shù)轉(zhuǎn)換成ASCII(十六進制),并取低二位,
        void CPlcComDlg::ASCII(char *total_databytes, int read_bytes)
        {
         unsigned int uTmp;
         uTmp=read_bytes & 0x000f;
         total_databytes[1]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xA);
         uTmp=(read_bytes>>4) & 0x000f;
         total_databytes[0]=(uTmp<10)?(uTmp+0x30):(uTmp+0x41-0xA);
        }
         (3) 位元件或字元件狀態(tài)寫操作
        操作對象元件:PLC內(nèi)部的X、Y、M、S、T、C、D元件;命令格式如圖3所示。


        程序代碼(略)。
        (4) 位元件強制ON操作
        操作對象元件:PLC內(nèi)部的X、Y、M、S、T、C元件;命令格式如圖4所示。

        部分程序代碼如下:
         void CPlcComDlg::ForceOnOpreation(char *Address)
        {
         CSerial Serial;
         char read_BUFFER;
         CString strtemp;
         if(Serial.Open(m_com,9600))
         {
          Serial.SendData(&ENQ_request,1);
          Sleep(100);
          Serial.ReadData(&read_BUFFER,1);
          if(read_BUFFER==ACK)
          { 
         //初始化變量
           //發(fā)送圖4命令格式代碼
        ASCII(Sum_Check,sum); //將STX-ETX之間的字符相加,轉(zhuǎn)換成ASCII(十六進制),并取和的低二位數(shù)
           for(i=0;i<2;i++)
            Serial.SendData(&Sum_Check[i],1);//和校驗
           Sleep(100);
           Serial.ReadData(&read_buffer,1);
           if(read_buffer==ACK)
            return TRUE;
           else
        return FALSE;
          }
         }
        }
         (5) 位元件強制OFF操作
        操作對象元件:PLC內(nèi)部的X、Y、M、S、T、C元件;命令格式如圖5所示。


        4 實時通訊控制界面
        本程序能夠?qū)崿F(xiàn)遠程控制FX系列PLC的運行。能讀取位元件的當前狀態(tài),以及對它們置位和復位。能夠讀取字元件的值和往字元件寫值。并能自動連續(xù)讀取單個字元件的值。

         

        狀 態(tài): 離線

        公司簡介
        產(chǎn)品目錄

        公司名稱: 成都?乒た赜邢薰
        聯(lián) 系 人: 劉慶生
        電  話: 028-85291366
        傳  真: 028-85291244
        地  址: 成都九眼橋望江路1號中海大廈17層
        郵  編: 610021
        主  頁:
         
        該廠商相關(guān)技術(shù)文摘:
        使用AT命令調(diào)試調(diào)制解調(diào)器
        變頻器在工程應用中需要注意的幾個問題
        臺達變頻器全系列輸入和輸出電抗器數(shù)據(jù)
        SLC08D22A數(shù)字式同步控制器
        提高RS-485總線可靠性的方法及故障處理
        編碼器PNP/NPN接口和臺達PLC的接口
        差分型輸出接口和低電平有效PLC輸入接口電路
        變頻調(diào)速系統(tǒng)的發(fā)展現(xiàn)狀與前景展望
        硬件工程師基礎(chǔ)知識
        變頻器調(diào)試快速制動調(diào)試要點
        變頻器在工程應用中需注意的一些技術(shù)問題
        更多文摘...
        立即發(fā)送詢問信息在線聯(lián)系該技術(shù)文摘廠商:
        用戶名: 密碼: 免費注冊為中華工控網(wǎng)會員
        請留下您的有效聯(lián)系方式,以方便我們及時與您聯(lián)絡

        關(guān)于我們 | 聯(lián)系我們 | 廣告服務 | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
        工控網(wǎng)客服熱線:0755-86369299
        版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 久久青草精品A片狠狠来| 久久香蕉国产亚洲av麻豆| 久久久噜噜噜久久| 亚洲人视频在线观看| 自拍偷自拍亚洲精品熟妇人| 婷婷精品国产亚洲av在线观看| 97人妻碰碰碰久久久久禁片| 美日韩精品一区二区三区| 狠狠色婷婷久久综合频道日韩| 亚洲在战av极品无码| 欧美在线精品一区二区三区| 亚洲高清在线天堂精品| 亚洲综合黄色的在线观看| 人妻被猛烈进入中文字幕| 在线观看欧美精品二区| 漂亮的人妻不敢呻吟被中出| 亚洲v欧美v国产v在线观看| 毛片无遮挡高清免费| 日韩精品无码区免费专区| 国精品午夜福利视频不卡| 熟女精品色一区二区三区| 无码国产精品一区二区免费式直播| 色爱区综合激情五月激情| 丰满少妇69激情啪啪无| 综合国产综合亚洲综合| 狠狠综合久久综合88亚洲| 99久久99久久精品国产片| 亚洲区成人综合一区二区| 国产三级精品片| 99久久精品免费看国产电影| 亚洲WWW永久成人网站| 九色精品在线| 人妻中文字幕亚洲一区| 被灌满精子的波多野结衣| 男女性杂交内射女bbwxz| 中文字幕在线精品人妻| 天堂mv在线mv免费mv香蕉| 日韩精品亚洲精品第一页| 亚洲欧洲日产国码久在线| 国产亚洲精品第一综合另类灬 | 国产精品麻豆成人av网|