• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Visual C++2017與STM32軸承摩擦力矩檢測系統(tǒng)設(shè)計

      2018-02-18 10:31:22邢化友邊寧濤司馬斌韓彥龍
      裝備制造技術(shù) 2018年11期
      關(guān)鍵詞:碼盤上位串口

      邢化友,張 路,邊寧濤,司馬斌,韓彥龍,楊 洋

      (西安輕工業(yè)鐘表研究所有限公司,陜西 西安710061)

      軸承摩擦力矩是軸承領(lǐng)域用來衡量軸承特性的重要技術(shù)指標(biāo)之一,軸承摩擦力矩的準(zhǔn)確測定在許多工業(yè)和科學(xué)研究領(lǐng)域中都有重要意義。本文對軸承摩擦力矩的測量主要應(yīng)用復(fù)擺能量守恒的原理,推導(dǎo)出軸承摩擦力矩與擺角的關(guān)系式,并將關(guān)系式編寫入上位機(jī)軟件中,最終根據(jù)擺角的測量計算出軸承的摩擦力矩。系統(tǒng)中為了減少外界軸承啟動摩擦力的介入,使用非接觸式圓光柵對復(fù)擺擺動角度進(jìn)行實(shí)時測量,圓光柵編碼器有著非接觸、精度高等特點(diǎn),可提供準(zhǔn)確可靠的動態(tài)角度數(shù)據(jù)。本文利用高精度非接觸式圓光柵編碼器開發(fā)一套基于Visual C++與STM32的檢測軟件,實(shí)現(xiàn)了軸承摩擦力矩的自動化測量。

      1 系統(tǒng)測量原理

      測量系統(tǒng)的測試原理如圖1所示。將軸承裝入軸承安裝部件內(nèi),擺桿連接部件掛由10 kg負(fù)載,軸承安裝部件以小角度(10°)范圍內(nèi)進(jìn)行擺動,同時安裝在軸承安裝部件上的碼盤也隨之進(jìn)行轉(zhuǎn)動,測頭實(shí)時對碼盤旋轉(zhuǎn)的脈沖進(jìn)行輸出傳送給STM32,為了精確進(jìn)行角度的測量對輸出的脈沖進(jìn)行了400倍細(xì)分,并通過光耦將脈沖信號傳遞給STM32,使用STM32的TIM3編碼器模式來對輸入的脈沖進(jìn)行計數(shù),選用雷尼紹的圓光柵編碼器一圈7200個脈沖,經(jīng)過400倍的細(xì)分后一圈288000脈沖,STM32計一個脈沖周期的方波表示碼盤轉(zhuǎn)了0.000 125°,最后將角度信息通過RS232發(fā)送給上位機(jī)軟件利用推到出的關(guān)系式進(jìn)行軸承摩擦力矩的計算。

      圖1 測量原理框圖

      2 下位機(jī)系統(tǒng)設(shè)計

      下位機(jī)系統(tǒng)主要由STM32F407IGT6核心控制器、圓光柵碼盤、碼盤測頭,放大器,高速光耦模塊,數(shù)字通訊等組成。系統(tǒng)結(jié)構(gòu)框圖如圖2所示。

      圖2 下位機(jī)系統(tǒng)結(jié)構(gòu)框圖

      當(dāng)復(fù)擺擺動時,圓光柵碼盤與復(fù)擺儀器做往復(fù)運(yùn)動,碼盤測頭隨即讀出脈沖個數(shù),經(jīng)由DB15放大器輸出A、B相,A相為順時針擺動時的脈沖,B相為逆時針擺動時的脈沖。高速光耦模塊將A、B相的5 V脈沖信號轉(zhuǎn)變?yōu)?.3 V脈沖輸入給STM32控制器。STM32控制器使用TIM1編碼器模式完成對A、B相脈沖信號進(jìn)行脈沖數(shù)據(jù)處理,最后轉(zhuǎn)變成角度數(shù)據(jù)通過RS232發(fā)送到上位機(jī)。RS232數(shù)字通訊提供了一個下位機(jī)與上位機(jī)系統(tǒng)的連接接口。

      3 上位機(jī)軟件設(shè)計

      上位軟件的設(shè)計主要考慮到了軟件系統(tǒng)安全可靠,可移植性,基于當(dāng)下Windows平臺運(yùn)行及修改方便等因素。因此使用Visual C++2017分別開發(fā)了串口通訊程序,角度信息控制程序,曲線顯示等程序。其中的角度信息控制程序采用的是摩擦力矩與實(shí)時擺角的關(guān)系進(jìn)行設(shè)計,各部分通過動態(tài)鏈接庫組合成一個整體,其軟件結(jié)構(gòu)框圖如圖3所示。

      圖3 上位機(jī)軟件結(jié)構(gòu)框圖

      3.1 串口通信程序設(shè)計

      串口通信使用的是基于Visual C++2017開發(fā)平臺,與STM32控制器通信采用CMscomm類來實(shí)現(xiàn)。CMscomm是第三方提供的控件,使用它可以方便地在Visual C++里實(shí)現(xiàn)串口通信[1]。串口通信設(shè)計的部分代碼如下:

      CMscomm m_ctrlComm;//創(chuàng)建 CMscomm 類的對象m_ctrlComm

      codeNM=m_ctrlComm.get_CommEvent();//獲取串口事件碼

      myVar.Attach(m_ctrlComm.get_Input());//讀 取接收數(shù)據(jù)

      safarray_inp=myVar;

      len=safarray_inp.GetOneDimSize();//得到有效數(shù)據(jù)長度

      strtemp.Format(_T("%ld"),RX_count+=len);//接收字節(jié)數(shù)的累計

      strtemp=_T("RX:")+strtemp;

      m_ctrlRXCount.SetWindowText(strtemp);//顯 示接收數(shù)據(jù)的累計字節(jié)數(shù)

      3.2 角度信息控制程序設(shè)計

      上位軟件角度信息的處理是通過讀取串口接收到的脈沖信息,一方面完成角度的換算,本文中用到的圓光柵碼盤為7 200線,360°產(chǎn)生7 200個脈沖,每個脈沖對應(yīng)0.05°以此進(jìn)行角度換算并顯示;另一方面完成軸承摩擦力矩的計算,計算公式如下:

      其中,M為軸承摩擦力矩,m為徑向加載的重量,l為軸承回轉(zhuǎn)中心到整個單擺質(zhì)心的距離,q為一定周期內(nèi)單擺擺動到左側(cè)最大角度的減幅系數(shù),n為第n個周期,g為重力加速度。部分代碼如下:

      GetDlgItem(IDC_EDIT_FUZAI_Z)->GetWindow-Text(strv2);//負(fù)載

      GetDlgItem (IDC_EDIT_NeiQuan_R)->GetWindowText(strv1);//內(nèi)圈半徑

      GetDlgItem (IDC_EDIT_DANBAI_L)->GetWindowText(strv);//單擺長

      fenzi=(youj-zuoj)*m_dy3*m_dyy*10*2;

      fenmu1=2*m_dy4*k_hd;

      fenmu2=(m_dy4-1)*(t_hd-k_hd);

      fuzaiz.Format(_T("%.5f"),mochal1);

      GetDlgItem(IDC_EDIT_MCLiju)->SetWindowText(fuzaiz1);//摩擦力矩

      3.3 曲線程序設(shè)計

      上位軟件中使用TeeChart控件進(jìn)行實(shí)時擺角曲線的顯示,此控件具有界面美觀友好,開發(fā)便捷大大縮短程序的開發(fā)周期,并且具有高速的繪圖速度,利用TeeChart控件提供的接口函數(shù)進(jìn)行實(shí)時擺角顯示。部分代碼如下:

      CSeries chart_T=(CSeries)m_Chart.Series(0);

      chart_T.Clear();

      m_pLineSerie->ClearSerie();

      LeftMoveArray (m_TeeChartArray, m_c_arrayLength,randf(0,10));

      3.4 數(shù)據(jù)庫的設(shè)計

      數(shù)據(jù)庫的的設(shè)計是為了便于對檢測產(chǎn)品的測試數(shù)據(jù)的存儲,此系統(tǒng)設(shè)計了將待測試產(chǎn)品的相關(guān)信息保存到Excal功能,需要保存的產(chǎn)品信息如圖4所示。

      圖4 測試產(chǎn)品信息存儲表格結(jié)構(gòu)

      在Visual C++2017 MFC中使用ADO數(shù)據(jù)庫進(jìn)行Excal操作可以方便的將需要導(dǎo)出的信息保存,當(dāng)前各種主流數(shù)據(jù)庫有很多,包括Oracle,MS SQL Server,Sybase,Informix,MySQL MS ACCESS 等。ADO數(shù)據(jù)庫的訪問流程跟其他數(shù)據(jù)庫類似,此處不再詳細(xì)冗述,下面是使用Visual C++2017中開發(fā)ADO數(shù)據(jù)庫的步驟:

      a)導(dǎo)入ADO動態(tài)鏈接庫

      #import "c:programfilescommonfilessystemadomsado15.dll"no_namespace ename("EOF","adoEOF")

      b)初始化OLE/COM庫環(huán)境

      BOOL CExpApp::InitInstance()

      {

      AfxEnableControlContainer();

      //初始化OLE DLLs

      if(!AfxOleInit())

      {

      AfxMessageBox("初始化 OLE DLL 失敗!");

      Return FALSE;

      }

      ......

      }

      c)利用Connection對象鏈接數(shù)據(jù)源

      _ConnectionPtr m_pConnection;

      d)執(zhí)行SQL命令并取得結(jié)果記錄集

      _RecordsetPtr m_pRecordset;

      e)e)記錄集遍歷和更新

      if(vID.vt!=VT_NULL&&vUsername.vt!=VT_NULL&&vOld.vt!=VT_NULL&&vBirthday.vt

      !=VT_NULL)

      TRACE("id:%d,日期:%s,產(chǎn)品編號:%d,摩擦力矩:%d",摩擦系數(shù):%d",

      vID.lVal,

      (LPCTSTR)(_bstr_t)vUsername,

      vOld.lVal,

      (LPCTSTR)(_bstr_t)vBirthday);

      m_pRecordset->MoveNext();///移到下一條記錄

      形成如圖4所示表單。

      4 應(yīng)用分析

      選取同一個軸承測量10次,分別徑向加載10 kg的條件下使用專用測量裝置對軸承摩擦力矩進(jìn)行測量,結(jié)果如下表1[2]所示。

      表1 10 kg負(fù)載下測試數(shù)據(jù)

      由測試數(shù)據(jù)表1[2]可以看出測試結(jié)果與計算得出的結(jié)果基本吻合,測試數(shù)據(jù)中存在的誤差是由測試的原理誤差和測試裝置的加工制造誤差組成,由于每個軸承加工的精度存在差異,同一個批次的軸承的摩擦力矩之間同樣存在差異,但是整體的相對誤差很小,同一批次的軸承的摩擦力矩不存在較大波動[2]。如圖 5、圖 6.

      圖5 軸承摩擦力矩測試系統(tǒng)

      圖6 上位機(jī)軟件界面

      5 結(jié)束語

      使用上述方案進(jìn)行設(shè)計的軸承摩擦力矩檢測系統(tǒng),測量的自動化程度高,上位機(jī)軟件可適用于基于Windows平臺的系統(tǒng),通用性強(qiáng)、畫面顯示直觀清晰且實(shí)時性較好。

      猜你喜歡
      碼盤上位串口
      三角碼盤定位機(jī)構(gòu)相對于十字碼盤的準(zhǔn)確度分析和補(bǔ)償計算
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      DA42NG飛機(jī)空調(diào)系統(tǒng)組成及日常維護(hù)
      科技視界(2019年11期)2019-06-20 01:22:08
      特斯拉 風(fēng)云之老阿姨上位
      車迷(2018年12期)2018-07-26 00:42:22
      “三扶”齊上位 決戰(zhàn)必打贏
      基于ZigBee和VC上位機(jī)的教室智能監(jiān)測管理系統(tǒng)
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時無線通信
      地礦測繪(2015年3期)2015-12-22 06:27:26
      以新思路促推現(xiàn)代農(nóng)業(yè)上位
      基于金屬碼盤的光電編碼器改進(jìn)研究
      磐石市| 延津县| 长兴县| 花垣县| 襄汾县| 敦化市| 赣榆县| 慈利县| 高邑县| 祁门县| 南京市| 德江县| 昆明市| 万山特区| 青州市| 理塘县| 黑水县| 织金县| 汉沽区| 南丹县| 哈尔滨市| 长白| 西充县| 磐安县| 雷州市| 县级市| 永德县| 长春市| 聂荣县| 广灵县| 富裕县| 乐都县| 当雄县| 潮州市| 通海县| 建德市| 天等县| 龙州县| 淮北市| 兴义市| 阜康市|