Differences between revisions 5 and 164 (spanning 159 versions)
Revision 5 as of 2017-04-25 08:50:40
Size: 954
Editor: KousekiMiyo
Comment:
Revision 164 as of 2020-12-08 21:54:23
Size: 19013
Editor: satoru.ikeda
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
<<TableOfContents(3)>>
Line 2: Line 4:

== DriverList ==

== Configuration ==
ステッピングモータは計算機ネットワーク上(10.68.150.**)にあるドライバ(TMCM6110)から制御され,
ユーザはドライバにたいしてTelnetで制御コマンドを送信する形になっている。もともとTMCM6110への制御コマンドはRS485でしか受け付けないので,NportのRS485-Ethernet変換器をつかって,TMCM6110をネットワーク上においている。ネットワークにおいたことによってユーザの環境に依存せずにTelnetでコマンド送信ができ,計算機ネットワークにいればどこにいても操作ができるので便利である。

以前はRealCOMモードとよばれる,Ethernetケーブルをつかって仮想的なCOMポートをユーザのPCに開いて制御コマンドを送っていた。セットアップのマニュアルは[]を参考。


[[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で反転
Line 15: Line 46:

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 k1script
$ step_start SERVER_NAME
}}}
SERVER_NAME is the EPICS channel name after K1:STEPPER_. (i.e., PR2_GAS) If the lines

{{{
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 k1script
$ step_start SERVER_NAME
}}}
SERVER_NAME is the EPICS channel name after K1:STEPPER_. (i.e., BS_IP) If the lines

{{{
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.'

<<BR>> 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 ==
||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.150.40 ||◯ ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=5642|JGW-S1605642]] ||- ||0:BF, 1: SF ||Supposed to rotate right||
||K1:STEPPER_PR0_GAS ||10.68.150.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.150.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.150.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]] ||- ||- ||Supposed to rotate right||
||K1:STEPPER_ITMX_IP ||10.68.150.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.150.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]] ||- ||<style="text-align:center" |2>See [[http://gwwiki.icrr.u-tokyo.ac.jp/JGWwiki/KAGRA/Subgroups/VIS/TypeA/ETMX|ETMX status]](IP A:1, B:2, C:3, YAW:0) ||Supposed to rotate right||
||K1:STEPPER_ETMX_IP ||10.68.150.46 ||◯ ||[[http://klog.icrr.u-tokyo.ac.jp/osl/?r=3566|3566]] ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6037|JGW-S1706037]] ||- ||Supposed to rotate right||
||K1:STEPPER_ITMY_GAS ||10.68.150.47 ||◯ ||[[http://klog.icrr.u-tokyo.ac.jp/osl/?r=6162|6162]] ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6031|JGW-S1706031]] ||- ||- ||Supposed to rotate right||
||K1:STEPPER_ITMY_IP ||10.68.150.48 ||- ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=8437|JGW-S1808437]] ||- ||- ||Supposed to rotate right||
||K1:STEPPER_ETMY_GAS ||10.68.150.49 ||◯ ||<style="text-align:center" |2>[[http://klog.icrr.u-tokyo.ac.jp/osl/?r=3790|3790]] ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6043|JGW-S1706043]] ||- ||<style="text-align:center" |2>See [[http://gwwiki.icrr.u-tokyo.ac.jp/JGWwiki/KAGRA/Subgroups/VIS/TypeA/ETMY|ETMY status]](IP A:1, B:2, C:3, YAW:0) ||Supposed to rotate right||
||K1:STEPPER_ETMY_IP ||10.68.150.50 ||◯ ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6039|JGW-S1706039]] ||- ||Supposed to rotate right||
||K1:STEPPER_BS_GAS ||[[http://10.68.150.51|10.68.150.51]] ||◯ ||[[http://klog.icrr.u-tokyo.ac.jp/osl/?r=3509|3509]] ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6032|JGW-S1706032]] ||BS second floor ||'''0: '''BF, '''1: '''F1, '''2:''' '''not used''', '''3:''' F0 ||Supposed to rotate right||
||K1:STEPPER_BS_IP ||[[http://10.68.150.52|10.68.150.52]] ||◯ ||[[http://klog.icrr.u-tokyo.ac.jp/osl/?r=7190|7190]] ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6044|JGW-S1706044]] ||BS second floor ||0:A, 1:B, 2:C, 3:YAW ||Supposed to rotate right||
||K1:STEPPER_SR2_GAS ||[[http://10.68.150.53|10.68.150.53]] ||◯ ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6036|JGW-S1706036]] ||SR2 small rack second floor ||'''0: '''BF, '''1: '''F1, '''2:''' F0 ||Supposed to rotate right(Plans to change the value of [[http://klog.icrr.u-tokyo.ac.jp/osl/?r= 15272 | 15272]]in the future)||
||K1:STEPPER_SR2_IP ||[[http://10.68.150.54|10.68.150.54]] ||◯ ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6040|JGW-S1706040]] ||SR2 small rack second floor ||0:A, 1:B, 2:C, 3:YAW ||Supposed to rotate right(Plans to change the value of [[http://klog.icrr.u-tokyo.ac.jp/osl/?r= 15272 | 15272]]in the future)||
||K1:STEPPER_SR3_GAS ||[[http://10.68.150.55|10.68.150.55]] ||◯ ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6038|JGW-S1706038]] ||SR3 second floor ||'''0: '''BF, '''1: '''F1, '''2:'''not used, '''3:''' F0 (2020/11/26change from 2 to 3:Klog#15541) ||Supposed to rotate right(Plans to change the value of [[http://klog.icrr.u-tokyo.ac.jp/osl/?r= 15272 | 15272]]in the future)||
||K1:STEPPER_SR3_IP ||[[http://10.68.150.56|10.68.150.56]] ||◯ ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=8436|JGW-S1808436]] ||SR3 second floor ||0:A, 1:B, 2:C, 3:YAW ||Supposed to rotate right(Plans to change the value of [[http://klog.icrr.u-tokyo.ac.jp/osl/?r= 15272 | 15272]]in the future)||
||K1:STEPPER_SRM_GAS ||[[http://10.68.150.57|10.68.150.57]] ||◯ ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6035|JGW-S1706035]] ||SRM small rack second floor ||'''0: '''BF, '''1: '''F1, '''2:''' '''not used''', '''3:''' F0 || Supposed to rotate right(Plans to change the value of [[http://klog.icrr.u-tokyo.ac.jp/osl/?r= 15272 | 15272]]in the future)||
||K1:STEPPER_SRM_IP ||[[http://10.68.150.58|10.68.150.58]] ||◯ ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=8438|JGW-S1808438]] ||SRM small rack second floor ||0:A, 1:B, 2:C, '''3,4: not used(Broken)''', '''5''':YAW (2020/11/25 change from 4 to 5) || Supposed to rotate right(Plans to change the value of [[http://klog.icrr.u-tokyo.ac.jp/osl/?r= 15272 | 15272]]in the future)||
||- ||10.68.150.59 ||- ||- ||- ||ETMY for cryo-p ||- || ||
||- ||10.68.150.60 ||- ||- ||- ||ETMX for cryo-p ||- || ||
||- ||10.68.150.61 ||- ||- ||- ||ITMY for cryo-p ||- || ||
||- ||10.68.150.62 ||- ||- ||- ||ITMX for cryo-p ||- || ||
||- ||- ||- ||- ||[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=6045|JGW-S1706045]] ||water damaged; klog 7190 ||- || ||

== Limit Switch Install Status ==
||EPICS channel name ||DOF ||Limit Switch Install ||Limit Switch Enable/Disable ||Memo ||
||<^|2>K1:STEPPER_PR2_GAS || SF ||None || || ||
||BF ||None || || ||
||<^|2>K1:STEPPER_PR0_GAS ||SF ||None || || ||
||BF|| None || || ||
||<^|2>K1:STEPPER_PR0_GAS ||SF ||None || || ||
||BF|| None || || ||
||<^|5>K1:STEPPER_ITMX_GAS ||F0 ||None(Plans to install) || || ||
||F1 ||None || || ||
||F2 ||None || || ||
||F3 ||None || || ||
||BF ||None || || ||
||<^|4>K1:STEPPER_ITMX_IP || IP H1(A) ||Installed & Not Check(Plans to check) ||Disable || ||
||IP H2(B) ||Installed & Not Check(Plans to check) ||Disable || ||
||IP H3(C) ||Installed & Not Check(Plans to check) ||Disable || ||
||F0 YAW ||None(Plans to install) || || ||
||<^|5>K1:STEPPER_ETMX_GAS ||F0 || None(Plans to install) || || ||
||F1 ||None || || ||
||F2 ||None || || ||
||F3 ||None || || ||
||BF ||None || || ||
||<^|4>K1:STEPPER_ETMX_IP || IP H1(A) ||Installed & Not Check(Plans to check) ||Disable || ||
||IP H2(B) ||Installed & Not Check(Plans to check) ||Disable || ||
||IP H3(C) ||Installed & Not Check(Plans to check) ||Disable || ||
||F0 YAW ||None(Plans to install) || || ||
||<^|5>K1:STEPPER_ITMY_GAS ||F0 ||None(Plans to install) || || ||
||F1 ||None || || ||
||F2 ||None || || ||
||F3 ||None || || ||
||BF ||None || || ||
||<^|4>K1:STEPPER_ITMY_IP ||IP H1(A) ||Installed & Not Check(Plans to check) ||Disable || ||
||IP H2(B) ||Installed & Not Check(Plans to check) ||Disable || ||
||IP H3(C) ||Installed & Not Check(Plans to check) ||Disable || ||
||F0 YAW ||None(Plans to install) || || ||
||<^|5>K1:STEPPER_ETMY_GAS ||F0 ||None(Plans to install) || || ||
||F1 ||None || || ||
||F2 ||None || || ||
||F3 ||None || || ||
||BF ||None || || ||
||<^|4>K1:STEPPER_ETMY_IP ||IP H1(A) ||Installed & Not Check(Plans to check) ||Disable || ||
||IP H2(B) ||Installed & Not Check(Plans to check) ||Disable || ||
||IP H3(C) ||Installed & Not Check(Plans to check) ||Disable || ||
||F0 YAW ||None(Plans to install) || || ||
||<^|3>K1:STEPPER_BS_GAS ||F0 ||None(Plans to install) || || ||
||F1 ||None || || ||
||BF ||None || || ||
||<^|4>K1:STEPPER_BS_IP ||IP H1(A) ||None(Plans to install) ||Disable || ||
||IP H2(B) ||None(Plans to install) ||Disable || ||
||IP H3(C) ||None(Plans to install) ||Disable || ||
||F0 YAW ||None(Plans to install) || || ||
||<^|3>K1:STEPPER_SR2_GAS || F0 ||None(Plans to install) || || ||
||F1 ||None || || ||
||BF ||None || || ||
||<^|4>K1:STEPPER_SR2_IP ||IP H1(A) ||-Yaw(Left): Bad, +Yaw(Right):OK ||Disable ||<^|3>[[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15583|15583]], [[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15593|15593]] ||
||IP H2(B) ||Both(L,R) OK, Install Spring useless? ||Disable ||
||IP H3(C) ||Both(L,R) OK, Install Spring useless? ||Disable ||
||F0 YAW ||None || ||[[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15583|15583]], [[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15593|15593]] ||
||<^|3>K1:STEPPER_SR3_GAS || F0 ||Installed & Check OK ||Disable? ||[[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15541|15541]], [[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15592|15592]] ||
||F1 ||None || || ||
||BF ||None || || ||
||<^|4>K1:STEPPER_SR3_IP ||IP H1(A) ||-Yaw(Left) Bad +Yaw(Right):OK ||Disable ||[[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15592|15592]] ||
||IP H2(B) ||Both(L,R) OK Installed Spring useless? || ||[[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15592|15592]] ||
||IP H3(C) ||Both(L,R) OK Installed Spring useless? || ||[[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15592|15592]] ||
||F0 YAW ||None || ||[[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15592|15592]] ||
||<^|3>K1:STEPPER_SRM_GAS ||F0 ||Connection Testing, ||Disable || ||
||F1 ||None || || ||
||BF ||None || || ||
||<^|4>K1:STEPPER_SRM_IP ||IP H1(A) ||Installed Spring useless ||Disable ||[[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15484|15484]], [[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15530|15530]]||
||IP H2(B) ||Installed Spring useless ||Disable || ||
||IP H3(C) ||Installed Spring useless ||Disable || ||
||F0 YAW ||Installed & Check OK || Disable ||[[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15484|15484]], [[http://klog.icrr.u-tokyo.ac.jp/osl/index.php?r=15530|15530]] ||

== Driver Box List according to JGWDoc on 2018-02-08 ==
 * S1605642 2018-02-08 found in PR2 cleanbooth driving PR2 by Mark B.
 * S1706031 18/01/19- Testing in mozumi by K. Miyo
 * S1706032 2017-10-18 installed in BF second floor (klog 3527) by Enzo
 * S1706033 2018-02-08 Found in PR3 cleanbooth driving PR3/PRM by Mark B.
 * S1706034 2018-02-08 Found in AEL stockroom by Mark B.
 * S1706035 Moved to PRM at 2017/8/8 (A.Shoda) [but not found 2018-02-08 by Mark - apparently replaced by 6033 for both PR3 and PRM]
 * S1706036 2017-12-27 Installed in second floor of SR2 area as SR-GAS by Shoda-san.
 * S1706037 [2017/10/24] Installed into K1EX2 rack by K.Okutomi
 * S1706038 2018-02-07 Reallocated to SR3 and moved to SR3 second floor by Mark
 * S1706039 2017-12-06 Installed in K1EY1 rack as EYV_IP by K. Okutomi (klog 3790).
 * S1706040 2017-12-27 Installed in second floor of SR2 area as SR-PI by Shoda-san.
 * S1706041 [2017/08/22] Installed into K1EX2 rack by K. Okutomi
 * S1706042 2018-02-08 Found in AEL stockroom by Mark B.
 * S1706043 2017-12-06 Installed in K1EY1 rack as EYV_GAS by K. Okutomi (klog 3790).
 * S1706044 2018-02-07 Reallocated to SR3 and moved to SR3 second floor by Mark
 * S1706045 2017-10-18 installed in BF second floor (klog 3527) by Enzo

== Bug ==

Overview

latest sensitivity curve

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 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

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 Stepper motor driver installation

Nport5150

Serial setting

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)

ドライバーに接続されているモータの名前を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 k1script
$ step_start SERVER_NAME

SERVER_NAME is the EPICS channel name after K1:STEPPER_. (i.e., PR2_GAS) If the lines

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.

FR_medm.GIF

(ref: klog4161)

How to actuate IP stepping motors from medm screen (On 18/02/28)

Initial Activate

$ ssh k1script
$ step_start SERVER_NAME

SERVER_NAME is the EPICS channel name after K1:STEPPER_. (i.e., BS_IP) If the lines

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).

IP_Type-SR.gif IP_Type-BS.gif IP_Type-TM.gif

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

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.150.40

-

JGW-S1605642

-

0:BF, 1: SF

Supposed to rotate right

K1:STEPPER_PR0_GAS

10.68.150.41

-

JGW-S1706035

-

0:BF, 1: SF

Supposed to rotate right

K1:STEPPER_PR0_GAS

10.68.150.41

-

JGW-S1706035

-

2:BF, 3: SF

Supposed to rotate right

K1:STEPPER_ITMX_GAS

10.68.150.43

5321

JGW-S1706034

-

-

Supposed to rotate right

K1:STEPPER_ITMX_IP

10.68.150.44

5321

JGW-S1706042

-

-

Supposed to rotate right

K1:STEPPER_ETMX_GAS

10.68.150.45

3566

JGW-S1706041

-

See ETMX status(IP A:1, B:2, C:3, YAW:0)

Supposed to rotate right

K1:STEPPER_ETMX_IP

10.68.150.46

3566

JGW-S1706037

-

Supposed to rotate right

K1:STEPPER_ITMY_GAS

10.68.150.47

6162

JGW-S1706031

-

-

Supposed to rotate right

K1:STEPPER_ITMY_IP

10.68.150.48

-

-

JGW-S1808437

-

-

Supposed to rotate right

K1:STEPPER_ETMY_GAS

10.68.150.49

3790

JGW-S1706043

-

See ETMY status(IP A:1, B:2, C:3, YAW:0)

Supposed to rotate right

K1:STEPPER_ETMY_IP

10.68.150.50

JGW-S1706039

-

Supposed to rotate right

K1:STEPPER_BS_GAS

10.68.150.51

3509

JGW-S1706032

BS second floor

0: BF, 1: F1, 2: not used, 3: F0

Supposed to rotate right

K1:STEPPER_BS_IP

10.68.150.52

7190

JGW-S1706044

BS second floor

0:A, 1:B, 2:C, 3:YAW

Supposed to rotate right

K1:STEPPER_SR2_GAS

10.68.150.53

-

JGW-S1706036

SR2 small rack second floor

0: BF, 1: F1, 2: F0

Supposed to rotate right(Plans to change the value of 15272in the future)

K1:STEPPER_SR2_IP

10.68.150.54

-

JGW-S1706040

SR2 small rack second floor

0:A, 1:B, 2:C, 3:YAW

Supposed to rotate right(Plans to change the value of 15272in the future)

K1:STEPPER_SR3_GAS

10.68.150.55

-

JGW-S1706038

SR3 second floor

0: BF, 1: F1, 2:not used, 3: F0 (2020/11/26change from 2 to 3:Klog#15541)

Supposed to rotate right(Plans to change the value of 15272in the future)

K1:STEPPER_SR3_IP

10.68.150.56

-

JGW-S1808436

SR3 second floor

0:A, 1:B, 2:C, 3:YAW

Supposed to rotate right(Plans to change the value of 15272in the future)

K1:STEPPER_SRM_GAS

10.68.150.57

-

JGW-S1706035

SRM small rack second floor

0: BF, 1: F1, 2: not used, 3: F0

Supposed to rotate right(Plans to change the value of 15272in the future)

K1:STEPPER_SRM_IP

10.68.150.58

-

JGW-S1808438

SRM small rack second floor

0:A, 1:B, 2:C, 3,4: not used(Broken), 5:YAW (2020/11/25 change from 4 to 5)

Supposed to rotate right(Plans to change the value of 15272in the future)

-

10.68.150.59

-

-

-

ETMY for cryo-p

-

-

10.68.150.60

-

-

-

ETMX for cryo-p

-

-

10.68.150.61

-

-

-

ITMY for cryo-p

-

-

10.68.150.62

-

-

-

ITMX for cryo-p

-

-

-

-

-

JGW-S1706045

water damaged; klog 7190

-

Limit Switch Install Status

EPICS channel name

DOF

Limit Switch Install

Limit Switch Enable/Disable

Memo

K1:STEPPER_PR2_GAS

SF

None

BF

None

K1:STEPPER_PR0_GAS

SF

None

BF

None

K1:STEPPER_PR0_GAS

SF

None

BF

None

K1:STEPPER_ITMX_GAS

F0

None(Plans to install)

F1

None

F2

None

F3

None

BF

None

K1:STEPPER_ITMX_IP

IP H1(A)

Installed & Not Check(Plans to check)

Disable

IP H2(B)

Installed & Not Check(Plans to check)

Disable

IP H3(C)

Installed & Not Check(Plans to check)

Disable

F0 YAW

None(Plans to install)

K1:STEPPER_ETMX_GAS

F0

None(Plans to install)

F1

None

F2

None

F3

None

BF

None

K1:STEPPER_ETMX_IP

IP H1(A)

Installed & Not Check(Plans to check)

Disable

IP H2(B)

Installed & Not Check(Plans to check)

Disable

IP H3(C)

Installed & Not Check(Plans to check)

Disable

F0 YAW

None(Plans to install)

K1:STEPPER_ITMY_GAS

F0

None(Plans to install)

F1

None

F2

None

F3

None

BF

None

K1:STEPPER_ITMY_IP

IP H1(A)

Installed & Not Check(Plans to check)

Disable

IP H2(B)

Installed & Not Check(Plans to check)

Disable

IP H3(C)

Installed & Not Check(Plans to check)

Disable

F0 YAW

None(Plans to install)

K1:STEPPER_ETMY_GAS

F0

None(Plans to install)

F1

None

F2

None

F3

None

BF

None

K1:STEPPER_ETMY_IP

IP H1(A)

Installed & Not Check(Plans to check)

Disable

IP H2(B)

Installed & Not Check(Plans to check)

Disable

IP H3(C)

Installed & Not Check(Plans to check)

Disable

F0 YAW

None(Plans to install)

K1:STEPPER_BS_GAS

F0

None(Plans to install)

F1

None

BF

None

K1:STEPPER_BS_IP

IP H1(A)

None(Plans to install)

Disable

IP H2(B)

None(Plans to install)

Disable

IP H3(C)

None(Plans to install)

Disable

F0 YAW

None(Plans to install)

K1:STEPPER_SR2_GAS

F0

None(Plans to install)

F1

None

BF

None

K1:STEPPER_SR2_IP

IP H1(A)

-Yaw(Left): Bad, +Yaw(Right):OK

Disable

15583, 15593

IP H2(B)

Both(L,R) OK, Install Spring useless?

Disable

IP H3(C)

Both(L,R) OK, Install Spring useless?

Disable

F0 YAW

None

15583, 15593

K1:STEPPER_SR3_GAS

F0

Installed & Check OK

Disable?

15541, 15592

F1

None

BF

None

K1:STEPPER_SR3_IP

IP H1(A)

-Yaw(Left) Bad +Yaw(Right):OK

Disable

15592

IP H2(B)

Both(L,R) OK Installed Spring useless?

15592

IP H3(C)

Both(L,R) OK Installed Spring useless?

15592

F0 YAW

None

15592

K1:STEPPER_SRM_GAS

F0

Connection Testing,

Disable

F1

None

BF

None

K1:STEPPER_SRM_IP

IP H1(A)

Installed Spring useless

Disable

15484, 15530

IP H2(B)

Installed Spring useless

Disable

IP H3(C)

Installed Spring useless

Disable

F0 YAW

Installed & Check OK

Disable

15484, 15530

Driver Box List according to JGWDoc on 2018-02-08

  • S1605642 2018-02-08 found in PR2 cleanbooth driving PR2 by Mark B.
  • S1706031 18/01/19- Testing in mozumi by K. Miyo
  • S1706032 2017-10-18 installed in BF second floor (klog 3527) by Enzo
  • S1706033 2018-02-08 Found in PR3 cleanbooth driving PR3/PRM by Mark B.
  • S1706034 2018-02-08 Found in AEL stockroom by Mark B.
  • S1706035 Moved to PRM at 2017/8/8 (A.Shoda) [but not found 2018-02-08 by Mark - apparently replaced by 6033 for both PR3 and PRM]
  • S1706036 2017-12-27 Installed in second floor of SR2 area as SR-GAS by Shoda-san.
  • S1706037 [2017/10/24] Installed into K1EX2 rack by K.Okutomi
  • S1706038 2018-02-07 Reallocated to SR3 and moved to SR3 second floor by Mark
  • S1706039 2017-12-06 Installed in K1EY1 rack as EYV_IP by K. Okutomi (klog 3790).
  • S1706040 2017-12-27 Installed in second floor of SR2 area as SR-PI by Shoda-san.
  • S1706041 [2017/08/22] Installed into K1EX2 rack by K. Okutomi
  • S1706042 2018-02-08 Found in AEL stockroom by Mark B.
  • S1706043 2017-12-06 Installed in K1EY1 rack as EYV_GAS by K. Okutomi (klog 3790).
  • S1706044 2018-02-07 Reallocated to SR3 and moved to SR3 second floor by Mark
  • S1706045 2017-10-18 installed in BF second floor (klog 3527) by Enzo

Bug

KAGRA/Subgroups/DGS/Projects/StepperMotor (last edited 2022-08-02 16:57:38 by satoru.ikeda)