




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于VC的繼續(xù)擠壓機(jī)主軸轉(zhuǎn)速的動(dòng)態(tài)曲線的實(shí)現(xiàn) 摘 要 本文首要論述 利用 VC+及其MSComm控件編程,實(shí)現(xiàn)對繼續(xù)擠壓機(jī)的主軸轉(zhuǎn)速的實(shí)時(shí)監(jiān)控,并將其以動(dòng)態(tài)曲線的情勢 輸出。 要害 字 VC+;MSComm控件;繼續(xù)擠壓機(jī);動(dòng)態(tài)曲線 1 引言 隨著繼續(xù)擠壓技巧 的不斷發(fā)展,繼續(xù)擠壓機(jī)的主動(dòng) 化把持 技巧 也在不斷的進(jìn)步
2、0;,從過去的按鈕操作逐漸發(fā)展為工業(yè)盤算 機(jī)與觸摸屏技巧 相聯(lián)合 的可視化操作。對于繼續(xù)擠壓機(jī),其主軸的轉(zhuǎn)速的快慢會(huì)直接影響產(chǎn)品的質(zhì)量和生產(chǎn)效率 ,所以,如何能夠正確 的監(jiān)測主軸的轉(zhuǎn)速變得十分首要 。過去,我們通常憑借經(jīng)驗(yàn)來調(diào)節(jié)主軸轉(zhuǎn)速,由于在生產(chǎn)歷程 中,主軸的轉(zhuǎn)速受到許多因素的影響,其實(shí)際轉(zhuǎn)速并非我們想要得到理想 轉(zhuǎn)速。因此,本文首要利用 VC+及其MSComm控件編程,來實(shí)現(xiàn)對繼續(xù)擠壓機(jī)主軸轉(zhuǎn)速的實(shí)時(shí)監(jiān)控,并利用
3、160;動(dòng)態(tài)曲線圖實(shí)時(shí)輸出。2 程序的實(shí)現(xiàn) 在實(shí)現(xiàn)對主軸轉(zhuǎn)速實(shí)時(shí)監(jiān)控中,我們采納 的是Microsoft公司供給 的ActiveX控件MicrosoftCommunicationsControl來實(shí)現(xiàn)串口編程,完成對擠壓機(jī)的監(jiān)控。MSComm控件必須 有一個(gè)可以寄身的對話框,然后從對話框工具欄中把控件圖拖入對話框中。在本程序中,動(dòng)態(tài)數(shù)據(jù)曲線是在窗口的View類中實(shí)現(xiàn)的,所以我們要建立 一個(gè)基于單文檔的MFC利用 程序來實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)曲線的顯示。而對話框工具欄
4、上的圖標(biāo)是不能拖到視圖(View)中,因此我們可以把MSComm控件拖入到單文檔(SDI)的ABOUT對話框中,進(jìn)而實(shí)現(xiàn)其功效 。具體步驟如下:2.1 建立 單文檔程序工程并插入MSComm控件 利用 MFC向?qū)Ы?#160; 基于單文檔利用 程序VCurve(選擇其基類為CScrollView),然后單擊菜單Add To Project->Commponents and Controls.->Registe
5、red Active Controls->Microsoft Communications Control,V6.0,在單擊INSERT即可插入MSComm控件。2.2 在ABOUT對話框中拖入MSComm控件 在ResourceView中選擇IDD_ABOUTBOX 對話框,見MSComm控件圖標(biāo)拖入對話框中,控件ID號(hào)維持 缺省的IDC_MSCOMM1。2.3 添加串口事件消息 處理 函數(shù)OnComm()
6、60; 我們知道,在基于對話框的利用 程序中,消息 處理 函數(shù)的添加都是由MFC的ClassWizard主動(dòng) 實(shí)現(xiàn),但在這里我們必須 手動(dòng)添加。2.4 串口的初始化 利用 ClassWizard為CVCurve類添加消息 處理 函數(shù)WM_CREATE,利用
7、0; 該函數(shù)來實(shí)現(xiàn)串口的初始化。Int CVCurveView:OnCreate(LPCREATESTRUCT lpCreateStruct) m_mscomm.Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM1); m_mscomm.SetCommPort(DK);/選擇端口
8、60; m_mscomm.SetSettings("9600,e,7,1"); m_mscomm.SetInputMode(1); /以二進(jìn)制法子 讀寫數(shù)據(jù) m_mscomm.SetInBufferSize(1024);
9、m_mscomm.SetOutBufferSize(1024); m_mscomm.SetInputLen(0); m_mscomm.SetRThreshold(1); SetTimer(1,1000,NULL);/定時(shí)器1
10、; 上述程序中,端口號(hào)DK可有操作員自己選擇,這樣就可以避免因端口號(hào)固定給工作帶來不便。根據(jù) 實(shí)際情況 ,選擇適宜 的輸入、輸出緩沖區(qū)大小,這里均用1024。設(shè)置一個(gè)定時(shí)器,來實(shí)現(xiàn)對主軸轉(zhuǎn)速的實(shí)時(shí)監(jiān)控。2.5 從串口中接管數(shù)據(jù)并顯示在窗口內(nèi) MSComm控件供給 了兩種通信 問題的法子 :事件驅(qū)動(dòng)和查詢法
11、。這里我們選用的是事件驅(qū)動(dòng)法子 ,它首要是對程序的響應(yīng)及時(shí),可靠性高。對于MSComm控件的事件,通常在串口事件消息 處理 函數(shù)OnComm()中進(jìn)行處理 。int CVCurveView:OnComm()VARIANT inp;COleSafeArray safearray_inp; if(m_mscomm.GetC
12、ommEvent()=2) /事件值為2表現(xiàn) 接管 緩沖區(qū)內(nèi)有字符inp=m_mscomm.GetInput(); safearray_inp=inp; len=safearray_inp.GetOneDimSize();for(k=0;k<len;k+) safearray_inp.GetElement(&k,rxdata+k);/轉(zhuǎn)換為BYTE型數(shù)組f
13、or(k=0;k<len;k+) BYTE bt=*(int*)(rxdata+k); strtemp.Format("%
14、c",bt); m_str+=strtemp; n1=m_str.Find(0x02);n2=m_str.Find(0x03);for(n1=n1+1;n1<n2;n1+)m_readstr+=m_str.GetAt(n1
15、);/提取有效的數(shù)據(jù)m_readstr=m_readstr.Right(2)+m_readstr.Left(2); readdata=Str2Dec(m_readstr);/把16進(jìn)制字符串轉(zhuǎn)化為十進(jìn)制數(shù) itoa(readdata,strs,10); CClientDC *pDC=new CClientDC(this); pDC->TextOut(300
16、,0,m_s); return readdata; 在此函數(shù)中,首要是用來從串口中接管數(shù)據(jù),然后取出有效的數(shù)據(jù)顯示在View 窗口內(nèi)。上位機(jī)從下位機(jī)中接管 到的是16進(jìn)制的字符串,在VC+ 中沒有直接將16進(jìn)制字符串轉(zhuǎn)化為10進(jìn)制的函數(shù),所以要調(diào)用Str2Dec()函數(shù)來完成數(shù)據(jù)的轉(zhuǎn)化。2.6 在OnDraw()函數(shù)中實(shí)現(xiàn)坐標(biāo)軸的繪制及速度動(dòng)態(tài)曲線圖的保存
17、; void CVCurveView:OnDraw(CDC* pDC) /繪制Y軸 pDC->MoveTo(int)x0,0);pDC->LineTo(int)x0,rect.bottom);/繪制X軸pDC->MoveTo(int)x0,(int)y0);pDC->LineTo(sz.cx,(int)y0); /繪制Y軸方向的平行線int index=0;for(in
18、t i=0;i<160;i+)/繪制垂直實(shí)、虛等距線 index=!index; if(index)
19、 m_oldpen=pDC->SelectObject(&m_pen); else
20、0; p_pen=pDC->SelectObject(&pen);
21、 pDC->MoveTo(int)x0+(i+1)*dx,0); pDC->LineTo(int)x0+(i+1)*dx,rect.bottom); if(i>0&&i
22、<20) pDC->MoveTo(int)x0,rect.bottom-(int)y0-i*dx); pDC->LineTo(int)sz.cx
23、,rect.bottom-(int)y0- i*dx); pDC->MoveTo(int)x0,(int)y0+i*dx); pDC-&
24、gt;LineTo(int)sz.cx,(int)y0+i*dx); for(int j=0;j<m_ptarray.GetSize();j+)/速度曲線的保存 pDC->MoveTo(CDr
25、aw*)m_ptarray.GetAt(j)->m_ptorig);pDC->LineTo(CDraw*)m_ptarray.GetAt(j)->m_ptend); 上述函數(shù)首要實(shí)現(xiàn)了坐標(biāo)軸的繪制,并且為了便于操作人員觀察速度與隨光陰 的關(guān)系,在坐標(biāo)區(qū)域內(nèi)繪制了實(shí)虛相間的平行于坐標(biāo)軸的等距線。窗口的每次變更 都會(huì)引起窗口的重繪,導(dǎo)致以前所繪圖形的喪失 ,所以在此定義了一個(gè)通用的CDraw類和一個(gè)CPtrArray類型的變量m_ptarray用來保存 繪制的曲線。2.7 實(shí)現(xiàn)速度的實(shí)時(shí)
26、監(jiān)控和坐標(biāo)軸的移動(dòng) 繼續(xù)擠壓機(jī)在工作中,由于受到外界各種條件例如電動(dòng)機(jī)的電流、所擠壓的材料 的打滑等因素,都會(huì)引起主軸轉(zhuǎn)速的轉(zhuǎn)變 ,所覺得了更好的監(jiān)督 主軸的轉(zhuǎn)速,要不間斷的對它進(jìn)行數(shù)據(jù)采集。在程序中,通常是定義一個(gè)定時(shí)器來完成此操作。void CVCurveView:OnTimer(UINT nIDEvent) switch(nIDEvent)case 1:str1=ch1+"0"+"008402"+ch2+"61"
27、 /讀取x40-x47的狀態(tài) (X40) m_mscomm.SetOutput(COleVariant(str1); Sleep(50); break;case 2: ncount+;SetScrollPos(SB_HORZ,ncount*dx);/實(shí)現(xiàn)y坐標(biāo)軸移動(dòng)InvalidateRect(CRect(0,0,cx,cy);pt=GetScrollPosition();
28、60; CClientDC *pDC=new CClientDC(this);x1+=dx;x_orig=x1+x0-dx;y=rect.bottom-y0-readdata;if(i=0)/繪制速度曲線圖 y_orig=y; pDC->MoveTo(int)x0-pt.x,(int)y_orig);m_ptorig.x=(int)x_orig;m_ptorig.y=(int)y_orig;if(i!=0) pDC->MoveTo(int)x_orig-pt.x,(int)y_or
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 組網(wǎng)技術(shù)應(yīng)用知到課后答案智慧樹章節(jié)測試答案2025年春成都工業(yè)職業(yè)技術(shù)學(xué)院
- 吉林省“五地六校”合作體2025年高三語文試題5月統(tǒng)一考試試題含解析
- 工程竣工驗(yàn)收報(bào)告土壤污染治理效果評(píng)估
- 第13課 遼宋夏金元時(shí)期的對外交流 教案2024-2025學(xué)年七年級(jí)歷史下冊新課標(biāo)
- 2025年全球半導(dǎo)體產(chǎn)業(yè)新動(dòng)態(tài):關(guān)鍵數(shù)據(jù)與未來趨勢解析
- 2025年白酒行業(yè)資訊:A股市場動(dòng)態(tài)與頭部企業(yè)表現(xiàn)(附關(guān)鍵數(shù)據(jù))
- 山東省德州市第二中學(xué)2024-2025學(xué)年高三上學(xué)期第四次學(xué)情檢測數(shù)學(xué)試題(解析版)
- 長沙屋面改造施工方案
- 6年級(jí)上冊25課筆記
- 2025年?duì)I銷資格考試試題及答案
- 陜西省2024年高中學(xué)業(yè)水平合格考化學(xué)試卷試題(含答案解析)
- 內(nèi)燃機(jī)車司機(jī)技師考試題(強(qiáng)化練習(xí))
- 電化學(xué)儲(chǔ)能電站并網(wǎng)運(yùn)行與控制技術(shù)規(guī)范 第3 部分:并網(wǎng)運(yùn)行驗(yàn)收
- 鄂爾多斯市騰遠(yuǎn)煤炭有限責(zé)任公司礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 氨重大危險(xiǎn)源危險(xiǎn)化學(xué)品安全告知牌安全告知牌
- 工人屋面貼磚合同
- 高考作文評(píng)分標(biāo)準(zhǔn)及評(píng)分細(xì)則
- 企業(yè)培訓(xùn)課件開發(fā)獎(jiǎng)勵(lì)
- 第三單元名著導(dǎo)讀《經(jīng)典常談》知識(shí)點(diǎn)整理(解析)
- 八年級(jí)下科學(xué)教學(xué)計(jì)劃+教學(xué)進(jìn)度表(2020浙教版)
- 餐飲行業(yè)燃?xì)獍踩嘤?xùn)
評(píng)論
0/150
提交評(píng)論