インターフェースの取得

プレリリース版のマニュアルを表示しています。安定リリース版(星マーク付き)のマニュアルを表示するには、ページの右上隅にあるバージョン番号をクリックして切り替えてください。

現在のMech-Vizプロジェクトに使用されているステップを取得

現在のMech-Vizプロジェクトに使用されているステップを取得するための関数は、次のとおりです。

def get_viz_task_names(self, msg={}, timeout=None):
    result = self.call_viz("getAllTaskNames", msg, timeout)
    logging.info("Property result: {}".format(json.loads(result)))
    return result

get_viz_task_names()を呼び出した後、json形式の文字列を返します。これは、取得したすべてのステップを示します。

Mech-VizまたはMech-Visionプロジェクトのパラメータを取得

Mech-VizまたはMech-Visionプロジェクトのパラメータを取得するための関数は、次のとおりです。

def get_property_info(self, msg={}, get_viz=True, timeout=None):
    result = (self.call_viz if get_viz else self.call_vision)("getPropertyInfo", msg, timeout)
    logging.info("{0} property result: {1}".format("Viz" if get_viz else "Vision", json.loads(result)))
    return result

msgパラメータに「type」を指定せずに呼び出した場合、すべてのパラメータを取得することを意味します。指定すると、対応するパラメータのみが取得されます。例えば、 get_property_info(msg={"type": "move"}) を呼び出した後、json形式の文字列を返します。これは、取得された移動ステップパラメータを示します。

Mech-VisionまたはMech-Vizの実行ステータスを取得

Adapterクラスのon_exec_status_changed()関数は、Mech-VisionまたはMech-Vizの実行ステータスを取得するために使用されます。Mech-VisionまたはMech-Vizが実行を終了するたびに、自身の実行情報をon_exec_status_changed()関数を介してAdapterに返します。したがって、on_exec_status_changed()関数は、Mech-VisionまたはMech-Vizプロジェクトの実行終了後に呼び出されます。

def on_exec_status_changed(self, req_dict, err_dict=None):
    project_dir = req_dict.get(jk.project_dir, "")
    source_app = req_dict.get(jk.source_app, "")
    exit_info = req_dict.get(jk.exit_info, {})
    error_code = exit_info.get(jk.error_code, "")
    msg = exit_info.get(jk.msg, "")
    project_dict = self.get_vision_projects_dict()
    if source_app == jk.mech_vision and project_dir in project_dict.values():
        project_num = list(project_dict.keys())[list(project_dict.values()).index(project_dir)]
    elif source_app == jk.mech_viz:
        project_num = 0
    else:
        return
    self.err_dict[project_num] = [error_code, msg] if error_code and error_code[-4:] != "0000" else None
    if err_dict:
        err_dict[project_num] = [error_code, msg] if error_code and error_code[-4:] != "0000" else None

上記コードに使用される変数の説明は下表の通りです。

変数名 説明

jk.project_dir

プロジェクトディレクトリ。

jk.source_app

実行ステータスの出力先(値はMech-VisionまたはMech-Viz)。

jk.exit_info

ソフトウェアの終了情報(データ型は辞書)。

jk.error_code

ステータスコード番号。

jk.msg

ステータスコードの番号に対応する詳細情報。

project_dict

保存されるプロジェクトの関連情報(データ型は辞書)。例えば、{1:"simulate_vis"}はMech-Visionプロジェクトの番号が1で、プロジェクト名がsimulate_visです。

0はMech-Vizプロジェクトとなります。

jk.error_code(ステータスコード番号)は、下表に示すように、以下の2つの種類(Mech-VisionとMech-Viz)に分けられます。

種類 ステータスコード番号 ステータスコード番号に対応する情報

Mech-Visionに関するステータスコード

CV-EXXXX

VISION_RUN_ERROR

CV-E0201

VISION_CAMERA_CONNECT_FAIL

CV-E0401

VISION_RECIPE_NOT_SET

CV-E0403

VISION_RECP_NUM_OUT_RANGE

MP-EXXXX

VISION_PLANNER_RUN_ERROR

MP-E0001

VISION_PLANNER_PLAN_FAILED

MP-E0005

VISION_PLANNER_NOT_REACHABLE

MP-E0008

VISION_PLANNER_SINGULARITY

MP-E0011

VISION_PLANNER_COLLISION

MP-E0019

VISION_PLANNER_NO_TARGET_IN_VISUALMOVE

MP-E0021

VISION_PLANNER_VISION_SERVER_NOT_REGISTED

MP-E0022

VISION_PLANNER_SET_TOOL_INVALID

Mech-Vizに関するステータスコード

MP-EXXXX

VIZ_RUN_ERROR

MP-E0001

VIZ_PLAN_FAILED

MP-E0005

VIZ_NOT_REACHABLE

MP-E0008

VIZ_SINGULARITY

MP-E0011

VIZ_COLLISION

MP-E0016

VIZ_VISION_NO_RESULT

MP-E0017

VIZ_VISION_NOT_CALLED

MP-E0018

VIZ_VISION_NO_CLOUD_IN_ROI

MP-E0019

VIZ_NO_TARGET_IN_VISUALMOVE

MP-E0020

VIZ_VISION_REUSE_PLAN_FAILED

MP-E0021

VIZ_VISION_SERVER_NOT_REGISTED

MP-E0022

VIZ_SET_TOOL_INVALID

MP-E0023

VIZ_BRANCH_OUTPORT_ERROR

さらに、on_exec_status_changed()関数をself.err_dictに継承し、self.err_dictを処理できます。サンプルコードは以下の通りです。

def on_exec_status_changed(self, req_dict, err_dict=None):
    super().on_exec_status_changed(req_dict, err_dict)
    err_list = self.err_dict.get(0, [])
    if err_list and err_list[0] not in ["MP-E0020"]:
        self.handle_viz_error()

Mech-Mindは、お客様のプライバシーを重視しています

このサイトでは最高の体験を提供するために Cookie を使用しています。サイトの閲覧を続ける場合、Cookie の使用に同意したことになります。「拒否する」を選択すると、このサイトを訪れた際に追跡や記憶が行われないように単独の Cookie が使用されます。