规则引擎在排产系统中的应用规则引擎排产系统中的应用排产系统是制造企业MES系统的重要组成部分,对应于生产管理系统的短期计划安排,主要目标是通过良好的作业加工排序,最大限度减少生产过程中的准备时间, 优化某一项或几项生产目标,为生产计划的执行和控制提供指导
在不同的问题环境中,排产的优化目标也不同
在生产制造企业中影响排产的因素很多(比如需求变化多、 插单多、 各条生产线生产能力与特长不同等),因素众多,通常最影响排产计划的进行,降低了生产效率和交货及时性
传统的手工排产已完全不能满足企业多变的需求
另外在不同的环境下, 影响排产的规则数量、优先级都会发生变化
过去排产系统将业务逻辑与主体代码紧耦合,业务规则以:的形式被硬编码到代码中去, 结果是线性、 确定的执行路由, 所有的约束和判断都按照建模时的约定执行
当业务规则发生变更时,唯一的途径是修改代码
这种形式无法适应制造企业生产规则的频繁变更,导致排产系统的开发、升级和维护成本急剧增加, 甚至排产系统完全无法适应企业的实际需求
因此排产系统在保证对目标优化的前提下,将业务逻辑与主体程序的分离, 已成为排产系统首要解决的问题
本文着重阐述通过规则引擎技术将生产规则逻辑从排产系统分离,克服生产规则灵活变更导致排产系统无法适应企业生产策略变更的问题
目前开源和商业的规则引擎产品有很多,其中开源的以 Drools为代表,商业的有ILog ,旗正规则引擎(VisualRules )等,本文以商业规则引擎中的旗正规则引擎来说明
说句题外话, 开源的产品有开源产品的优点, 但是规则引擎作为一个高端的应用来说, 还是希望在售后服务,技术支持等方面能有商业化的保障
在制造企业中,生产策略的变更非常频繁并且影响排产系统的业务策略很多,而传统的排产系统将业务逻辑与排产逻辑紧密耦合,导致系统的开发, 维护都变得异常艰难
因此如何将业务逻辑与主