人們現在談起ERP來,總是說起“云”啊,“工作流”啊,單據流程自定義的“平臺化”啊,BS/CS的結構啊,移動ERP啊,等等,這里我希望停一停,淺談下ERP的真正技術瓶頸。
筆者認為:說到ERP,固然上面這些要談及的,但ERP真正技術瓶頸可能不在這些方面上,而在于“生產計劃算法”的實現上,以下我們來談談。
面向生產制造業的,經典的ERP軟件應該以生產為核心,這點是業界公認的。但如何以生產為核心?卻極少有詳細的論述。根本原因在于‘詳細生產計劃排程'這個技術瓶頸。
‘詳細的生產排程'也可以說成是‘生產作業計劃',可謂關系重大。企業制定生產計劃的過程一般分成兩部分,首先是生成主生產計劃,其次是根據主生產計劃生成生產作業計劃。要得到‘主生產計劃'一般是從訂單,部分企業是從市場預測,出一個生產數量,基本是管理者在進行決策,人的因素起絕對作用。這個過程中會有一些行業或者企業的特別計算方法,需經過一些四則運算式的統計分析,ERP軟件要做二次開發,但基本不存在技術難題。
但是,光有主生產計劃是遠遠不夠的。一個簡單的主生產計劃的生產要求,要把它自動分解為復雜、具體的生產作業過程,這就是詳細生產排程,這才是ERP系統中最關鍵的一個環節,是ERP系統真正的核心功能。只有從復雜、具體、詳細的生產作業計劃中,才能體現出‘ERP企業資源計劃'中的‘R——資源'的存在;也只有從這個詳細生產作業計劃的‘可行性'與‘優化性'上,才能體現出‘P——計劃'的價值。有了‘資源',有了‘計劃',才是真正的ERP系統。
一般說,生產作業計劃越詳細,它給出的信息越豐富、越有價值,相應計算起來也就越困難。生產作業計劃越粗略,越接近主生產計劃,信息越少、價值就越低。企業總是希望自動得到盡可能詳細的作業計劃。但是ERP在這方面遇到了真正的技術瓶頸。就我們目前所見,幾乎全部的ERP生產管理都是從四則運算的主生產計劃入手,重點利用BOM解決MRP物料需求計劃,之后再解決生產過程的記錄和統計。恰恰在企業最需要的詳細作業計劃方面最薄弱、最無所作為。
如想證明一下這個現狀,去考察一下上了ERP的企業,會發現一個有趣的現象——該企業無論ERP軟件搞得如何如火如荼,似乎都與生產調度人員無關。車間里或者生產線上的生產作業計劃、生產過程的調度和管理仍然是在用最初最原始的那種老方式——多數時候是經驗,有時候是感覺在起作用,加上少量的以EXCELL為工具的報表運算,雖老雖笨但是有效。ERP功能再強管得再寬似乎也管不到這里。結果,表面風風火火的ERP與企業最關鍵的運轉過程發生了斷層,從這個斷層衍生出來的一大堆問題成為眾家ERP難解之死結。最突出的一個:企業生產調度是要對企業最底層的生產資源——人員、設備、場地等,按照它們的能力進行合理安排。但是上層的ERP無論干什么事情都不去考慮這些資源和它們的能力,或者假設生產能力無限,或者按照一個人為定義的瓶頸資源進行簡單四則計算。這種關鍵矛盾由于ERP技術瓶頸的存在而無法解決,ERP的前景可謂是不容樂觀。
那么,這到底有什么難的?為什么眾多的名牌ERP企業都無法提供這種基本功能?ERP技術瓶頸到底在什么地方?回答這個問題,就要從企業中直接干此工作的崗位——生產調度的職責說起。
一個企業的生產調度人員,首先是要對該企業的生產工藝流程爛熟于心,也就是了解企業到底是怎么進行生產的,包括其中每個細節,這是當一個生產調度最基本的前提條件。同樣的,ERP要想干同樣的事情也必須達到同樣的前提條件:清楚了解企業究竟是怎樣進行生產的,每個細節都不能差!這對一個人來說可能并不算難,但對于一個ERP系統來說就是一件非常困難的事情!有人稱之為企業建模,這遠不象建立BOM那么簡單,其中涉及到的除了物料,還有工序、資源、時間、邏輯關系、技術參數、成本等等錯綜復雜的生產信息。不同行業不同企業的建模方式更是千差萬別,這是第一個技術難點。
且不說離散生產模式的電子、汽車行業與流程生產模式的化工、制藥行業在基本生產方式上的巨大區別,就算同屬電子、汽車,或者同屬制藥、化工的不同企業,他們的生產方式在細節上仍然有很大的差別。一套ERP系統能以不變應萬變統統接受這種差別嗎?技術上很難!只好對每一個行業開發一個專用生產版本,這是必須的。但是行業版本到了企業里就能高枕無憂了嗎?大的行業版本一般仍然無法滿足行業內特定類別企業的細節差別,比如制藥行業細分為‘制劑藥'和‘原料藥',生產方式差別還是很大,需再開發更細分的小類別版本。可是同類別的不同企業還有自己的生產特性,針對不同企業的二次開發就類似于把企業的生產特征逐一寫到程序中。且不說對生產系統的任何改動都要投入巨大人力,軟件企業很難接受頻繁和復雜的二次開發要求,更不用說企業生產過程一旦發生變化軟件還是很難應對!很多企業的生產流程每隔幾天就會變,而軟件商不可能每天都重寫代碼。應變方式只能是降低企業的要求——生產流程建模與實際近似、大概差不多就行了。關鍵是用戶會不會滿意?忙了半天還是用不起來,損失就太大了。所以,除了部分院校的理論研究者,目前國內ERP廠商還沒有嘗試邁過詳細生產流程建模的這第一道門坎。
建立生產模型,讓軟件接受企業的詳細生產過程,這的確很麻煩,但并非是無法完成的,真正的難點在于下一步:根據模型和生產請求得到詳細的作業計劃,也就是詳細生產排程。ERP的真正技術瓶頸就發生在這里。
詳細生產排程的結果是‘生產作業計劃',是針對每個人員每個設備的生產資源的工作計劃。作業計劃必須滿足在生產工藝上不能有半點差錯。首先,工序之間必須滿足特定的邏輯關系,以及要求某些工序必須連續、同時、或者間隔進行等等,這是對作業計劃最基本的要求。其次,作業計劃必須滿足資源能力限制,一個資源在一個時間內只能干一件事情,生產作業計劃中不能有資源沖突;最后,作業計劃必須滿足物料供應的限制,沒有原材料不能開始生產。也就是說:作業計劃必須同時滿足多種復雜的約束條件。TOC約束理論早已有之,只是需要比較高級的算法和數學理論,在這方面需要進行長期投入才會有所收獲。因此國內理論界對此的研究還很少。
有了按照TOC理論計算出來的計劃,滿足企業生產工藝要求是不是就行了?很遺憾,這還是差的很遠。現在我們以一個假想例子來說明。
一個ERP生產調度系統,很順利接受了某企業的全部生產細節,并計算出了一套生產作業計劃,打印成一份給所有生產資源安排工作的作業計劃。現在,由一個有經驗的老調度師來決斷這個ERP計劃系統是不是可以用的,他將如何做?
首先,他會逐一檢查每個工序的時間安排,看它們之間的次序和邏輯關系是不是符合企業生產工藝的邏輯關系要求;其次,他會觀察這個計劃中對每個資源的安排是不是合理,有沒有一個時間干兩個活這種沖突的情況發生;最后他要看在計劃時間內物料能不能供應的上。這些都沒有問題了,他必須承認:這個計劃已經是一個‘可行'的計劃了,也就是說,照此計劃一定可以完成生產任務。
但是,還有一個關鍵的事情,老調度師根據自己習慣的做法,也手工制定了一個作業計劃,他把這兩個計劃一對比,發現問題了。手工的計劃可以8個小時完成全部工作,而計算機的計劃需要9個小時。或者手工計劃可以在8:00完成而計算機的計劃要在9:00點完成。原因在于:計算機對某幾個工序的順序安排雖然可行但是不合理,而老調度師根據長期經驗早已清楚此時安排工序應該哪個先、哪個后、哪些并行比較好,結果可以得到更短時間完成的計劃。這是一種優化安排,而計算機沒有找到這種安排方法,所以計算機給出的是一個‘可行'的,但是‘不好'的計劃!理想中計算機應自動計算出一個比手工計劃更好更優化的排產方案結果,指導人如何工作。這樣的軟件才能體現出‘企業資源計劃'的威力。否則,不能滿足最優化排程的ERP在企業生產中還是無法代替手工。
這隔例子凸現出了一個世界性的關鍵技術瓶頸:一個生產過程可能有無窮多種‘可行'的安排方式,但是必須從其中找出一個‘最優'的計劃,即使不能達到最優,起碼要比人的手工計劃更優,這才是一套可用的生產排程軟件,否則企業還是用不起來。
找出‘可行'計劃的難度已經很大,找出‘優化'計劃的難度更大。不僅要處理錯綜復雜的約束條件,還要從幾乎無窮多種滿足約束的可行方案中找到優化排程方案。怎樣才能找到這種優化的計劃?這是ERP系統共同面對的真正瓶頸問題,是世界性的技術難題。其中的關鍵在于算法,算法的基礎是數學模型,特別是高級圖論、離散數學與線性代數中的矢量矩陣技術。對此,國外已經作出了很多年的努力,其研究成果已形成了多個‘APS先進生產排程'產品,發展出了幾十種先進生產排程算法,比較常用的如:啟發式圖搜索法、禁忌搜索法、神經網絡優化、遺傳算法等,這些算法各有優劣,可用在不同場合。目前不同的新的算法仍正在蓬勃發展中。
用一句話來形容APS的主要功能:可以自動給出滿足多種約束條件、手工排程無法找到的、優化的排產方案。其實關鍵就是‘可行'和‘優化'這兩個概念。這個說起來很簡單的功能意義十分重大,主要體現在它可以給傳統ERP帶來以下幾個關鍵的變化:
1)對企業來說,在不增加生產資源的情況下,通過最大限度發揮當前資源能力的方式實現了提高企業生產能力的目標。
2)APS排程的結果給出了精確的物料使用和產出的時間、品種、數量信息,用這些信息可以把很多相關企業或者分廠、車間聯合在一起組成一個‘SCM供應鏈'系統,最大限度減少每個企業的庫存量。
3)APS可以用來做為生產決策的依據,它的排程計算結果不光可以作為生產計劃,還可以通過不斷whatif的‘試算'的方式為企業提供生產決策依據。
4)根據自動生成的作業計劃還可以自動生成質檢、成本、庫存、采購、設備維護、銷售、運輸等計劃。帶動企業各個不同管理模塊圍繞生產運轉,改進這些模塊的運轉方式,大大提高這些模塊的運轉效率,提升企業整體管理水平。
但是,APS系統的開發難度很大,需要融合最前沿數學理論和最先進管理理論,專業人才很少,投資見效很慢,在國外的價格非常昂貴。即使是世界性大ERP公司也很少獨立投入力量研發,都是采購外插件直接引入相應功能。國內對這方面的研究除了個別公司外,基本停留在大學院校的實驗室中。
再進一步,如果已經解決了優化排程問題,那么對APS來說有什么技術瓶頸呢?
APS第一個最大的技術瓶頸就是它的運算時間問題。因為企業生產過程中經常會有一些突發事件,相當于臨時改變了排產的初始條件,需要APS進行動態處理。APS系統能按照舊的條件制定計劃也肯定能按照新的條件制定新計劃。但是,它的計算時間是不是能趕上變化的時間,這是一個關鍵。如果APS按照新條件重排計劃的時間是10分鐘,它大概只能處理30分鐘以上的臨時變動,而無法處理30分鐘以下的臨時變動。動態處理對計算時間的要求引發算法的不斷優化,以及發展并行計算技術,這也是國外APS系統的主要技術發展方向。
APS的第二個技術瓶頸就是如何不斷提升次優解的優化程度。如果不能得到最優解,那么需要找到一個盡可能接近最優的次優解。不同APS軟件的算法不同,次優解的優化程度也不同,直接體現了其核心技術的水平高低。所以拿不同APS軟件對相同問題進行處理,對比他們解答的優化程度和計算時間,很容易比出高下。不斷接近最優,這將是APS類軟件始終不變的追求。
ERP與APS的結合是ERP未來發展的必然方向。與當前簡單的BOM-MRP運算和進銷存財務功能相比,APS占據了ERP的核心功能,有極深的技術含量,更是未來SCM系統的基礎功能。擁有這種核心技術的ERP公司必然在市場競爭中占有極大優勢。目前國外企業早已經是磨刀霍霍,未來數年內,美國、德國、日本、臺灣軟件公司開發的結合了APS核心功能的ERP軟件就有可能以低廉價格進入國內市場,那時國內ERP軟件公司將難有還手之力。
由于生產排程技術瓶頸的存在,中國ERP軟件行業已經遠遠落后,除了少數幾家專業開發APS系統的公司以外,絕大多數企業目前仍然停留在對BOM的低層次的完善和對進銷存財務模塊低水平重復開發上。由于一直拿不出足夠的技術儲備向瓶頸發起沖擊,因此不重視基礎技術儲備的工作,甚至對目前狀況視而不見;由于不重視基礎技術的儲備,所以更加無法解決瓶頸問題。目前這個惡性循環還在繼續之中。從用友向臺灣漢康大價錢買技術的挫折,以及神州數碼引入鼎新生產模塊的尷尬合作,國內ERP企業對此的無奈狀態可見一斑。