msOS設計的本意是為電子類設備及PLC設計的,一開始想著仿造西門子的S7-300來設計一套基于CAN通訊的分布式PLC,然而當設計了幾個硬件模塊之后就發現,這個需求定義超出了我的個人能力,自己的綜合知識還沒有上到這個層面,所以開始退而求其次,仿照普通的PLC,結合華禹工控及俊知機械的需求設計了一款簡單的嵌入式PLC,取名為msPLC-Demo。 msOS開發過程中的調試都是用msPLC-Demo的,msPLC-Demo也經歷了3個版本,逐漸完善成熟,通過對msPLC-Demo的完善,讓我更清楚工業設計的需求,對PLC更加理解,比如我們自己建立系統,可以不需要標準PLC那么復雜,接口部分最后演化為共陽輸入光耦隔離,中功率共陰輸出直接驅動,可以直驅繼電器類驅動器,簡單、易用。 基于msPLC Demo,做了不少項目,比如400~1200度的紅外激光測溫儀的校準臺,測溫儀與高頻感應加熱設備的控制器,這兩個都需要一套PID算法,于是就開發了一套面向對象的PID庫,簡單設置一下溫度值就搞定了溫度控制。機械自動化里面,經常需要控制步進電機,于是基于德國公司高性能的TMC262步進控制器,編寫了步進電機驅動庫。 msOS開發過程中,我就建了一個QQ群:291235815,并且在博客上發表了要做msOS的信息,把需求描述了一下,感興趣的網友加入了進來,其中最主要的群體是原基于Mcu51的“實用單片機系統”MS3的客戶群體,他們就是從MS3入門嵌入式的,所以他們一開始就對msOS產生了很強烈的興趣,在他們的熱情下,加速了msOS的推動。在開發完成msOS之后,龐大的MS3用戶群體讓我認識到需要把這個群體引導到msOS中,于是把MS3按msOS風格改寫,為了區分兩個系統,改寫后的MS3,命名為msOS-Mcu51,而原來的msOS,命名為msOS-Stm32,加上之后的無OS精簡版本msOS-Lite,形成了一個完整的系列。 群內網友積極參與,有些看了msOS代碼之后,寫了一些讀后感,比如“獨釣千古愁”寫了不少關于“設備”、“抽象”、“面向對象”方面的文章。有些基于msOS系列開發產品后,共享了代碼,也有些把msOS移植到msp430、AVR中,也共享了代碼。我公司基于msOS開發的產品,部分的共享了代碼,比如PID庫,步進驅動庫等。 為了進一步普及,想做一個低成本的msPLC,但最后發現黑白字庫屏的成本下不來,考慮到很多網友都有通用的評估板,于是想著做一個PC機端的界面,虛擬LCD屏,代替真實的LCD屏,并且采用C#來開發,這樣形成一套PC上位機的C#開發模版,支持串口等常用功能。因為我沒有太多的精力,群內“Claude”恰好會一些C#,于是他負責了這個項目,通過短短幾個星期,給出了一個模版,我做了優化,“南方的風”增加了ISP功能后,形成了一個比較不錯的上位機C#模版,取名為msMenu,真正實現嵌入式與PC端統一開發的風格,感謝“途客”推薦C#開發環境“SharpDevelop”,非常好用。 msOS的開發成功,統一了我公司嵌入式設備的開發,主要的幾個負責人,包括硬件負責人都在第一時間都掌握了編程技巧,通過代碼相互檢查,編碼質量顯著提高,有效的降低了公司的軟件成本。并且硬件人員也可以輕松修改軟件,對于相對不是很復雜的軟件,硬件人員也可以參考模版完成。 我公司現在的人才招聘,現在都在群內招聘,而通過這樣知根知底的招聘方式,有效的降低了公司經營的成本,人員穩定性也大。有一位在華為工作多年的軟件高手“藍色雪狐”看中msOS的價值,加盟我公司,今后由他來負責msOS的后續應用及推廣,開發更多的電子設備和自動化設備,比如火花放電加工設備和俊知的機械自動化控制設備,目前都在開發之中,之后把這些應用中的經驗融合到msOS中,寫成書讓更多的人受益。 msOS到今天算是告一段落,因為二代高頻機的深入研究需要FPGA技術,自己設計精準控制芯片,所以最近我都在學習FPGA。幸運的是,剛開始學習,就獲得我本科大學同學的支持,他是清華研究生,一直在某著名芯片設計公司工作,當我把我的這套思路跟他講了之后,他非常認同,希望能在FPGA上建立一套通用的編程模版,暫時取名叫msFPGA吧,若開發完成后,爭取實現開源共享。 msOS從一開始,就獲得我公司眾多高手的支持,后來廣大網友參與進來,讓msOS快速成長,目前QQ群已經接近1000人滿員,這個速度還是基本上沒有做規模推廣下獲得的,因為我想著主要靠口碑來傳遞。 |