網站首頁 個人文檔 個人總結 工作總結 述職報告 心得體會 演講稿 講話致辭 實用文 教學資源 企業文化 公文 論文

編程經驗交流

欄目: 經驗交流材料 / 發佈於: / 人氣:1.01W

第一篇:編程經驗

編程經驗交流

1. 當性能遇到問題時,如果能在應用層進行計算和處理,那就把它從數據庫層拿出來。排

序和分組就是典型的例子。在應用層做性能提升總是要比在數據庫層容易的多。就像對於mysql,sqlite更容易掌控。

2. 關於並行計算,如果能避免就儘量避免。如果無法避免,記住,能力越大,責任越大。

如果有可能,儘量避免直接對線程操作。儘可能在更高的抽象層上操作。例如,在ios中,gcd,分發和隊列操作是你的好朋友。人類的大腦沒有被設計成用來分析那些無窮臨時狀態——這是我的慘痛教訓所得。

3. 儘可能簡化狀態,儘可能局部本地化,適用至上。

4. 短小可組合的方法是你的好朋友。

5. 代碼註釋是危險的,因為它們很容易更新不及時或給人誤導,但這不能成為不寫註釋的

理由。不要註釋雞毛蒜皮的事情,但如果需要,在某些特殊地方,戰略性的長篇註釋是需要的。你的記憶會背叛你,也許會在明天早上,也許會在一杯咖啡後。

6. 如果你認為一個用例場景也許“不會有問題吧”,它也許就是一個月後讓你在發佈的產品

中遭受慘痛失敗的地方。做一個懷疑主義者,測試,驗證。

7. 有疑問時,和團隊中所有相關人交流。

8. 做正確的事情——你通常會知道這指的是什麼。

9. 你的用户並不傻,他們只是沒有耐心理解你的捷徑。

10. 如果一個開發人員沒有被安排長期的維護你們開發的系統,對他保持警惕。80%的血、

汗、淚水都是在軟件發佈後的時間裏流的——那時你會變成一個厭世者,但也是更聰明的“行家”。

11. 任務清單是你的好朋友。

12. 主動讓你的工作更有樂趣,有時這需要你付出努力。

13. 悄無聲息的崩潰,我仍然會為此從噩夢中驚醒。監控,日誌,警報。清楚各種的假警報

和不可避免的感覺鈍化。保持你的系統對故障的敏感和及時警報。

14. 複雜是大敵。

第二篇:plc編程經驗詳談

plc編程經驗詳談

(晴天)2014-3-17 13:31:00

--------------------------------------------------------------------------------

plc程序調試步驟

人的腦力是有限的,並且記事情也有時間性。過了n天就會忘記每次修改的原因,為什麼要加這條指令,為什麼要刪除這個網絡,讓自己以後看自己以前編寫的程序時都會很困惑。做到以下步驟,對所有程序理解與修改會有很大幫助的。

1、 把原有程序另存一個, 在另存的程序上作修改。文件命名一個主要的程序名稱,標註第幾次修改,並加上修改的日期,最好是在文件名外加上簡要的修改標題。例如: 《 捆紮程序5(06.10.23翻板步進電機加條件) 》

2、 用文件記錄修改的年月日。

3、 在日期下面記錄修改程序的步驟,增加或是刪除了哪些指令等。並在程序的編輯條註釋中做記錄,以備下次修改。

4、 在文件中詳細記錄修改程序的原因,所出現的故障現象是什麼,故障是如何排除的。

5、 在文件中標註修改後所現用的程序全名,包括日期與簡要的修改標題。

6、 把過時與現用的程序用,過時文件夾與現用文件夾分開整理,按日期排列。

這樣每次所作的修改就有了詳細的檔案,便於以後的程序修改。現用的程序是標有最近日期的程序。

這樣的工作步驟同時也適用於電氣圖紙的修改

plc編程經驗

弄通有關plc程序設計理論是重要的。沒有這方面的理論準備或指導,僅靠在實踐中摸索,簡單的問題還好辦。複雜的就不好辦了。不僅無從下手,而且花了很多時間與精力,也難編出效率較高、質量也較高的程序,常常是事倍功半。

但是,編程的具體實踐,以及在這個實踐中得來的知識或技能,即經驗,也是重要的。沒有經驗,僅有理論,既無法深刻理解理論,又無法靈活應用理論。這正如學數學,如僅瞭解一些定理或記住一些公式,沒有作相應的練習,肯定是學不好的。更不用説,任何理論也都只是經驗的總結,歸根到底也都有是來自實踐。

1、 經驗積累

經驗有別人的,也有自己的,都很重要。前者要靠細心學習,後者要靠用心積累,都要在一定的時間與必要的精力。

別人的經驗有上了書的或登載在雜誌上的。有的是細心學習別人的,但多數是我自己的經驗。所有的例子都經我測試過,都經實踐證明是可行的。我想,別的書本或雜誌上介紹的也會是這樣的。所以學習這樣楊功的經驗是必要的。

還有就是你同事的經驗,也是值得學習。這種經驗離你很“近”,很易借鑑。

自己的經驗則是最重要的。要在自己的實踐中,積累自己的經驗。同時,最好在學別人的經驗時,也能親自作些測試,能使自己也有類似的經歷,進而把這些經驗變成自己的。這也是自己經驗的重要積累。

還有一些失敗的經驗,這往往是不會公開的,但這些經驗也要學習,也要積累。

經驗的積累要用自己的腦記,更要用電腦記。最好作些分類,建立一個自用的程序庫,以便於隨時引用。

2、 經驗昇華

經驗還有待昇華。昇華有三個層次:

最低的層次就是建立一個典型的程序庫,供今後再用。若程序複雜,還可建一些功能塊,或子程序,以便以後引用。

其次,要總結出有效算法。如單按鈕起停程序庫等。

最高層次的昇華是把經驗上升到理論的高度,為豐富plc程序設計理論作貢獻。我想,隨着plc使用的普及與提高,是會有越來越多從經驗中昇華出來的,而又能用以指導實踐的plc編程理論的。

3、 經驗應用

經驗積累、經驗昇華都是為了應用。經驗應用有三方面:

1) 用作工程設計模板。設計新系統時,選用一個或幾個與現設計工程類似的,已取得成功的工程,作樣板進行設計。這既可減輕設計的工作量,又增加設計的成功率。這也是信息可重用的一大好處。

2) 用作程序設計參考。在無成功的工程可作樣板時,在新設計的邏輯中,仍有相當一部分控制邏輯,可採用或借用已有典型邏輯,這也可減少設計的工作量,增加設計的成功率。

3) 用作算法設計參考。在既無樣板可參照,又無典型可採用時,還可運用過去的一些成功的算法。

經驗是寶貴的,但是經驗特別是個人經驗,總是有限的。所以,經驗的應用也還要與編程理論相結合

plc現場工程師工作指南

一、出發前的準備

從事plc的技術支持的人,如果是要到現場開始進行系統調試,無論是對oem客户,還是對一個過程控制的系統集成,都要在事先做好一些準備工作。就像一個“驢友”出行前,要更換自己的服裝尤其是鞋子,帶好水、食品,還要準備在野外的一些防身用品,如果是過夜的話,還要有帳篷、手電筒等一樣,作為一個職業的plc技術支持工程師,也有不少的東西是要準備的。

首先要安排自己的行程計劃和衣食住行。如果是需要住宿的話,那麼如何定機票、酒店(旅館、招待所),這裏就不多説了。如果時間很長(如超過一個月),為了省錢,就要考慮在當地租房子了,尤其是出發的是一個小組,而不是一個人的時候。衣食住行,這些問題與普通的旅行是一樣的,雖然這些問題對你完成任務的影響力並不亞於你的專業水平。想

象一下,你到了現場,因為食物中毒導致一個星期拉痢疾的情況會對工作造成什麼樣的影響,就知道該準備那些東西了。通常,有經驗的自動化公司的行政部門會為工程師考慮好這些情況,但是,作為工程師自己一定要進行確認,看看是否所有的事情都已經安排好了。

安頓好了衣食住行的後,要準備自己的工具。作為plc的現場調試工程師,並不需要很多的調試工具。但是,一個螺絲刀、一台萬用表,還是必備的。另外,如果要與現場的儀表傳感器進行系統聯調的時候,還要有一台信號發生器來模擬現場儀表的信號,以確定當發生問題時,現場的信號是完好的。還有,一台結實的手提電腦,是你編程和調試的必需的工具。雖然這些工具你可以要求用户準備好,但是,作為一個職業的plc工程師,如果連這幾樣工具都沒有,會被用户懷疑你的職業水平的。其它的一些儀器儀表,如果需要的話,你可以向公司或者客户提出來,讓他們提前準備,比如,示波器、穩壓電源等等。畢竟這些不那麼通用的儀器,通常是不可能隨身攜帶或備用的。

有一些常被忽視的小東西,你準備了之後一定有用的。如,電氣膠帶、熱縮套管、打火機(你吸煙的話自然會有,沒有別人也會有),束線帶、還有,如果現場接線已經完成了,要準備好一些與信號線相同的電纜,和一些固定基座的螺絲。你可能懷疑要這些做什麼用,相信我,帶上這些,雖然有些只值幾分錢,但到了現場後,可能會節約你一天甚至幾天的時間,尤其是你去的地方是在一個偏遠的山區的時候。雖然在發貨的時候廠家都有螺絲釘,但是到了現場什麼都有可能發生,如果螺絲釘不夠(而這是每次都必然發生的),會引起許多問題。

除了以上的東西,就是這次調試所要帶的備品備件了。雖然現場的貨物清單可能會已經考慮了備品備件的問題,但為了應付萬一的情況,有些備件你最好還是自己要隨身攜帶。首先是plc的基板(有的成為機架)、電源、cpu模塊,因為這些是一台plc能夠工作的基礎,如果現場只有一套系統,那麼這些模塊就只有一個,假如沒有備分的話,一旦出現故障,你的所有的工作都必須停下來。因此最好帶上一套。

其它的i/o模塊和通訊模塊,如果現場只有一個的,你都要考慮在多帶一個。對於那些現場已經有兩塊以上的模塊,你就不用考慮自己帶了。

二、設計交底工作

如果系統設計不是你自己做的,那麼在出發前,就要與系統的設計人員進行充分的溝通,對於不清楚和不明白的地方,一定要弄清楚,確保自己清晰地理解了要完成的工作目標,和設計者的意圖。不要輕易否定設計者的方案,也不要輕易地説別人那裏設計得不行。

但是,因為你是從事現場的工程師,因此,也不必過於迷信設計者。你可以提出自己的建議。比如,plc的機架和cpu模塊和i/o模塊的搭配原則,可能有時候,設計師不知道你所用的 plc的機架有4槽、6槽和8槽,甚至12槽的,因此,也許全部都選了8槽的,而導致了幾個槽的空缺,你可以建議它修改為4槽或6槽的。

方案設計中,最容易出問題的地方是通訊,現場調試最麻煩的地方也是通訊,所以對於通訊的部分,你必須清晰瞭解系統的框架結構,並且對需要進行通訊的東西在出發前就要全部進行一遍調試,而且要確認其中的所有需要通訊的模塊是可以通訊的。比如,操作枱電腦、觸摸屏、plc、變頻器、其它的plc、一些智能儀表和儀器,如果這些東西需要通訊的話,你必須要確認它們相互之間是可以通訊的,如果你不確認的話,就要與廠家聯絡,並親自再試一次。如果plc的節點數較多,要考慮距離和廠家cpu的限制。

如果系統較大,遠程單元、本地機架數量、每個機架的模塊數量的限制,並非出於系統功能和技術上的限制,而是由於使用規範性的限制。在系統硬件組態時,要考慮這些模塊的搭配作用。

對於電源模塊的配置,一個資深的工程師應該能夠做出比較合理的搭配。例如,電源模塊通常有5a和10a的分別,如果模塊較少,可以選用功率小的電源模塊,如果模塊較多,則應該選用大功率的電源模塊。而一般,如果現場儀表需要plc也供應24v直流電源而不是採用外部電源供電(如rtu)的情景,通常cpu所在的機架上選用大功率的電源比較合理。

此外,在i/o模塊的安裝時,根據不同的系統,通常同型號的模塊放置在一起。但是,如果對於輸出模塊與輸入模塊形成迴路的,則可以將一個迴路的參量所涉及的模塊放置在一個機架上(或一個cpu所控制的機架上)比較合理。有的設計師在設計的時候不會考慮這一點,你可以調整過來。

在選型的時候,因為各種plc都有大型、中型、小型的分別,這些分別主要是由cpu模塊的性能不同造成的。在實際上,並非一定大型的功能就是合適的。除了價格方面的考量之外,主要是,如果控制點數不多,小型的cpu模塊完全可以勝任,則小型的cpu反而比大型的cpu模塊工作還要可靠一些。因為,小型的cpu所涉及的資源少,而大型cpu的資源多,在程序執行中,為處理那些程序不需用到的資源時,也要分配時間去處理,這樣不僅造成資源的浪費,可能在程序處理上不及小型cpu可以更單純和穩定地工作。

在設計交底的過程中要指出的是,對於設計中的任何變更,你只能提建議,而不是擅自做修改。因為,你的職責是按照設計施工,而不是設計,因此,對於任何你發現的不合理的東西,你可以提出意見,但必須要等到設計變更確認書下到你手裏後,你才能按照變更後的設計工作,儘管這個變更可能是你的意見。還有,即使最初的設計也是你做的,你在變更後,也要通知客户,並取得客户的書面同意。

三、裝機步驟

到了現場後,進行系統安裝前,需要考慮安裝環境是否滿足plc的使用環境要求,這一點可以參考各類產品的使用手冊。但無論什麼plc,不都能裝設在下列場所:含有腐蝕性氣體之場所,陽光直接照射到的地方,温度上下值在短時間內變化急遽的地方,油、水、化學物質容易侵入的地方,有大量灰塵的地方,振動大且會造成安裝件移位的地方。

如果必須要在上面的環境使用,則要為plc製作合適的控制箱,採用規範和必要的防護措施。如果需要在野外極低温度下使用,可以使用有加熱功能的控制箱。如何做這些防護箱或控制箱,各製造商和和資格的系統集成商將會為客户提供相應的供應和設計。

在使用控制箱時,在控制箱內openplc安裝的位置要注意如下事項:控制箱內空氣流通是否順暢(各裝置間須保持適當的距離),變壓器、馬達控制器、變頻器等是否與plc保持適當距離,動力線與信號控制線是否分離配置,組件裝設之位置是否利於日後之檢修,是否需預留空間,供日後系統擴充使用。

除了上述注意事項之外,還有其它注意事項要留意。

首先比較重要的是靜電的隔離。靜電是無形的殺手,但可能因為不會對人造成生命危險,所以許多人常常忽視它。在中國的北方、乾燥的場所,人體身上的靜電都是造成靜電損壞電子組件的因素。雖然你被靜電打到的話,只不過是輕微的酥麻,但這對plc和其它任何電子器件就足以致命了。

要避免靜電的衝擊有下列三種方式:在進行維修或更換組件時,請先碰觸接地的金屬,以去除身上的靜電;不要碰觸電路板上的接頭或是ic接腳;電子組件不使用時,請用有隔離靜電的包裝物,將組件放置在裏面。想象plc裏的元器件是一個嬌嫩的嬰兒,而那些靜電會導致這個嬰兒死亡,你就會更容易以正確的態度對待這個問題了。

基座安裝(rack)時,在決定控制箱內各種控制組件及線槽位置後,要依照圖紙所示尺寸,標定孔位,鑽孔後將固定螺絲旋緊到基座牢固為止。在裝上電源供應模塊前,必須同時注意電源線上的接地端有無與金屬機殼連結,若無則須接上。接地不好的話,會導致一系列的問題,靜電、浪湧、外干擾,等等。由於不接地,往往plc也能夠工作,因此,不少經驗不足的工程師就誤以為接地不那麼重要了。這就像登山的時候,沒有繫上保護纜繩一樣,雖然你正常前進的時候,保護纜繩沒有任何作用,但一旦你失足的時候,沒有那根繩子,你的生命就完結了。plc的接地,就相當於給plc繫上保護纜繩。

在i/o模塊安裝時,須注意如下事項:i/o模塊插入機架上的槽位前,要先確認模塊是否為自己所預先設計的模塊;i/o模塊在插入機架上的導槽時,務必插到底,以確保各接觸點是緊密結合的;模塊固定螺絲務必鎖緊;接線端子排插入後,其上下螺絲必須旋緊。由於現場的變壓器、電機等影響,多少會有振動,如果這些螺絲釘鬆動了,會導致模塊從機架中鬆開

第三篇:fpga編程經驗

整個verilog中是以module為編寫基本單元的,module不宜過大,目標是實現一些基本功能即可,module的層次不宜太深,一般3-5層即可,給module劃分層次原則:實現最基本功能的為底層module,然後中層是調用這些基本module,實現大的功能,最高層是系統級模塊,統籌各大塊之間端口連接,時序關係等。

在module內部編寫中,最基本塊是initial,always,以及assign塊(此外還有一些udp原語,在行為級暫且不談),其他語句都要包含在這些塊裏面。這其中,initial塊是不可綜合語句,可以用來編寫testbench,這裏面的內容在程序運行時只執行一次;assign語句是在不用寄存器的情況下直接編寫組合邏輯;always塊是最常用的塊,其語法格式是always @(*);其中括號裏稱為敏感列表,即對於組合邏輯而言,必須是所實現邏輯的所有輸入變量,意思是當組合邏輯的每一個變量發生變化,結果立刻發生變化(這與實際情況一致,對於任何組合邏輯,輸入變化,輸出立刻變化)。對於時序邏輯,常為

always@(posedge/negedge clk),指在時鐘上升沿/下降沿到來時,輸出才根據那一時刻的輸入來決定輸出結果。

編程思想:

這一部分是我的心得體會,一般講verilog的書肯定不會講這個,因為這部分感覺的東西比較多,完全靠理解應用,沒什麼固定模式,呵呵,玄了點。不廢話了,開始切入正題。verilog歸根到底還是編程,同時它是對電路的編程,所以就可以利用這兩個特點,充分利用高級語言編程(例如c)的思想和數字電路的知識,就會很大程度上幫助你。首先牢記,編寫verilog依據的是時間軸,根據時間順序確定各種信號何時進入你的電路,可以在編寫時先把幾個主流信號(即貫穿於整個系統的信號,比如數據流信號)用always寫出來,這些信號就是你的基準,其他控制信號根據所處的位置在介入這些主流信號,分別用 always

模塊寫入。這樣,這種時間軸順序跟c的編程思想就一致,在編寫這種順序性信號時,帶着c的思想,基本就容易的多。同時,verilog有個很重要的電路特點,就是在每一時刻,同時會有多個電路有信號(即在運行),這樣就必須從傳統的順序語言中跳出來(跳出c的思想),然後進入數字電路的思想,即你的編程要時刻跟實際電路模型聯繫到一起,比如a<=b,c<=a,即可以想象成兩個d觸發器,其中c的輸入就是a的輸出,這樣當時鍾沿到來時,兩個d觸發器同時運行,b的值就給了a,而a的輸出就給了c,不考慮電路延時,就可以認為二者在時間軸的同一時刻運行成功,a在此時刻的值為b,c 在此時刻的值就是a前一時刻的值。這裏只是舉了簡單的例子,但是時間軸的思路、高級語言編程思想和數字電路模型化思想以及這幾個思想的轉換對於編程來説幫助很大,幫你在編程時頭腦時刻冷靜,即使有很多信號,也會讓你從全局把握整個電路,避免頭腦一團糟。

關於複用:

複用對於硬件設計來説,尤為重要,在實現功能的前提下,電路比的就是主頻和資源,而資源的減少思路就是複用。比如多次調用一個子函數a,如果直接寫,在結構上就是這個子函數電路塊a的複製,電路完成後就會看到你調用了幾次a函數,你的結構中就有幾個一模一樣的a電路,當你的a電路本身資源很大,而且你調用的次數很多時,就很少有fpga能裝的下了。這當然跟我們的思想不符,我們只是想讓整個電路中只有一塊電路a,只不過把a電路在不同時刻用了幾次而已,這時就要用到電路複用的思想。電路複用並不神祕,簡單來講,就是把控制端放在a電路兩邊,用計數器之類的東西,控制在時間軸的不同時刻把值寫入a和從a輸出端讀取值。補充一點,對於電路的同步,計數器是一個很好的東西,因為本身計數器資源並不很大,用它來對於相差多個週期的信號進行同步,非常實用。但是,當信號相差的時間過於大,計數器的計數規模

就變的不可接受,這時就要用到狀態機劃分狀態的方法進行同步了。有了同步,複用就變得簡單的多。

關於task:

這是前段時間論壇裏討論比較熱的東西。語法上説,task是比always低個等級,即task必須在always裏面調用,task本身可以調用 task,但不能調用module(module的調用是與always,initial,assign語句並列的,所以在這些語句中均不能直接調用 module,只能採用給module端口送值的方法達到調用的目的)。task有什麼用呢,個人覺得,用task來封裝大的邏輯語句不錯,使代碼顯得簡單明瞭,這個對於testbench尤為有用,但在實際電路中用處不大,因為順序調用task對於電路來説就是電路塊的複製,順序多次調用就是多次複製電路,資源會成倍增加,不能達到電路複用的目的,同時用task封裝的純邏輯代碼會使得電路的週期變大,主頻降低,不利於為了提高主頻而採用的大邏輯切分的方法!

第四篇:vc++編程經驗總結

vc++編程經驗總結

vc++如何實現遠程調試

*假設調試機ip 遠程機ip

*遠程機為調試機分配權限,使調試機可以使用遠程桌面登陸到遠程機器上(這樣調試起來方便)。

*調試機上安裝visual studio 2014

共享調試機上的visual studio上的遠程調試目錄(以我的機器為例)

c:program filesmicrosoft visual studio

2014common7packagesdebugger

*遠程機將上面的共享目錄考貝到本地,比如:d:debugger

*調試機共享要調試的程序所在目錄,比如:

d:importantcvsrootdv-to-dvdbindebug

*遠程機將調試機上的目錄影射為本地目錄。比如:z:

*遠程機上以命令行形式執行 d:debugger –tcpip –anyuser

*調試機啟動vc. 打開要調試的工程。比如dvtodvd. 選擇菜單project->properties 選debuging->remote setting

connection :remote via tcp/ip (native only)

remote machine:

remote command: z:

*debug->start

*就可以調試了。

1.如何在release狀態下進行調試

project->setting=>projectsetting 對話框,選擇release狀態。c/c++標籤中的category選general,optimizations選 disable(debug),debut info選program database。在link標籤中選中generate debug info複選框。

注:只是一個介乎debug和release的中間狀態,所有的assert、verify都不起作用,函數調用方式已經是真正的調用,而不查表,但是這種狀態下quickwatch、調用隊列跟蹤功能仍然有效,和debug版一樣。

2. release和debug有什麼不同

release版稱為發行版,debug版稱為調試版。

debug中可以單步執行、跟蹤等功能,但生成的可執行文件比較大,代碼運行速度較慢。release版運行速度較快,可執行文件較小,但在其編譯條件下無法執行調試功能。 release 的exe文件鏈接的是標準的mfc dll(use mfc in a shared or static dll)。這些dll在安裝windows的時候,已經配置,所以這些程序能夠在沒有安裝visual c++ 6.0的機器上運行。而debug版本的exe鏈接了調試版本的mfc dll文件,在沒有安裝visual c++6.0的機器上不能運行,因為缺相應的dll,除非選擇use static dll when link。

3. assert和verify有什麼區別

assert裏面的內容在release版本中不編譯,verify裏面的內容仍然翻譯,但不再判斷真假。所以後者更安全一點。

例如assert((strfilename))。

一旦到了release版本中,這一行就忽略了,file根本就不open()了,而且沒有任何出錯的信息。如果用verify()就不會有這個問題。

space和project之間是什麼樣的關係

每個workspace可以包括幾個project,但只有一個處於active狀態,各個project之間可以有依賴關係,在project的setting..中可以設定,比如那個active狀態的project可以依賴於其他的提供其函數調用的靜態庫。

5. 如何在非mfc程序中使用classwizard

在工程目錄下新建一個空的文件,然後加入到工程中就可以了。

6.如何設置斷點

按f9在當前光標處增加一個斷點和取消一個斷點。

另外,在編輯狀態下,按ctrl+b組合鍵,彈出斷點設置對話框。然後單擊【condition…】按鈕彈出設置斷點條件的對話框進行設置。

7.在編輯狀態下發現成員變量或函數不能顯示提示是如何打開顯示功能

這似乎是目前這個visual c++ 6.0版本的一個bug,可按如下步驟使其正常,如再出現,可如法炮製:

(1)關閉project

(2)刪除“工程名”文件

(3)重新打開工程

8.如何將一個通過classwizard生成的類徹底刪除

首先在工作區的fileview中選中該類的.h和文件,按delete刪除,然後在文件管理器中將這兩個文件刪除,再運行classwizard,這時出現是否移走該類的提示,選擇remove就可以了。

9. 如何將在workspace中消失的類找出來

打開該類對應的頭文件,然後將其類名隨便改一下,這個時候工作區就會出現新的類,再將這個類改回原來的名字就可以了。

10. 如何清除所有的斷點

菜單【edit】->【breakpoints…】,打開“breakpoints”對話框,單擊【remove all】按鈕即可。快捷鍵是“ctrl + shift + f8”。

11. 如何再classwizard中選擇未列出的信息

打開“classwizard”對話框,然後切換到“class info”頁面。改變“message filter”,如選擇“window”,“message”頁面就會出現window的信息。

12. 如何檢測程序中的括號是否匹配

把光標移動到需要檢測的括號前面,按快捷鍵“ctrl + ]”。如果括號匹配正確,光標就跳到匹配的括號處,否則光標不移動,並且機箱喇叭還會發出一聲警告。

13. 如何查看一個宏(或變量、函數)的定義

把光標移動到要查看的一個宏上,就比如説最常見的declare_map_message上按一下f12(或右鍵菜單中的相關菜單),如果沒有建立瀏覽文件,就會出現提示對話框,按【確定】按鈕,然後就會跳到該宏(或變量、函數)定義的地方。

14. 如何添加lib文件到當前工程

單擊菜單【project】->【settings…】彈出“project setting”對話框,切換到“link”標籤頁,在“object/library modules”處輸入lib文件名稱,不同的lib之間用空格格開。

15. 如何快速刪除項目下的debug文件夾中臨時文件

在工作區的fileview視圖中選中對應的項目,單擊右鍵彈出菜單,選擇【clean(selection only)】菜單即可。

16. 如何快速生成一個現有工程除了工程名外完全相同的新工程

在新建工程的“new”對話框中選擇“custom appwizard”項,輸入新工程的名字,單擊

【ok】按鈕。出現“custom appwizard”項,輸入新工程的名字,單擊【ok】按鈕。出現“custom appwizard-step 1 of 2”對話框,選擇“an existing project”項,單擊

【next】按鈕。出現“custom appwizard-step 2 of 2”對話框,選擇現有工程的工程文件名,最後單擊【finish】按鈕。編譯後就生成一個與現有工程相同但可以重新取名的工程appwizard。

現在就可以項用mfc appwizard一樣用這個定製的嚮導。如果不想用了,可以在visual c++ 6.0安裝目錄下commonmsdev98template目錄中刪除該wizard對應的和文件。

17. 如何解決visual c++ 6.0不正確連接的問題

情景:明明改動了一個文件,卻要把整個項目全部重新編譯鏈接一次。剛剛鏈接好,一運行,又提示重新編譯鏈接一次。

這是因為出現了未來文件(修改時間和創建時間比系統時間晚)的緣故。可以這樣處理:找到工程文件夾下的debug目錄,將創建和修改時間都比系統時間的文件全部刪除,然後再從新“rebuild all”一次。

18. 引起lnk2014的常見錯誤都有哪些

遇到的lnk2014錯誤主要為:unresolved external symbol “symbol”

如果鏈接程序不能在所有的庫和目標文件內找到所引用的函數、變量或標籤,將產生此錯誤信息。

一般來説,發生錯誤的原因有兩個:一是所引用的函數、變量不存在,拼寫不正確或者使用錯誤;其次可能使用了不同版本的鏈接庫。以下是可能產生lnk2014錯誤的原因:

<1>由於編碼錯誤導致的lnk2014錯誤

(1)不相匹配的程序代碼或模塊定義()文件導致lnk2014。例如,如果在c++源文件了內聲明瞭一變量“var1”,卻試圖在另一個文件內以變量“var1”訪問改變量。

(2)如果使用的內聯函數是在文件內定義的,而不是在頭文件內定義將導致lnk2014錯誤。

(3)調用函數時如果所用的參數類型和頭函數聲明時的類型不符將會產生lnk2014錯誤。

(4)試圖從基類的構造函數或析構函數中調用虛擬函數時將會導致lnk2014錯誤。

(5)要注意函數和變量的可公用性,只有全局變量、函數是可公用的。靜態函數和靜態變量具有相同的使用範圍限制。當試圖從文件外部方位任何沒有在該文件內聲明的靜態變量時將導致編譯錯誤或lnk2014錯誤。

<2>由於編譯和聯機的設置而造成的lnk2014錯誤

(1)如果編譯時使用的是/nod(/noderaultlib)選項,程序所需要的運行庫和mfc時將得到又編譯器寫入目標文件模塊,但除非在文件中明確包含這些庫名,否則這些庫不會被鏈接進工程文件。這種情況下使用/nod將導致lnk2014錯誤

(2)如果沒有為wwinmaincrtstartup設定程序入口,在使用unicode和mfc時將出現“unresolved external on _winmain@16”的lnk2014錯誤信息。

(3) 使用/md選項編譯時,既然所有的運行庫都被保留在動態鏈接庫之內,源文件中對“func”的引用,在目標文件裏即對“__imp__func”的引用。如果試圖使用靜態庫或進行鏈接,將在__imp__func上發生lnk2014錯誤。如果不使用/md選項編譯,在使用鏈接時也會發生lnk2014錯誤。

(4)使用/ml選項編譯時,如用鏈接會在_errno上發生lnk2014錯誤。

(5)當編譯調試版的應用程序時,如果採用發行版模態庫進行鏈接也會產生lnk2014錯誤;同樣,使用調試版模態庫鏈接發行版應用程序時也會產生相同的錯誤。

(6)不同版本的庫和編譯器的混合使用也能產生問題,因為新版的庫裏可能包含早先的版本沒有的符號和説明。

(7) 在不同的模塊中使用內聯和非內聯的編譯選項能夠導致lnk2014錯誤。如果創建c++庫時打開了函數內聯(/ob1或/ob2),但是在描述該函數的相應頭文件裏卻關閉了函數內聯(沒有inline關鍵字),只是將得到錯誤信息。為避免該問題的發生,應該在相應的頭文件中用inline關鍵字標誌為內聯函數。

(8)不正確的/subsystem或entry設置也能導致lnk2014錯誤。

19. 如何調試一個沒有源碼的exe文件調用的dll

在visual c++ 6.0中,進入“project setting”對話框然後選擇debug標籤頁。通常visual studio默認“executable for debug session”為可執行文件名,但可以將他改成任何你想要的程序。甚至可以指定不同的工作目錄以及傳遞參數到你的程序。這個技術常用來調試dlls、名字空間擴展、com對象和其他從某些exe以及從第三方的exe中調用的plug-in程序。

20. visual c++ 6.0工程中的項目文件都表示什麼

.opt:工程關於開發環境的參數文件。如工具條位置等信息。

.aps(appstudio file)資源輔助文件,二進制格式,一般不用去管它。

:classwizard信息文件,實際上是ini文件格式,有興趣可以研究一下。有時候classwizard出了問題,手工修改clw文件可以解決。如果此文件不存在的話,每次用classwizard的時候回提示是否重建。

(developstudio project):項目文件,文本格式,不過不熟悉的不要手工修改。 (developstudio workspace):是工作區文件,其他特點和差不多。

:是編譯信息文件,編譯時的error和warning信息文件(實際上是一個html文件),一般用處不大。在單擊菜單【tool】->【option】彈出的對話框裏面有個選項可以控制這個文件的生成。

(help project):是生成幫助文件的工程,用microsoft help compiler可以處理。 (microsoft devstudio project):是舊版本的項目文件,如果要打開此文件的話,會提示你是否轉換成新的格式。

:是用於瀏覽項目信息的,如果用source brower的話就必須有這個文件。如果不用這個功能的話,可以在project options裏面去掉generate browse info file,這樣可以加快編譯速度。

是執行文件的映象信息記錄文件,除非對系統底層,這個文件一般用不着。 (pre-compiled file):是與編譯文件,可以加快編譯速度,但是文件非常大。

(program database):記錄了程序有關的一些數據和調試信息,在調試的時候可能有用。

:只有在編譯dll的時候才會生成,記錄了dll文件的一些信息,一般也沒有用。 :無編譯瀏覽文件(no compile browser)。當自動完成功能出問題時可以刪除此文件。編譯工程後會自動生成。

第五篇:mastercam編程經驗分享

mastercam編程經驗分享

在寫刀路之前,將立體圖畫好後,要將圖形中心移到座標原點,最高點移到z=0,加縮水率後,方可以加工,銅

公火花位可加工負預留量。

在加工前還要檢查工件的裝夾方向是否同電腦中的圖形方向相同,在模具中的排位是否正確,裝夾具是否妨礙加

工,前後模的方向是否相配。還要檢查你所用的刀具是否齊全,校表分中的基準等。加工銅公要注意的事項:

火花位的確定,一般幼公(即精公)預留量為0.05~0.15,粗公0.2~0.5,具體火花位的大小可由做模師父定。

銅公有沒有加工不到的死角,是否需要拆多一個散公來。

加工銅工的刀路按排一般是:大刀(平刀)開粗-小刀(平刀)清角[$#0]光刀用球刀光曲面。開粗一般教師用平刀不用球刀,大刀後用小刀開粗,然後將外形光到數,接着用大的球刀光曲面,再用小球刀光

曲面不要圖省事,為了些小的角位而用小刀去加工大刀過不了的死角可心限定小刀的走刀範圍,以免直播太多的

空刀。

銅公,特別是幼公,是精度要求比較高的,公差一般選0.005~0.02,步距0.05~0.3。銅公開粗時要留球刀位的過

刀位,即要將銅公外形開粗深一個刀半徑。

d)銅公還要加工分中位,校表基準,火花放電時要校正銅工,一般校三個面(上,下,左,右)加工出的銅工必

須有三個基準面。

e)銅料是比較容易加工的材料,走刀速度,轉速都可以快一點,開粗時,留加工餘量0.2~0.5,視工件大小而定,

加工餘量大,開粗時走刀就可以快,提高效率。加工銅料的有關經驗參數:刀具大小

1~2

3~5

6~10

12~20

進給率(feed rate)

50~200

(50~100)

200~500

(50~300)

500~1000

(200~600)

1000~2014

(600~1000)

主軸轉速(spindle)

3000

3000~2500

(2400~1200)

2500~2014

(1200~700)

1500~2014

(600~250)

注:括號內為高速鋼刀對鋼料開粗時的參數,以上走刀速度是指開粗時,要光外形f=300~500,鋼料光刀f為

50~200。

前模開粗的問題,

首先將銅公圖在前視圖或邊視圖內旋轉180o即變成了前模圖,當然還要加上枕位,pl面;原身要前模留的地方,

不要用鏡身的方法將銅工圖變成前模圖,有時會錯(當銅公圖x方向y方向都不對稱時)。前模加工時有二個難點

:材料比較硬;前模不可輕易燒焊,錯不得。

前模開粗時用刀原則同銅工相似,大刀開粗→小刀工粗→大刀光刀→小刀光刀,但前模應儘量用大刀,不要用太

小的刀,容易彈刀,開粗通常先用刀把()開粗,光刀時也儘量用圓鼻刀,因這種刀夠大,有力,有分型面的前模

加工時,通常會碰到一個問題,當光刀時分型面因碰穿機要準婁數,而型腔要留0.2~0.5的加工餘量(留出來打

火花)。這是可以將模具型腔表面朝正向補正0.2~0.5,面在寫刀路時將加工餘量設為0。

前模開粗或光刀時通常要限定走刀範圍,要記住你所設的範圍是刀具中心的範圍,不是刀具邊界的範圍,不是刀

所加工到的範圍,而大一個刀具半徑。

前模開粗常用的刀路方法是曲面挖槽,平行式光刀。前模加工時分型面,枕位面一般要加工到準數,而碰穿面可

以留0.1餘量,以備配模。

加工後模常碰到的問題:

後模有原身科或鑲科二種,後模同前模一樣是鋼料,材料較硬,應儘量用刀把加工,常用刀路是曲面挖槽外形,

平行銑光刀,選刀的原則是大刀開粗→小刀開粗→大刀光刀→小刀光刀。

後模圖通常是銅公圖縮小料位加上pl面,枕位,原身留出的東西而成,如果料位比較均勻,可以直接在加工信息

量裏留負料位即可,但是pl(分型面),枕位,碰穿面不能縮料位。這時可以先把這些面正向(更多精彩文章請關注好 範文網)補正一個料位或者

把科畫出來。

原身科常碰到的一個問題是球刀清不到利角,這時可以用平刀走曲面陡斜面加工清角,如鑲科,則後模分為藏框

和科芯,加藏科時,要注意多走幾遍空刀,不然框會有斜度,上邊準數,下邊小,很難配模,特別是較深的框, 一定要注意這個問題,光框的刀也要新好,並且選用大一點的刀。科芯如果太高,可以先翻過來加工框位,然後裝配進框後,再加工形狀,有時有支口,要注意,不要過切用球刀

光形狀時一定要保護支口台階。

為了方便配模式,框尺寸可以比科芯外形尺寸小-0.02/s

科芯光刀時公差和步距可以稍大一點,公差0.01~0.03進給0.2~0.5。

散銅公加工中的問題:

有時整體銅公加工有困難,有加工不到的死角,或者是不好加工,所需刀具太長或太小,就可以考慮分多一個銅

公,有時局部需要清角銅公,這種銅公的加工並不困難,但一定要搞清楚的確良火花時的偏數,校表基準。

薄盤位銅公的加工:

這種銅公加工時很容易變開,加工時要用新刀,刀要小點,進刀也不能太大,加工時可以先將長度a做準,但d留

大點餘量(如1.0mm)再二邊走,每次深度h=0.2~1,深度進刀不要太多,也不要一週繞着走刀,而要分成二邊分別

走。

左、右件和一出二的方向:

有時一套模會出二個零件,對於分左右件的,圖形能過

鏡射來製作。如果是出二個相同的零件,則圖形一定要在xy內平稱或旋轉,一定不可以鏡射,務必小心,不要搞

反方向,

模具的方向:

模胚的四個導栓孔,不是完全對稱,有一個是不對稱的,所以加工前後模時這末搞清楚,每一塊模板上都有基準

,加工完的前後模合起來一定要基準對基準,特別是對原身模胚成形的模具一定要注意。畫圖時也注意方向,銅

公的方向和正視圖(俯視圖)的方向一致,科芯,藏科框的方向和銅公一致,前模則相反。曲面上的槽或凸台等一些裝飾線條,因為比較窄,所以不好加工。對於凹槽,我們一般將槽避空,即銑深一些,

然後再補一個散公做出沉面,凸台一般只能分開做一個散公,大銅公不做,這樣才能保證質量。

模具,產品的配合公差:

一套產品通常有幾個及十幾個零件,這些零件的主要配合尺寸都是電腦鑼加工保證的,選擇合理的公差就很重要

,尤其是有些產品設計圖沒有考慮配合問題。

底,面殼的配合,外形無疑是0對0配合,定位是靠支口保證的,凹支口和凸支口的公差一般0.1mm,單邊。

大身上的配件如透明鏡,一般配件外形要比大身上的尺寸小單邊0.1~0.2.大身上的活動配件,如按鈕,配件外形要比大身上的外形比單邊小0.1~0.5。大身上的配件表面形狀一般要和大身上的表面形狀一致,可以從大身表面修剪下來。

出模斜度(拔模角)

朔膠模都要做出模斜度,不然會擦花,如果圖紙沒有標明,可以同做模師傅商量,出模斜度一般0.5o~3o如果蝕

紋的模具,出模角要做大一點,2o~5o,視蝕紋粗細而定。

下刀問題

很多時候,鰵刀剛銑時,吃刀量都比較大,容易引起斷刀,彈刀,這時可以先將下刀位開粗

或者鰵刀抬刀走,或

者晝在料外邊下刀,總之要充分考慮這個問題。

搶刀,彈刀,掉刀

當加工量比較大時,刀夾得太長,刀太小時常會發生這種情況。

加工量比較大,特別是濃度進刀較多時,容易發生,如光側面深度h=50mm直徑3/4刀,我們可以分25mm二次加工

,就不容易發生。

刀具夾得太長,刀具裝得長短對加工很重要,應儘量裝夾短一些,初學者都很容易忽略這個問題,程序紙上一定

要標明刀具的裝夾長度。

轉角時很容易搶刀,解決的辦法是先用小一點的刀分層將角清過,再換大的刀光側面。

象如圖直徑8的半圓槽,如直接用r4的刀加工,下刀位置,就很容易搶刀,解決的辦法是

(1)用r3走掃描刀路(2

)先用r3開粗,最後用r4的刀清角光刀。

磨小刀

電腦鑼要加工的形狀各異經常需要磨各種小刀,各種成形刀磨損了,也需磨,要達到以下幾佔才可以磨出一

把能用的刀1。刀具的四個角要一樣高2。a點要比d點高3刀具的前鋒(刀面)要比後而高,即有一定后角。

過切檢查

過切是mastercam經常會發生的問題,千萬要小心。過切可能出現在多曲面開粗,光刀,刀路修剪,外形,挖槽

時,即使胸的參數設定、立體圖都正確,也有可能發生,有些是軟件本身的失誤,最主要的檢查方法是將刀路模

似一遍,在頂視圖,邊視圖反覆檢查,沒有檢查的刀路不允許上機。外形銑削時,下刀位置選擇不當,也會過切

,可以改變下刀位,即可避免。

銑削方向:

電腦鑼一般都是順銑,不象銑牀逆銑,原因是電腦鑼的剛性比較好,不易讓刀,背隙小,銑外形或者內槽都是左

補償。當加工左右對稱的形狀時,外形刀路不能鏡射,否則鏡射過的那邊加工效果就不好。程序紙的寫法為了和操作機牀的人員溝通,程序紙應包括1)程序名2刀具大小及長度3加工刀路方法4加工餘量

5開粗或光刀6圖檔名稱

.圖形管理

電腦圖應妥善分檔管理,最好是一個產品建一個目錄,一個零件起一個別名字,如銅公圖名為a10,後模圖可為

a10c,前模圖名為a10cav,散銅公圖名為a10s1,這樣就比較清楚。不同軟件間格式轉換:

和autocad的溝通,mastcam7以上版本的可以直接讀dwg文件,低於7版本可以先在autocad轉成dxf格式。其它cam軟件如(cimtron,pro/e,ug)等可以先轉成iges. step等等格式。

dnc用法:

程序完成後,經過檢查,沒有問題就可以抄到dnc電腦裏實際加工了,抄程序有二種方法1用磁盤抄2通過局域網

傳送。然後啟動dnc軟件,找到要運行的程序,按enter鍵就行了。座標系:

有三種,機械座標系,加工座標系,臨時座標系三種。機械座標系,機械零點是機械上一個基準點,每次開電後

,原點歸零後就被確定下來,機械零點的位置由機械廠定,不要改變。加工座標系是用於工件加工的,是機械坐

標系的子座標系,取機械座標系中的一個點(一般是工件中心點)作為座標原點,將這個點的機械座標值記錄下

來,作為加工座標系列的原點,即可設加工座標系。臨時座標系:隨時以每一個點清零作座標原點。對應於座標

值也有三種座標值:機械座標值,加工座標值,臨時座標值(也稱相對座標值)常用過濾值:

常用過濾值0.001~0.02,過濾半徑r=0.1~0.5。開粗刀路取大值,光曲面刀路取小值,曲面半徑較小取大值,曲

面半徑較大取小值。

過濾可有效地減小程序容量,走刀更加暢,但過大則影響加工精度。