pyfinemotion: モーションコントローラ操作Pythonライブラリ

pyfinemotion マニュアル

pyfinemotionについて

pyfinemotionはテクノのモーションコントローラをPythonで操作できるライブラリです.
- PythonからGコード及びテクノ独自のテクノコードの書込&実行
- JOG移動やポイント移動などの単発動作コマンドの発行
- DIDO信号の操作
- モーションコントローラのロギング
等の多彩な操作を行い, 高精度なモーション制御をpythonで行えます.

pyfinemotion入手方法

モーションコントローラ購入時に付属するCDから入手可能です.
既にモーションコントローラを購入済みの方はお問い合わせ下さい.

pyfinemotion動作環境

対応モーションコントローラ: SLM8000, PLMC-M3EX, RT64EC, RT64M3
動作OS: Windows7 以降のWindos OS(32bit, 64bit対応), Linux(SLM8000のみ対応, 開発中)
Pythonバージョン Python 3.0以降
必要ライブラリ: 購入時付属のdllファイル
必要Pythonモジュール
- numpy : <https://numpy.org>

インストール方法

pyfinemotionディレクトリ直上(setup.pyがあるディレクトリ直上)でpip install を実行して下さい.
pip install ./pyfinemotion

ディレクトリ構成

pyfinemotion/
|--- docs/            (マニュアル)
|    |--- index.html
|
|--- pyfinemotion/    (ソースファイル)
|
|--- example/         (サンプルプログラム)
|
|--- lisence.txt      (ライセンスファイル)
|--- requirements.txt (依存Pythonライブラリ)
|--- setup.py         (インストーラー)

テクノのモーションコントローラーについて

テクノのモーションコントローラーの詳細については製品紹介ページをご覧下さい. <https://open-mc.com/products>
また, 会員登録をして頂くことで,
マニュアルをダウンロードできます. <https://open-mc.com/membership>
SLM8000:小型なワンボードモーションコントローラです. パルス列指令サーボを使用します. <https://open-mc.com/products/pdt01.html>
PLMC-M3EX:横河電機PLC専用のモーションコントローラーです. メカトロリンクサーボを使用します. <https://open-mc.com/products/pdt02.html>
RTMC64-M3/EC:汎用PCで動作するモーションコントローラーです. メカトロリンクまたはEtherCATサーボを使用します.<https://open-mc.com/products/pdt05.html>

モーションコントローラーの初期設定について

モーションコントローラーに付属するセッティングPCソフト, Rom設定ソフトを使用して,
モーションコントローラーの初期設定を行ってください.
pyfinemotionは設定後に作成されるiniファイルを読み込み,
モーションコントローラーと通信をします.

操作例の紹介

SLM8000での操作例を紹介します.

基本操作

from pyfinemotion import Slm8000
#slm8000操作クラスのインスタンス化
pyslm = Slm8000(inifilepath="./slm8000drv.ini")
#通信開始
pyslm.init_comm()
#通信終了
pyslm.quit_comm()

プログラム書込み&読み込み

from pyfinemotion import Slm8000

pyslm = Slm8000(inifilepath="./slm8000drv.ini")
#通信開始
pyslm.init_comm()
#テクノコード命令作成
tcode_program_string ="PNO02;\nLIN X10000 F1000;\nEND;"
#プログラムブロック10にタスク0として書込み
pyslm.write_program_from_str(tcode_program_string, task=0, programblock=10, code="Tcode")
#タスク0, プログラム番号2番のプログラムを読み込み
slm8000_tcode_program = pyslm.read_program(task=0, pno=2)
#通信終了
pyslm.quit_comm()

プログラムの実行

from pyfinemotion import Slm8000

pyslm = Slm8000(inifilepath="./slm8000drv.ini")
#通信開始
pyslm.init_comm()
#タスク0リセット
pyslm.reset_task(task=0)
#タスク0, プログラム2を選択
pyslm.select_program(task=0, program=2)
#タスク0, プログラム2を実行
pyslm.start_program(task=0)
#通信終了
pyslm.quit_comm()

SLM8000ステータス取得

from pyfinemotion import Slm8000

pyslm = Slm8000(inifilepath="./slm8000drv.ini")
#通信開始
pyslm.init_comm()
status = pyslm.read_status()
#タスク0のステータスを確認
#タスク0の状態を確認
task0_status = status.get_taskinfo(0)
print(task0_status)

#タスク0のX軸の状態を確認
print(task0_status["X"])

#通信終了
pyslm.quit_comm()

SLM8000パラメータ取得

パラメータの設定に関してはセッティングPCソフトより行ってください.

from pyfinemotion import Slm8000

pyslm = Slm8000(inifilepath="./slm8000drv.ini")
#通信開始
pyslm.init_comm()
#サーボモーターのパラメーターを取得
servoparams = pyslm.read_servoparams()
#第1物理軸サーボモーターのJOG送り速度を取得
print(servoparams.servo[0].jogfeed)
#通信終了
pyslm.quit_comm()

サンプルプログラムの紹介

pyfinemotionのサンプルプログラムを.pyファイル, .ipynbファイルで提供しています.
サンプルプログラム一覧
ファイル名 内容
example_Operation.py プログラム読込, 書込, 実行
example_Direct_Operation.py 操作コマンド実行
example_TPC_Logging.py TPCロギング実行
example_Check_Status&Parameters.py ステータス, サーボパラメーター確認
example_DNC_Operation.py DNC運転(要DNCオプション)
example_MacroVariable.py マクロ変数操作(要マクロオプション)

用語集

テクノのモーションコントローラで使用する用語について説明します.

API 簡易説明

pyfinemotionからモーションコントローラに指令を送るAPIの概要を説明します.

API 詳細説明

pyfinemotionのAPI詳細(実行可能条件, 実行順序, 引数, 戻り値, 注意事項等)を説明します.
APIは役割ごとに以下のクラスに分割されています.
各クラスの役割は以下の通りです.

SLM8000操作API 詳細説明

PLMC-M3EX操作API 詳細説明

RTMC64-M3操作API 詳細説明

RTMC64-EC操作API 詳細説明

F&Q

Q1. プログラム実行エラーが出てしまう

A. 呼び出したメソッドがコマンド実行条件を満たしていない可能性があります.
API詳細から実行可能条件を確認して下さい.

Q2. 現在座標を取得したい

A. 座標を連続的に取得したい場合にはTPCロギングをご利用下さい.
座標を一度だけ確認をしたい場合には, read_status()からステータス情報を取得し,
戻り値のstatusクラスの,
status.get_taskinfo()から確認できます.

Q3. モーションコントローラの制御, プログラムについて詳しく知りたい

詳細な仕様が記述された操作マニュアルを用意してあります.
テクノの会員登録をして頂くことでダウンロードできます.

注意事項

1. オプション購入が必要な操作は実装していません.(DNC, マクロ機能, ポイントテーブルを除く)
セッティングPCよりご利用ください.
2. サーボパラメーターの書込みは動作の安全のため実装していません.
サーボパラメーターの読み込みのみ対応しています.

ライセンス

Copyright © 2020 Techno
本ソフトウェアの著作権は株式会社テクノが所有しています.
本ソフトウェアの使用により生じたいかなる被害, 損害に対して, 株式会社テクノは責任を負いません.

問い合わせ

本ソフトウェアの使用に際して質問, 確認事項がありましたら株式会社テクノまでご連絡ください.

詳細検索