日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

ABB
關注中國自動化產業發展的先行者!
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

用歐姆龍PLC與上位機通信實現振動磨的變頻控制
  摘要:本文給出了用VC++6.0實現OMRON可編程控制器與上位機之間的通信程序設計方法,并提供了利用RS232串行通訊端口實現計算機與可編程控制器通訊的方法。此方案成功應用在振動磨的變頻控制中。

  關鍵詞:上位機;PLC;串口通信;VC++6.0;振動磨

  1.引 言

    當今,在自動化的工業生產中,變頻控制往往與計算機遠程控制相聯系在一起,從而實現電機的遠程變頻控制。可編程序控制器系統不僅可作為單一的機電控制設備,而且作為通用的自動控制設備,也被大量地用于過程工業的自動控制。歐姆龍最新推出的可編程控制器SYSMAC CP1H,具有“高度擴張性”的端子臺型一體化[1]。與以往產品CPM2A 40 點輸入輸出型為相同尺寸,但處理速度可達到約10倍的性能。本課題通過控制機(即為PLC)設定比例運行參數,然后控制機通過D/A轉換模件發出控制變頻調速器的指令,使變頻調速器帶動振動磨電機按輸入的速度和時間運轉。基于OMRON 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表示寫數據的地址DM00123.發送命令

    按照命令格式,本課題主要發送兩個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轉換模塊,將模擬量發給變頻器,從而實現了振動磨振動速度和時間的控制。

  參考文獻

  [1]OMRON公司.CP1H操作手冊.2005

  [2]萬曼影.視窗環境下歐姆龍PLC的實時通信.微處理機.2004(6)

  [3]何華東,趙喜榮.PLC與上位計算機的串行通信程序設計.機電工程.2002(6)

  [4]OMRON公司.CPM編程手冊.2003基金項目:國家自然科學基金資助項目(編號:50575147)

  作者簡介:蘇丹(1982-),女,在讀碩士;

  王樹林(1951—),男,教授,博士生導師。

熱點新聞

推薦產品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 免费看a级-免费看a级毛片-免费看a网站-免费看h的网站-97久久久久-97久久人人 | 四房网,久久久国产99久久国产久,色偷偷男人天堂,九七电影院97网手机版支持,国产人成精品免费视频,五月天最新网站 | 香蕉成人啪国产精品视频综合网-香蕉草草久在视频在线播放-香蕉a视频-香蕉69精品视频在线观看-国产视频1区-国产视频1 | 日本最新中文字幕-日本最新在线-日本最新伦中文字幕-日本综合在线-国产 日韩 欧美 高清-国产 欧美日韩 在线播放 | 91在线视频在线-91在线视频在线观看-91在线丨亚洲-91在线天堂-91在线无码精品秘 入口91-91在线无码精品秘蜜桃 | 欧美综合亚洲,欧美激情91,亚洲 欧美 成人日韩,国产亚洲精品成人婷婷久久小说,国内精品久久久久影院不卡,曰韩在线 | 性一交一乱一交A片久久四色-性一交一乱一乱A片AP88-性一交一乱一伦一A片-性一交一乱一伦一色一情-性一交一乱一伦一色一情孩交-性一交一乱一伦在线播放 | 一本一道久久-一本一道久久综合狠狠老-一本伊人-一本之道久-一本之道无吗一二三区-一道精品视频一区二区三区图片 | 伦理片天堂eeuss影院-伦理片秋霞免费影院-伦理片飘花手机在线-伦理片飘花免费影院-最新2017年韩国伦理片在线-最新 国产 精品 精品 视频 | 手机看片福利永久国产日韩-手机看片369-手机精品在线-手机国产乱子伦精品视频-国产精品嫩草影院在线观看免费-国产精品嫩草影院在线播放 | 牛牛精品专区在线-牛牛超碰 国产-牛和人交videos欧美-妞干网手机免费视频-99精品视频在线观看免费-99精品视频在线观看re | 99riav视频-99riav视频国产在线看-99ri精品视频在线观看播放-99ri在线-99rv精品视频在线播放-99r视频里面只有精品 | yy一级毛片免费视频-yyyyyy高清成人观看-yy6080理aa级伦大片一级毛片-yy4080午夜理论一级毛片-色吊丝在线观看国产-色的视频在线观看免费播放 | 日韩在线黄色-日韩在线观看精品-日韩在线观-日韩在线高清视频-日韩在线不卡视频-日韩在线播放中文字幕 | 日韩精品免费观看,亚洲精品国产综合一线久久,99精品国产高清一区二区三区香蕉,亚洲图区欧美,日韩电影免费在线观看中文字幕,999国产精品999久久久久久 | 欧美日韩国产在线成人网,成人免费一级片,在线观看国产一区,国产麻豆精品免费密入口,国产欧美日韩在线,在线视频观看国产 | 国产成人av网站网址-国产成人av无码精品-国产成人av无码精品天堂-国产成人av无码片在线观看-国产成人av无码一区二区三区不卡-国产成人av无码永久免费 | 伊人第四色-伊人成影院-伊人成人在线视频-伊人成人在线观看-久久精品久久精品-久久精品九九亚洲精品天堂 | 日本免费在线观看视频-日本免费在线-日本免费一区二区在线观看-日本免费一区二区视频-2017国产小视频-2017能在线观看的网站 | 欧美精品久久久亚洲,欧美国产第一页,亚欧成人一区二区,久久精品一区二区影院,国产成人精品综合久久久,亚洲国产精品一区 | 91精品国产色综合久久不卡蜜,999国内精品永久免费视频试看,五月婷婷六月香,欧美成人综合在线,日韩亚洲第一页,国产欧美日韩不卡在线播放在线 | 亚洲香蕉久久综合网-亚洲香蕉久久一区二区三区四区-亚洲香蕉久久一区二区-亚洲香蕉国产高清在线播放-净空法师最新忏悔文-精油按摩理论片 | 国产毛片高清,精品综合,日韩亚洲欧美综合,精品国产一区二区三区免费看,精品久久久久久国产牛牛app,亚洲欧美国产精品第1页 | 玖玖射,国内高清久久久久久久久,久久婷婷丁香,91精品自在拍精选久久,不卡一区二区三区四区,奇迹少女第四季中文版免费全集 | 亚洲综合在线观看视频-亚洲综合在线观看一区-亚洲综合在线观看一区www-亚洲综合在线视频-亚洲综合在线网-亚洲综合在线一区 | 中文无码熟妇人妻av在-中文无码视频三区四区在线观看-中文无码视频-中文无码肉感爆乳在线-中文无码日韩欧免费视频-中文无码日韩欧毛 | 亚洲精品成人一区-亚洲精品成人网久久久久久-亚洲精品成人久久久影院-亚洲精品成人久久-黑人巨大白妞出浆-黑人巨大vs小早川怜子 欧美日韩亚洲无线码在线观看,国产成人亚洲综合91精品555,欧美成人国产,国产成人青青热久免费精品,亚洲欧美日韩色图,国产三级网站在线观看 | 佐藤遥希在线播放一二区-佐山爱巨大肥臀在线-佐山爱痴汉theav-佐良娜被爆漫画羞羞漫画-麻豆视频传媒二区-麻豆视频传媒 | 亚洲香蕉久久综合网-亚洲香蕉久久一区二区三区四区-亚洲香蕉久久一区二区-亚洲香蕉国产高清在线播放-净空法师最新忏悔文-精油按摩理论片 | 天堂视频在线观看免费-天堂视频在线-天堂视频免费-天堂色区-国产精品一区二区欧美视频-国产精品一区二区免费 | 欧美亚洲国产一区-欧美亚洲国产视频-欧美亚洲国产日韩综合在线播放-欧美亚洲国产日韩一区二区三区-jizzjizz免费大全-jizzjizz免费 | 国产一卡2卡3卡四卡精品网站-国产一久久香蕉国产线看观看-国产一进一出视频网站-国产一级在线现免费观看-亚洲高清国产拍精品影院-亚洲高清二区 | 欧美极品videosvideohd-欧美极品videosex性欧美-欧美极品jizzhd欧美4k-欧美极品brazzers 高清-伊人久久中文-伊人久久香 | 国产视频自拍一区-国产手机精品一区二区-国产手机视频在线-国产手机视频在线观看-国产手机在线播放-国产手机在线观看精品视频 | 国产高清在线精品一区在线-国产高清在线精品一区二区三区-国产高清在线精品一区a-国产高清在线精品一区-日韩在线a视频免费播放-日韩在线2020专区 | 丝袜国产一区,美女网站一区二区三区,国产精品免费观看视频,国产乱了真实在线观看,视频一区久久,国产成人成人一区二区 | 日韩精品电影在线观看-日韩精品电影在线-日韩精品电影一区-日韩精品电影-国产日韩欧美综合-国产日韩欧美在线一区二区三区 | 日韩伦理在线-日韩伦理片-日韩久久网-日韩精选-日韩精品综合-日韩精品资源 | 麻豆高潮AV久久久久久久-麻豆高清免费国产一区-麻豆国产13p-麻豆国产96在线日韩麻豆-麻豆国产AV尤物网站尤物-麻豆国产精品AV色拍综合 | 国产婷婷视频-国产婷婷丁香久久综合-国产天天在线-国产天天操-小草在线免费观看视频-小草在线观看视频免费2019 | 亚洲成人7777-亚洲成人777-亚洲成人18-亚洲成片在线观看12345ba-国农村精品国产自线拍-国内做爰免费视频 |