《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于高檔數控的實時多任務實現
基于高檔數控的實時多任務實現
何敏佳,陰雷鳴,何英武,羅有錦
摘要: 為了解決高檔數控系統對控制軟件實時性的要求,提出了分時并行處理的設計方法,以實時環境下多線程技術的原理為依據,用Delphi提供的多線程編程組件完成了系統線程的具體實現,并且以開發實例的方式給出了多線程技術在實現數控系統實時響應中的應用。實時多任務的實現,顯著提高了CPU的利用率,并使系統的可靠性得到了保證。
Abstract:
Key words :


0 引言
    實時性是數控系統一項重要的性能指標。
    通信在IPC(Industrial Personal Computer)與運動控制器構成的開放式數控系統開發平臺上,雖然這種主從式結構,確保了運動控制指令在運動控制器內高速、實時的被執行,但在PC平臺上,仍需要完成諸如實時顯示、預處理計算、系統狀態監控等許多任務。為了保證系統的實時性能,擬采用多線程技術,通過多任務并行處理的方式,提高系統實時性。

1 進程與線程以及多線程技術
    Windows操作系統既支持多進程,又支持多線程。一個進程就是應用程序的一個實例,一次執行過程也就是調入內存準備執行的程序,包括當前執行的應用程序的執行代碼和程序執行相關的一些環境信息。每個進程擁有整臺計算機的資源,無須知道其他進程在計算機中的信息。通常每個進程至少有一個線程在執行所屬地址空間中的代碼,該線程稱為主線程,如果該主線程運行結束,系統將自動清除進程及其他地址空間。
    線程是進程內部執行的路徑,是操作系統分配CPU時間的基本實體,是程序運行的最小單位。每個進程都由主線程開始進行應用程序的執行。線程由一個堆棧、CPU寄存器的狀態和系統調用列表中的一個人口組成。每個進程可以包含一個以上的線程,這些線程可以同時獨立地執行進程地址空間中的代碼,共享進程中的所有資源。
    Windows系統分配處理器時間的最小單位是線程,系統不停地在各個線程之間切換。在PC機中,同一時間只有一個線程在運行。通常系統為每個線程劃分的時間片很小(ms級別),這樣快速系統的實時性就有了保障。
    要實現多線程編程,可建立輔助線程(Worker Thread)和用戶界面線程(User Interface Thread)。輔助線程主要用來執行數控程序、坐標顯示、動態仿真和數據預處理;用戶界面線程用來處理用戶的輸入,響應用戶產生的事件和消息。

2 實時多任務的實現
    數控系統軟件具有實時性和多任務兩大特點。數控系統中要管理和控制的任務很多,如當數控系統正處于加工控制狀態時,為了保證加工的連續性,在各個程序段之間不停頓,各數控加工程序段的預處理、插補計算、位置控制和各種輔助控制任務都要及時進行;為了使操作人員及時了解和干預數控系統的工作狀態,系統在執行加工任務的同時還應該及時進行一些人機交互工作,即顯示加工狀態、接收操作人員通過操作面板輸入的各種改變系統狀態的控制信號等。為了及時檢查和預報軟、硬件的各種故障,系統在運行控制程序和人機交互程序同時還要及時運行診斷程序;此外,系統還可能被要求及時完成通信等其他任務??梢姡硐氲臄悼爻绦?,應具有實時多任務的處理能力。
    針對數控系統軟件的實時性和多任務性兩大特點,采用分時并行處理技術來確定數控系統軟件結構。分時并行處理技術是指一個處理器同時完成多種任務。系統用時間片輪換的方式處理和完成各任務,即按照某種輪換次序給每個任務分配一段CPU時間進行各任務的處理。從微觀上看,各任務分時占用CPU;從宏觀的角度來看,在一段時間內,CPU并行完成了多個任務。在軟件設計中,利用Windows的多線程技術以“資源分時共享”為原則,有效地解決CNC系統的實時多任務問題。應用優先級搶占方式來進行線程調度,以滿足系統的實時性要求,利用時間重疊和資源共享的方法來實現并行處理。
2.1 系統線程的總體設計
    Windows提供兩種線程,輔助線程和主線程。主線程有窗口,因此它有自己的消息循環,可以處理消息,使程序能夠迅速響應命令和其他事件;輔助線程沒有窗口,所以它不需要處理消息。它可用于完成一些費時的工作,以免在由主線程處理這些工作時阻礙程序消息的處理。軟件設計時有并行要求的模塊置于獨立的線程中,以實現系統的多任務并行工作。根據對系統實時多任務的分析,將軟件系統中的線程設計為:
    (1)主線程
    主線程是應用系統啟動時創建的第一個線程,其他線程都是由主線程直接或間接創建。主線程主要負責創建客戶界面、數據顯示、與客戶交互、系統初始化以及對其他線程進行監控。
    (2)譯碼線程
    譯碼線程是由主線程創建的,負責程序的譯碼,并將計算結構存入公共數據區,為通信線程提供數據來源。
    (3)通信線程
    通信線程負責上下位機間的數據傳輸。上下位機間的傳輸以一來一回的形式進行。通信線程接收到下位機傳來的數據,根據事先定義好的協議對它進行識別,并根據識別的結果來判斷是否需要將插補命令等傳給下位機,還需要通知主線程來處理異常情況。
    通信線程所承擔的任務是強實時周期性任務,譯碼線程所承擔的任務是弱實時性任務,主線程承擔的是實時突發性任務。因此根據系統任務實時性強弱不同,可為各個線程設置相應的優先級來確保實時性。主線程與進程的優先級相同,通信線程的優先級高于主線程,而譯碼線程的優先級高于主線程低于通信線程。
     在線程優先級設置中,通信線程的優先級最高,這使得通信線程在需要CPU時間片等資源時,能夠順利的搶占其他線程的資源,保證上下位機的通信順暢,使下位機在加工時能夠平穩的實現進程,并且使下位機在出現異常情況時能及時通知上位機。由于通信這一動作是依照某種頻率進行的,因此通信線程不會一直占用CPU資源,從而不會因為它的優先級高使其他線程無法運行。
    具體實現原理架構如圖1所示。

a.JPG


2.2 系統線程的具體實現
    Delphi提供了許多與多線程編程相關的組件,其中最重要的是Tthread類,本文就是利用它來實現多線程編程。該類封裝了大多數與線程相關的方法,使用Tthread類大大簡化了多線程程序的開發步驟。Tthread類是一個抽象類,不可以直接創建它的實例,但是可以創建它的派生類。創建方法在Delphi菜單中依次選擇“File”→“New”→“Other”→“New”,選擇“Thread Object”項,在對話框中輸入新的線程類的名稱,確認后即創建了一個新的線程類:
    b.JPG
    c.JPG
    其中:“private”及“protected”用來定義變量和程序函數,“procedure Execute;override;”是線程函數,用來編寫線程的執行部分。同時Delphi還提供了各種函數用來運行和終止線程等。創建了線程的派生類后可以生成該類的對象,來表示應用程序的執行線程。各個線程創建好后將NC的解釋程序、通信程序等放在各自線程函數內,再創建線程的對象,設置幾個線程就生成幾個對象,在對象內編寫打開或終止線程等函數來控制線程的運行。

3 結語
    基于Windows平臺的高檔數控實時操作系統的開發,實現了不僅能向Windows平臺添加實時功能,而且使這些實時功能具有很好的可擴展性。本課題下步的目標是將此實時系統的設計實現在Windows XPEmbedded平臺上,使其具備高檔數控系統需要的嵌入式設備的特性。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美激情一区三区| 韩国av一区| 久久狠狠久久综合桃花| 亚洲一区免费看| 99这里只有精品| 99国产精品视频免费观看| 亚洲精品乱码久久久久久按摩观 | 久久精品成人一区二区三区蜜臀| 亚洲一区在线播放| 亚洲自拍16p| 香蕉免费一区二区三区在线观看| 亚洲欧美大片| 午夜视频在线观看一区二区三区 | 国产精品99久久不卡二区| 亚洲精品中文字| 亚洲免费不卡| 在线亚洲欧美专区二区| 亚洲视频一区二区免费在线观看| 一区二区三区产品免费精品久久75| 一区二区三区精品在线| 亚洲综合视频在线| 久久国产精品99国产| 久久国产精品久久久| 久久婷婷成人综合色| 久久综合综合久久综合| 欧美成人综合网站| 欧美日韩一区二区三区视频| 国产精品男gay被猛男狂揉视频| 国产精品一区2区| 国产曰批免费观看久久久| 娇妻被交换粗又大又硬视频欧美| 亚洲国产成人不卡| 夜夜嗨av一区二区三区网页| 亚洲视频一区二区| 欧美亚洲免费在线| 亚洲国内在线| 一区二区三区视频在线| 性亚洲最疯狂xxxx高清| 久热这里只精品99re8久| 欧美另类女人| 国产欧美亚洲一区| 亚洲电影av在线| 一本到高清视频免费精品| 亚洲欧美一区二区三区久久 | 久热精品视频在线观看| 欧美日韩喷水| 国产一区二区三区黄| 亚洲国产精品成人综合| 亚洲图片欧美日产| 久久精品一级爱片| 亚洲一区二区不卡免费| 久久人体大胆视频| 欧美日韩在线视频一区二区| 国产主播精品在线| 亚洲精品一区二区三区99| 午夜精品久久久久久久99水蜜桃| 亚洲欧洲精品一区二区| 午夜精品在线观看| 蜜桃av一区二区| 国产精品久久久久aaaa九色| 激情久久综合| 亚洲一区二区成人在线观看| 亚洲欧洲三级电影| 欧美在线观看视频| 欧美日韩国产精品一卡| 狠狠干成人综合网| 亚洲伊人伊色伊影伊综合网 | 欧美日韩精品免费在线观看视频 | 亚洲成人在线免费| 亚洲一区欧美一区| 亚洲人成亚洲人成在线观看图片| 欧美一级二区| 欧美乱在线观看| 国内精品视频一区| 亚洲一品av免费观看| 最新中文字幕一区二区三区| 欧美一区永久视频免费观看| 欧美日韩高清不卡| 在线观看亚洲视频啊啊啊啊| 亚洲伊人一本大道中文字幕| 日韩一级免费| 免费成人黄色av| 国产人成精品一区二区三| 99国产精品自拍| 亚洲日本国产| 乱中年女人伦av一区二区| 国产欧美 在线欧美| 日韩视频在线你懂得| 亚洲欧洲一级| 久久视频精品在线| 国产亚洲精品v| 亚洲男人的天堂在线| 亚洲视频精品| 欧美另类久久久品| 亚洲激情影院| 亚洲激情图片小说视频| 久久久午夜视频| 国产日韩一区在线| 亚洲小少妇裸体bbw| 亚洲午夜成aⅴ人片| 欧美精品一区二区三区在线看午夜| 精品动漫3d一区二区三区免费| 性做久久久久久| 欧美在线亚洲综合一区| 国产精品久久久久久久免费软件 | 国产精品视频网站| 亚洲一区二区三| 亚洲欧美一区二区激情| 欧美午夜精品一区| 宅男噜噜噜66一区二区66| 一区二区三区欧美在线| 欧美日韩亚洲另类| 99国产精品99久久久久久粉嫩| 9久草视频在线视频精品| 欧美日本国产在线| 亚洲精品国产无天堂网2021| 99re6这里只有精品| 欧美日韩精品一区视频| 99re热这里只有精品视频| 这里只有视频精品| 欧美图区在线视频| 亚洲婷婷综合色高清在线| 亚洲欧美久久久| 国产精品亚洲成人| 亚洲欧美制服另类日韩| 久久精品成人欧美大片古装| 国产一区自拍视频| 久久er精品视频| 乱中年女人伦av一区二区| 亚洲国产欧美在线人成| 日韩视频在线你懂得| 欧美另类极品videosbest最新版本| 999亚洲国产精| 亚洲欧美在线磁力| 国产日韩一区二区| 亚洲高清一区二| 欧美第一黄色网| 亚洲精品一区二区三区不| 亚洲一区亚洲| 国产女人精品视频| 亚洲国产mv| 欧美激情精品久久久久久蜜臀 | 亚洲日本aⅴ片在线观看香蕉| 欧美精品一区二区三| 一区二区高清视频在线观看| 欧美一区在线直播| 狠狠综合久久av一区二区小说 | 久久精品噜噜噜成人av农村| 嫩草国产精品入口| 99精品久久| 久久国产婷婷国产香蕉| 在线观看国产精品网站| 一区二区三区久久精品| 国产欧美日本在线| 亚洲经典三级| 国产精品高清在线观看| 欧美一区二区三区在线观看| 蜜臀av性久久久久蜜臀aⅴ| 亚洲美女色禁图| 久久国产色av| 亚洲日本在线观看| 篠田优中文在线播放第一区| 激情综合中文娱乐网| 亚洲午夜高清视频| 国内精品久久久久久影视8| 日韩亚洲欧美在线观看| 国产精品尤物| 亚洲精品一区二区三区av| 国产精品麻豆va在线播放| 亚洲电影网站| 国产精品久久久久毛片软件| 亚洲国产精品va在线观看黑人| 欧美日韩在线不卡一区| 久久精品国产久精国产爱| 欧美日韩在线播放三区| 亚洲黄色成人网| 国产精品视频1区| 亚洲美女在线视频| 国产视频一区欧美| 一区二区三区**美女毛片| 狠狠色2019综合网| 亚洲综合精品一区二区| 在线视频观看日韩| 校园激情久久| 亚洲毛片av| 猫咪成人在线观看| 亚洲欧美高清| 欧美日韩一区在线视频| 亚洲激情女人| 国产亚洲成精品久久| 在线视频亚洲一区| 一色屋精品视频在线观看网站| 亚洲欧美日韩成人| 亚洲人在线视频| 久久婷婷影院| 亚洲一区二区黄色| 欧美日韩小视频| 亚洲三级国产| 极品尤物av久久免费看| 久久爱另类一区二区小说|