中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產品分類

當前位置: 首頁 > 工業控制產品 > 自動化控制 > PLC可編程控制器

類型分類:
科普知識
數據分類:
PLC可編程控制器

用歐姆龍PLC與上位機通信實現振動磨的變頻控制

發布日期:2022-04-22 點擊率:119 品牌:歐姆龍_Omron

摘要:本文給出了用VC++6.0實現OMRON可編程控制器與上位機之間的通信程序設計方法,并提供了利用RS232串行通訊端口實現計算機與可編程控制器通訊的方法。此方案成功應用在振動磨的變頻控制中。
關鍵詞:上位機;PLC;串口通信;VC++6.0;振動磨
Abstract:This article mainly introduces a method of programming design based on VC++6.0 to realize the communication of PLC and host omputer and also discusses how to use the RS232 communication port to realize the communication between PC and PLC. Thisprogram has been successfully applied in the frequency control of vibration mill.
Key words: Host computer, PLC, Serial communication, VC++6.0,Vibration mill
1.引 言
    當今,在自動化的工業生產中,變頻控制往往與計算機遠程控制相聯系在一起,從而實現電機的遠程變頻控制??删幊绦蚩刂破飨到y不僅可作為單一的機電控制設備,而且作為通用的自動控制設備,也被大量地用于過程工業的自動控制。歐姆龍最新推出的可編程控制器SYSMAC CP1H,具有“高度擴張性”的端子臺型一體化[1]。與以往產品CPM2A 40 點輸入輸出型為相同尺寸,但處理速度可達到約10倍的性能。本課題通過控制機(即為PLC)設定比例運行參數,然后控制機通過D/A轉換模件發出控制變頻調速器的指令,使變頻調速器帶動振動磨電機按輸入的速度和時間運轉?;贠MRON PLC的鏈接通信(有通信協議),我們采用功能強大的Visual C++6.0語言來實現這種小型集散控制系統的上、下位機的通信和友好的監控界面,實現了上位機與PLC間的通信。
2.通訊軟件的設計
    在本項目中,上位機選用計算機, 下位機選用日本Omron公司的CP1H系列XA40DR-A可編程序控制器。在計算機外設中,RS-232串口因為其組成方式簡單,編程控制方便而成為應用最為廣泛的I/O通道之一。32 位下串口通信程序通常采用兩種方法實現:一是利用ActiveX控件; 二是使用API通信函數。使用ActiveX控件, 程序實現非常簡單, 結構清晰,缺點是欠靈活; 使用API通信函數的優缺點則基本上相反[2]。VC++6.0的MSComm是Microsoft 公司提供的簡化Windows 下串行通信編程的ActiveX控件,它為應用程序提供了通過串行接口收發數據的簡便方法,筆者采用了這種方法。
2.1 上位機與PLC的通訊協議
    HOST link系統使用HOST link 通信協議進行通信,上位機具有傳送優先權,總是首先發出命令并啟動通信,HOST link 通信單元收到命令交由PLC執行,然后將執行結果返回上位機,兩者以幀為單位輪流交換數據。
2.2 上位機的PLC鏈接通訊
    通信時一組傳送的數據稱為塊,它是命令或響應的單位,從上位機發送到HOSTlink 單元的數據稱為命令塊,相應的,從HOSTlink單元發送到上位機的數據稱為響應塊。多點通信時,單幀發送的最大數據塊為131 個字符,因此當一個數據塊含有132 個或更多字符時,要分成兩幀或多幀進行發送。多幀發送時中間幀的格式為:正文、FCS、分界符。起始幀、中間幀的長度為131 ,結束幀的長度最多為131 個字符。
    Omron系列的PLC 通過RS232 口與主機通信有兩種方式,第一種是由上位機向PLC 發送初始命令,第二種是由PLC 向上位機發送初始命令[3]。在監測系統中一般采用第一種方式。有關通信協議如下所述:
2.2.1上位機→PLC 的命令格式
    其中:
    (1)@為起始標志符;
    (2)N2 、N1 為PLC 節點標志碼,由兩位十進制數表示,它們用來指定與上位機通信的PLC。而PLC 自己的通信節點碼可由它的DM6648 和DM6653 來設置;
    (3)CMD2 、CMD1 為兩字節命令碼;
    (4)MT 為命令內容,用來設置具體的命令參數;
    (5)V2、V1 為兩字節的幀校驗碼,它是從開始符“@”到MT碼結束的所有字符的ASCII 碼按位異或的結果; 幀校驗和是一個轉換成2 個ASCII 字符的8 位數據。它把幀中每一個字符順序地進行異或操作而得到的結果,即把幀的第一個字符到正文結束的所有字符轉換成二進制形式的ASCII 碼后,逐個異或而得到的[4]。當發送命令時,將其加在命令格式中,作為幀的一部分發送到接收端。當接收數據時,按上述步驟重新計算FCS ,當計算結果與數據塊中所帶的FCS 相同時,說明傳輸無誤,否則,說明接收到的數據不正確。
    (6)“*”和“CR”兩字符表示命令結束。
    例如,@00WD00060500表示寫一個數500到節點為0的PLC的DM0006中。
2.2.2 PLC→上位機的響應格式
    其中S2 、S1 為命令結束狀態碼,如00 表示正常結束,01 表示RUN 模態下PLC 無法完成上位機命令,其余符號代碼意義同上。實現上位機與HOST link 通信單元的通信只需編寫上位機程序,因為HOST link 通信單元自身帶有通信程序,上位機下發命令,地址相符的PLC 自動上傳響應幀,所以這一部分程序不需要客戶編寫,但是,編寫上位機的通信程序時,通信參數的設置必須保證與PLC 的通信參數一致性。
3.用VC++6.0編寫串行通信程序
    首先建立一個基于對話框的MFC應用程序SCommTest,支持ActiveX控件,電話形狀的控件是在系統中注冊過的MicrosoftCommunications Control, version 6.0,接受缺省的選項。
1.打開串口設置串口參數
    在主對話框CSCommTestDlg::OnInitDialog()中打開串口,加入如下代碼:
    if(m_ctrlComm.GetPortOpen())
    m_ctrlComm.SetPortOpen(FALSE);
    m_ctrlComm.SetCommPort(1); //選擇com1
    i f ( ! m _ c t r l C o m m . G e t P o r t O p e n ( ) ) m _ c t r l C o m m .
SetPortOpen(TRUE);//打開串口
    else
    AfxMessageBox("cannot open serial port");
    m_ctrlComm.SetSettings("9600,E,7,2"); //波特率9600,偶校驗,7個數據位,2個停止位m_ctrlComm.SetInputModel(1); //1:表示以二進制方式檢取數據m_ctrlComm.SetRThreshold(1);
    //參數1表示每當串口接收緩沖區中有多于或等于1個字符時將引發一個接收數據的OnComm事件
    m_ctrlComm.SetInputLen(0); //設置當前接收區數據長度為0
    m_ctrlComm.GetInput();//先預讀緩沖區以清除殘留數據
2.發送數據
    為發送按鈕添加一個單擊消息BN_CLICKED處理函數,選擇IDC_BUTTON_MANUALSEND,添加OnButtonManualsend()函數,并在函數中添加如下代碼:
    UpdateData(TRUE); //讀取編輯框內容
    SendData(m_strTXData1,6);
    // m_strTXData1表示發送速度命令的具體數值,6表示寫數
據的地址DM0006
    Sleep(100);
    SendData(m_strTXData2,12); //m_strTXData1表示發送時間命令的具體數值,12表示寫數據的地址DM0012
3.發送命令
    按照命令格式,本課題主要發送兩個WD命令:
    (1)數據采用十進制發送,向DM0006中寫入速度指令;
    (2)數據采用十進制發送,向DM0012中寫入時間指令。部分程序如下:
    Void CSCommTestDlg::SendData(int m_TobeSend,intm_address)
    { CByteArray Array;
    unsigned char auchMsg[45]={0}
    auchMsg[0]=64; // 起始標志符
    auchMsg[1]=0x0; //節點號
    auchMsg[2]=0x0; auchMsg[3]=‘W‘; //命令符
    auchMsg[4]=‘D‘;
    auchMsg[5]=m_address/1000;
    auchMsg[6]=(m_address%1000)/100;
    auchMsg[7]=(m_address%100)/10;
    auchMsg[8]=m_address%10;
    auchMsg[9]=m_TobeSend/1000;
    auchMsg[10]=(m_TobeSend%1000)/10;
    auchMsg[11]=(m_TobeSend%100)/10;
    auchMsg[12]=m_TobeSend%10;
    LRC(auchMsg,13);
    //auchMsg[13] ,auchMsg[14] ,保存FCS值
    auchMsg[15]=‘*‘; //命令結束符
    auchMsg[16]=13;
    Array.RemoveAll();
    for (Count=0;Count<17;Count++)
    Array.Add(auchMsg[Count]);
    m _ c t r l C o m m . S e t O u t p u t ( C O l e Va r i a n t ( A r r a y ) ) ;
4.計算校驗碼函數
    unsigned char uchLRC = 0 ; 初始值設定
    while (usDataLen——)
    {uchLRC ︿= *auchMsg++; }
    unsigned char high=0xF0;
    //high為校驗碼的高位
    unsigned char low=0x0F;
    //low為校驗碼的低位
    high&=uchLRC;
    low&=uchLRC;
    high>>=4;右移四位
    if(high<=9)
    high=high+48;
    else
    high=high+55;
    if(low<=9)
    low=low+48;
    else
    low=low+55;
    *auchMsg++=high;
    *auchMsg++=low;
四.結束語
    此程序在VC++6.0中運行通過,并成功應用于振動磨的控制中。該系統采用OMRON XA40DR-A PLC與上位機連接組成控制系統,上位機通過串行口向PLC發出寫命令及數據,PLC接受數據后,通過D/A轉換模塊,將模擬量發給變頻器,從而實現了振動磨振動速度和時間的控制。            

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產品

更多
中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      欧美亚洲日本国产| 欧美啪啪成人vr| 美女诱惑黄网站一区| 欧美成人精品在线观看| 欧美日韩国语| 国产视频在线观看一区| 伊人久久亚洲热| 日韩视频国产视频| 亚洲自拍电影| 免费成人av在线看| 欧美午夜美女看片| 娇妻被交换粗又大又硬视频欧美| 亚洲激情视频| 亚洲欧美另类久久久精品2019| 欧美一区二区三区的| 欧美国产先锋| 国产日韩欧美麻豆| 99国产精品99久久久久久粉嫩| 性欧美精品高清| 欧美大片在线看免费观看| 国产精品扒开腿做爽爽爽软件| 国产日韩精品一区二区三区在线 | 亚洲麻豆一区| 欧美在线网址| 欧美日韩亚洲一区在线观看| 激情另类综合| 亚洲婷婷综合色高清在线| 欧美一区二区三区另类| 免费永久网站黄欧美| 国产精品成人一区二区网站软件| 狠狠综合久久| 午夜精品一区二区在线观看 | 99re成人精品视频| 久久阴道视频| 国产一区二区三区免费不卡 | 国产女人精品视频| 亚洲人成小说网站色在线| 欧美在线免费观看视频| 国产精品激情偷乱一区二区∴| 在线国产欧美| 久久久久久久999| 国产午夜精品一区二区三区视频| 一区二区三区高清在线| 欧美精品高清视频| 亚洲国产日韩欧美在线图片| 久久久久久久久久久久久久一区| 国产精品日日摸夜夜摸av| 亚洲图片激情小说| 欧美午夜免费| 亚洲影视在线| 国产精品久久久久久久电影| 一区二区三区国产在线| 欧美日韩精品免费观看视频完整| 亚洲国产另类久久精品| 麻豆精品网站| 亚洲经典视频在线观看| 欧美成人国产一区二区| 亚洲日本一区二区| 欧美日韩国产在线观看| 夜夜嗨av一区二区三区| 国产精品对白刺激久久久| 最近中文字幕mv在线一区二区三区四区| 久久中文精品| 亚洲国产激情| 欧美视频国产精品| 亚洲午夜精品久久| 国产欧美亚洲日本| 久久夜色撩人精品| 亚洲精品日产精品乱码不卡| 欧美电影免费观看大全| 亚洲免费av观看| 国产精品九九久久久久久久| 亚洲欧美日韩一区| 好吊妞**欧美| 欧美成人综合一区| 亚洲一级二级| 一区二区自拍| 欧美日韩精品一二三区| 亚洲欧美日韩一区二区在线| 国产日韩高清一区二区三区在线| 久久婷婷影院| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲精品视频一区| 欧美日韩精品是欧美日韩精品| 亚洲精品乱码久久久久| 欧美视频在线免费看| 欧美一级在线播放| 亚洲三级观看| 国产午夜精品美女毛片视频| 欧美丰满高潮xxxx喷水动漫| 亚洲图片欧洲图片日韩av| 国产一区日韩一区| 欧美片网站免费| 欧美一区二区三区另类| 91久久嫩草影院一区二区| 国产精品久久久久久久久婷婷| 久久精品天堂| 亚洲男人第一av网站| 亚洲第一区色| 国产一区二区剧情av在线| 久久久久久夜| 一区二区精品在线| 亚洲大片在线观看| 国产精品亚洲人在线观看| 欧美黄污视频| 老司机免费视频一区二区| 亚洲专区欧美专区| 亚洲人妖在线| 亚洲电影激情视频网站| 国产欧美视频一区二区三区| 欧美日韩国产一区二区| 欧美18av| 蜜桃av噜噜一区| 久久久女女女女999久久| 午夜在线精品偷拍| 亚洲欧美成人在线| 亚洲最新在线| 99在线精品观看| 亚洲激情视频在线| 亚洲国产1区| 亚洲电影免费观看高清完整版在线观看| 国产精品一级二级三级| 国产精品成人观看视频国产奇米| 欧美国产日韩a欧美在线观看| 久久精品国产v日韩v亚洲 | 欧美99久久| 免费人成精品欧美精品| 久久综合电影| 久久婷婷麻豆| 蜜桃av综合| 你懂的视频欧美| 免费观看成人鲁鲁鲁鲁鲁视频 | 亚洲综合第一| 亚洲免费在线看| 午夜精品视频网站| 久久狠狠久久综合桃花| 久久久久网站| 美日韩精品视频| 欧美激情精品久久久久久免费印度| 麻豆成人小视频| 欧美大片网址| 欧美亚一区二区| 国产一区二区日韩| 伊人久久男人天堂| 日韩午夜免费视频| 亚洲一卡久久| 久久国产一二区| 欧美福利视频在线| 欧美视频在线观看免费| 国产乱码精品一区二区三区不卡 | 欧美高清视频在线| 欧美午夜免费影院| 国产亚洲福利社区一区| 有码中文亚洲精品| 亚洲精品一区二区网址| 亚洲婷婷综合色高清在线| 欧美一区二区三区免费在线看| 久久人体大胆视频| 欧美精品18+| 国产欧美日韩在线| 最近中文字幕日韩精品| 亚洲视频二区| 久久综合给合久久狠狠色| 欧美日韩在线高清| 国内精品嫩模av私拍在线观看 | 一本大道久久a久久精二百| 午夜精品美女自拍福到在线| 久久五月激情| 国产精品久久久99| 亚洲第一偷拍| 亚洲欧美在线高清| 欧美日本网站| 在线播放亚洲| 欧美一区二区在线| 欧美精品麻豆| 激情久久综艺| 亚洲欧美一区二区激情| 欧美福利影院| 激情一区二区| 欧美一区二区三区免费在线看| 欧美精品一区二区三区在线看午夜 | 欧美一区二区高清在线观看| 久久精品一二三| 欧美日韩一区二区三区在线| 黄色精品一区| 性亚洲最疯狂xxxx高清| 欧美日韩福利在线观看| 亚洲第一黄网| 久久精品国产亚洲5555| 国产精品免费观看在线| 一区二区三区www| 欧美交受高潮1| 亚洲国产精品久久久久婷婷884| 午夜影院日韩| 国产精品爱啪在线线免费观看| 亚洲人成在线播放| 欧美精品三级日韩久久| 91久久久久久久久久久久久| 久久亚洲精品伦理| 激情久久影院|