顶级欧美熟妇高潮xxxxx-日韩精品无码免费一区二区三区-亚洲制服丝袜一区二区三区-免费av在线-人妻被按摩师玩弄到潮喷

關于我們 聯系我們 網站地圖 您好!歡迎訪問沈陽天乙新數控機械有限公司!
全國咨詢熱線:024-8936-3215
您的位置:首頁>>新聞中心

咨詢熱線

024-8936-3215

基于Windows多線程開放數控主控系統的實現

作者:天乙數控機床時間:2021-05-07830次瀏覽

信息摘要:

計算機應用基于Windows多線程開放數控主控系統的實現張政,馬書根,曹秉剛(西安交通大學機戒工程學院機電系,陜西西安710049)如何用多線程機制實現數控系統的多任務,以及多任務

 計算機應用基于Windows多線程開放數控主控系統的實現張政,馬書根,曹秉剛(西安交通大學機戒工程學院機電系,陜西西安710049)如何用多線程機制實現數控系統的多任務,以及多任務之間的協調和同步問題。同時,還討論了實現數控機床上位機(Windows)和下位機(DOS)之間的串口通信問題。該主控系統已經用于一臺數控機床的改造實驗,并且取得了良好的效果。
 
  1引百在現有數控系統中,大多數系統是基于DOS環境的,其綜合性能相對于Windows環境就弱一些,尤其是界面、人機交互能力、多任務以及開放性方面比較差。因此說,開發基于本文的主控系統是基于一種開放式數控機床體系結構數控軟件化體系結構進行研究的。該體系結構(所示)就是為了解決封閉系統的不足而提出來的。在這一結構下,工藝軟件在一臺Host―PC上運行,所生成的設備動作信息由串行口傳送給完備數字機床。
 
  用VC++編制了主控系統的控制軟件,并且通過實驗驗證,取得了滿意的效果。該主控系統可以支持齒輪加工和復雜曲面的加工,大大簡化了工藝軟件的編制。
 
  0、張政(972-)男,陜西三原人,博士研究生,主要研究方向數控技術、機器人遠程控制。」L.件的測量數據進行比較,現加工過程中中的系統誤cMliShM記記錄線程就被喚el對ei新數tf進行處理把*新數bookmark4利用VC++開發的基于Windows的開放數控主控系統界面如該系統的主要功能:裝配自動加工文件;手工編輯自動加工文件;機床位置調整;機床坐標原點設定;離線仿真走刀軌跡;在線實時仿真走刀軌跡;數字機床狀態顯示。
 
  2多線程技術在主控系統中的應用每一個Windows應用程序都是一個進程,并由線程來負責執行包含在進程地址空間中的代碼。實際上,單個進程可以擁有多個線程,它們在進程的地址空間中“同時地”執行代碼。操作系統以一種輪轉的方式為每個獨立的線程分配CPU時間片,客觀上使所有的線程近乎同時進行。
 
  系統同時又是根據所有活動線程的優先級來決定何時調用哪個線程以及調度多長時間。系統為每一個線程分配了優先級,從*低的0到*高的31.不管低級別的線程正在干什么,高級別的線程總會搶先低級別的線程。
 
  2.1線程優先級的設定在Windows中一個線程的優先級是由它所在的進程和它相對于該進程的優先級確定的。當線程被創建時,它的優先級是所在進程的優先級類。例如,一個REALTIME-PRIORITY-CIASS的進程主線程的初始優先級為24.不過,可以通過設定線程相對于進程的優先級,來改變線程優先級。
 
  這樣,在一個應用程序中的幾個線程就可以被設定為不同的優先級。例如:在上下位機通信線程中使用:在時間顯示線程中,使用);/可以把該線程的優先級設定為16表1給出了系統如何根據進程的優先級類和線程的相對優先級相結合,決定線程的基本優先級。
 
  表1系統如何確定線程的基本優先級線程相對優先級進程優先級類空閑普通高實時2.2主控系統中的線程主控系統中的線程主要有:顯示年月日和北京時間。如:002年1月21日星期一北京自動記錄線程。在自動加工時,把從下位機接收到的數據存儲到文本文件。這樣就可以保存完整的加工數據,把加工過程記錄下來。加工完成后,可以根據該文件和實際零而米取措施進一步提高加工精度。
 
  跡按照三視圖繪制在界面上,有利于操作者掌握加工進度和實際的加工情況。
 
  *后驗證自動加工程序的正確性。從而可以發現錯誤,避免造成損失。
 
  串口通信線程。該線程負責把自動加工數據或者機床調整數據通過串口發送給下位機,同時還要從串口讀取下位機傳來的機床狀態數據,顯示于界面上。
 
  以上介紹的各個線程的優先級列于表2表2主控系統中幾個線程的優先級。
 
  線程顯示時間線程自動記錄線程在線仿真線程離線仿真線程串口通信線程優先級23各線程之間的協調和同步在有幾個線程并行運行的環境中,同步不同線程的活動是很重要的。Windows中主要提供了5種用于同步線程的對在本主控系統中主要用到了臨界區和事件進行線程同步。
 
  臨界區是一小段代碼,它要求在執行以前取得對某些共享數據的獨占的訪問。臨界區一次只允許一個線程取得對某個數據區的訪問權。通過使用臨界區就能確保對數據結構的存取能在線程之間得到協調。如果某個線程已經取得了臨界區的所有權,其它想要獲得訪問權的線程都會被置于睡眠狀態。當擁有所有權的線程放棄了所有權時,系統只喚醒正等待中的一個線程,給它所有權,而讓其它的線程繼續睡眠。例如,在線仿真線程中使用程序段:在主線程中使用程序段:可以同步在線仿真線程和主線程對全局變量strSimuOnlineX的訪問。
 
  事件*常用于一個進程進行初始化工作后,發信號給另一個線程,讓其完成剩余的工作。初始化線程將事件設置為無信號狀態后開始進行初始化。當初始化完成后,線程把事件設置為有信號態,工作線程就醒來執行余下的必要工作。
 
  在主控系統中主要定義了如下事件:其中rote-eventStart用于表示主線程初始化已經完成,自動加工開始,可以啟動自動記錄線程。當該事件為有信號態據寫入文件。在自動記錄線程中使用等待該時間有信號。當主線程開始自動加工,并且向下位機發送了**組數據后,使用語句就可以啟動自動記錄線程開始記錄。由于篇幅所限,其它事件的具體應用就不再討論。
 
  3Windows和DOS間的串口通信3.1串口通信的硬件基礎RS―232-C是在數據終端設備(DTE)和數據通信設備(DCE)之間進行二進制交換的接口標準,可用于實現兩臺微機間的近距離直接通信。實現雙機連接,只要將兩臺微機的串行口或并行口以適當電纜按一定方式連接起來即可。
 
  9針在本主控系統中,采用的就是9針三線連接方式。
 
  RS―232―C只是計算機之間串行通信的接口標準,其電器特性則是由計算機中稱作通用異步收/發器(UART)的器件來完成的。
 
  DOS串口通信DOS和BIOS都提供了支持串行異步通信的功能調用,可以利用這些功能調用來設計簡單的串行異步通信程序。中斷控制方式是串行通信采用*多的收/發控制方式。在下位PC機運行的DOS環境下,就采用了基于中斷的方式。
 
  Windows串口通信在Windows下,串行口作為系統資源,由設備驅動程序統一管理,用戶不能像在DOS下一樣直接對串行口硬件端口進行編程。Windows將串行口和其它通信設備如Modem、傳真機等統一視作文件,對串行口的打開、關閉、讀寫等操作與操作還由于需要結合Windows的線程編程、事件驅動等新技術,因而使得Windows下的串行通信編程比較復雜。
 
  串行通信會話以調用CreateFileC)函數打開串行口開始,接著設置串行口波特率、數據位、校驗位、停止位等參數以及超時參數,*后選擇一種工作方式讀、寫串行口。在Windows中,串行通信有詢方式和事件驅動兩種工作方式。
 
  查詢是*為直接、易于理解的技術。但是查詢會占用大量的CPU時間,效率較低。事件驅動I/O方式是指線程通過監視通信資源中的一組事件來進行I/O操作,這種方式類似于DOS下的中斷工作方式,效率高。主控系統中使用的就是事件驅動的通信方式。在主控系統中,建立了一個CSerialPort類,用于實現串口的初始化和讀寫操作。
 
  3.4Windows和DOS的串口通信兩種操作系統之間的串口通信并不難,只要在兩者之間建立了正確的硬件連接,然后分別編寫各自的通信程序,并且按照同樣的通信協議設置,就可以通信了。這也就是本主控系統上位機和下位機的通信實現方式,并且通信速率達到了4結語該主控系統的實用性已經通過實驗驗證,取得了良好的效果。
返回列表 本文標簽: