首先,我们谈论的是一个关于计算机的话题,那么就有一个最基本的问题:计算机能干什么?对这个问题似乎答案太多了,计算机本身就是一个大千世界,随便就能找出很多种答案。但是告诉你最基本的,计算机实际上只干两件事:读和写。它所有的花里胡哨的功能,最终不过是在用最笨的方式干这两件最简单的事情,速度快而已。
不信吗?仔细想一想,不必去深究它的基本原理,你可能会感觉到,无论上网、看电影听音乐、玩游戏、编写文档、操作数据库,这些的确都不过是在快速地‘读’和‘写’一些数据。但是,计算机还有‘计算’功能,这不象读写那么简单吧。比如你要算25×96,计算机马上给出结果:2400。难道它能事先知道你要算这个数,已经把结论保存在那儿了吗?难道这也是读和写的结果吗?没错!这个过程计算机的确只是进行了一些读写操作。不信,你找一支笔来,在纸上手算这个乘法题,然后逐步记录你的整个计算过程。
你一定先要算5×6=30,再算2×6=12、9×5=45、2×9=18,然后呢,你在纸上列出了这样四个需要错位相加的数字。
30
12
45
18
之后就是对准位置以后简单的个位加法计算:3+2+5和1+4+8,2400这个数字就这样算出来了。那么计算机呢,你可能会想,它应该有一些更高明的手段。告诉你,计算机也是这么算的!它同样没有办法直接计算出25×96,而是把它分解成多个个位数字相乘和相加的运算,原理与你在纸上计算过程是一样的。你在计算的时候心里早就背会了一个小九九,计算机也早就把这个九九乘法表存在那里了,当要算5×6的时候,它就去把30调出来写到一个位置,算2×6的时候把12调出来写进去,然后呢,1+1=2,2+3=5这样的个位加法的所有组合也都早就存好了,直接去取结果就可以。看,只要有一个乘法表加上一个加法表,计算机就可以通过简单的读写操作计算出你的任何乘法计算。
这么看来,计算机并不比我们更高明,它用一种与我们手算相同的计算方法。而且,计算机没有知觉,它根本不知道自己在干什么,有什么实际意义,它只知道按照一个固定的规则进行一堆读写操作,不会任何变通,只不过速度比我们快几百万倍,也正因为如此,我们才错误地感觉它的计算似乎比我们更聪明。
回到我们的话题,依此类推,ERP是什么?MES是什么?APS又是什么?无论他们有什么功能,对企业有什么意义,不过都是计算机在读写一些数据而已。你用ERP把今天的订单录到计算机里再查询昨天的销售数据统计出一个报表保存到服务器上,另一台电脑读了这个报表再读BOM算出需要采购哪些物料和生产哪些物料,另一台电脑打印和显示出这些数据……。实际上这一切的本质不过是数据在硬盘和内存中快速的‘读’和‘写’,我们就不厌其烦地为类似这样的计算机‘读-写’过程起了无数个名字,ERP、MRP、SCM、CRM、PDM、PRM、MES等等等等,还产生了无数的管理理念和理论,并为此争论不已。
企业中那么多复杂的工作流程,那么多先进理念,其最底层的工作本质真的只是计算机简单存了一个数字再简单把它取出来吗?计算机真的只是比人快但是没有人聪明吗?先不要忙着下结论。
说到聪明,我们再回到那个乘法问题,一个一般智力的人只会用纸上手算的方法,但如果让一个‘聪明’的算术高手来计算这个题目,他很可能采取一种简化的方法,96是100-4,而4×25刚好=100,于是25×96=25×(100-4)=2500-100=2400。不用繁琐的个位相乘,很快就能得出结果。你看,计算机就没有这么聪明,它必须按照自己固定的步骤走完全部流程,不会随机应变,人比计算机聪明多了。
但是且慢,计算机虽然只会读写,但它有一个很大的优势,它很善于学习,记忆力很好。人只要把一种计算的方法转换成它能接受的‘读-写’方式教给它,它就会变得和人一样聪明,而且永远不会忘记,还能很快复制给其他同伴。一个一般智力的人把乘法手算方式教给计算机,计算机就拥有了乘法计算的功能。而一个更聪明的人利用复杂的条件判断语句可以把简化计算法教会计算机,计算机就拥有了人的这种‘聪明’。这时候,一个智力一般的人不仅在速度上远远不如计算机,而且在方法上也显得没有计算机‘聪明’了。计算机的灵魂背后是人的思维。
这就引出了‘算法’的概念。任何人的手工乘法运算就是一种算法,聪明人的简化运算也是一种算法。计算机聪明与否,全看它所接受的算法是不是聪明的。如果计算机接受的是需要一定专业知识的专家级别的算法,那么计算机就会拥有一个专家级别的聪明,一般‘聪明人’在智力上也根本无法与之相提并论。
现在,我们评价一台计算机是不是聪明就有了一个新的标准:看人教给它的‘算法’是不是很高明。如果这种算法就是我们手工每天都在用的类似乘法运算的那种方法,虽然把这种方法教给计算机也需要很专业的知识,但是,计算机还是并不比我们更聪明,只是比我们快而已;而如果这种算法不是简单到谁都能想到的方法,例如简化乘法运算,那么这台计算机就是一台比较‘聪明’的计算机了。
算法,给了我们一个新的视角来观察ERP。很多时候企业要求的是一个聪明人教会的拥有高明算法的计算机,而不是一个智力一般的人用日常方法教会的计算机。但现实情况,很多ERP公司都只满足于低水平重复性地把日常手工的方法教会计算机,再给这种本质上是手工的方法起一个流行的名称,声称它多么高明。仔细考察,只不过是原来的手工方法和日常工作流程的电子化而已。而企业管理中需要很多真正高明的算法,所要求的‘聪明’程度远不象前面的简化乘法那么简单,需要很高深的数学知识。这时候绝大多数ERP公司由于自身缺乏对基础数学的深入研究和积累而无能为力,这并非单指国内ERP公司,国外大型ERP公司也并不例外。
举一个例子,计算圆周率π,一个中学生可能会去测量一个圆的周长和半径,这个方法无疑很笨,但是现在要求你用计算机来算,你能有什么好办法吗?我们来看一个数学家会用什么样的方法。方法1:(1-1/3+1/5-1/7+1/9-1/11+1/13+……)*4;方法2:(1+1/4+1/9+1/16+1/25+……)*6的开方。还有其他看起来不着边际的‘古怪’方法,例如arctan级数展开法、算数几何平均值迭代法等等,但是它们的确有效。这些方法如此简单以致一个初学编程的中学生都可以开发出来。但是为什么用这么简单的似乎与圆周率毫不相干的算法可以得出π值?恐怕没有学通大学数学的人无法理解其中的奥妙,更无法给出证明或者灵活运用它。在这里,数学模型就起到了决定性的作用。
企业管理中在复杂的约束条件下要求寻找一个工艺流程的关键路径、寻找一个计划的最早和最迟开始时间、或者寻找目前生产计划中哪个资源最短缺的时候,运筹学、数论、图论、线性代数、模糊数学等等数学科学的最前沿理论已经取代了我们一般的直观分析。计算机解决这类问题已经不能再用简单通用的手工方法或者仅仅使用一般的小聪明全凭速度优势代替手工劳动,而是必须集成最前沿数学理论,拥有一个数学专家级别的专业算法。在整个企业管理中,无疑生产排程部分由于它的错综复杂的条件和对精确结果的需求,是最需要这种专家级别的算法的地方。
有了这些基础概念做为武器,我们可以回到关于ERP、APS、MES的‘正题’上来趟一趟这潭混水了。
一般说MES就是生产执行管理,但它在定义自己的时候喜欢把多多益善的东西都拉进来,于是侵犯了很多软件的传统领地,难免引发一场论战。MES最乐道的是连接企业管理系统和生产控制系统,承上启下弥补了空白。但是,它声称的每个部分的功能都早有其他专业系统承担。比如资源分配和工序排程,是APS的领地;文件管理和控制一直属于OA的范畴;劳动力管理早有详细到每分钟工作记录的专业人力资源HR系统承担;维修管理则有企业资产管理EAM和专业设备-固定资产管理软件;制造流程控制和管理有SFC(shop floor control);质量管理有集成了更多功能的ERP-QA/QC模块;至于实时数据收集,有无数做硬件的PLC、DCS系统供应商提供与硬件设备的专业数据连接和分析系统,功能只会更强。这些且不说,就连最普通的ERP软件都声称拥有MES的绝大部分功能。看来实在是没有什么空白可以留给MES去弥补。实际的市场状况MES也一直处在多种软件的挤压下在夹缝中艰难生存,特别是它与ERP一直处于一种直接对抗状态。
MES与其他系统的江湖恩怨与本文无关,本文只说MES与APS和ERP互相重合的生产排程这一段内容。对用户来说MES与ERP、APS概念的互相交错,软件商之间激烈争论,让人困惑。到底选择ERP、APS、MES有什么区别?
一般说软件之间的比较,不是看它集成的功能多不多,而是首先要看企业最需要的关键功能是不是有。如果都有,那就需要注意‘有’跟‘有’的差别很大,一个小小的区别可能就是本质的不同,要点就是要看它们的算法哪个更好。一个好的算法可以更深入地解决问题,运算速度快,很容易扩展到其他功能,修改起来方便等等。别的不说,在对比ERP、APS与MES之间的关系时,算法就起到关键作用。
在正常情况下,先进生产排程APS的算法比MES中的‘详细排程’以及‘资源分配’的算法要强很多。而MES中的算法比ERP中的BOM/MRP的算法也要强很多。ERP中的BOM/MRP算法实在太简单,就是把平时手工的工作方式电子化,相比而言类似于开发一个乘法运算的难度。因此很多企业不需要BOM/MRP在EXCELL上也可以实现相同功能。而MES的排产功能肯定要强于ERP的生产计划功能。因为如果在这个关键核心功能上不占一定的优势,MES就根本不会有自己的市场份额。但是,它在本质上也只是把一些手工的、经验性的‘好’方法集成进了软件,类似于简化乘法运算,虽然有很大的实用价值,但这与APS的以数学模型为基础的算法相差甚远。否则,MES开发商就会把这部分拿出来单做成APS出售了,要知道其中的价格差异很大。(当然也不排除某些MES系统集成了APS系统的可能,只是由于种种原因这种情况比较少见,不是本文重点。)APS系统拥有以数学模型为基础的最强算法,可以满足更高难度、更广泛的需求。相比而言有点象用无穷级数法计算π值,其实现方法可能比BOM/MRP和MES还简单更容易,但它不是可以直观理解的方法,真正的难点不在于把算法变成软件,而是在于寻找和证明这个算法。因此,各APS公司对其核心算法和数学理论都是严格保密的,很难查到相关资料。与之对比,为了赢得客户MES很喜欢宣传它的算法,这是一个很大的不同。开发APS需要较长时间的理论积累,而高水平的开发人员数量有限,开发费用过高,因此绝大多数ERP公司都不自行开发APS系统。
当然对企业来说,算法也不是唯一的选择依据。一般说,整套系统中的某个功能不如专业系统的功能强大,但是价格低廉,与它集成在一起的功能很多,用起来方便,这是整套系统的优势所在。ERP的生产管理部分对比MES和APS最简单但也最便宜,一般仅限于简单的物料需求计划。如果企业对生产计划要求比较低,只侧重于物流计划,就可以只选用ERP的生产模块。
MES的排产功能更强一些,但是价格更高。适合于对生产计划要求不太高但是对生产过程管理比较精细的企业。目前国内自称提供MES系统的企业有很多,比如神州数码、上海科迅达、中江联合(北京)、南京比邻软件、台湾新能科技、艾加软件、台湾羽冠等公司。但其内容差别很大,水平良莠不齐,用户在选择的时候注意比较的关键是算法。从目前出现的趋势看,ERP软件公司倾向于独自开发更高层次的可代替MES的生产排程系统,或者与APS系统集成,这是对独立MES系统生存最为不利的事情。
APS是功能最强也是最昂贵的软件,适合于多品种、小批量、工艺流程变化很快、对生产计划有很高要求的生产型企业。由于一个APS项目的二次开发工作量很大,目前几乎所有APS开发商都只专注于生产排程功能,不搞其他相关系统。因此APS需要与其他软件集成在一起使用。目前,国际知名ERP全部都已和某个独立的APS系统集成在一起,常见的如SAP的APO,ORACLE的ASCP。国内用户如果选择了国外ERP软件就可以考虑上它的APS,但是加上大量的定制开发以后,其价格昂贵有可能会超过整个ERP的价钱。目前国内的APS有北京东方小吉星公司的PRM系统,还有一些台湾公司开发的针对特定行业的APS系统,如台湾鼎诚。由于价格较低,属于本土化服务,性能价格比要优于国外系统。
综上所述,我们要学会超越一个软件表面上的概念、功能、特点,而以算法作为判断的一个重要标准。这对MES、APS、MRPII这样的系统来说尤其重要。