規則引擎實現生產調度系統

    生產調度系統是製造企業MES系統的重要組成部分,對應於生產管理系統的短期計劃安排,主要目標是通過良好的作業加工排序,最大限度減少生產過程中的準備時間,優化某一項或幾項生產目標,爲生產計劃的執行和控制提供指導。在不同的問題環境中,生產調度的優化目標也不同。在生產製造企業中影響生產調度的因素很多(比如設備、工人的生產技能等),這些因素樣式複雜,種類繁多,靈活多變。另外在不同的環境下,影響生產調度的規則數量、優先級都會發生變化。

      去生產調度系統將業務邏輯與主體代碼緊耦合,業務規則以:

                       IF ELSETHEN

 

的形式被硬編碼到代碼中去,結果是線性、確定的執行路由,所有的約束和判斷都按照建模時的約定執行。當業務規則發生變更時,唯一的途徑是修改代碼。這種形式無法適應制

造企業生產規則的頻繁變更,導致生產調度系統的開發、升級和維護成本急劇增加,甚至生產調度系統完全無法適應企業的實際需求。因此生產調度系統在保證對目標優化的前提下,將業務邏輯與主體程序的分離,已成爲生產調度系統首要解決的問題。本文着重闡述通過規則引擎技術將生產規則邏輯從生產調度系統分離,克服生產規則靈活變更導致生產調度系統無法適應企業生產策略變更的問題。

    目前開源和商業的規則引擎產品有很多,其中開源的以Drools爲代表,商業的有ILogViaualRules等,本文以商業規則引擎VisualRules來說明。說句題外話,開源的產品有開源產品的優點,但是規則引擎作爲一個高端的應用來說,還是希望在售後服務,技術支持等方面能有商業化的保障。

 

    在製造企業中,生產策略的變更非常頻繁並且影響生產調度系統的業務策略很多,而傳統的生產調度系統將業務邏輯與生產調度邏輯緊密耦合,導致高系統的開發,維護都變得異常艱難。因此如何將業務邏輯與主體程序分離,屏蔽業務策略變更對主體程序的影響,則成爲生產調度系統的關鍵問題。

 

    基於規則引擎的生產調度系統架構設計的核心是實現業務邏輯與應用程序解耦。它的實現方案可分爲以下幾個步驟:

 

  1. 生成業務規則  業務人員對影響生產調度的業務策略進行收集,抽象,歸納,按照規則文件格式配置成業務規則。
  2. 業務規則管理  業務人員通過規則管理平臺實現對規則的存儲,版本,廢棄,凍結等一系列的管理
  3. 執行業務規則  應用程序中啓動規則引擎(服務和接口)解析執行已經編輯配置好的規則文件,然後將結果返回給應用程序。

 

通過以上步驟,能夠讓整個生產調度系統快速適應企業業務策略的頻繁變更,隔離策

 

略變更對應用程序的影響,同時又能與主體程序進行動態通信。主體程序動態感知業務策略的變更,將變更結果推動執行和呈現。

 

    在製造業企業中,制約生產調度的業務規則很多,在不同的場景中業務規則的組合形式多種多樣並且規則的執行先後順序對調度結果也起着制約作用,業務規則的表現形式也是多種多樣的,如何靈活易用的配置統一格式的規則是我們關注的重點。

 

    VisualRules的規則主要由:條件,動作,屬性等組成,一個規則中可以包含多個組合判斷條件,也可以完成多個不同的動作。

    VisualRules的規則表現形式如下:

 

    在生產調度系統中,所有的業務規則都可以抽象爲這種格式,下面以工人的技能熟練程度爲例來說明生產調度系統中的業務規則配置方式

 



 

從上圖可以看出,與傳統的生產調度系統相比,基於規則引擎的生產調度系統具有以下幾點優勢:

 

  1. 業務邏輯與主體邏輯的分離,模塊之間更加鬆散耦合,已於開發,維護和升級
  2. 屏蔽業務策略的變化,具有更強的靈活能力和使用能力,能有效的適應策略的變化。
  3. 有效的延長應用程序的生命週期。
  4. 開發過程更加離散,各個過程可由不同的開發者進行開發,測試和部署。

 

 

基於規則引擎的生產吊系統實現了主體應用程序與業務邏輯的分離,屏蔽了生產策略變更對系統的影響。能有效降低生產調度系統的開發,維護和升級成本,延長軟件生命週期,降低企業信息化成本。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章