>
== Overview ==
[[attachment:configuration|{{attachment:スクリーンショット 2017-05-01 19.20.17.png|latest sensitivity curve|width="500"}}]]
This system is to control the stepper motor of GAS and IP in VIS suspension using the KAGRA DGS network.
* If you control with serial in local place, please see the manual written by Sekiguch [[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=2512|JGW-T1402512]].
* In this system, anyone control stepper motor with medm screen via EPICS channels managed by PCAS (Potable Channel Access Server).
* 2017/10/13 : medm screen is not yet.
== Motor Specifications ==
=== Environment ===
* Controller: TMCM-6110
* Motor: AML D42.2
=== Motor drive method and motor Rotation ===
* FULL step: 200steps / Rotation
* Micro step(x256): 51200steps / Rotation
=== stallGuard2 ===
* [[KAGRA/Subgroups/DGS/Projects/StepperMotor/stallGuard2|stallGuard2]]
== How to use ==
=== About the control script ===
コマンド送信はPythonのソケット通信ライブラリを使って実装、ライブラリ化した。
* モータドライバ側はBinaryでコマンドを受け付けるので注意が必要。設定すればASCIIでも可。
* バイナリコマンドを直接socketで送りつけるPythonコードがあったので、それを使う。
* それ改変して、最小限動かすのに必要な関数を集めたPythonクラス ’KAGRA_stepper’ を用意した。
* 実際のモータを動かすための設定ファイルを用意した。(モータの配線、IPの自由度へのマトリックス)
=== Quick Start ===
Run the PCAS to activate the EPICS channels for stepper motor control.
* PCAサーバは、各EPICSチャンネルの値の変更に応じて指定のコマンドを送るためのもの
* なので起動しないと、ボタンを押してもコマンドが送れずモータが動作しない。
* 起動をするには、MEDM画面からボタンを押すだけ(の予定)
After activate, control the stepper motor using the medm screen
* --(まだスクリーンをつくっていない)--
* 速度を設定する。デフォルトで500
* 加速度を設定する。デフォルトで500
* 動かす。FWDで正転、REVで反転
== Setup ==
See [[KAGRA/Subgroups/VIS/OpsManual/Stepper| Stepper motor driver installation]]
=== Nport5150 ===
Serial setting
* Baudrte : 9600
* DataBit : 8
* StopBit : 1
* Parity : None
* FIFO : Enable
Network setting
* IPaddress : 10.68.150.xx (Please change the IP address according to where you want to use it.)
* Netmask : 255.255.0.0
* Gateway : 10.68.10.1
* IP Configuration : Static
Operation Mode setting
* choose ’TCP Server Mode’
* port : 4001
=== TMCM6110 ===
Do not use in ASCII mode. Use binary mode.
=== Control Script (No need) ===
ドライバーに接続されているモータの名前を[[https://www.dropbox.com/home/Personal/miyo/script/stepper?preview=param.py|param.py]]に書き下す。
* param.py はモータ名とドライバに接続するポート番号を定義するためのファイル。
* 原則的に一台目をGAS,二代目をIPにつかう。
* しかし,TypeBではランダムで配線しているので,かならずparam.pyを書き換える。
IPだけ,どのモータがIPの自由度にたいしてつながっているかparam.pyに書き下す
* 同時に動かすべきモータの組み合わせをparam.py内にある行列に書き換える。
== How to actuate (On 18/02/26) ==
=== Actuate fishing rods from medm screen (On 18/06/04) ===
==== Initial activate ====
{{{
$ ssh k1script1
$ step_start SERVER_NAME
}}}
SERVER_NAME is the EPICS channel name after K1:STEPPER_. (i.e., PR2_GAS) If the lines
Stepper has been migrated from k1script (Python2) to k1script1 (Python3).
{{{
Reconnecting...
Testing connection:
...ok
}}}
appears in the command line, it is ok. otherwise, check server configuration.
When the work is finished, step_start is exited.
After 2020/10/26, you can add "-kill" to the command argument to terminate it.
{{{
$ step_start SERVER_NAME -kill
}}}
==== How to use ====
* Press "UPDATE" to check the current position of the motor. Note that the number is initialized when you turn the driver off.
* Set '''RELATIVE''' steps to actuate in "STEP" box. (i,e, it does driver.setTargetPosition(POSITION+STEP,motorAddress))
* Press '''ENTER''' one or more times until the desired position is reached.
* Press "STOP" for emergency stop.
{{attachment:FR_medm.GIF}}
(ref: [[http://klog.icrr.u-tokyo.ac.jp/osl/?r=4161|klog4161]])
=== How to actuate IP stepping motors from medm screen (On 18/02/28) ===
==== Initial Activate ====
{{{
$ ssh k1script1
$ step_start SERVER_NAME
}}}
SERVER_NAME is the EPICS channel name after K1:STEPPER_. (i.e., BS_IP) If the lines
Stepper has been migrated from k1script (Python2) to k1script1 (Python3).
{{{
Reconnecting...
Testing connection:
...ok
}}}
appears in the command line, it is ok. otherwise, check server configuration.
When the work is finished, step_start is exited.
After 2020/10/26, you can add "-kill" to the command argument to terminate it.
{{{
$ step_start SERVER_NAME -kill
}}}
==== Configuration ====
There are two types of alignment of the IP stepping motors, which we call Type-SR (left), Type-BS (center), and Type-TM (right).
{{attachment:IP_Type-SR.gif||width="350"}} {{attachment:IP_Type-BS.gif||width="350"}} {{attachment:IP_Type-TM.gif||width="350"}}
SRs have Type-SR, while BS has Type-BS. Type-A towers have Type-TM.
The connection assign is loaded from conf.py in the script file, including the sign of the motor actuation. Refer the table below for the connection assignment as well.
=== How to check the log ===
The log files remain in /kagra/Dropbox/Subsystems/VIS/Scripts/StepMotor/LogFiles/ Check the log files with each prefix.
=== How to actuate from the command line (On 17/10/5) ===
確認のしかた
* Go to the directory: /kagra/Dropbox/Subsystems/VIS/TypeBp/Scripts/steppingmotor/
* start ipython
* in ipython, type the command as follows.
{{{
from Trinamic_control6110 import *
driver = Trinamic_control6110()
driver.connectTCP('your ip address', 4001)
driver.reconnect()
}}}
and if it says '...ok', the motors are replying. If error occurs, try to restart the motor drivers as well as Nport. Just turn off and on the power.
* In order to check the current position,
{{{
driver.getTargetPosition(motor_number)
}}}
* In order to move it,
{{{
driver.setTargetPosition(step,motor_number)
}}}
Insert the absolute step in to the 'step', and insert the motor number into 'motor_number.'
<
> B) B) B) Also, there is a convenient script which Miyamoto-san wrote. The script moves all the three stepping motors at once for the type A IPs so that one can request the motion in (L, T, Y) basis.
{{{
import controlInvertedPendulum as myip
miyamoto = myip.controlIP()
miyamoto.connectTCP('your ip address', 4001)
miyamoto.reconnect()
}}}
* In order to move it,
{{{
miyamoto.move_LONG(step)
}}}
/!\ Caution that the step value in the `move_(LONG|YAW|TRANS)` command corresponds to the '''relative''' move from the current position.
== Driver List ==
[[https://docs.google.com/spreadsheets/d/1eePcJB_O5vPhrYg0hgAbrvU-9jwiHGU2hx-cbhrI6CM/edit?usp=sharing|Master List]]
||EPICS channel name ||Driver IP Address ||Installation ||klog ||JGW-S ||Memo ||Motor assign ||Sign of the script (when positive value) ||
||K1:STEPPER_PR2_GAS ||10.68.160.40 ||◯ ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=5642|JGW-S1605642]] ||- ||0:BF, 2: SF ||Supposed to rotate right||
||K1:STEPPER_PR0_GAS ||10.68.160.41 ||◯ ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6035|JGW-S1706035]] ||- ||0:BF, 1: SF ||Supposed to rotate right||
||K1:STEPPER_PR0_GAS ||10.68.160.41 ||◯ ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6035|JGW-S1706035]] ||- ||2:BF, 3: SF ||Supposed to rotate right||
||K1:STEPPER_ITMX_GAS ||10.68.160.43 ||◯ ||[[http://klog.icrr.u-tokyo.ac.jp/osl/?r=5321|5321]] ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6034|JGW-S1706034]] ||- ||0:F0, 1:F1, 2:F2, 3:F3, 4:BF, 5:- (2021/04/07) ||Supposed to rotate right||
||K1:STEPPER_ITMX_IP ||10.68.160.44 ||◯ ||[[http://klog.icrr.u-tokyo.ac.jp/osl/?r=5321|5321]] ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6042|JGW-S1706042]] ||- ||- ||Supposed to rotate right||
||K1:STEPPER_ETMX_GAS ||10.68.160.45 ||◯ ||[[http://klog.icrr.u-tokyo.ac.jp/osl/?r=3566|3566]] ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6041|JGW-S1706041]] ||- ||