關于移植的問題,要基于問題域考慮,也就是實際項目的情況,現(xiàn)根據(jù)個人項目經(jīng)驗,給幾點小建議,以供好事者參考:
1、用概念化的觀念分析項目系統(tǒng),完成高層次上概念的抽象,概念之間要力爭做到相互獨立,或者之間的聯(lián)系盡量地少。如:工廠車間里,有輸送線、儲存罐、碼垛機、包裝機等等具備整體功能概念的單元。
牢記系統(tǒng)是由具備不同整體功能概念的單元組成的?。。?!
2、分析功能單元中的元件,考慮其控制上的通用性,設計對應的子程序或者功能塊或者fb或者fc。
3、數(shù)據(jù)地址的分配,基本原則是“相同功能,地址上相鄰連續(xù);如啟動按鈕有8個,就可以分配給一個字節(jié),這樣方便程序集成監(jiān)控;同理,故障點也可以作相同處理。地址分配起始值時盡量采用“機器字對齊”的方式,如md0,md4,md8。
此處,有個重要的編程理念,“使用中間存儲器”,如m區(qū)、w區(qū)、db,借助它們的“中間層”“媒介”“橋梁”作用實現(xiàn)控制邏輯和實際i/o點的隔離,減少相互影響的因素。
另外,兩段不同功能地址區(qū)之間要像中國山水畫或者書法那樣“留白”,以備日后有i/o點數(shù)增大之需求。
4、使用符號編程。
5、在必要的地方要有注釋,注意是“必要的地方”。
6、基于不同的編程軟件對符號表變量表采取的編輯方式不一,可以盡量將符號表變量表及地址分配表之類的表格或者文件,使用office\excel\txt等編輯軟件作處理,求其通用性,這樣在不同品牌間移植時只需做簡單處理即可。
7、模塊化編程時,在功能上不相關的統(tǒng)統(tǒng)去掉,只保留和核心相關的,一個塊只做一件事!!模擬量就只是模擬量,計時就是計時,計數(shù)就是計數(shù),位處理就是位處理,通訊處理就是通訊處理,故障診斷就是故障診斷,要保持功能的“單一純潔性”!
像“學生用品”這個概念包括“文具”這個概念,“文具”包括如“筆”“包”“尺子”“筆記本”“橡皮”“圓規(guī)”“小刀”等單獨概念體,“包”不會讓人和“尺子”混淆,“橡皮”也不會和“筆記本”混淆;當然“筆”還包括“鉛筆”“毛筆”“圓珠筆”“鉛筆”“水彩筆”等,但是它們有個共同點是“筆”,能寫能畫。
這就是基本的“抽象”的功力,你的這項功力越深厚,你運用起來效率越高。
學生a來買文具(筆記本+包),學生b來買文具(橡皮+筆),學生c來買文具(尺子+小刀),當然你要是碰到個什么都要的大戶,就能發(fā)一筆小財了。
好的模塊設計就像買文具一樣,能夠通過簡單的“積木式”的搭配組合來滿足不同“個性化”需求的生產(chǎn)要求!!
8、細致考慮工藝塊之間的“接口”都需要哪些必要的參數(shù),可能生產(chǎn)這種產(chǎn)品需要m個接口參數(shù),生產(chǎn)那種產(chǎn)品需要n個參數(shù),那就做兩個不同個數(shù)接口參數(shù)的塊?;蛘邆魉蛥?shù)數(shù)據(jù)區(qū)中不同的數(shù)據(jù)單元鏈。
西門子plc的編程設計理念即是前期基本“分割”功能單元后期“組合”系統(tǒng)要求。