2022-01-18 作者 :旋風數控網 圍觀 : 0次
大家好,今天小編關注到一個比較有意思的話題,就是關于數控系統200微秒的問題,于是小編就整理了1個相關介紹數控系統200微秒的解答,讓我們一起看看吧。
我做開發,能用原生盡量用原生,能不用框架盡量不用,就是為了提升幾毫秒,節省幾kb內存,如果你不服,試試在35M主頻,512字節內存的單片機上寫一個web服務器試試,你會發現,除了c語言和匯編語言,什么PHP、Java、C#都是浮云,更不要說框架了,調試環境ESP8266+STC89C52,通過網頁控制燈的亮滅,另外,也可以使用arduino直接操作ESP8266,無須51單片機也可以實現一樣的功能。
程序中提升幾毫秒、節省幾kB的內存有必要嗎?
經常有朋友在問這個事情,現在電腦的CPU、內存、顯卡都非常強大了,編程還需要那么精雕細琢,去節省那一丁點的內存、提升一點點的速度,這有什么意義?
是否有意義,要看在什么場合下使用的程序以及哪一種用途的程序,多數情況下,這樣精雕細琢還是很有意義的。
以下用實例說明:
例1、12306訂票系統。
外觀看起來不過是一個網頁,但實際上它后臺的支撐是非常復雜的。
這個系統,一年售出車票有30多億張;網上售票比例超過了80%;互聯網高峰日,售出車票達到了1282多萬張;高峰時每秒售票超出1000張;網站高峰日訪問量超過了1600億次!
不用說,這種系統,每個用戶的計算加快一毫秒,每個步驟節省幾個字節內存,那么對于整個系統來講都是天文數字的節省。
例2、視頻播放軟件。
眾所周知,視頻播放軟件,其核心功能就是圖像聲音信號的編碼和解碼。以4k視頻為例,其水平清晰度3840,垂直清晰度2160,寬高比16:9,總約830萬像素,每個像素包括紅綠藍三種顏色,每種顏色有24位深度,一秒鐘要處理三十幅畫面,其計算處理的工作量之大可見一斑。處理視頻軟件大部分工作量都是重復的,因此每一個步驟提升哪怕是一毫秒、節省一點內存,也可以使整個系統更流暢。
當然了,對于單機使用的wps之類,其速度和內存占用并不是非常敏感,編程的時候可以放寬要求。而對于多用戶端、大數據流量的軟件來說,為了提高性能,還是應當精打細算。
這個要視運行環境而定。
我是做自動控制軟件的,掌控定時節奏,是重要的工作。大的時間節拍以ms(毫秒)為單位,小的時間節拍為幾十us(微秒),要求不一樣。以下分別說明。
對于上位機,幾KB內存、幾ms時間不是問題。
我們平常接觸比較多的,是FUNUC,SIMENS以及國產華中、廣數等大的數控設系統,以及眾多小眾的數控系統。
大公司的數控系統,在UI界面的XYUVZABC等軸的座標顯示上,讓人覺得很流暢,反應很快,每秒鐘顯示十幾次一點問題沒有。這主要是因為工控機的頻率大幅提高了,顯示RAM的刷新速度也大幅提高。
以前用486DX工控機,最大頻率50MHZ;現在用intel I5,I7等工控機,雙核四線程,隨便就能達到2GHZ以上。內存由1MB到現在的8~16GB,以及可以擴充的的虛擬內存。
考慮到CPU頻率,內存、顯存大小及訪問速度的大幅提升,一般的上位機程序開發,不用太在意增加幾K程序大小、內存大小,不用在意幾ms的時間,程序員總能找到很好的處理方法。
windows的最小可控制時間也就10ms,再小了系統工作該不正常了。這也從另一方面說明,節省幾ms的程序執行時間,對于上位機沒多大意義。
對下位機,時序要求嚴格,幾K程序大小、內存大小,幾ms的時間周期,作用重大。
如果用發脈沖、方向的方式,控制電機速度,30us發送一次,電機帶動目標系統走1um,那么,每分鐘能達到2000mm的速度。
在這樣的系統,每個周期的計算及自動控制時間只有30us,我們要盡可能地精簡算法,最好用線性計算,使時間最少。
如果在每30us的運算中,大量使用對數、指數、cos/sin/tan/ctg等數學函數,無法滿足速度的要求。
同樣,對于只有64~128KB的單片機來說,幾KB的空間是很寶貴的,不然就要選更貴的單片機。
對于實時性要求更高各系統之間的數據交換,一般要求小于ms級的交換頻率,超過了,無法保證自動控制的實時性要求。
總結:對于上位機,CPU雙核2GHZ,內存也隨便能達到4GB及更多,是最低配置,幾K的程序大小不是問題。至于幾ms時間,可以通過合理的時間分配來解決。
對于下位機,幾K程序大小、內存大小,幾ms的時間周期,是非常珍貴的,特別是時序,寫程序時必須計算好,以保證系統的工作節奏。
到此,以上就是小編對于數控系統200微秒的問題就介紹到這了,希望介紹關于數控系統200微秒的1點解答對大家有用。