<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 如何設計機床數(shù)控系統(tǒng)中嵌入式plc?

          如何設計機床數(shù)控系統(tǒng)中嵌入式plc?

          作者: 時間:2018-08-06 來源:網(wǎng)絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/201808/385529.htm

          顯然,不論哪一種控制方式,其目標都是相同的。經(jīng)認真分析,我們找出了三者之問的共同點,由此得出一抽象類C,它提供了數(shù)控機床電氣控制所有的外部特征,為數(shù)控系統(tǒng)主體軟件提供了完備的接口函數(shù),數(shù)控系統(tǒng)中其它部分只需調(diào)用相應接口函數(shù)就可使電氣開關做出相應的動作。但該部分不涉及電氣操作過程中的細節(jié)。考慮到數(shù)控系統(tǒng)中電氣控制點數(shù)比較多,為每個控制動作如液壓開,液壓關等等各設計一個接口函數(shù)會導致過多的接口函數(shù),應用不方便,因此,我們設計了一個通用的接口函數(shù),其定義如下:



          如果定義液壓開關編號為1,冷卻開關編號為2,……,

          則開液壓的函數(shù)調(diào)用為

          在抽象類CPIC的基礎上,針對三種方式分別定義了派生類CExternalPlc、CVirtualPLc和CEmbedPLc,在這些類中,才真正對接口函數(shù)編程,完成硬件操作。按照這種設計思想得到的電氣控制部分軟件具有圖3所示的結構。由圖中3可以看出,這種設計方法在數(shù)控系統(tǒng)主體軟件與電氣控制硬件之間加入了抽象類層次,使其相互依賴性減弱,成為相對獨立的兩部分。運用這種方法得到的數(shù)控系統(tǒng)軟件具有與設備無關的特征 當有新的硬件設備出現(xiàn)時。只需在原抽象類上派生出新的類,按照共同的標準對接口函數(shù)進行解釋。操縱硬件做出相應的動作即可,無需對軟件其它部分做任何修改。太太提高了軟件設計的效率。實際上。在對接口函數(shù)參數(shù)的意義做出明確的規(guī)范后,其它任何人都可以參照該規(guī)范設計出新的電氣控制硬件及相應的驅(qū)動程序,集成人系統(tǒng)中。這也就是數(shù)控系統(tǒng)開放化設計的主要目的。

          4 結束語

          數(shù)控系統(tǒng)的開放化設計設計者的知識范圍和經(jīng)駐密切相關。只有在充分了解現(xiàn)有設計技術及用戶需要,并對其近期內(nèi)的發(fā)展做出預測的基礎上,運用工程設計方法,才有可能得到完善的開放化數(shù)控系統(tǒng)。目前對開放化的討論多著眼于系統(tǒng)硬件結構。操作系統(tǒng)及開發(fā)環(huán)境。具體如何實現(xiàn)開放化特別是軟件的開放化則談的很少。本文從硬件到軟件對電氣控制子系統(tǒng)進行了開放化設計。對此做出了有益的探索。該子系統(tǒng)已集成人我們開發(fā)的五軸聯(lián)動數(shù)控系統(tǒng)中。從使用效果來看,其開放的接口標準以及與設備無關的軟件設計有助于減少編寫數(shù)控系統(tǒng)主體軟件時的錯誤,有較強的適應性和可靠性。


          上一頁 1 2 下一頁

          關鍵詞: 機床數(shù)控 RAM PLC

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();