FLEXSCHE产品介绍

FLEXSCHE版本20

2021年6月24日发布了FLEXSCHE版本20.0。版本20是FLEXSCHE Corporation创立20周年之际的纪念版, 实施了215项的功能扩展。在此介绍一下其中的主要功能。(版本19.0和版本20.0的差异)

FLEXSCHE DataTuner

轻松实现排程的精确性和妥当性

“基于现实拟定精准计划”是生产排程的一个重要课题。为此“确切设置”各个工序的能力可以说是其必要条件。

但是很多导入项目都面临着不是最初就掌握了所有的工序的能力这样恼人的问题。另外几乎所有工序都有时间上的“波动”,不反复计测无法决定恰当的数值。

随版本20发布的新产品FLEXSCHE DataTuner(福勒克歇 数据调节器)是基于工作实绩每天积累工作时间的标本数据,从统计处理的结果计算并提示推算值,从而有助于高精准的妥当的计划排程。

FLEXSCHE DataTuner的概念图

基于推算更新能力值推

FLEXSCHE DataTuner的运开始后一段时间累积了充分数量的标本数据后就可以分析了。当前的能力值和新的推算的能力值,以及可视化与样本值的分布的关系,根据提示的新的能力值的“推荐度”,用户可以迅速直观的更新能力值。

数据调节器控制台(左)和数据调节器面板(右)
(通过技能或数值规格等对能力进行参数化时进行多维分析)

另外对(认为是)相同性能的多台机器设置了相同的能力值,但实际使用经常会发现有意义的能力差。FLEXSCHE DataTuner检测出这个差异后,会以可视化方式提示拆分建议,可以通过简单的操作拆分能力的定义。

能力值设置的拆分

能力值设置拆分前(左)和拆分后(右)
确认混合在一起的不同能力资源,简单双击操作即可进行拆分。

利用这些机制,就可以在最初简单设置大概的能力值,之后逐步细分化、详细化这样简单运用,降低构筑生产排程系统的门槛。

与FLEXSCHE CarryOut结合

统计上妥当的计划可以说是合理执行计划的基础,但仅有这些是不够的。

前述的“波动”阻碍我们按计划制造。吸收“波动”逐步适应执行计划非常重要,为此需要FLEXSCHE CarryOut。正确运用FLEXSCHE CarryOut可以自然得到实绩信息,可以说就构成了一石二鸟相辅相成的关系。

FLEXSCHE DataTuner的提供方法

除了可以作为选项产品单项销售以外,在优惠的FLEXSCHE CompletePack中也有该产品。

另外,无论是否有FLEXSCHE DataTuner的授权都可以累积样本数据。

新的HTML嵌入功能

FLEXSCHE中可以嵌入丰富的HTML内容了。

之前也可以通过DHTML功能对FLEXSCHE嵌入HTML的视图,所嵌入的浏览器没有对应新功能所以无法制作丰富的页面。

此次由于嵌入了对应HTML5的新浏览器,所以使用HTML5可实现的功能可以在FLEXSCHE上制作更高级的Web应用了。

从Web应用可以访问FLEXSCHE的对象,访问并发送命令或制作输入窗体更新记录等可以自由的构筑系统。

简易控制台

简易控制台

简易控制台就是使用此新功能制作的。

作为Web应用访问FLEXSCHE的对象取得排程规则和EDIF定义,通过按钮方式显示。通过按钮可以执行规则和EDIF。

由于提供了HTML代码,所以可以在此基础上添加功能。

排程/建模

工作主导分派方法

基于资源容积动态拆分工作

基于资源容积动态拆分工作

作为资源的制约可以设置容积了。工作是否能复合体积考虑各个品目的密度进行判断。另外可以为了满足容积自动拆分工作。例如,在工作的链接数量设置了质量,但资源的容量本质上不是以质量而是以容积(体积)限制时,如果用传统的容量制约换算成质量进行制约的话,需要根据放入的品目的密度改变限制值。

将容积直接设置作为资源的制约更为简洁。

强化每个路径的搜索

对工序间每个资源路径搜索时抽出路径可以仅限定主要任务了。可以提高副资源有很多选择或跨多工序连锁制约时等的排程效率。

另外在方法设置添加了“选择资源路径”页面。指定路径的评价标准更为简单。

指定计划期间开始时间

可以对每次分派工作个别指定计划期间开始时间了。例如,对各个资源分别设置计划确定期间,新工作分派时让其不要分派到该期间内,类似这样的需求可以简单实现。

强化工作实绩

使用工作实绩细分定义差异实绩

使用工作实绩细分定义差异实绩

能够将实绩的开始(或继续)到中断(或结束)的各个片段化信息,作为工作实绩细分记录(类型:RI)指定。

这些详细日期时间会反映到甘特图表。另外对每个差异指定进度率(“区间进度率”),该部分的制造速度会反映到库存图表。

实绩数量反刷新

实绩数量反刷新

对工作指定实绩数量时,将工作的各个消耗品目的数量一律根据原来的制造:消耗的比率更新。工作的消耗品目数量很多逐个指定实绩数量该给您非常方便。

特殊键

对各种特殊键指定添加了更多变化。之前需要用计算表达式记述的地方可以通过从菜单即可选择特殊格式了。

数值规格键的特殊键字符串

作为工作的特殊数值规格键指定相关对象(主资源、链接品目etc)的数值规格时,特殊键指定增加了很多变化。可以参照各种对象指定数值规格了。

  • 一般:工序代码
  • 一般:工序局部代码
  • 一般:订单品目代码
  • 规格键:订单品目规格注释
  • 任务键:任务资源代码
  • 注释键:任务主资源注释

例如对工作设置显示“主资源数值规格<键:订单品目代码>”的表达式时,之前需要

.AssignedResource.NumSpec(.Order.Item.Code)

这样的设置。使用特殊的数值规格键

.NumSpec('#tnsp.%oi')

如此记述即可。

数值规格键的特殊键字符串

当然也能在嵌入GUI的选择键的可选特殊格式中选择使用。

强化基于特殊技能键的间接引用

新增了如下技能键。

  • 工序的注释
  • 工序的规格
  • 工序的规格的注释

对工序的注释设置要引用的技能模式这样的建模变得更为容易了。

工作场所计划

与副资源联动工作场所领域制约

工作场所内有子领域时,可以根据工作的副资源限定可布局的领域了。可以适用于各种场合,例如各个子领域有重量限制时,准备子领域所对应的副资源将资源量作为重量即可简单实现。

使用资源主导做工作场所计划

使用资源主导调度方法也可以对工作场所进行布局计划了。

用户界面

作业查看器

工作查看器(左下)和2个作业查看器

将工作查看器的作业视图(视觉化显示工作的网络结构)作为独立的视图显示。

显示大规模工作图的时候,停靠的工作视图显示范围有限,必须滚动确认时难以查看。如果时视图的话可以大范围显示。还便于分离窗口在多屏环境全屏显示。

另外可以同时制作多个作业视图,平铺各种作业图对比查看。

多项目的合并显示

合并3个项目配置图表

分散到多个项目的数据可以汇总显示到一个窗口了。

将各个项目输出的快照文件导入到一个项目,使用参照它们的自动行配置规则即可自由制作混合各个数据的图表行。

在各个地方添加"按记录全局查找"

强化了之前的版本添加的“全局查找功能”,可以在各种地方(例:资源甘特图表的任务的弹出菜单)进行全局查找了。

例如查找工作时可以从资源甘特图表、订单甘特图表、工作数据、工作查看器等各种地方找到记录。

查找结果列表显示在面板中,可以迅速直接跳转到各个记录的位置。

启动窗口的刷新

刷新了FLEXSCHE启动时或确认版本信息时显示的画面的图形表现,同时增加了显示信息。

以文件夹形式管理排程面板

以文件夹形式管理排程面板

在排程面板上可以制作任意的文件夹。文件夹中可以放置子文件夹或规则。根据排程规则和处理内容以及用途能够自由的分类管理。

在订单甘特图表同时显示关联对象

在订单甘特图表行可以显示通过订单关联或工作连接所连接的其他订单的工作了。上游的关联对象的更上有或下游的关联对象的更下游也包含在内。如此就可以更容易把我相关的其他订单的工作的分派时间了。

作为数值规格键的特殊的键字符串

其他订单的工作既可以显示在同一段,也可以显示到其他段,另外还可以各别指定。

向下游传播工作拆分

拆分1个工作时可以对下游工作适用同样的拆分处理。对以拆分工作连结的下游工作也可以。结合操作也一样,可以汇总结合下游工作。

通过拆分工作方法向下游传播

另外基于拆分工作方法进行自动拆分也添加了同样的功能。从前要用2个拆分工作方法和标记工作方法才能实现的现在可以更为容易的实现了。

FLEXSCHE EDIF

EDIF配置工具的新筛选器

从前的EDIF对于组的表格映射筛选器以外,对该表格映射相关的FLEXSCHE表格,外部表格也可以进行筛选了。可以简单的进行例如仅显示工序相关的表格映射、或与特定的csv连接的表格映射这样的筛选。

EDIF配置工具的新筛选器

基于计算表达式的灵活性扩展

EDIF导入中可以对带键字段指定计算表达式。例如导入数值规格时通过一个字段导入时从前需要实现决定类似"100/NS1;200/NS2"这样的格式的数据。现在由于可以指定计算表达式所以可以用计算表达式引用多个字段无需提前加工即可直接导入。

另外EDIF字段分离的键指定部分也可以设置计算表达式了。例如通过连续号码导入多个数值规格时,使用反复变量进行所定次数的导入时对键设置表达式引用反复变量即可简洁的设置映射定义。

导入对象数据

通过计算表达式指定键

FLEXSCHE WebViewer

服务器SSL对应

FLEXSCHE WebViewer服务器对应了SSL。指定证书能够以安全的方式通信。

计算表达式

并行执行计算表达式

在自动安排计划中占很大比重的分派工作的搜索处理为了性能的提高进行了并行处理,但在工作时间或时间制约定义中使用了计算表达式时,该计算并非并行处理。

此次由于将其并行执行使得在上述设置的时候排程时间也得以缩短。

示例

  • 工作数:1万
  • 候选资源数:50
  • 制造时间和最小时间制约使用计算表达式
并行化 Off8.0秒
并行化 On6.4秒

实现20%提速

编辑计算表达式

强化计算表达式的编辑窗口

强化计算表达式的编辑窗口

不仅仅时之前的注释,对于定量和字符串也分颜色显示,从而提到了编辑时的可读性。另外选择函数的状态下按帮助按钮可以展开相关函数的在线帮助。

多行字符串的文法(Here document)

输出包含换行字符时不是对字符串连接换行字符,而是可以直接如此显示了。在字符串的开头加上“@”。

错误的详细

在计算表达式的测试时发生错误可以显示错误的详细了。显示文法错误的详细或执行时错误详情,可特定错误发生源头的时候可以跳转到该处。

在计算表达式执行脚本小程序(Scriptlet)

虽然从前的计算表达式已经可以足以非常灵活、由于数据保护以及构造的因素还是会有无法超越的障碍。例如访问有复杂的复杂的数组和树结构的资源表几乎无法实现。

但使用版本20所添加的Script函数可以在计算表达式中使用可完整访问FLEXSCHE的COM模型的脚本(仅JScript)。与传统的解决方法“使用外部函数”比无需另外准备脚本文件、性能面也表现更好。
※“Scriptlet”即“脚本小程序”。

Scriptlet有基于JScript的单一的评价表达式的“简易记述法”和,包含控制结构或函数定义的通过return文返回结果的“完全记述法”两种。

下面的例子是简易记述法,返回上下文资源的时序要素数(之前的计算表达式无法取得)。

Long.Script("=_arg1.PrimaryTimeSeries.Count",$_object)

下面的例子是完全记述法,调查工序上下文的资源表中是否包含与链接数量不成比例能力值。

Bool.Script(@"
  var procRec = _arg1;
  var cBOR = procRec.CountOfBORRecs;
  for(iBOR=0;iBOR<cBOR;iBOR++) {
    var borRec = procRec.BORRec(iBOR);
    var cTasks = borRec.CountOfTasks;
    for(iTask=0;iTask<cTasks;iTask++) {
      var cUsables = borRec.CountOfUsables(iTask);
      for(iUsable=0;iUsable<cUsables;iUsable++) {
        var cUTs = borRec.CountOfUsingTimes(iTask,iUsable,SDTaskPart.SDTPartManufacture);
        for(iUT=0;iUT<cUTs;iUT++) {
          var method = borRec.UsingTimeMethod(iTask,iUsable,SDTaskPart.SDTPartManufacture,iUT);
          if(method==SDUTCMethodDuration||(method==SDUTCMethodCapacity&&
            (borRec.CapacityUnit(iTask,iUsable,SDTaskPart.SDTPartManufacture,iUT)
              &SDBCUnitPer_Mask)==SDBCUnitPer_None))
            return true;
        }
      }
    }
  } return false",$_object)

虽然Scriptlet如此力量强大但是有可能会出现副作用,可以说是能构成破坏内部状态的“双刃剑”。只有在正确理解FLEXSCHE编程语言的基础上、不得不用时再考虑使用。

S形曲线的函数

制造业随着生产量的累积单位成本降低的现象,也就是“经验曲线效应”很多时候都需要非线性计算。如图再量产开始时由于不适应比较低效,但随时量产的推进效率得以提高,最终达到接近理论上限值处。

S形曲线的函数

为了能够反映出上述的状态,添加了从Math.Logistic开始的多个S形曲线的相关函数。例如、Logistic曲线可以使用下面的takt表达式

$y := Math.Logistic(x, x_0, L, k)

返回将(x_0, L, k)作为参数的曲线的自身变量x的函数值。通过参数(x_0, L, k)控制上述右侧的Logistic曲线。

使用上述takt函数另外使用保有变量计算累积生产量则可以实现“伴随累计产量增加提高生产效率”。

其他还添加了表现Math.Erf以及Math.Tanh的S形曲线的函数。

添加的函数一览

增加了计算表达式中的可用函数,更为扩展了表现的自由度。

版本20添加的函数

基本型
Double类 <Double>.RoundToSigDigits
String类 <String>.Right
容器型
List类 <List>.Reverse_
<List>.Shuffle
<List>.Shuffle_
对象型
Record类 <Record>.ContextData
Intentory类 <Inventory>.Duplicate
<Inventory>.PeggedRecords
<Inventory>.PeggedQty
Item类 <Item>.FindProcGraphs
Operation类 <Operation>.ResultSubdivisions
<Operation>.ShapeEnvelopeTransform
<Operation>.ResourceRestrictionProtected
OperationGraph类 <OperationGraph>.ResourceRestrictionProtected
<OperationGraph>.ResourceRestrictionType
Order类 <Order>.Duplicate
<Order>.PeggedRecords
ProcGraph类 <ProcGraph>.LinkRelations
Connection类 <Connection>.Duplicate
Resource类 <Resource>.SearchForTaskForward
<Resource>.SearchForTaskBackward
Result类 <Result>.Duplicate
ResultSubdivision类 <ResultSubdivision>.ProgressRate
BeforeTest类 <BeforeTest>.LinkItem
AfterTest类 <AfterTest>.RequiredQtyMax
<AfterTest>.CheckPlacementValidity
VirtualOperation类 <VirtualOperation>.DistanceToPreviousAssignedTime
<VirtualOperation>.DistanceToNextTime
FreeCalendar类 <FreeCalendar>.Duplicate
Relation类 <Relation>.SharedRatio
所有的记录类 <所有的记录>.MakeList
其他
Project类 <Project>.ShiftBoundaries
<Project>.ActiveTimeChart
TimeChart类 <TimeChart>.RowResources
<TimeChart>.RowItems
<TimeChart>.RowOrders
Math类 Math.Logistic
Math.Softplus
Math.Tanh
Math.Erf
Math.DensityNormal
Math.DensityPoisson
Math.Factorial
Math.Nchoosek
Math.Gamma

面向开发人员

减少脚本文件重新加载频率

简单虽然擅长当场保存反复试错,但为了反映变更出需要每次执行重新加载导致无谓的系统开销。

所以改良为查看脚本文件的最终更新时间只有再有必要的时候才进行加载。特别是外部函数这种反复小型处理运行时实现了大幅的增速。

其他

以评估版打开时引导进行许可证设置

以正式版使用FLEXSCHE时需要进行许可证设置,由于根据许可证种类需要安装的或设置的场所不同有时候手续有些复杂。

FLEXSCHE启动时无法找到许可证信息时、可以选择直接以评估版启动还是设置为正式版。可以按照设置向导的说明顺利完成设置。

Setup helper 1
Setup helper 1

FLEXSCHE产品介绍

PAGETOP