FLEXSCHE製品のご紹介

FLEXSCHEバージョン23

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

FLEXSCHE AutoCalibrator

工程の能力値を作業実績情報に基づいてチューニングするFLEXSCHE DataTuner機能に加えて、作業実績情報から機械学習モデルを構築し、そのモデルを用いて計画時の段取り時間や製造時間をマスタの設定なしに推計する機能が追加されました。
それら二つの機能を合わせてFLEXSCHE AutoCalibratorという名称でリリースします。


多品種少量、製品ライフサイクルの短期化によって製造の現場は日々変化しています。
それに対応して精度の高い計画を立てるためには計画時の作業時間を適切に見積もる必要があります。
一般に製造時にかかる作業時間は様々なファクタによって変わります。
例えば、製造するものが切り替わる際にかかる段取り時間は、材質や色、幅や厚み、使用する治具、作る機械など様々なファクタによって変わるなんてこともあるでしょう。
これらを正確に見積もるためには現場へのヒアリングが欠かせません。そしてそれを日々変わる製造現場に合わせて継続的に行うとなると多くの手間がかかることは明らかです。

それらの手間を省くことができるのがFLEXSCHE AutoCalibratorです。
FLEXSCHE AutoCalibratorは現場からの作業実績情報を学習して機械学習モデルを構築することでマスタメンテナンスなしに作業時間を推計することができます。

作業実績から機械学習モデルを構築する

実際に作業を行った時の諸条件と掛かった作業時間を機械学習モデルに与えることで条件によって作業時間がどのように変化するかを学習します。

構築した機械学習モデルで作業時間を推計する

学習が終わって機械学習モデルが構築されれば計画時にこれから行う作業の諸条件を与えることで作業時間を適切に見積もることができます。

これにより計画担当者は日々のマスタメンテナンスの煩雑さから解放され計画立案に集中することでより質の高い計画を立てることが可能になります。

DataTunerの総称工程対応

DataTunerのチューニングでは、これまで総称工程設を対象外とする制限がありましたが、この制限を撤廃しました。 資源の委譲設定に基づき、作業はより広い「総称工程」に含まれるようになり、これによりDataTunerが総称工程全体をチューニングできるようになります。 たとえば、工程「組立A」「組立B」「組立C」の作業が、「組立」工程という一つの総称工程にまとめられ、この「組立」工程がチューニングの対象となります。

FLEXSCHE WebViewer

マイルストン表示

オーダーガントチャートとジョブガントチャートに対して、マイルストンを表示できるようになりました。
ユーザー定義のマイルストンイメージにも対応しています。

ジョブガントチャートの進捗表示

ジョブガントチャートに作業の進捗を表示するようになりました。

作業実績の進捗日時に応じてジョブガントチャートのバーの色が部分的に変わり、FLEXSCHE GPと同じ表示になります。

オーダーガントチャート行で表示対象、表示段位置を選択できるように

そのオーダーの作業だけでなく、引当等で繋がっている関連する別オーダーの作業についても表示対象に設定できるようになりました。また、合流や分岐がある場合の各作業や関連する別のオーダーの作業をどのように展開するかを指定できるようになりました。
これによりさらに幅広い表現が可能になります。

休日設定を引き継ぐ

土日・祝日など、FLEXSCHE GUIの休日設定がWebViewerのチャートにも引き継がれるようになりました。

ユーザー定義のページ

時系列チャートに限らず、任意のページをWebViewer上に表示できるようになりました。

例えば、新しく追加されたサンプル「ダッシュボード」のような画面を別途用意しておくことで、WebViewerのチャートの1つとして閲覧できます。

チャート名を指定して開く

1つのデータに対して複数のチャートがある場合に、URLのクエリパラメタでチャートを指定して画面を開くことができるようになりました。

例えば、
資源ガントチャートを開く
オーダーガントチャートを開く
のように使用できます。

FLEXSCHE Optimizer

スリッター計画

FLEXSCHEのスリッター計画機能は、時間と空間の両方を考慮した最適化計画を提供します。この機能を利用することで、スリッタ加工の制約を守りながら、母材の無駄を削減し、効率的な計画を立案することができます。また、属人化を解消し、所要の優先度や納期を考慮した計画作成が可能になります。さらに、FLEXSCHEの既存機能と連携し、時間上のスケジューリングを一通り完結することができるため、製造現場の効率化とコスト削減に大きく貢献します。

利用する際の流れ

始めに、作成したい製品(所要候補)と使用する原材料(母材)を選びます。次に、「Optimizer.SlitterPlanning」機能を起動して、スペースに関する初期のスリッター計画を作成します。空間上の計画ができたら、FLEXSCHEの標準機能を使って時間に基づく計画を立てます。ここでは、作成した図面を参照し、takt式を用いて生産オーダーを段階的に生成し、各作業を割り当てます。

Webアプリケーションを利用して生成された図面およびFLEXSCHEのガントチャートを使って、加工作業の順番や割り当てを確認します。ここで、必要に応じて計画の調整を行うこともできます。

全ての計画(空間と時間に関する計画)を確認し終えたら、次の原材料に対する計画作成へと移ります。このプロセスは、全ての製品が計画通りに生産されるまで繰り返されます。

サンプル「スリッター計画」紹介

このサンプルでは、二段階にわたるスリット加工プロセスを紹介します。最初の段階では、原材料のスリット加工を縦方向にのみ行い、二次加工では縦方向のスリットと横方向のカットが可能です。

作成された図面には、加工プロセスが順番に「原材料ロールの設置」、「初回のスリット加工」、「小サイズロールの設置」、「二回目のスリット加工」と進む様子が示されています。複数のスリット機を使用することで、作業の一部を同時に進めることができ、この流れは図面で確認することができます。

各スリット機への加工作業の割り当ては、ガントチャートを通じて明確に確認できます。さらに、どのように母材が切断されるかについても詳細な図で示されており、同一要件を持つ二回目のスリットが横切りを伴って同時に行われる場合や、それが不可能な場合は順番に計画される様子が視覚的に理解できます。

詳細の紹介・手順および動作などはサンプルにてお願いします。

瑕疵を考慮したスリッター計画

製造プロセス中に母材に瑕疵が生じることは、現実の製造現場ではよくあることです。これらの瑕疵を考慮に入れたスリッター計画が必要な場面もあります。SlitterPlanning関数に瑕疵の情報を入力することで、これらを避ける計画を自動的に作成できます。

たとえ瑕疵が数百にも及ぶ場合でも、設定を通じてこれらを効果的に処理し、瑕疵が密集するエリアを避けることで、材料の無駄を最小限に抑えることが可能です。

FLEXSCHE CarryOut

API公開

CarryOutのAPIを公開しました。

HTTP APIを使用して任意のタイミングでCarryOut上のデータを取得・更新するだけでなく、WebSocket APIを使用してCarryOut上で何らかのデータが更新したときに通知を受け取ることも可能です。

これによって、従来よりも柔軟に、様々なクライアントと連携できるようになります。

実行できるスケジューリングメソッドの制限撤廃

従来は、一部の高度なスケジューリングメソッドがCarryOutで実行できないなど機能に制限がありましたが、その制限が撤廃されました。

コンテナ対応

CarryOutサーバーを正式版として起動するためのDockerイメージをリリースしました。

CarryOutで複数のプロジェクトを運用したい場合、従来は複数のWindows Server OS が必要でしたが、これからは1つのWindows Server OS で複数のプロジェクトを扱えるようになります。

設定ユーティリティーで評価版の指定

CarryOutとCommunicatorも、設定ユーティリティーで評価版で起動することを指定できるようになりました。
これによりXMLファイルを直接編集する必要がなくなりました。

入門ガイド

FLEXSCHE CarryOutの入門ガイドが追加されました。FLEXSCHE GPと連携した計画→指図→遂行のサイクルを体験いただけるような内容になっています。

FLEXSCHE Communicator

共有ファイルのチェックアウト

管理コンソールから共有ファイルをチェックアウトしている人を確認できるようになりました。
複数人での編集時に、誰が編集中なのかを把握しやすくなりました。

作業場計画

複数タスクに対する作業場計画

一つの作業の複数のタスクに対して作業場資源への配置を計画することができるようになりました。

たとえば、前段取り→製造→後段取り というパート毎にワークを移動させながら配置していく計画を、簡単に立案することができます。

スケジューリング

資源表にない実績資源で割り付け

作業実績テーブルで実績資源を指定できますが、従来は、マスタとして資源表に登録されていない資源に割付けることはできませんでした。

新しいバージョンでは資源表になくても指定されている資源に割付けられるようになり、実績の反映精度が向上しました。

【従来】

【今回】

作業分割時に引当てを分配

引当てられている作業を分割した時に、それぞれの引当てを生成された分割作業に分配することができるようになりました。

逆に、分割作業を結合する時にも、引当てを元の作業に継承することができます。

【分割前】

【分割後】

オーダー分割でも単位数量分割

作業分割だけでなく、オーダー分割でも任意の単位数量による分割ができるようになりました。
分割された各オーダーの納期は、それぞれのオーダー数量比率に応じて分散します。

資源主導ディスパッチングのブレイクポイント

「割付け許可条件の評価後」を追加しました。
資源主導ディスパッチングにはすでにいくつかのブレイクポイントがありますが、それらに加えて割付け許可条件の判定時の様子を観察できるようになります。

補充オーダー生成メソッドのブレイクポイント

補充オーダー生成メソッドに対して、実行中に処理を一時停止して状況をGUI上で確認できるようになりました。

補充オーダーが生成されていく様子をきめ細かく観察することができます。

モデリング

動的段取り

割付ける作業の副資源上の割り付き済みの先行作業/後続作業についても動的段取りを更新できるようになりました。(※一部制限あり)

上の図のように作業0001~0004が割り付いている状態で、資源1を主資源、資源2を副資源とする作業が間に割り付くとします。

オレンジの作業が0001と0002の間および0003と0004の間に割り付く時、これまでは上の図のように主資源である資源1における先行作業0001と後続作業0002の段取りが更新されていました。

今後は設定により、副資源である資源2における先行作業0003と後続作業0004の段取りも更新できるようになります。(これまでと同様に主資源上のみを対象とすることもできます。)

複数の班資源で資源量を連動

一つの作業の複数のタスクでそれぞれ可変能力班資源を使用する際に、各班資源に対するタスク資源量を連動させることができるようになりました。

たとえば、一つの工程で関与する作業者の人数が時間帯によって変動し、かつ、各作業者が一人一つの工具を必要とする場合に、各時間帯における作業者と工具の数量を一致するように制約することができます。

タスク資源間の仕様/数値仕様制約

資源の仕様制約/数値仕様制約で、同じ作業の別のタスク資源の仕様や数値仕様を制約できるようになりました。

たとえば、全ての作業に対して一律に資源の組合せを制限するのに便利です。

連結間接参照キー

間接参照キーを連結して複数指定できるようになりました。

FLEXSCHEでは作業者毎に能力が異なる場合などに「スキル」を指定して能力の違いを表現できます。
何のスキルなのかを表すスキルキーには、従来から間接的な参照が可能でした。例えばオーダーのコメントなどを参照してその値をスキルキーとすることができます。
この間接参照するキーを連結して指定できるようになりました。これによって、より柔軟なキーの指定が可能となります。
例えばオーダー品目と副資源の組み合わせでスキルが決まる場合などに、間接参照キーとしてオーダー品目コードと副資源タスクの資源コードを連結する、といったことができます。

原材料候補にロケーションを適用

作業割付け時に複数の入出力リンクを動的に生成する「原材料候補」で、生成されるリンク品目にもロケーションが適用されるようになりました。

FLEXSCHE EDIF

作業更新で更新可能な項目の拡張

作業(更新)のインポートで取り込み可能な項目に、以下の4つが追加されました。

  • 作業期間制限
  • 作業期間制限の保護
  • 資源制限
  • 資源制限保護

これにより外部システムからFLEXSCHEにデータを連携する際に、作業の割付に関する情報をより詳細に設定できます。
例えば外部システムに登録されている、発注予定の外注先を資源制限に取り込むことで、FLEXSCHEでも同じ外注先を用いた計画を立案させることができます。

資源表利用可能区分のエクスポートのコンテクストを資源表利用区分に

資源表利用可能区分のエクスポートの設定で、エクスポートする式や条件に「資源表利用区分」コンテクストが利用できるようになり、複雑な式を書く必要があるなど今まで一手間かかっていた内容を簡単にエクスポートしたり条件を設定できるようになりました。

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

サンプル「ダッシュボード」

FLEXSCHEではWebコンポーネントをビューやパネルとして組み込むことができ、それを活用したサンプル、「ダッシュボード」を追加しました。
スケジューリングした結果の納期遅れの数や機械の稼働状況を表示しています。スケジュールの結果が変わるとそれに応じてボードの表示も変化します。また、グラフなども表示可能です。
サンプルはFLEXSCHE GPのものですが、FLEXSCHE Viewerでも同様に表示することが可能です。

差立てチャートの列の構成

差立てチャートで列の構成を計算式で指定できるようになりました。
ガントチャート上で作業やオーダーを選択してそれに関連する資源を列とした差立てチャートを作成する、といったことが可能になります。

オーダーのキー付き日時にマイルストン

オーダーのキー付き日時で設定した位置にオーダーのマイルストンを表示できるようになりました。

ウィンドウ一覧ダイアログの改良

「ウィンドウ一覧」ダイアログを改良しました。

タブグループ内で順番を入れ替えられるようになりました。複数まとめて入れ替えることもできます。
また保護の状態もチェックボックスで切り替えられるようになりました。

接続先種別に引当て情報

作業ビューワーの入出力ビューで、表示されている接続が引当て関係に基づくものなのかどうかを識別できるようになりました。
対象が引当てに基づいたものである場合に「接続先種別」に接頭文字"*"が付与されます。

作業ビューワーから作業のD&D

作業ビューワーから作業のボックスを時系列チャートにドラッグ&ドロップすることで作業の割付けができるようになりました。

サインボードの区切り線を非表示に

サインボードの区切り線を非表示にできるようにしました。
日毎など任意の区間ごとに内容計算式で設定するときや、データキューブを表示するときなど、各要素との境界線が表示されます。
例えば、マイルストンのように特定の日にのみ情報を表示したいといった用途の場合、大半に表示内容がない中、すべての日に区切り線が描かれるのは煩わしいです。
そういったときには境界線を非表示にすることで視認性が向上します。

Excelに出力したときの差立てチャートの罫線

差立てチャートをExcelに出力したときに、以前のバージョンではFLEXSCHE上で描かれていた罫線が再現されていませんでしたが、新しいバージョンでは罫線も表示され、より見やすくなりました。

高DPI対応、閉じるやピン止めのボタン、ツリーコントロールのチェックボックスを文字サイズに合わせる

システムの文字サイズを大きくしているときにパネルのピン止めボタンや閉じるボタン、ツリーコントロールのチェックボックスなども合わせて拡大するようにし、より操作しやすくなりました。

運用

ライセンスキーアップデータで接続テスト

ライセンスキーアップデータで、ライセンスキーの接続テストができるようになりました。 代替ライセンスのアクティベート時などに、ライセンスサーバーとの接続に問題ないかを確認できるようになりました。

パーミッションの各種データセット対応

すべてのデータセットと、カスタムデータセットでパーミッションを適用できるようになりました。 複数人での編集をする際に、より細かく権限の制御ができます。

計算式

資源表関連のオブジェクト型を追加

takt式で扱える型として、資源表、資源表タスク、利用可能区分、利用時間が追加されました。 工程や作業から関連する資源表を参照できるようになり、資源表からは資源表タスク、資源表タスクからは利用可能区分をそれぞれ参照できます。 当然それぞれオブジェクトが保持するプロパティも参照できますし、項目によっては代入も可能です。

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

例(コンテクスト:工程)

 $borTask := .BOR.Task(0),
 $usable := $borTask.Usable(1),
 $usingTime := $usable.UsingTime(TaskPart.Manufacture, 0),
 $usingTime.Capacity	//能力値

<定数>.Name/FullName/ShortDescription

定数の意味や説明を値として取得できるようになりました。

例えばオーダーにあるオーダー種別については、それぞれ以下のような文字列を得ることができます。

.OrderType.Name ⇒ "Production"
.OrderType.FullName ⇒ "OrderType.Production"
.OrderType.ShortDescription ⇒ "生産オーダー"

計算式でリストから選択するダイアログを表示

関数 UI.SelectFromList で、ダイアログを表示して指定したリストから項目を選択することができるようになりました。

アドインを開発しなくても計算式だけで簡単に実現できます。

追加した関数の一覧

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

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

基本型
全ての基本型 <全ての基本型データ>.Name
<全ての基本型データ>.FullName
<全ての基本型データ>.ShortDescription
オブジェクト型
Recordクラス <Record>.Property
Itemクラス <Item>.GroupSummingCoefKey
Resourceクラス <Resource>.NumSpecRestrictionKeys
<Resource>.SearchForTime
Procクラス <Proc>.BOR
<Proc>.BORKeys
BORクラス 各種関数を追加
BORUsableクラス 各種関数を追加
BORUsingTimeクラス 各種関数を追加
FreeCalendarクラス <FreeCalendar>.EffectiveStartTime
<FreeCalendar>.EffectiveEndTime
Connectionクラス <Connection>.EnableSplitConnection
Orderクラス <Order>. ReplenishmentTargetTime 代入可に
Operationクラス <Operation>.BORKey
<Operation>.CurrentBOR
<Operation>.BOR
<Operation>.BORKeys
<Operation>.SubstituteCandidates
Taskクラス <Task>.CurrentBORUsable
<Task>.ShapeEnvelopeTransform
<Task>.ShapeFixed
<Task>.ShapeInfo
<Task>.ShapeTransform
VirtualOperationクラス <VirtualOperation>.BORKey
<VirtualOperation>.CurrentBOR
<VirtualOperation>.CurrentBORUsable
<VirtualOperation>.TaskType
AfterTestクラス <AfterTest>.CurrentCandidateMaterials
<AfterTest>.PrecedingEndTime
<AfterTest>.PrecedingTeardownStartTime
<AfterTest>.PrecedingTeardownEndTime
<AfterTest>.FollowingStartTime
<AfterTest>.FollowingSetupStartTime
<AfterTest>.FollowingSetupEndTime
DataSetクラス <DataSet>.Property
ItemSetクラス <ItemSet>.Create グループを生成可能に
SpecSetクラス <SpecSet>.Create
DataSpaceクラス 各種関数を追加
その他
Projectクラス <Project>.Holidays
MovingOperationInfoクラス 各種関数を追加
DataSpace 関数  
UI UI.SelectFromList
Optimizer Optimizer.SlitterPlanning
Optimizer.SlitterPlanningUpdateWebApp

開発者向け

Pythonでアドイン

FLEXSCHEのアドインをPythonで記述できるようになりました。

型定義ファイルによる入力補助を利用したり、Pythonの豊富なライブラリを使ってアドインを実装できます。

(コード例)

def show_operation_code(key_entity: AIM.KeyEntity):
  time_chart: GUI.TimeChart = Script.Cast(
    key_entity.get_ParamObject(int(GUI.ParamIDType.ParamIDTimeChart)), GUI.TimeChart
  )
  task: SData.SDTaskRec = Script.Cast(
    key_entity.get_ParamObject(int(GUI.ParamIDType.ParamIDTaskRec)), SData.SDTaskRec
  )
  if task.IsBound:
    time_chart.Project.Panels.MessagePanel.AddLine("general", task.OperationRec.Code)
  return False

IView.Printの引数でファイルパスやタイトル、プリンタ設定を与えられるように

規格化されたファイル出力をサポートするプリンタを用いて印刷する際、出力先パスを与えられるようになりました。
従来出力先は所定のパス・ファイル名でしたが、任意のパス・ファイル名で出力できるようになります。
具体的には

 BOOL IView.Print ( BOOL Auto, IDispatch* Direction)

第2引数に定型のXMLDOMを与えます。
※現時点ではGUIが保持するView限定の機能です

FLEXSCHE製品のご紹介

PAGETOP