FLEXSCHE製品のご紹介

FLEXSCHEバージョン21

FLEXSCHEバージョン21.0を2022年2月15日にリリースしました。多数の機能拡張が施されています。そのうちの主だったものをご紹介します。(バージョン20.0とバージョン21.0の差分)

FLEXSCHE Optimizer

難しい「スケジューリングロジック」の開発を容易に

スケジューリングルールを緻密に調整するには高度な技術力が要求されます。特に切り替えやバッチ炉のロットの組み合わせなど生産効率を上げることが納期遵守率を大きく左右する要素が登場する場合、「納期順」で作業を並べるだけでは満足する計画結果を得ることはできず、十分な結果を得るためにはスケジューリングルールの緻密な調整が必要になります。そういったスケジューリングルールの構築はアルゴリズムの開発に近く、高い習熟コストが必要で、こなせるエンジニアの育成も困難でしょう。

「FLEXSCHE Optimizer」は現状を打破するための製品群で、バージョン21と共にリリースされた「納期遅れ最小化再割り付け」メソッドはその第一弾になります。

動的段取り×厳しい納期

作業の並び順によって準備する時間が変わるという動的段取り制約がある上に、厳しい納期が課されているケースを考えましょう。既存の機能で対応するなら、「資源主導ディスパッチング」メソッドを用いて資源上の作業の並び順を段取り時間と納期の両方を考慮して制御する方法が考えられます。ただ、それを実現するためには、ボトルネックの抽出や並び順制御対象工程の特定を行った上で、工程間の制約を遵守させながら作業時間・動的段取り時間の分布などを分析して複数のパラメータを同時にチューニングすることも必要になります。いずれも大量の試行錯誤が不可欠で導入のコスト・リスク増につながります。(下の図の「従来の設計フロー」)

これに対し、「納期遅れ最小化再割り付け」メソッドは、割付け済み作業を対象とし、制約を満たす(上流・下流を含む)すべての配置の中から、メソッド実行前の割付き状態からより納期遅れの少ない配置を数理最適化手法を用いて自動的に探索します。単純に納期順に並べるデフォルトルールの計画結果から出発しても納期遅れがない、あるいは納期遵守率が改善した計画が得られます 。さらにより良い初期計画 が提供されれば、より短時間で最適な計画結果を得ることも期待できます。

「納期遅れ最小化再割り付け」メソッドの設定方法

対象作業を指定して、実行予定のPCのスペックに沿って[使用スレッド数]、[ソルバー最大使用時間]を設定すれば後は最適な結果がでるのを待つのみです。

スケジューリング/モデリング

実績から計画へのフィードバックの強化

計画と実際との差を一層小さくするために、作業実績からのフィードバック機能を強化しました。

実績不良数量

作業実績レコードに、入出力数量の実績値だけでなく、不良数量の実績値も指定できるようになりました。

消費品目に対して不良数量を指定すると、その分を減じた数量が実際の製造に利用された正味の数量とみなされます。

また、出力品目の実績数量と実績不良数量を蓄積していくと、歩留まり率の実績値を算出するのに活用できます。

実績数量伝播の強化

実績数量に基づいて下流の作業の入出力数量を更新する「実績数量伝播」機能を強化しました。

Propagate Result 1伝播前

Propagate Result 2伝播後

特に以下の点を強化しました。

  • 分割作業の一部だけが完了していても伝播できるようになりました。
  • 数量が減少した場合に、数量に応じて伝播先の分割作業を自動的に削除するようになりました。
  • 実績不良数量に対応しました。
  • 「実績・凍結作業の割付け」メソッド単体で実行できるようになりました。

パート別探索基点

作業主導ディスパッチングメソッドの探索基点を、前段取り/製造/後段取りのパート別に指定できるようになりました。

各パートの割付き日時を個別に制御したい場合に便利です。

手動分割時の数量丸め指定

手動分割時の数量を決めるときに「数量丸め」できるようになりました。

スライダバーで分割数量を決めるとき、従来は数量1ずつの移動量でしたが、丸め欄に指定した任意の数量の整数倍の移動量で数量を調整することができます。

ダースなど任意のロット数単位での指定が簡単になります。

大量データのメモリ使用効率をアップ

計画対象の作業数が多い場合など、大量のデータを扱う際には高速にスケジューリングを実行するためにFLEXSCHEは多くのメモリを使用します。
今回の改良でレコードのコメントやフラグなどで同一のキーを使用しているときにキーを共有することでメモリ使用量を減らすことができメモリの使用効率がアップしました。

実際のデータ:

以前のバージョン6.46GB
バージョン215.62GB

約13%メモリ使用量を削減

ユーザーインターフェース

エディタテーブル

フィルタ・ソートのパラメタの入力をしやすく

エディタテーブルのフィルタ・ソートのパラメタの入力をパラメタの型に合わせた種類の入力欄で行うことができるようになりました。

例えば日時型のパラメタの場合、従来は日時をテキストボックスですべて打ち込む必要がありましたが、これを日時用の入力欄にすることでよりわかりやすく、簡単に入力することができます。ブール型も場合もテキストを入力することなく、チェックボックスをクリックするだけで済むようになります。

列のヘッダ色と説明を変更可能に

ユーザー定義でない既定で追加されている列のヘッダ色や説明を変更できるようになりました。

入力項目をヘッダ色で色分けしてグルーピングしたり、既定の説明に注意事項を追加するなどマスタメンテナンスがしやすくなります。

スケジューリングパネル

エラーを含むルールをパネルから視認

計算式の不整合などで、読込み時にエラー状態となってしまっているスケジューリングルールについては従来からメッセージパネルにその旨が報告されています。

しかしながらメッセージパネルを注視しないと見落としてしまいがちなので、バージョン21ではそれに加えてスケジューリングパネル上のルールアイコンも強調するようになりました。

エラー状態のルールはアイコンの色が変わります。

FLEXSCHE Communicator

XML以外のファイルも自由に共有

Communicatorでは従来はプロジェクトフォルダにある任意のxmlファイルのみ共有することができました。バージョン21ではxml以外のファイルも、サブフォルダにあるファイルも共有できるようになります。

Communicatorパネルでは共有したファイルはフォルダ階層とともに表現されます。

FLEXSCHE d-MPS

MPSエディタで描画要素の凡例表示

MPSエディタのグラフ画面に凡例を表示できるようになりました。

グラフには複数の棒グラフ折れ線グラフが含まれており、各要素の意味を失念してしまいがちです。そういったときにマニュアルを開かずともGUI上ですぐに確認できます。

FLEXSCHE Viewer

Viewerプロジェクトで計画用チャートを参照

Viewer用データ書き出しの際にチャート情報も併せて出力でき、Viewer側ではデータを読み込む際にチャート情報に基づいてビューを形成できるようになりました。

これによって計画用プロジェクトで見ているチャートと同じチャートをViewer側でも簡単に表示できるようになりました。

計画側でチャートの設定を変更するとViewer側も自動的に追従します。

Viewerでアクションを実行

Viewerでもチャートを作成したり更新するアクションを実行できるようになりました。

特定のオーダーに関するチャートをメニューから動的に生成したり、ユーザーの入力に応じてチャートに構成を変更するといったことをカスタマイズなしに実現できます。

オーダーの右クリックメニューからチャートを作成

FLEXSCHE WebViewer

スタイルのカスタマイズ

チャートのスタイルをカスタマイズできるようになりました。
背景色・線の太さ・文字の大きさなど、好みの見た目に変更できます。

カスタマイズしたスタイル

標準のスタイル

時間軸の拡大範囲

チャートの時間軸が従来よりも拡大できるようになりました。
拡大した場合は1分刻みまで目盛りが表示されるので、時間の短い作業でも見やすくなります。

計算式

計算式の並列実行の拡張

<List>.Selectと言った計算上の独立性の良い関数は並列実行との相性が良く、バージョン20から一部を並列化に対応していましたが、新バージョンでは更に拡張し、<List>.Select/Sort/Max/Minなどに対応しました。また、呼び出した計算式ごとに、並列実行するかどうかも制御できるようになりました。

リストの要素数が多いもしくは式の計算量が多いほど並列処理による加速が顕著になり、場合によっては5倍以上に加速します。
※実験は8コアのCPUで行われたものです。

追加した関数の一覧

計算式で使える関数がさらに増えて、できることが一層広がりました。

バージョン21で追加した関数

コンテナ型
Listクラス <List>.Any
<List>.All
<List>.Intersect
<List>.Except
オブジェクト型
ShapePlacedクラス <ShapePlaced>.IsOverlapping
その他
TimeChartクラス <TimeChart>.TimeChartRows
<TimeChart>.Value

その他

障害発生時の対応強化

データやスケジューリングルールの設定の不備などでスケジューリング中に障害が発生したときにメモリダンプを自動的に出力するようにしました。

このファイルを提出することで障害発生時の状況を分析することができ、問題を解消できる可能性が高まります。

FLEXSCHE製品のご紹介

PAGETOP